From 4d674787b657c0dec76aab31b0696fb1aad534d5 Mon Sep 17 00:00:00 2001 From: kazu Date: Thu, 24 Oct 2002 10:45:19 +0000 Subject: [PATCH] * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it 64-bit safe. (TINY_CONSTANT_ADDRESS_P): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58492 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/h8300/h8300.h | 22 +++++++++++++--------- 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 + + * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it + 64-bit safe. + (TINY_CONSTANT_ADDRESS_P): Likewise. + 2002-10-24 Richard Henderson * 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 -- 2.7.4