aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rx
diff options
context:
space:
mode:
authorOleg Endo <olegendo@gcc.gnu.org>2018-01-11 15:16:21 +0000
committerOleg Endo <olegendo@gcc.gnu.org>2018-01-11 15:16:21 +0000
commit99eeb64cc4b1f9bf23208e2a49e4b6c40dc7aa0e (patch)
tree58bc35c40c9c28552c46c2446ca13abf894babae /gcc/config/rx
parentb0bd3e52c1b5b59bd416298ae0794342ec319d86 (diff)
downloadgcc-99eeb64cc4b1f9bf23208e2a49e4b6c40dc7aa0e.zip
gcc-99eeb64cc4b1f9bf23208e2a49e4b6c40dc7aa0e.tar.gz
gcc-99eeb64cc4b1f9bf23208e2a49e4b6c40dc7aa0e.tar.bz2
re PR target/81821 ([RX] xchg_mem<mode> uses wrong memory operand size)
gcc/ PR target/81821 * config/rx/rx.md (BW): New mode attribute. (sync_lock_test_and_setsi): Add mode suffix to insn output. From-SVN: r256536
Diffstat (limited to 'gcc/config/rx')
-rw-r--r--gcc/config/rx/rx.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/rx/rx.md b/gcc/config/rx/rx.md
index 0807213..e642d73 100644
--- a/gcc/config/rx/rx.md
+++ b/gcc/config/rx/rx.md
@@ -2169,6 +2169,7 @@
[(plus "add") (minus "sub") (ior "ior") (xor "xor") (and "and")])
(define_mode_iterator QIHI [QI HI])
+(define_mode_attr BW [(QI "B") (HI "W")])
(define_insn "sync_lock_test_and_setsi"
[(set (match_operand:SI 0 "register_operand" "=r,r")
@@ -2210,7 +2211,7 @@
(set (match_dup 1)
(match_operand:QIHI 2 "register_operand" "0"))]
""
- "xchg\t%1, %0"
+ "xchg\t%1.<BW>, %0"
[(set_attr "length" "6")
(set_attr "timings" "22")]
)