Marcus Shawcroft writes: > On 26 June 2015 at 10:32, Jiong Wang <jiong.w...@arm.com> wrote: >> >> This patch respin https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01804.html. >> >> A new symbol classification "SYMBOL_SMALL_GOT_28K" added to represent symbol >> which needs go through GOT table and it's under -fpic/-mcmodel-small. the >> "_28K" >> suffix can reflect the symbol's attribute better, and by introducing this new >> symbol type, we could avoid checking aarch64_cmodel at some extent >> though still needs the check somewhere. >> >> All other code logic not changed. >> >> OK for trunk? >> >> Thanks. >> >> 2015-06-26 Jiong. Wang <jiong.w...@arm.com> >> >> gcc/ >> * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type >> SYMBOL_SMALL_GOT_28K. >> * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT >> relocation modifiers. >> (unspec): New enum "UNSPEC_GOTMALLPIC28K. >> (ldr_got_small_28k_<mode>): New. >> (ldr_got_small_28k_sidi): New. >> * config/aarch64/iterators.md (got_modifier): New mode iterator. >> * config/aarch64/aarch64-otps.h (aarch64_code_model): New model. >> * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support >> SYMBOL_SMALL_GOT_28K. >> (aarch64_rtx_costs): Add costs for new instruction sequences. >> (initialize_aarch64_code_model): Initialize new model. >> (aarch64_classify_symbol): Recognize new model and new symbol >> classification. >> (aarch64_asm_preferred_eh_data_format): Support new model. >> (aarch64_load_symref_appropriately): Generate new instruction >> sequences for -fpic. >> (TARGET_USE_PSEUDO_PIC_REG): New definition. >> (aarch64_use_pseudo_pic_reg): New function. >> >> gcc/testsuite/ >> * gcc.target/aarch64/pic-small.c: New testcase. > > > OK, Thanks Jiong. Could you prepare a NEWS entry for this change? > Cheers > /Marcus
How about this one? 2015-06-26 Jiong Wang <jiong.w...@arm.com> wwwdocs/ * htdocs/gcc-6/changes.html (AArch64): Document -fpic for small model.
Index: gcc-6/changes.html =================================================================== RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v retrieving revision 1.12 diff -u -r1.12 changes.html --- gcc-6/changes.html 16 Jun 2015 08:48:02 -0000 1.12 +++ gcc-6/changes.html 26 Jun 2015 13:30:05 -0000 @@ -90,6 +90,15 @@ If GCC is unable to detect the host CPU these options have no effect. </li> </ul> + <ul> + <li> + <code>-fpic</code> is now supported on AArch64 for small memory + model. Compared with <code>-fPIC</code>, <code>-fpic</code> + will guide GCC to generate more efficient position independent + instruction sequences when accessing global objects and + 28KiB/15KiB global offset table size supported under ILP64/32. + </li> + </ul> <!-- <h3 id="arm">ARM</h3> --> <!-- <h3 id="avr">AVR</h3> -->