[llvm-commits] Bug in "call __chkstak" on 64 bit OS

NAKAMURA Takumi geek4civic at gmail.com
Sun Feb 19 05:04:50 PST 2012


2012/2/19 Yatsina, Marina <marina.yatsina at intel.com>:
> The assemble instruction created for this is:
>
> call <imm32>
>
> Where imm32 is the address of __chkstk. On 64 bit OS the address can 64 bits
> and <imm32> is not big enough to contain the full address.
>
> The solution for 64 bits is to save the address to r11 and call r11:
>
> mov r11, <imm64>
>
> call r11

Why is it unconditional, not enhancing memory model modes?
For usual executable (PE+ w/o relocation), 2GB of .text would be enough.

And, ... why didn't you touch other callq?

...Takumi



More information about the llvm-commits mailing list