aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-19 15:17:24 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-19 15:17:24 +0000
commite55c1a72572e6f47e430684562a5a74241073b24 (patch)
tree5a16dadb7e10f22c60af73c8d48a2353556e744a
parentf6c04af3b57e90235640550c817024b8cc3a7228 (diff)
* config/h8300/h8300.c (print_operand): Update the use ofra-merge-20021120
EIGHTBIT_CONSTANT_ADDRESS_P. (h8300_adjust_insn_length): Likewise. (h8300_eightbit_constant_address_p): Check if the given rtx is a variable with __attribute__((eightbit_data)). * config/h8300/h8300.h (OK_FOR_U): Update the use of EIGHTBIT_CONSTANT_ADDRESS_P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59263 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/h8300/h8300.c11
-rw-r--r--gcc/config/h8300/h8300.h2
3 files changed, 17 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9822bed18e7..a4f11ed0d80 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2002-11-19 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.c (print_operand): Update the use of
+ EIGHTBIT_CONSTANT_ADDRESS_P.
+ (h8300_adjust_insn_length): Likewise.
+ (h8300_eightbit_constant_address_p): Check if the given rtx is
+ a variable with __attribute__((eightbit_data)).
+ * config/h8300/h8300.h (OK_FOR_U): Update the use of
+ EIGHTBIT_CONSTANT_ADDRESS_P.
+
2002-11-19 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
* doc/contrib.texi (Contributors): Add self as second contact in
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 003fafe5b1b..c5bfb137fe4 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -1434,9 +1434,7 @@ print_operand (file, x, code)
case MEM:
{
rtx addr = XEXP (x, 0);
- int eightbit_ok = ((GET_CODE (addr) == SYMBOL_REF
- && SYMBOL_REF_FLAG (addr))
- || EIGHTBIT_CONSTANT_ADDRESS_P (addr));
+ int eightbit_ok = EIGHTBIT_CONSTANT_ADDRESS_P (addr);
int tiny_ok = ((GET_CODE (addr) == SYMBOL_REF
&& TINY_DATA_NAME_P (XSTR (addr, 0)))
|| TINY_CONSTANT_ADDRESS_P (addr));
@@ -3721,8 +3719,7 @@ h8300_adjust_insn_length (insn, length)
/* @aa:8 is 2 bytes shorter than the longest. */
if (GET_MODE (SET_SRC (pat)) == QImode
- && ((GET_CODE (addr) == SYMBOL_REF && SYMBOL_REF_FLAG (addr))
- || EIGHTBIT_CONSTANT_ADDRESS_P (addr)))
+ && EIGHTBIT_CONSTANT_ADDRESS_P (addr))
return -2;
}
else
@@ -3875,6 +3872,10 @@ h8300_eightbit_constant_address_p (x)
unsigned HOST_WIDE_INT addr;
+ /* We accept symbols declared with eightbit_data. */
+ if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_FLAG (x))
+ return 1;
+
if (GET_CODE (x) != CONST_INT)
return 0;
diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h
index 075ddb8bcb0..79898aab4e9 100644
--- a/gcc/config/h8300/h8300.h
+++ b/gcc/config/h8300/h8300.h
@@ -863,7 +863,7 @@ struct cum_arg
|| (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == REG \
&& REG_OK_FOR_BASE_P (XEXP (OP, 0))) \
|| (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == SYMBOL_REF \
- && (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (OP, 0)))) \
+ && TARGET_H8300S) \
|| ((GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == CONST \
&& GET_CODE (XEXP (XEXP (OP, 0), 0)) == PLUS \
&& GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 0)) == SYMBOL_REF \