aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2002-10-24 10:45:19 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2002-10-24 10:45:19 +0000
commit2ba08201d78ae1882da2fcee0e8ebb0d2a069152 (patch)
tree121c4d11fb307ce9d67886d719b2efe84feb1df8
parent5f13cfc6176adc33d11114023cc41b5e61e6b250 (diff)
downloadgcc-2ba08201d78ae1882da2fcee0e8ebb0d2a069152.zip
gcc-2ba08201d78ae1882da2fcee0e8ebb0d2a069152.tar.gz
gcc-2ba08201d78ae1882da2fcee0e8ebb0d2a069152.tar.bz2
h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it 64-bit safe.
* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it 64-bit safe. (TINY_CONSTANT_ADDRESS_P): Likewise. From-SVN: r58492
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/h8300/h8300.h22
2 files changed, 19 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 17bac5c..59b5457 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-10-24 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it
+ 64-bit safe.
+ (TINY_CONSTANT_ADDRESS_P): Likewise.
+
2002-10-24 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True.
diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h
index d69c6c2..38b7af7 100644
--- a/gcc/config/h8300/h8300.h
+++ b/gcc/config/h8300/h8300.h
@@ -825,11 +825,13 @@ struct cum_arg
/* Nonzero if X is a constant address suitable as an 8-bit absolute,
which is a special case of the 'R' operand. */
-#define EIGHTBIT_CONSTANT_ADDRESS_P(X) \
- ((GET_CODE (X) == CONST_INT) \
- && ((TARGET_H8300 && IN_RANGE (INTVAL (X) & 0xffff, 0xff00, 0xffff)) \
- || (TARGET_H8300H && IN_RANGE (INTVAL (X), 0xffff00, 0xffffff)) \
- || (TARGET_H8300S && IN_RANGE (INTVAL (X), 0xffffff00, 0xffffffff))))
+#define EIGHTBIT_CONSTANT_ADDRESS_P(X) \
+ ((GET_CODE (X) == CONST_INT) \
+ && ((TARGET_H8300 && IN_RANGE (INTVAL (X) & 0xffff, 0xff00, 0xffff)) \
+ || (TARGET_H8300H && IN_RANGE (INTVAL (X) & 0xffffffff, \
+ 0xffff00, 0xffffff)) \
+ || (TARGET_H8300S && IN_RANGE (INTVAL (X) & 0xffffffff, \
+ 0xffffff00, 0xffffffff))))
/* Nonzero if X is a constant address suitable as an 16-bit absolute
on H8/300H and H8S. */
@@ -837,11 +839,13 @@ struct cum_arg
#define TINY_CONSTANT_ADDRESS_P(X) \
((GET_CODE (X) == CONST_INT) \
&& ((TARGET_H8300H \
- && (IN_RANGE (INTVAL (X), 0x000000, 0x007fff) \
- || IN_RANGE (INTVAL (X), 0xff8000, 0xffffff))) \
+ && (IN_RANGE (INTVAL (X) & 0xffffffff, 0x000000, 0x007fff) \
+ || IN_RANGE (INTVAL (X) & 0xffffffff, 0xff8000, 0xffffff))) \
|| (TARGET_H8300S \
- && (IN_RANGE (INTVAL (X), 0x00000000, 0x00007fff) \
- || IN_RANGE (INTVAL (X), 0xffff8000, 0xffffffff)))))
+ && (IN_RANGE (INTVAL (X) & 0xffffffff, \
+ 0x00000000, 0x00007fff) \
+ || IN_RANGE (INTVAL (X) & 0xffffffff, \
+ 0xffff8000, 0xffffffff)))))
/* 'U' if valid for a bset destination;
i.e. a register, register indirect, or the eightbit memory region