From 2aa8f23fc1ac90dcf0ebba82883e17a19022c088 Mon Sep 17 00:00:00 2001 From: James Van Artsdalen Date: Sun, 5 Apr 1992 08:24:37 +0000 Subject: [PATCH] *** empty log message *** From-SVN: r687 --- gcc/config/i386/i386.md | 22 +++++++++++++++++----- gcc/optabs.c | 1 + 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 14a9428f200..0770422d1bd 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -3464,7 +3464,8 @@ (use (match_operand:SI 4 "immediate_operand" "")) (clobber (match_dup 1)) (clobber (match_dup 2)) - (clobber (match_dup 3))])] + (clobber (match_dup 3)) + (clobber (match_scratch:SI 5 ""))])] "" " { @@ -3481,13 +3482,18 @@ (use (match_operand:SI 4 "immediate_operand" "i")) (clobber (match_dup 1)) (clobber (match_dup 2)) - (clobber (match_dup 3))] + (clobber (match_dup 3)) + (clobber (match_scratch:SI 5 "=&r"))] "" "* { - rtx xops[3]; + rtx xops[3], label; + + label = gen_label_rtx (); + output_asm_insn (AS2 (xor%B0,%0,%0), operands); output_asm_insn (\"repz\;cmps%B2\", operands); + output_asm_insn (\"je %l0\", &label); xops[0] = operands[0]; xops[1] = gen_rtx (MEM, QImode, @@ -3497,6 +3503,7 @@ output_asm_insn (AS2 (mov%B0,%1,%b0), xops); output_asm_insn (AS2 (sub%B0,%2,%b0), xops); + ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\", CODE_LABEL_NUMBER (label)); RET; }") @@ -3508,9 +3515,14 @@ (use (match_operand:SI 3 "immediate_operand" "i")) (clobber (match_dup 0)) (clobber (match_dup 1)) - (clobber (match_dup 2))] + (clobber (match_dup 2)) + (clobber (match_scratch:SI 4 "=&r"))] "" - "repz\;cmps%B2") + "* +{ + output_asm_insn (AS2 (xor%L4,%4,%4), operands); + return \"repz\;cmps%B2\"; +}") (define_expand "ffssi2" [(set (match_dup 2) diff --git a/gcc/optabs.c b/gcc/optabs.c index c345fc9d294..52e13eb4c72 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -1428,6 +1428,7 @@ emit_cmp_insn (x, y, comparison, size, mode, unsignedp, align) rtx x, y; enum rtx_code comparison; rtx size; + enum machine_mode mode; int unsignedp; int align; { -- 2.30.2