On 27/10/15 13:06, H.J. Lu wrote:
On Tue, Oct 27, 2015 at 5:52 AM, Jiong Wang <jiong.w...@foss.arm.com> wrote:

On 27/10/15 11:37, H.J. Lu wrote:
On Tue, Oct 27, 2015 at 4:20 AM, Bernd Schmidt <bschm...@redhat.com>
wrote:
On 10/19/2015 09:55 PM, H.J. Lu wrote:
           * calls.c (prepare_call_address): Don't handle -fno-plt here.

Is any other target using -fno-plt? If not, and if that's really just a
aarch64 is the only target which checks -fno-plt from commit log below.
I CCed the code author.  aarch64 may suffer from the same issue.

H.J,

   Thanks for the info.

   After a quick reading of the PR at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67215,
   I found the problem description is very x86 specific, I still don't
understand what's
   wrong if we do the following transformation when -fno-plt specified on
x86-74, thus I
   am not sure whether there is problem exist on aarch64. Can you please give
more explanation?

   call    proc2@PLT

   ||
   V

   movq    proc2@GOTPCREL(%rip), %rax
   call    *%rax
call *proc2@GOTPCREL(%rip)

doesn't use a register and saves one instruction.

OK, then it's fairly x86-64 specific optimization, because we can't do "call *mem" in
aarch64 and some other targets.

Reply via email to