]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cse.c (invalidate_skipped_block): Call invalidate_from_clobbers for each insn in...
authorJeffrey A Law <law@cygnus.com>
Wed, 30 Dec 1998 23:39:55 +0000 (23:39 +0000)
committerJeff Law <law@gcc.gnu.org>
Wed, 30 Dec 1998 23:39:55 +0000 (16:39 -0700)
        * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
        for each insn in the skipped block.
        * i386.md (doubleword shifts): Avoid namespace pollution.

From-SVN: r24451

gcc/ChangeLog
gcc/config/i386/i386.md
gcc/cse.c

index 6fd2703e306d7dd4e2400190ba0f592a0de55383..96fe985827825e65508708cd288fd591b9c19a3a 100644 (file)
@@ -1,3 +1,10 @@
+Wed Dec 30 23:44:11 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
+       for each insn in the skipped block.
+
+       * i386.md (doubleword shifts): Avoid namespace pollution.
+
 Mon Dec 28 10:44:40 1998  Richard Henderson  <rth@cygnus.com>
 
        * combine.c (subst): Process the inputs to a parallel asm_operands
index ca63bf49ba609cc6293832fd3d0ed57abc4ecf39..dac2730afd1ae0b188fd6b1b4c2e0e7aa751597d 100644 (file)
@@ -4558,11 +4558,13 @@ byte_xor_operation:
   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);
-  asm_fprintf (asm_out_file, \"\\tje %LLASHLDI%d\\n\", ashldi_label_number);
+  fputs (\"\\tje \", asm_out_file);
+  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHLDI\", ashldi_label_number);
+  fputs (\"\\n\", asm_out_file);
   output_asm_insn (AS2 (mov%L3,%2,%3), xops);  /* Fast shift by 32 */
   output_asm_insn (AS2 (xor%L2,%2,%2), xops);
-  asm_fprintf (asm_out_file, \"%LLASHLDI%d:\\n\", ashldi_label_number++);
-
+  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHLDI\", ashldi_label_number);
+  ashldi_label_number++;
   RET;
 }")
 
@@ -4746,12 +4748,14 @@ byte_xor_operation:
   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);
-  asm_fprintf (asm_out_file, \"\\tje %LLASHRDI%d\\n\", ashrdi_label_number);
+  fputs (\"\\tje \", asm_out_file);
+  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHRDI\", ashrdi_label_number);
+  fputs (\"\\n\", asm_out_file);
   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_fprintf (asm_out_file, \"%LLASHRDI%d:\\n\", ashrdi_label_number++);
-
+  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHRDI\", ashrdi_label_number);
+  ashrdi_label_number++;
   RET;
 }")
 
@@ -4901,11 +4905,13 @@ byte_xor_operation:
   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);
-  asm_fprintf (asm_out_file, \"\\tje %LLLSHRDI%d\\n\", lshrdi_label_number);
+  fputs (\"\\tje \", asm_out_file);
+  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LLSHRDI\", lshrdi_label_number);
+  fputs (\"\\n\", asm_out_file);
   output_asm_insn (AS2 (mov%L2,%3,%2), xops);  /* Fast shift by 32 */
   output_asm_insn (AS2 (xor%L3,%3,%3), xops);
-  asm_fprintf (asm_out_file, \"%LLLSHRDI%d:\\n\", lshrdi_label_number++);
-
+  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LLSHRDI\", lshrdi_label_number);
+  lshrdi_label_number++;
   RET;
 }")
 
index 5d121870afb0a7153c8e3249f880a335b2312cca..3b543f4ba699ef1d4f877d2a91b019663ddab991 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7991,6 +7991,7 @@ invalidate_skipped_block (start)
          invalidate_for_call ();
        }
 
+      invalidate_from_clobbers (PATTERN (insn));
       note_stores (PATTERN (insn), invalidate_skipped_set);
     }
 }