summaryrefslogtreecommitdiff
path: root/gcc/config/crx/crx.h
diff options
context:
space:
mode:
authorPaul Woegerer <woepaul@gcc.gnu.org>2005-08-19 07:47:34 +0000
committerPaul Woegerer <woepaul@gcc.gnu.org>2005-08-19 07:47:34 +0000
commite95cfa3ba51abdc13086130104f0aa528b3fc87f (patch)
treec6db8c7cbae2edb4c37db7bdcd132d6ac8fc60af /gcc/config/crx/crx.h
parent1581a9a177e82ba05a1769eebcf55a038569d6d3 (diff)
downloadgcc-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.h25
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) \
{ \