mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-28 05:30:23 +08:00
cris.h (Node: Register Classes): Remove obsoleted comment regarding defined register classes.
* config/cris/cris.h (Node: Register Classes): Remove obsoleted comment regarding defined register classes. (LEGITIMIZE_RELOAD_ADDRESS): Do not define. From-SVN: r99692
This commit is contained in:
parent
c80a9eb50f
commit
8238307080
@ -1,3 +1,9 @@
|
|||||||
|
2005-05-14 Hans-Peter Nilsson <hp@axis.com>
|
||||||
|
|
||||||
|
* config/cris/cris.h (Node: Register Classes): Remove obsoleted
|
||||||
|
comment regarding defined register classes.
|
||||||
|
(LEGITIMIZE_RELOAD_ADDRESS): Do not define.
|
||||||
|
|
||||||
2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
|
2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
|
||||||
|
|
||||||
* tree-optimize.c (init_tree_optimization_passes): Move
|
* tree-optimize.c (init_tree_optimization_passes): Move
|
||||||
|
@ -502,11 +502,6 @@ extern int target_flags;
|
|||||||
|
|
||||||
/* Node: Register Classes */
|
/* Node: Register Classes */
|
||||||
|
|
||||||
/* CRIS has only one kind of registers, so NO_REGS and ALL_REGS
|
|
||||||
are the only classes. FIXME: It actually makes sense to have another
|
|
||||||
class for special registers, and yet another class for the
|
|
||||||
multiply-overflow register in v10; then a class for the return
|
|
||||||
register also makes sense. */
|
|
||||||
enum reg_class
|
enum reg_class
|
||||||
{
|
{
|
||||||
NO_REGS,
|
NO_REGS,
|
||||||
@ -1071,70 +1066,6 @@ struct cum_args {int regs;};
|
|||||||
FIXME: Check and adjust for gcc-2.9x. */
|
FIXME: Check and adjust for gcc-2.9x. */
|
||||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) {}
|
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) {}
|
||||||
|
|
||||||
/* Kludge to solve Axis-990219: Work around imperfection in
|
|
||||||
reload_load_address1:
|
|
||||||
(plus (sign_extend (mem:qi (reg))) (reg))
|
|
||||||
should be reloaded as (plus (reg) (reg)), not
|
|
||||||
(plus (sign_extend (reg)) (reg)).
|
|
||||||
There are no checks that reload_load_address_1 "reloads"
|
|
||||||
addresses correctly, so invalidness is not caught or
|
|
||||||
corrected.
|
|
||||||
When the right thing happens in reload, the kludge can
|
|
||||||
be removed; still not as of 2003-02-27. */
|
|
||||||
|
|
||||||
#define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, IND_LEVELS, WIN) \
|
|
||||||
do \
|
|
||||||
{ \
|
|
||||||
if (GET_CODE (X) == PLUS \
|
|
||||||
&& REG_P (XEXP (X, 1)) \
|
|
||||||
&& GET_CODE (XEXP (X, 0)) == SIGN_EXTEND \
|
|
||||||
&& GET_CODE (XEXP (XEXP (X, 0), 0)) == MEM \
|
|
||||||
&& (GET_MODE (XEXP (XEXP (X, 0), 0)) == HImode \
|
|
||||||
|| GET_MODE (XEXP (XEXP (X, 0), 0)) == QImode) \
|
|
||||||
&& (REG_P (XEXP (XEXP (XEXP (X, 0), 0), 0)) \
|
|
||||||
|| (GET_CODE (XEXP (XEXP (XEXP (X, 0), 0), 0)) \
|
|
||||||
== POST_INC \
|
|
||||||
&& REG_P (XEXP (XEXP (XEXP (XEXP (X, 0), 0), 0), \
|
|
||||||
0))))) \
|
|
||||||
{ \
|
|
||||||
int something_reloaded = 0; \
|
|
||||||
\
|
|
||||||
if (REGNO (XEXP (X, 1)) >= FIRST_PSEUDO_REGISTER) \
|
|
||||||
{ \
|
|
||||||
/* Second reg is pseudo, reload it. */ \
|
|
||||||
push_reload (XEXP (X, 1), NULL_RTX, &XEXP (X, 1), \
|
|
||||||
NULL, \
|
|
||||||
GENERAL_REGS, GET_MODE (X), VOIDmode, 0, 0, \
|
|
||||||
OPNUM, TYPE); \
|
|
||||||
something_reloaded = 1; \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
if (REG_P (XEXP (XEXP (XEXP (X, 0), 0), 0)) \
|
|
||||||
&& (REGNO (XEXP (XEXP (XEXP (X, 0), 0), 0)) \
|
|
||||||
>= FIRST_PSEUDO_REGISTER)) \
|
|
||||||
{ \
|
|
||||||
/* First one is a pseudo - reload that. */ \
|
|
||||||
push_reload (XEXP (XEXP (XEXP (X, 0), 0), 0), NULL_RTX, \
|
|
||||||
&XEXP (XEXP (XEXP (X, 0), 0), 0), NULL, \
|
|
||||||
GENERAL_REGS, \
|
|
||||||
GET_MODE (X), VOIDmode, 0, 0, OPNUM, TYPE); \
|
|
||||||
something_reloaded = 1; \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
if (! something_reloaded \
|
|
||||||
|| (GET_CODE (XEXP (XEXP (X, 0), 0)) == POST_INC \
|
|
||||||
&& (REGNO (XEXP (XEXP (XEXP (X, 0), 0), 0)) \
|
|
||||||
>= FIRST_PSEUDO_REGISTER))) \
|
|
||||||
/* Reload the sign_extend. Happens if neither reg is a \
|
|
||||||
pseudo, or the first one was inside post_increment. */ \
|
|
||||||
push_reload (XEXP (X, 0), NULL_RTX, &XEXP (X, 0), NULL, \
|
|
||||||
GENERAL_REGS, GET_MODE (X), VOIDmode, 0, 0, \
|
|
||||||
OPNUM, TYPE); \
|
|
||||||
goto WIN; \
|
|
||||||
} \
|
|
||||||
} \
|
|
||||||
while (0)
|
|
||||||
|
|
||||||
/* In CRIS, only the postincrement address mode depends thus,
|
/* In CRIS, only the postincrement address mode depends thus,
|
||||||
since the increment depends on the size of the operand. */
|
since the increment depends on the size of the operand. */
|
||||||
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \
|
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user