diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2023-11-12 18:18:19 +0100 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2023-11-12 18:18:19 +0100 |
commit | 4b754091befe7e805f4daafa19ca6828fdda134b (patch) | |
tree | 955ba58fdc71dd504e6d478be7b378fee8505e3f | |
parent | 3a5a30792f6c0db69ffee8bc1d7766dcfdc469b9 (diff) | |
download | gcc-4b754091befe7e805f4daafa19ca6828fdda134b.zip gcc-4b754091befe7e805f4daafa19ca6828fdda134b.tar.gz gcc-4b754091befe7e805f4daafa19ca6828fdda134b.tar.bz2 |
i386: Remove *stack_protect_set_4s_<mode>_di alternative that will never match
The relevant peephole2 will never generate alternative (=m,=&a,0,m) because
operand 1 is not dead before the peephole2 pattern.
gcc/ChangeLog:
* config/i386/i386.md (*stack_protect_set_4s_<mode>_di):
Remove alternative 0.
-rw-r--r-- | gcc/config/i386/i386.md | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 01fc6ec..ffd9f2d 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -24481,19 +24481,16 @@ (set_attr "length" "24")]) (define_insn "*stack_protect_set_4s_<mode>_di" - [(set (match_operand:PTR 0 "memory_operand" "=m,m") - (unspec:PTR [(match_operand:PTR 3 "memory_operand" "m,m")] + [(set (match_operand:PTR 0 "memory_operand" "=m") + (unspec:PTR [(match_operand:PTR 3 "memory_operand" "m")] UNSPEC_SP_SET)) - (set (match_operand:DI 1 "register_operand" "=&a,&r") - (sign_extend:DI (match_operand:SI 2 "nonimmediate_operand" "0,rm")))] + (set (match_operand:DI 1 "register_operand" "=&r") + (sign_extend:DI (match_operand:SI 2 "nonimmediate_operand" "rm")))] "TARGET_64BIT && reload_completed" { output_asm_insn ("mov{<imodesuffix>}\t{%3, %<k>1|%<k>1, %3}", operands); output_asm_insn ("mov{<imodesuffix>}\t{%<k>1, %0|%0, %<k>1}", operands); - if (which_alternative) - return "movs{lq|x}\t{%2, %1|%1, %2}"; - else - return "{cltq|cdqe}"; + return "movs{lq|x}\t{%2, %1|%1, %2}"; } [(set_attr "type" "multi") (set_attr "length" "24")]) |