avr.c (avr_legitimize_address): Force constant addresses outside [0,0xc0] into a...
authorGeorg-Johann Lay <avr@gjlay.de>
Wed, 20 Jul 2016 14:46:57 +0000 (14:46 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Wed, 20 Jul 2016 14:46:57 +0000 (14:46 +0000)
commitdbe9dfdd501cea13034c7b809330e82a54883b1e
tree340de8a19b1645bf355f6f2a045baa9284cc9bc4
parentc25e1d82bf149151af72a8a38db2160b1ca46002
avr.c (avr_legitimize_address): Force constant addresses outside [0,0xc0] into a register.

gcc/
* gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
constant addresses outside [0,0xc0] into a register.
(avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn.  And handle
cases where the base address register is unused after.
(avr_out_movhi_r_mr_reg_disp_tiny): Same.
(avr_out_movhi_mr_r_reg_disp_tiny): Same.
(avr_out_store_psi_reg_disp_tiny): Same.

gcc/testsuite/
* gcc.target/avr/torture/get-mem.c: New test.
* gcc.target/avr/torture/set-mem.c: New test.

From-SVN: r238528
gcc/ChangeLog
gcc/config/avr/avr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/avr/torture/get-mem.c [new file with mode: 0644]
gcc/testsuite/gcc.target/avr/torture/set-mem.c [new file with mode: 0644]