Commit f4df5771 by Andy Hutchinson Committed by Andy Hutchinson

re PR target/36336 (ICE push_reload - psuedo reg_equiv_constant)

PR target/36336
* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for reg_equiv_constant.

From-SVN: r136818
parent 147fc44b
2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
PR target/36336
* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
reg_equiv_constant.
2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com> 2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
* config/mips/loongson2ef.md: New file. * config/mips/loongson2ef.md: New file.
......
...@@ -437,6 +437,11 @@ extern int avr_reg_order[]; ...@@ -437,6 +437,11 @@ extern int avr_reg_order[];
} }
#define XEXP_(X,Y) (X) #define XEXP_(X,Y) (X)
/* LEGITIMIZE_RELOAD_ADDRESS will allow register R26/27 to be used, where it
is no worse than normal base pointers R28/29 and R30/31. For example:
If base offset is greater than 63 bytes or for R++ or --R addressing. */
#define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, IND_LEVELS, WIN) \ #define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, IND_LEVELS, WIN) \
do { \ do { \
if (1&&(GET_CODE (X) == POST_INC || GET_CODE (X) == PRE_DEC)) \ if (1&&(GET_CODE (X) == POST_INC || GET_CODE (X) == PRE_DEC)) \
...@@ -448,6 +453,7 @@ do { \ ...@@ -448,6 +453,7 @@ do { \
} \ } \
if (GET_CODE (X) == PLUS \ if (GET_CODE (X) == PLUS \
&& REG_P (XEXP (X, 0)) \ && REG_P (XEXP (X, 0)) \
&& reg_equiv_constant[REGNO (XEXP (X, 0))] == 0 \
&& GET_CODE (XEXP (X, 1)) == CONST_INT \ && GET_CODE (XEXP (X, 1)) == CONST_INT \
&& INTVAL (XEXP (X, 1)) >= 1) \ && INTVAL (XEXP (X, 1)) >= 1) \
{ \ { \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment