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...