From 0d80d12b85f5f973157afe4add348256092bc065 Mon Sep 17 00:00:00 2001 From: law Date: Thu, 11 Jul 1996 16:38:31 +0000 Subject: [PATCH] * h8300/h8300.h (OK_FOR_U): If generating H8/S code, accept SYMBOL_REF and SYMBOL_REF + CONST_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12427 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/config/h8300/h8300.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h index 76efc06ec72..9d4288b5b90 100644 --- a/gcc/config/h8300/h8300.h +++ b/gcc/config/h8300/h8300.h @@ -790,18 +790,20 @@ struct rtx_def *function_arg(); /* Extra constraints - 'U' if for an operand valid for a bset destination; i.e. a register, register indirect, or the - eightbit memory region (a SYMBOL_REF with an SYMBOL_REF_FLAG set). */ + eightbit memory region (a SYMBOL_REF with an SYMBOL_REF_FLAG set). + + On the H8/S 'U' can also be a 16bit or 32bit absolute. */ #define OK_FOR_U(OP) \ ((GET_CODE (OP) == REG && REG_OK_FOR_BASE_P (OP)) \ || (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 \ - && SYMBOL_REF_FLAG (XEXP (OP, 0))) \ + && (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (OP, 0)))) \ || (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 \ - && SYMBOL_REF_FLAG (XEXP (XEXP (OP, 0), 0)) \ - && GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 1)) == CONST_INT)) + && GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 1)) == CONST_INT) \ + && (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (XEXP (OP, 0), 0)))) #define EXTRA_CONSTRAINT(OP, C) \ ((C) == 'U' ? OK_FOR_U (OP) : 0) -- 2.11.4.GIT