aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1993-07-06 13:43:05 -0700
committerJim Wilson <wilson@gcc.gnu.org>1993-07-06 13:43:05 -0700
commitb165d4711a22ec9aa68b0a60126291034639168f (patch)
tree5e6816421049a8060a8bb35176d3976da3fb2839
parent61a66555d1e569532761325ddc029926c681c0b9 (diff)
downloadgcc-b165d4711a22ec9aa68b0a60126291034639168f.zip
gcc-b165d4711a22ec9aa68b0a60126291034639168f.tar.gz
gcc-b165d4711a22ec9aa68b0a60126291034639168f.tar.bz2
(EXTRA_CONSTRAINT): For 'T', pass address not mem to strict_memory_address_p call.
(EXTRA_CONSTRAINT): For 'T', pass address not mem to strict_memory_address_p call. For 'U', don't accept unallocated pseudo-reg when strict. From-SVN: r4862
-rw-r--r--gcc/config/sparc/sparc.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 64cdfbf..3a7a614 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -1183,9 +1183,12 @@ extern struct rtx_def *sparc_builtin_saveregs ();
|| (GET_CODE (OP) == REG && reg_renumber[REGNO (OP)] > 0) \
|| strict_memory_address_p (Pmode, OP)) \
: (C) == 'T' \
- ? mem_aligned_8 (OP) && strict_memory_address_p (Pmode, OP) \
+ ? mem_aligned_8 (OP) && strict_memory_address_p (Pmode, XEXP (OP, 0)) \
: (C) == 'U' \
- ? register_ok_for_ldd (OP) : 0)
+ ? (GET_CODE (OP) == REG \
+ && (REGNO (OP) < FIRST_PSEUDO_REGISTER \
+ || reg_renumber[REGNO (OP)] > 0) \
+ && register_ok_for_ldd (OP)) : 0)
#endif
/* GO_IF_LEGITIMATE_ADDRESS recognizes an RTL expression