Commit 270fc2ae by Jeff Law

i386.md (doubleword shifts): Fix dumb mistakes in previous change.

 
        * i386.md (doubleword shifts): Fix dumb mistakes in previous change.

From-SVN: r24457
parent a94b6ed9
; GCC machine description for Intel X86.
;; Copyright (C) 1988, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
;; Copyright (C) 1988, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc.
;; Mostly by William Schelter.
;; This file is part of GNU CC.
......@@ -4687,8 +4687,7 @@ byte_xor_operation:
""
"*
{
rtx xops[4], low[1], high[1];
static int ashldi_label_number;
rtx xops[5], low[1], high[1];
CC_STATUS_INIT;
......@@ -4697,17 +4696,16 @@ byte_xor_operation:
xops[1] = GEN_INT (32);
xops[2] = low[0];
xops[3] = high[0];
xops[4] = gen_label_rtx ();
output_asm_insn (AS3_SHIFT_DOUBLE (shld%L3,%0,%2,%3), xops);
output_asm_insn (AS2 (sal%L2,%0,%2), xops);
output_asm_insn (AS2 (test%B0,%1,%b0), xops);
fputs (\"\\tje \", asm_out_file);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHLDI\", ashldi_label_number);
fputs (\"\\n\", asm_out_file);
output_asm_insn (AS1 (je,%X4), xops);
output_asm_insn (AS2 (mov%L3,%2,%3), xops); /* Fast shift by 32 */
output_asm_insn (AS2 (xor%L2,%2,%2), xops);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHLDI\", ashldi_label_number);
ashldi_label_number++;
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
CODE_LABEL_NUMBER (xops[4]));
RET;
}")
......@@ -4877,8 +4875,7 @@ byte_xor_operation:
""
"*
{
rtx xops[4], low[1], high[1];
static int ashrdi_label_number;
rtx xops[5], low[1], high[1];
CC_STATUS_INIT;
......@@ -4887,18 +4884,17 @@ byte_xor_operation:
xops[1] = GEN_INT (32);
xops[2] = low[0];
xops[3] = high[0];
xops[4] = gen_label_rtx ();
output_asm_insn (AS3_SHIFT_DOUBLE (shrd%L2,%0,%3,%2), xops);
output_asm_insn (AS2 (sar%L3,%0,%3), xops);
output_asm_insn (AS2 (test%B0,%1,%b0), xops);
fputs (\"\\tje \", asm_out_file);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHRDI\", ashrdi_label_number);
fputs (\"\\n\", asm_out_file);
output_asm_insn (AS1 (je,%X4), xops);
xops[1] = GEN_INT (31);
output_asm_insn (AS2 (mov%L2,%3,%2), xops);
output_asm_insn (AS2 (sar%L3,%1,%3), xops); /* shift by 32 */
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHRDI\", ashrdi_label_number);
ashrdi_label_number++;
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
CODE_LABEL_NUMBER (xops[4]));
RET;
}")
......@@ -5043,8 +5039,7 @@ byte_xor_operation:
""
"*
{
rtx xops[4], low[1], high[1];
static int lshrdi_label_number;
rtx xops[5], low[1], high[1];
CC_STATUS_INIT;
......@@ -5053,17 +5048,16 @@ byte_xor_operation:
xops[1] = GEN_INT (32);
xops[2] = low[0];
xops[3] = high[0];
xops[4] = gen_label_rtx ();
output_asm_insn (AS3_SHIFT_DOUBLE (shrd%L2,%0,%3,%2), xops);
output_asm_insn (AS2 (shr%L3,%0,%3), xops);
output_asm_insn (AS2 (test%B0,%1,%b0), xops);
fputs (\"\\tje \", asm_out_file);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LLSHRDI\", lshrdi_label_number);
fputs (\"\\n\", asm_out_file);
output_asm_insn (AS1 (je,%X4), xops);
output_asm_insn (AS2 (mov%L2,%3,%2), xops); /* Fast shift by 32 */
output_asm_insn (AS2 (xor%L3,%3,%3), xops);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LLSHRDI\", lshrdi_label_number);
lshrdi_label_number++;
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
CODE_LABEL_NUMBER (xops[4]));
RET;
}")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment