search for: islegaltocallimmedateaddr

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

2011 Oct 17
2
[LLVMdev] Typo in IsLegalToCallImmediateAddr?
Rafael, I believe your example is not related to IsLegalToCallImmediateAddr. This is an example of calling to an immediate address: typedef int (*funcptr)(void); int main() { funcptr foo = (funcptr)0x100; foo(); } If IsLegalToCallImmedateAddr is true, this generates a call to absolute address 0x100: call 0x100 This requires a relocation of the value 0x100 - PC. (NOTE: this is NOT the same as: "foo: call foo+0x100", which requires no relocation) This can't be done correctly in PIC mode. If you do this in a shared library...
2011 Jul 01
2
[LLVMdev] Typo in IsLegalToCallImmediateAddr?
It seems that the || should be && here? /// IsLegalToCallImmediateAddr - Return true if the subtarget allows calls /// to immediate address. bool X86Subtarget::IsLegalToCallImmediateAddr(const TargetMachine &TM) const { if (Is64Bit) return false; return isTargetELF() || TM.getRelocationModel() == Reloc::Static; } For example, if you are doing ELF PIC (i.e. for a shared
2011 Jul 02
0
[LLVMdev] Typo in IsLegalToCallImmediateAddr?
On 2011-07-01 17:13, David Meyer wrote: > It seems that the || should be && here? > > /// IsLegalToCallImmediateAddr - Return true if the subtarget allows calls > /// to immediate address. > bool X86Subtarget::IsLegalToCallImmediateAddr(const TargetMachine &TM) const { > if (Is64Bit) > return false; > return isTargetELF() || TM.getRelocationModel() ==
2011 Oct 20
0
[LLVMdev] Typo in IsLegalToCallImmediateAddr?
...e.com>: > Rafael, > > I believe your example is not related to IsLegalToCallImmediateAddr. > > This is an example of calling to an immediate address: > > typedef int (*funcptr)(void); > > int main() { >  funcptr foo = (funcptr)0x100; >  foo(); > } > > If IsLegalToCallImmedateAddr is true, this generates a call to > absolute address 0x100: > > call 0x100 > If so there is a bug, but I cannot reproduce it. I am getting: 0: b8 00 01 00 00 mov $0x100,%eax 5: ff e0 jmp *%eax I have tried 142624. > - pdox > Cheers, Rafael