aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/h8300/h8300.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/h8300/h8300.c')
-rw-r--r--gcc/config/h8300/h8300.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 003fafe..c5bfb13 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;