OSDN Git Service

* i386.md (doubleword shifts): Fix dumb mistakes in previous change.
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Jan 1999 10:53:08 +0000 (10:53 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Jan 1999 10:53:08 +0000 (10:53 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24457 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/i386/i386.md

index ded8f4e..e8adf94 100644 (file)
@@ -1,5 +1,5 @@
 ; 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;
 }")