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.