constraints.md ("S"): Match r0rel_constant_p too.
authorSandra Loosemore <sandra@codesourcery.com>
Thu, 26 Oct 2017 20:52:15 +0000 (16:52 -0400)
committerSandra Loosemore <sandra@gcc.gnu.org>
Thu, 26 Oct 2017 20:52:15 +0000 (16:52 -0400)
commit1cef1159dbf7af419d9cd2c75fadcd1eb2fa0ab3
treed2726881bdf0330440f81ea13446ea52d87de4b3
parentde10fca02a806c8c323041c5e904abaaef510fc0
constraints.md ("S"): Match r0rel_constant_p too.

2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
* config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
* config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
(nios2_option_overide): Initialize it.  Don't allow R0-relative
addressing with PIC.
(nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
(nios2_symbolic_constant_p): Likewise.
(nios2_legitimate_address_p): Likewise.
(nios2_r0rel_section_name_p): New.
(nios2_symbol_ref_in_r0rel_data_p): New.
(nios2_emit_move_sequence): Handle r0rel_constant_p.
(r0rel_constant_p): New.
(nios2_print_operand_address): Handle r0rel_constant_p.
(nios2_cdx_narrow_form_p): Likewise.
* config/nios2/nios2.opt (mr0rel-sec=): New option.
* doc/invoke.texi (Option Summary): Add -mr0rel-sec.
(Nios II Options): Document -mr0rel-sec.

gcc/testsuite/
* gcc.target/nios2/gpopt-r0rel-sec.c: New.

From-SVN: r254124
gcc/ChangeLog
gcc/config/nios2/constraints.md
gcc/config/nios2/nios2-protos.h
gcc/config/nios2/nios2.c
gcc/config/nios2/nios2.opt
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/nios2/gpopt-r0rel-sec.c [new file with mode: 0644]