diff options
author | Paul Woegerer <woepaul@gcc.gnu.org> | 2005-08-19 07:47:34 +0000 |
---|---|---|
committer | Paul Woegerer <woepaul@gcc.gnu.org> | 2005-08-19 07:47:34 +0000 |
commit | e95cfa3ba51abdc13086130104f0aa528b3fc87f (patch) | |
tree | c6db8c7cbae2edb4c37db7bdcd132d6ac8fc60af /gcc/config/crx/crx.h | |
parent | 1581a9a177e82ba05a1769eebcf55a038569d6d3 (diff) | |
download | gcc-e95cfa3ba51abdc13086130104f0aa528b3fc87f.tar.gz |
crx.c: Implemented crx_decompose_address (like in the i386 port) so that...
* config/crx/crx.c: Implemented crx_decompose_address (like in the
i386 port) so that crx_legitimate_address_p, crx_address_cost
and crx_print_operand_address are using the same code for adress
handling. Using symbolic displacements now gets rejected since
the CRX register relative adressing mode can't handle unsigned
32-bit values as displacements.
* config/crx/crx.h: Simplified definitions for REG_OK_FOR_BASE_P,
removed redundant parenthesis and obsolete macros.
* config/crx/crx.opt: Added a new switch for debugging of address
handling.
* config/crx/crx-protos.h: Added new declarations for above.
From-SVN: r103269
Diffstat (limited to 'gcc/config/crx/crx.h')
-rw-r--r-- | gcc/config/crx/crx.h | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/gcc/config/crx/crx.h b/gcc/config/crx/crx.h index b1575bfb534..9277a28d891 100644 --- a/gcc/config/crx/crx.h +++ b/gcc/config/crx/crx.h @@ -223,7 +223,6 @@ enum reg_class || (reg_renumber && (unsigned)reg_renumber[REGNO] < 16)) #define REGNO_OK_FOR_INDEX_P(REGNO) REGNO_OK_FOR_BASE_P(REGNO) -#define REGNO_OK_FOR_INDEXED_BASE_P(REGNO) REGNO_OK_FOR_BASE_P(REGNO) #define PREFERRED_RELOAD_CLASS(X,CLASS) CLASS @@ -329,7 +328,7 @@ struct cumulative_args #define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ crx_function_arg_advance(&(CUM), (MODE), (TYPE), (NAMED)) -#define FUNCTION_ARG_REGNO_P(REGNO) crx_function_arg_regno_p((REGNO)) +#define FUNCTION_ARG_REGNO_P(REGNO) crx_function_arg_regno_p(REGNO) /*****************************************************************************/ /* RETURNING FUNCTION VALUE */ @@ -384,22 +383,12 @@ struct cumulative_args #define HAVE_POST_MODIFY_DISP 1 #define HAVE_POST_MODIFY_REG 0 -#define STRICT_REG_OK_FOR_BASE_P(X) REGNO_OK_FOR_BASE_P (REGNO (X)) -#define STRICT_REG_OK_FOR_INDEX_P(X) REGNO_OK_FOR_INDEX_P(REGNO(X)) -#define STRICT_REG_OK_FOR_INDEXED_BASE_P(X) REGNO_OK_FOR_INDEXED_BASE_P(REGNO(X)) - -#define NONSTRICT_REG_OK_FOR_BASE_P(X) 1 -#define NONSTRICT_REG_OK_FOR_INDEX_P(X) 1 -#define NONSTRICT_REG_OK_FOR_INDEXED_BASE_P(X) 1 - #ifdef REG_OK_STRICT -#define REG_OK_FOR_BASE_P(X) STRICT_REG_OK_FOR_BASE_P(X) -#define REG_OK_FOR_INDEX_P(X) STRICT_REG_OK_FOR_INDEX_P(X) -#define REG_OK_FOR_INDEXED_BASE_P(X) STRICT_REG_OK_FOR_INDEXED_BASE_P(X) +#define REG_OK_FOR_BASE_P(X) REGNO_OK_FOR_BASE_P (REGNO (X)) +#define REG_OK_FOR_INDEX_P(X) REGNO_OK_FOR_INDEX_P (REGNO (X)) #else -#define REG_OK_FOR_BASE_P(X) NONSTRICT_REG_OK_FOR_BASE_P(X) -#define REG_OK_FOR_INDEX_P(X) NONSTRICT_REG_OK_FOR_INDEX_P(X) -#define REG_OK_FOR_INDEXED_BASE_P(X) NONSTRICT_REG_OK_FOR_INDEXED_BASE_P(X) +#define REG_OK_FOR_BASE_P(X) 1 +#define REG_OK_FOR_INDEX_P(X) 1 #endif /* REG_OK_STRICT */ #ifdef REG_OK_STRICT @@ -414,9 +403,7 @@ struct cumulative_args if (crx_legitimate_address_p (MODE, X, 0)) \ goto LABEL; \ } -#endif - -#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) {} +#endif /* REG_OK_STRICT */ #define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \ { \ |