From 198586008bed3f282b57bc5ef40030f0534e293a Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 22 Jul 1992 14:01:13 -0600 Subject: [PATCH] (EXTRA_CONSTRAINT): Add new 'T' and 'U' constraints which check for aligned accesses to memory and register pairs. From-SVN: r1661 --- gcc/config/sparc/sparc.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index c3c96143af7..b4f5f696924 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -1090,8 +1090,12 @@ extern union tree_node *current_function_decl; && REG_OK_FOR_BASE_P (XEXP (OP, 0))) \ : (C) == 'S' \ ? (CONSTANT_P (OP) || memory_address_p (Pmode, OP)) \ + : (C) == 'T' \ + ? (mem_aligned_8 (OP)) \ + : (C) == 'U' \ + ? (register_ok_for_ldd (OP)) \ : 0) - + #else /* Nonzero if X is a hard reg that can be used as an index. */ @@ -1112,7 +1116,11 @@ extern union tree_node *current_function_decl; : ((C) == 'S' \ ? (CONSTANT_P (OP) \ || (GET_CODE (OP) == REG && reg_renumber[REGNO (OP)] > 0)\ - || strict_memory_address_p (Pmode, OP)) : 0))) + || strict_memory_address_p (Pmode, OP)) \ + : ((C) == 'T' ? \ + mem_aligned_8 (OP) && strict_memory_address_p (Pmode, OP) \ + : ((C) == 'U' ? \ + register_ok_for_ldd (OP) : 0))))) #endif /* GO_IF_LEGITIMATE_ADDRESS recognizes an RTL expression -- 2.30.2