Displaying 4 results from an estimated 4 matches for "islegaltocallimmedateaddr".
Did you mean:
islegaltocallimmediateaddr
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