On Tue, Jul 21, 2015 at 01:42:35PM +0100, Jiong Wang wrote:
> 
> Jiong Wang writes:
> 
> > Alexander Monakov writes:
> >
> >>> Attachment is the patch which repair -fno-plt support for AArch64.
> >>> 
> >>> aarch64_is_noplt_call_p will only be true if:
> >>> 
> >>>   * gcc is generating position independent code.
> >>>   * function symbol has declaration.
> >>>   * either -fno-plt or "(no_plt)" attribute specified.
> >>>   * it's a external function.
> >>>   
> >>> OK for trunk?
> >>> 
> >>> 2015-07-16  Jiong Wang  <jiong.w...@arm.com>
> >>> 
> >>> gcc/
> >>>   * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
> >>>   declaration.
> >>>   * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
> >>>   * config/aarch64/aarch64.md (call_value_symbol): Check noplt
> >>>   scenarios.
> >>>   (call_symbol): Ditto.
> >>
> >> Shouldn't the same treatment be applied to tailcall 
> >> (sibcall_{,value_}symbol)
> >> patterns?  I guess it could be done as a followup patch, but would be nice 
> >> if
> >> that isn't forgotten.
> >
> > Thanks for the remaind, that will be done as a followup patch.
> 
> Patch attached.
> 
> Added one more restriction to "Usf" constraint which is used by sibcall
> pattern when matching direct call.
> 
> given example like
> 
> void
> cal_novalue (int a)
> {
>   dec (a);
> }
> 
> when -fpic -fno-plt specified we now generate:
> 
> cal:
>         adrp    x1, :got:dec
>         ldr     x1, [x1, #:got_lo12:dec]
>         br      x1
> 
> instead of:
> 
> cal:
>         b dec

OK.

Thanks,
James

> 2015-07-20  Jiong Wang  <jiong.w...@arm.com>
> 
> gcc/
>   * config/aarch64/constraints.md (Usf): Add the test of
>   aarch64_is_noplt_call_p.
> 
> gcc/testsuite/
>   * gcc.target/aarch64/noplt_3.c: New test.

Reply via email to