search for: call32r

Displaying 4 results from an estimated 4 matches for "call32r".

Did you mean: call32
2010 Oct 20
1
[LLVMdev] MachineBasicBlock insertion
...32 abort BuildMI(MBB,dl,TII->get(X86::CALLpcrel32)).addExternalSymbol("abort"); // JNE_4 error_label BuildMI(MBB,dl,TII->get(X86::JNE_4)).addExternalSymbol("error_label"); // MOV32ri %eax, 0 BuildMI(MBB,dl,TII->get(X86::MOV32ri),X86::EAX).addImm(0); // CALL32r %eax // BuildMI(MBB,dl,TII->get(X86::CALL32r)).addReg(X86::EAX); MF.insert(I,MBB); } When I tried to dump the code after the insertion, the program enters an infinite loop in the while loop inside MachineRegisterInfo.h:defusechain_iterator &operator++(). Basically, the CALLpcrel32 i...
2009 Sep 06
0
[LLVMdev] How to differentiate between external and internal calls in llc?
I have a MachineFunctionPass plugged into llc during LLVMTargetMachine::addPreRegAlloc. In this Pass I need to extend calls (i. e. CALL32m, CALL32r) iff they call function within the program. CALL32m has, I think, ten different possibilities for the four operands giving the target address. At the moment I have excluded calls that give the displacement as GlobalAddress or JumpTableIndex (although I am not sure whether this is actually right...
2010 Oct 20
1
[LLVMdev] MachineBasicBlock insertion and use/def list update
...ALLpcrel32)).addExternalSymbol("abort"); >> // JNE_4 error_label >> BuildMI(MBB,dl,TII->get(X86::JNE_4)).addExternalSymbol("error_label"); >> // MOV32ri %eax, 0 >> BuildMI(MBB,dl,TII->get(X86::MOV32ri),X86::EAX).addImm(0); >> // CALL32r %eax >> // BuildMI(MBB,dl,TII->get(X86::CALL32r)).addReg(X86::EAX); >> MF.insert(I,MBB); >> } >> >> When I tried to dump the code after the insertion, the program enters an >> infinite loop >> in the while loop inside MachineRegisterInfo.h:defusech...
2016 Mar 24
0
Problem with inserting a function call after certain x86 instructions
...nction(). But I do not know how to insert a function call. In my work, I write a special function for a program to be compiled and I need to insert this function after certain instructions whose destination register is esp. In X86InstrInfo.cpp, there are two kinds of call may be useful, namely X86::CALL32r and X86::CALL32m. And in X86InstrInfo.td, there are three, namely call32i, call32m and CallImmAddr. But I do not know how to use them to insert my special function. Besides, I can not find LEAVE instruction in X86InstrInfo.cpp though it is found in X86InstrInfo.td. Should I use it in form of X86::L...