search for: pop64r

Displaying 7 results from an estimated 7 matches for "pop64r".

Did you mean: pop6
2020 Nov 12
2
LLVM X86 MachineBasicBlock inserting push and pop instructions causes segmentation fault
...get().getInstrInfo(); auto MMI = &MF.getMMI(); llvm::Module &M = const_cast<Module &>(*MMI->getModule()); if (origMBB->empty() || !origMBB->isLegalToHoistInto()) return; llvm::BuildMI(*origMBB, origMBB->begin(), DebugLoc(), TII.get(X86::POP64r)).addReg(X86::RCX); /* SOME ADDITIONAL LOGIC COMMENTED OUT */ llvm::BuildMI(*origMBB, origMBB->begin(), DebugLoc(), TII.get(X86::PUSH64r)).addReg(X86::RCX); } bool VirtualTimeManager::runOnMachineFunction(MachineFunction &MF) { for (auto &MBB : MF) {...
2012 Mar 02
0
[LLVMdev] how to annotate assembler
...## <MCOperand Imm:1> ## <MCOperand Reg:0> ## <MCOperand Imm:-8> ## <MCOperand Reg:0>> popq %rbp ## <MCInst #2000 POP64r ## <MCOperand Reg:106>> ret ## <MCInst #2227 RET> .cfi_endproc - Ben > > double > test(long long s) > { > return s; > } > > gcc -S -dp -O0 test.c > > test: > .LFB0: > .cf...
2012 Mar 02
3
[LLVMdev] how to annotate assembler
Hi, In GCC there is one useful option -dp (or -dP for more verbose output) to annotate assembler with instruction patterns, that was used when assembler was generated. For example: double test(long long s) { return s; } gcc -S -dp -O0 test.c test: .LFB0: .cfi_startproc pushq %rbp # 18 *pushdi2_rex64/1 [length = 1] .cfi_def_cfa_offset 16 movq %rsp, %rbp # 19 *movdi_1_rex64/2
2020 Nov 12
0
LLVM X86 MachineBasicBlock inserting push and pop instructions causes segmentation fault
...auto MMI = &MF.getMMI(); > llvm::Module &M = const_cast<Module &>(*MMI->getModule()); > if (origMBB->empty() || !origMBB->isLegalToHoistInto()) > return; > llvm::BuildMI(*origMBB, origMBB->begin(), DebugLoc(), > TII.get(X86::POP64r)).addReg(X86::RCX); > /* SOME ADDITIONAL LOGIC COMMENTED OUT */ > llvm::BuildMI(*origMBB, origMBB->begin(), DebugLoc(), > TII.get(X86::PUSH64r)).addReg(X86::RCX); > } > bool VirtualTimeManager::runOnMachineFunction(MachineFunction &MF) { > for (auto...
2010 Aug 27
0
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
...RDI<def> = MOV64ri64i32 60910096 - insn: %RAX<def> = MOV64ri <ga:@_ZN010HelloWorld4mainEPN13ContainerSVecE> - insn: TCRETURNri64 %RAX<kill>, 0, %RDI<kill>, %RAX<imp-def,dead>, %RDI<imp-def,dead>, %RSP<imp-use>, ... - insn: %RBP<def> = POP64r %RSP<imp-def>, %RSP<imp-use> - insn: RET * PEI::insertPrologEpilogCode: === << after emitEpilogue Function only has on BB. Is this wrong that it has both TCRETURNri64 and RET in one BB? You can see that instruction TCRETURNri64 is left by emitEpilogue and and this later caus...
2012 Mar 02
2
[LLVMdev] how to annotate assembler
...rand Imm:1> >                                        ##  <MCOperand Reg:0> >                                        ##  <MCOperand Imm:-8> >                                        ##  <MCOperand Reg:0>> >        popq    %rbp                    ## <MCInst #2000 POP64r >                                        ##  <MCOperand Reg:106>> >        ret                             ## <MCInst #2227 RET> >        .cfi_endproc > > - Ben > >> >> double >> test(long long s) >> { >>  return s; >> } >>...
2010 Aug 26
2
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
On Aug 26, 2010, at 12:59 PMPDT, Eric Christopher wrote: > On Aug 26, 2010, at 12:25 PM, Yuri wrote: >> On 08/26/2010 11:53, Eric Christopher wrote: >>> Could you get it to print out the instruction when it happens? >>> (just change the line above the error message to print it out to >>> errs()). >>> >>> It basically means that a pseudo