From ffb41aab7a9b8475e773b75fdebd194f4491c9db Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 21 Nov 2017 18:46:38 +0100 Subject: [PATCH] * config/i386/i386.md: Missing file from my previous commit. From-SVN: r255019 --- gcc/ChangeLog | 7 +++++++ gcc/config/i386/i386.md | 31 +++++++++++++++---------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d631cb694d1..e4c1a77d0b9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-11-21 Uros Bizjak + + * config/i386/i386.md (*bswap2_movbe): Add + integer suffix to movbe mnemonic. + (*bswaphi2_movbe): Ditto. + (bswaphi_lowpart): Merge with *bswaphi_lowpart_1. + 2017-11-21 Jakub Jelinek PR c++/83045 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 0eaa1f244f3..b8715902c35 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{}\t{%1, %0|%0, %1} + movbe{}\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")))] -- 2.30.2