defaults.h (LEGITIMIZE_ADDRESS): Provide a default definition.
* defaults.h (LEGITIMIZE_ADDRESS): Provide a default definition. * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h, config/ia64/ia64.h, config/mcore/mcore.h, config/mmix/mmix.h, config/ns32k/ns32k.h, config/pdp11/pdp11.h, config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove. * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default definition. From-SVN: r79066
This commit is contained in:
parent
cd2f1c7a62
commit
3e759edad2
|
@ -1,3 +1,16 @@
|
|||
2004-03-07 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* defaults.h (LEGITIMIZE_ADDRESS): Provide a default
|
||||
definition.
|
||||
* config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
|
||||
config/h8300/h8300.h, config/ia64/ia64.h,
|
||||
config/mcore/mcore.h, config/mmix/mmix.h,
|
||||
config/ns32k/ns32k.h, config/pdp11/pdp11.h,
|
||||
config/stormy16/stormy16.h, config/v850/v850.h,
|
||||
config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
|
||||
* doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
|
||||
definition.
|
||||
|
||||
2004-03-07 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
|
||||
|
|
|
@ -906,21 +906,6 @@ do { \
|
|||
goto ADDR; \
|
||||
}
|
||||
|
||||
/* Try machine-dependent ways of modifying an illegitimate address
|
||||
to be legitimate. If we find one, return the new, valid address.
|
||||
This macro is used in only one place: `memory_address' in explow.c.
|
||||
|
||||
OLDX is the address as it was before break_out_memory_refs was called.
|
||||
In some cases it is useful to look at this to decide what needs to be done.
|
||||
|
||||
MODE and WIN are passed so that this macro can use
|
||||
GO_IF_LEGITIMATE_ADDRESS.
|
||||
|
||||
It is always safe for this macro to do nothing. It exists to recognize
|
||||
opportunities to optimize the output. */
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
|
||||
|
||||
/* Go to LABEL if ADDR (a legitimate address expression)
|
||||
has an effect that depends on the machine mode it is used for. */
|
||||
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \
|
||||
|
|
|
@ -988,27 +988,6 @@ do \
|
|||
will reload one or both registers only if neither labeling works. */
|
||||
#define REG_OK_FOR_INDEX_P(X) REG_OK_FOR_BASE_P (X)
|
||||
|
||||
/* A C compound statement that attempts to replace X with a valid memory
|
||||
address for an operand of mode MODE. WIN will be a C statement label
|
||||
elsewhere in the code; the macro definition may use
|
||||
|
||||
GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN);
|
||||
|
||||
to avoid further processing if the address has become legitimate.
|
||||
|
||||
X will always be the result of a call to `break_out_memory_refs', and OLDX
|
||||
will be the operand that was given to that function to produce X.
|
||||
|
||||
The code generated by this macro should not alter the substructure of X. If
|
||||
it transforms X into a more legitimate form, it should assign X (which will
|
||||
always be a C variable) a new value.
|
||||
|
||||
It is not necessary for this macro to come up with a legitimate address.
|
||||
The compiler has standard ways of doing so in all cases. In fact, it is
|
||||
safe for this macro to do nothing. But often a machine-dependent strategy
|
||||
can generate better code. */
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
|
||||
|
||||
/* A C statement or compound statement with a conditional `goto LABEL;'
|
||||
executed if memory address X (an RTX) can have different meanings depending
|
||||
on the machine mode of the memory reference it is used for or if the address
|
||||
|
|
|
@ -2410,8 +2410,6 @@ __asm__("\n" \
|
|||
will reload one or both registers only if neither labeling works. */
|
||||
#define REG_OK_FOR_INDEX_P(X) REG_OK_FOR_BASE_P (X)
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
|
||||
|
||||
#define FIND_BASE_TERM frv_find_base_term
|
||||
|
||||
/* A C statement or compound statement with a conditional `goto LABEL;'
|
||||
|
|
|
@ -886,23 +886,6 @@ struct cum_arg
|
|||
while (0)
|
||||
#endif
|
||||
|
||||
/* Try machine-dependent ways of modifying an illegitimate address
|
||||
to be legitimate. If we find one, return the new, valid address.
|
||||
This macro is used in only one place: `memory_address' in explow.c.
|
||||
|
||||
OLDX is the address as it was before break_out_memory_refs was called.
|
||||
In some cases it is useful to look at this to decide what needs to be done.
|
||||
|
||||
MODE and WIN are passed so that this macro can use
|
||||
GO_IF_LEGITIMATE_ADDRESS.
|
||||
|
||||
It is always safe for this macro to do nothing. It exists to recognize
|
||||
opportunities to optimize the output.
|
||||
|
||||
For the H8/300, don't do anything. */
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) {}
|
||||
|
||||
/* Go to LABEL if ADDR (a legitimate address expression)
|
||||
has an effect that depends on the machine mode it is used for.
|
||||
|
||||
|
|
|
@ -1630,13 +1630,6 @@ do { \
|
|||
|
||||
#define REG_OK_FOR_INDEX_P(X) REG_OK_FOR_BASE_P (X)
|
||||
|
||||
/* A C compound statement that attempts to replace X with a valid memory
|
||||
address for an operand of mode MODE.
|
||||
|
||||
This must be present, but there is nothing useful to be done here. */
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
|
||||
|
||||
/* A C statement or compound statement with a conditional `goto LABEL;'
|
||||
executed if memory address X (an RTX) can have different meanings depending
|
||||
on the machine mode of the memory reference it is used for or if the address
|
||||
|
|
|
@ -806,7 +806,6 @@ extern const enum reg_class reg_class_from_letter[];
|
|||
On the MCore, allow anything but a double. */
|
||||
#define LEGITIMATE_CONSTANT_P(X) (GET_CODE(X) != CONST_DOUBLE)
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
|
||||
/* The macros REG_OK_FOR..._P assume that the arg is a REG rtx
|
||||
and check its validity for a certain class.
|
||||
We have two alternate definitions for each of them.
|
||||
|
|
|
@ -835,8 +835,6 @@ typedef struct { int regs; int lib; } CUMULATIVE_ARGS;
|
|||
|
||||
#define REG_OK_FOR_INDEX_P(X) REG_OK_FOR_BASE_P (X)
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
|
||||
|
||||
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)
|
||||
|
||||
#define LEGITIMATE_CONSTANT_P(X) \
|
||||
|
|
|
@ -1057,23 +1057,6 @@ __transfer_from_trampoline () \
|
|||
} \
|
||||
}
|
||||
|
||||
/* Try machine-dependent ways of modifying an illegitimate address
|
||||
to be legitimate. If we find one, return the new, valid address.
|
||||
This macro is used in only one place: `memory_address' in explow.c.
|
||||
|
||||
OLDX is the address as it was before break_out_memory_refs was called.
|
||||
In some cases it is useful to look at this to decide what needs to be done.
|
||||
|
||||
MODE and WIN are passed so that this macro can use
|
||||
GO_IF_LEGITIMATE_ADDRESS.
|
||||
|
||||
It is always safe for this macro to do nothing. It exists to recognize
|
||||
opportunities to optimize the output.
|
||||
|
||||
For the ns32k, we do nothing */
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) {}
|
||||
|
||||
/* Nonzero if the constant value X is a legitimate general operand
|
||||
when generating PIC code. It is given that flag_pic is on and
|
||||
that X satisfies CONSTANT_P or is a CONST_DOUBLE. */
|
||||
|
|
|
@ -846,22 +846,6 @@ extern int may_call_alloca;
|
|||
}
|
||||
|
||||
|
||||
/* Try machine-dependent ways of modifying an illegitimate address
|
||||
to be legitimate. If we find one, return the new, valid address.
|
||||
This macro is used in only one place: `memory_address' in explow.c.
|
||||
|
||||
OLDX is the address as it was before break_out_memory_refs was called.
|
||||
In some cases it is useful to look at this to decide what needs to be done.
|
||||
|
||||
MODE and WIN are passed so that this macro can use
|
||||
GO_IF_LEGITIMATE_ADDRESS.
|
||||
|
||||
It is always safe for this macro to do nothing. It exists to recognize
|
||||
opportunities to optimize the output. */
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) {}
|
||||
|
||||
|
||||
/* Go to LABEL if ADDR (a legitimate address expression)
|
||||
has an effect that depends on the machine mode it is used for.
|
||||
On the pdp this is for predec/postinc */
|
||||
|
|
|
@ -594,8 +594,6 @@ do { \
|
|||
|
||||
#define REG_OK_FOR_INDEX_P(X) REG_OK_FOR_BASE_P (X)
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
|
||||
|
||||
/* On this chip, this is true if the address is valid with an offset
|
||||
of 0 but not of 6, because in that case it cannot be used as an
|
||||
address for DImode or DFmode, or if the address is a post-increment
|
||||
|
|
|
@ -976,21 +976,6 @@ do { \
|
|||
} while (0)
|
||||
|
||||
|
||||
/* Try machine-dependent ways of modifying an illegitimate address
|
||||
to be legitimate. If we find one, return the new, valid address.
|
||||
This macro is used in only one place: `memory_address' in explow.c.
|
||||
|
||||
OLDX is the address as it was before break_out_memory_refs was called.
|
||||
In some cases it is useful to look at this to decide what needs to be done.
|
||||
|
||||
MODE and WIN are passed so that this macro can use
|
||||
GO_IF_LEGITIMATE_ADDRESS.
|
||||
|
||||
It is always safe for this macro to do nothing. It exists to recognize
|
||||
opportunities to optimize the output. */
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) {}
|
||||
|
||||
/* Go to LABEL if ADDR (a legitimate address expression)
|
||||
has an effect that depends on the machine mode it is used for. */
|
||||
|
||||
|
|
|
@ -758,23 +758,6 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
|
|||
goto ADDR; \
|
||||
GO_IF_REG_PLUS_INDEX (XEXP (X, 0), MODE, ADDR); } } }
|
||||
|
||||
/* Try machine-dependent ways of modifying an illegitimate address
|
||||
to be legitimate. If we find one, return the new, valid address.
|
||||
This macro is used in only one place: `memory_address' in explow.c.
|
||||
|
||||
OLDX is the address as it was before break_out_memory_refs was called.
|
||||
In some cases it is useful to look at this to decide what needs to be done.
|
||||
|
||||
MODE and WIN are passed so that this macro can use
|
||||
GO_IF_LEGITIMATE_ADDRESS.
|
||||
|
||||
It is always safe for this macro to do nothing. It exists to recognize
|
||||
opportunities to optimize the output.
|
||||
|
||||
For the VAX, nothing needs to be done. */
|
||||
|
||||
#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) {}
|
||||
|
||||
/* Go to LABEL if ADDR (a legitimate address expression)
|
||||
has an effect that depends on the machine mode it is used for.
|
||||
On the VAX, the predecrement and postincrement address depend thus
|
||||
|
|
|
@ -703,4 +703,8 @@ You Lose! You must define PREFERRED_DEBUGGING_TYPE!
|
|||
#define SHIFT_COUNT_TRUNCATED 0
|
||||
#endif
|
||||
|
||||
#ifndef LEGITIMIZE_ADDRESS
|
||||
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
|
||||
#endif
|
||||
|
||||
#endif /* ! GCC_DEFAULTS_H */
|
||||
|
|
|
@ -4914,7 +4914,7 @@ should assign @var{x} (which will always be a C variable) a new value.
|
|||
|
||||
It is not necessary for this macro to come up with a legitimate
|
||||
address. The compiler has standard ways of doing so in all cases. In
|
||||
fact, it is safe for this macro to do nothing. But often a
|
||||
fact, it is safe to omit this macro. But often a
|
||||
machine-dependent strategy can generate better code.
|
||||
@end defmac
|
||||
|
||||
|
|
Loading…
Reference in New Issue