PING: [PATCH] Load external function address via GOT slot
H.J. Lu
hjl.tools@gmail.com
Mon May 30 07:22:00 GMT 2016
On Mon, May 9, 2016 at 10:37 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Apr 22, 2016 at 6:03 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>> On Fri, Apr 22, 2016 at 2:54 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> For -fno-plt, we load the external function address via the GOT slot
>>> so that linker won't create an PLT entry for extern function address.
>>>
>>> Tested on x86-64. I also built GCC with -fno-plt. It removes 99% PLT
>>> entries. OK for trunk?
>>>
>>> H.J.
>>> --
>>> gcc/
>>>
>>> PR target/pr67400
>>> * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
>>> * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
>>> (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL for
>>> ix86_force_load_from_GOT_p returns true.
>>> (ix86_print_operand_address): Support UNSPEC_GOTPCREL if
>>> ix86_force_load_from_GOT_p returns true.
>>> (ix86_expand_move): Load the external function address via the
>>> GOT slot if ix86_force_load_from_GOT_p returns true.
>>> * config/i386/predicates.md (x86_64_immediate_operand): Return
>>> false if ix86_force_load_from_GOT_p returns true.
>>>
>>> gcc/testsuite/
>>>
>>> PR target/pr67400
>>> * gcc.target/i386/pr67400-1.c: New test.
>>> * gcc.target/i386/pr67400-2.c: Likewise.
>>> * gcc.target/i386/pr67400-3.c: Likewise.
>>> * gcc.target/i386/pr67400-4.c: Likewise.
>>
>> Please get someone that knows this linker magic to review the
>> functionality first. Maybe Jakub can help?
>>
>
> Hi Jakub,
>
> Can you review this patch?
>
> Thanks.
PING.
--
H.J.
More information about the Gcc-patches
mailing list