diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2017-11-21 18:46:38 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2017-11-21 18:46:38 +0100 |
commit | ffb41aab7a9b8475e773b75fdebd194f4491c9db (patch) | |
tree | 188210588a00ec8677cdbf3efebc70c6498ccb69 /gcc | |
parent | 826eccc6fd8bebfafa3ac02d9755bb2e59f465b7 (diff) | |
download | gcc-ffb41aab7a9b8475e773b75fdebd194f4491c9db.zip gcc-ffb41aab7a9b8475e773b75fdebd194f4491c9db.tar.gz gcc-ffb41aab7a9b8475e773b75fdebd194f4491c9db.tar.bz2 |
* config/i386/i386.md: Missing file from my previous commit.
From-SVN: r255019
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 31 |
2 files changed, 22 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d631cb6..e4c1a77 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-11-21 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (*bswap<mode>2_movbe): Add + integer suffix to movbe mnemonic. + (*bswaphi2_movbe): Ditto. + (bswaphi_lowpart): Merge with *bswaphi_lowpart_1. + 2017-11-21 Jakub Jelinek <jakub@redhat.com> PR c++/83045 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 0eaa1f2..b871590 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -14074,8 +14074,8 @@ && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ bswap\t%0 - movbe\t{%1, %0|%0, %1} - movbe\t{%1, %0|%0, %1}" + movbe{<imodesuffix>}\t{%1, %0|%0, %1} + movbe{<imodesuffix>}\t{%1, %0|%0, %1}" [(set_attr "type" "bitmanip,imov,imov") (set_attr "modrm" "0,1,1") (set_attr "prefix_0f" "*,1,1") @@ -14103,8 +14103,8 @@ && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ xchg{b}\t{%h0, %b0|%b0, %h0} - movbe\t{%1, %0|%0, %1} - movbe\t{%1, %0|%0, %1}" + movbe{w}\t{%1, %0|%0, %1} + movbe{w}\t{%1, %0|%0, %1}" [(set_attr "type" "imov") (set_attr "modrm" "*,1,1") (set_attr "prefix_0f" "*,1,1") @@ -14124,26 +14124,25 @@ [(parallel [(set (match_dup 0) (rotate:HI (match_dup 0) (const_int 8))) (clobber (reg:CC FLAGS_REG))])]) -(define_insn "*bswaphi_lowpart_1" +(define_insn "bswaphi_lowpart" [(set (strict_low_part (match_operand:HI 0 "register_operand" "+Q,r")) (bswap:HI (match_dup 0))) (clobber (reg:CC FLAGS_REG))] - "TARGET_USE_XCHGB || optimize_function_for_size_p (cfun)" + "" "@ xchg{b}\t{%h0, %b0|%b0, %h0} rol{w}\t{$8, %0|%0, 8}" - [(set_attr "length" "2,4") + [(set (attr "preferred_for_size") + (cond [(eq_attr "alternative" "0") + (symbol_ref "true")] + (symbol_ref "false"))) + (set (attr "preferred_for_speed") + (cond [(eq_attr "alternative" "0") + (symbol_ref "TARGET_USE_XCHGB")] + (symbol_ref "!TARGET_USE_XCHGB"))) + (set_attr "length" "2,4") (set_attr "mode" "QI,HI")]) -(define_insn "bswaphi_lowpart" - [(set (strict_low_part (match_operand:HI 0 "register_operand" "+r")) - (bswap:HI (match_dup 0))) - (clobber (reg:CC FLAGS_REG))] - "" - "rol{w}\t{$8, %0|%0, 8}" - [(set_attr "length" "4") - (set_attr "mode" "HI")]) - (define_expand "paritydi2" [(set (match_operand:DI 0 "register_operand") (parity:DI (match_operand:DI 1 "register_operand")))] |