diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2016-04-28 18:16:05 +0100 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2016-04-28 18:16:05 +0100 |
commit | c20ef9d2338e764a92374a87dc36146a2532780b (patch) | |
tree | bc195675a62e0acd1d93fc4c13bc3915917f6beb | |
parent | 81262dad15795720e197df259bf690967bc57a2b (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arc/constraints.md | 18 |
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") |