aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2016-04-28 18:16:05 +0100
committerJoern Rennecke <amylaar@gcc.gnu.org>2016-04-28 18:16:05 +0100
commitc20ef9d2338e764a92374a87dc36146a2532780b (patch)
treebc195675a62e0acd1d93fc4c13bc3915917f6beb
parent81262dad15795720e197df259bf690967bc57a2b (diff)
downloadgcc-c20ef9d2338e764a92374a87dc36146a2532780b.zip
gcc-c20ef9d2338e764a92374a87dc36146a2532780b.tar.gz
gcc-c20ef9d2338e764a92374a87dc36146a2532780b.tar.bz2
constraints.md (Usd): Convert to define_constraint.
2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com> * config/arc/constraints.md (Usd): Convert to define_constraint. (Us<): Likewise. (Us>): Likewise. From-SVN: r235587
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arc/constraints.md18
2 files changed, 17 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d18013e..0c0e1ac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * config/arc/constraints.md (Usd): Convert to define_constraint.
+ (Us<): Likewise.
+ (Us>): Likewise.
+
2016-04-28 Jakub Jelinek <jakub@redhat.com>
PR target/70821
diff --git a/gcc/config/arc/constraints.md b/gcc/config/arc/constraints.md
index 668b60a..b6954ad 100644
--- a/gcc/config/arc/constraints.md
+++ b/gcc/config/arc/constraints.md
@@ -269,11 +269,15 @@
(and (match_code "mem")
(match_test "compact_store_memory_operand (op, VOIDmode)")))
-(define_memory_constraint "Usd"
- "@internal
- A valid _small-data_ memory operand for ARCompact instructions"
- (and (match_code "mem")
- (match_test "compact_sda_memory_operand (op, VOIDmode)")))
+; Don't use define_memory_constraint here as the relocation patching
+; for small data symbols only works within a ld/st instruction and
+; define_memory_constraint may result in the address being calculated
+; into a register first.
+(define_constraint "Usd"
+ "@internal
+ A valid _small-data_ memory operand for ARCompact instructions"
+ (and (match_code "mem")
+ (match_test "compact_sda_memory_operand (op, VOIDmode)")))
(define_memory_constraint "Usc"
"@internal
@@ -283,7 +287,7 @@
;; ??? the assembler rejects stores of immediates to small data.
(match_test "!compact_sda_memory_operand (op, VOIDmode)")))
-(define_memory_constraint "Us<"
+(define_constraint "Us<"
"@internal
Stack pre-decrement"
(and (match_code "mem")
@@ -291,7 +295,7 @@
(match_test "REG_P (XEXP (XEXP (op, 0), 0))")
(match_test "REGNO (XEXP (XEXP (op, 0), 0)) == SP_REG")))
-(define_memory_constraint "Us>"
+(define_constraint "Us>"
"@internal
Stack post-increment"
(and (match_code "mem")