diff options
author | Oleg Endo <olegendo@gcc.gnu.org> | 2018-01-11 15:16:21 +0000 |
---|---|---|
committer | Oleg Endo <olegendo@gcc.gnu.org> | 2018-01-11 15:16:21 +0000 |
commit | 99eeb64cc4b1f9bf23208e2a49e4b6c40dc7aa0e (patch) | |
tree | 58bc35c40c9c28552c46c2446ca13abf894babae /gcc/config/rx | |
parent | b0bd3e52c1b5b59bd416298ae0794342ec319d86 (diff) | |
download | gcc-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.md | 3 |
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")] ) |