aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/config/sh/constraints.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/gcc/config/sh/constraints.md')
-rw-r--r--gcc-4.8/gcc/config/sh/constraints.md7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc-4.8/gcc/config/sh/constraints.md b/gcc-4.8/gcc/config/sh/constraints.md
index 59bf6b5ad..df7823764 100644
--- a/gcc-4.8/gcc/config/sh/constraints.md
+++ b/gcc-4.8/gcc/config/sh/constraints.md
@@ -221,6 +221,7 @@
(define_constraint "Q"
"A pc relative load operand."
(and (match_code "mem")
+ (match_test "GET_MODE (op) != QImode")
(match_test "IS_PC_RELATIVE_LOAD_ADDR_P (XEXP (op, 0))")))
(define_constraint "Bsc"
@@ -295,13 +296,15 @@
(define_memory_constraint "Sdd"
"A memory reference that uses displacement addressing."
- (and (match_test "MEM_P (op) && GET_CODE (XEXP (op, 0)) == PLUS")
+ (and (match_code "mem")
+ (match_test "GET_CODE (XEXP (op, 0)) == PLUS")
(match_test "REG_P (XEXP (XEXP (op, 0), 0))")
(match_test "CONST_INT_P (XEXP (XEXP (op, 0), 1))")))
(define_memory_constraint "Snd"
"A memory reference that excludes displacement addressing."
- (match_test "! satisfies_constraint_Sdd (op)"))
+ (and (match_code "mem")
+ (match_test "! satisfies_constraint_Sdd (op)")))
(define_memory_constraint "Sbv"
"A memory reference, as used in SH2A bclr.b, bset.b, etc."