(ffssi2 and ffshi2 recognizers): Generate unique labels by hand.
authorRichard Stallman <rms@gnu.org>
Fri, 30 Jul 1993 06:46:33 +0000 (06:46 +0000)
committerRichard Stallman <rms@gnu.org>
Fri, 30 Jul 1993 06:46:33 +0000 (06:46 +0000)
From-SVN: r5041

gcc/config/i386/i386.md

index cda315013806a64d0fb4a4f87d99516ed04dbd65..f0a0498936bbf311cfa81fa568b9b89f25910be9 100644 (file)
   "*
 {
   rtx xops[3];
+  static int ffssi_label_number;
+  char buffer[30];
 
   xops[0] = operands[0];
   xops[1] = operands[1];
   xops[2] = constm1_rtx;
   /* Can there be a way to avoid the jump here?  */
   output_asm_insn (AS2 (bsf%L0,%1,%0), xops);
-  output_asm_insn (\"jnz 1f\", xops);
+#ifdef LOCAL_LABEL_PREFIX
+  sprintf (buffer, \"jnz %sLFFSSI%d\",
+          LOCAL_LABEL_PREFIX, ffssi_label_number);
+#else
+  sprintf (buffer, \"jnz %sLFFSSI%d\",
+          \"\", ffssi_label_number);
+#endif
+  output_asm_insn (buffer, xops);
   output_asm_insn (AS2 (mov%L0,%2,%0), xops);
-  output_asm_insn (\"1:\", xops);
+#ifdef LOCAL_LABEL_PREFIX
+  sprintf (buffer, \"%sLFFSSI%d:\",
+          LOCAL_LABEL_PREFIX, ffssi_label_number);
+#else
+  sprintf (buffer, \"%sLFFSSI%d:\",
+          \"\", ffssi_label_number);
+#endif
+  output_asm_insn (buffer, xops);
+
+  ffssi_label_number++;
   return \"\";
 }")
 
   "*
 {
   rtx xops[3];
+  static int ffshi_label_number;
+  char buffer[30];
 
   xops[0] = operands[0];
   xops[1] = operands[1];
   xops[2] = constm1_rtx;
   output_asm_insn (AS2 (bsf%W0,%1,%0), xops);
-  output_asm_insn (\"jnz 1f\", xops);
+#ifdef LOCAL_LABEL_PREFIX
+  sprintf (buffer, \"jnz %sLFFSHI%d\",
+          LOCAL_LABEL_PREFIX, ffshi_label_number);
+#else
+  sprintf (buffer, \"jnz %sLFFSHI%d\",
+          \"\", ffshi_label_number);
+#endif
+  output_asm_insn (buffer, xops);
   output_asm_insn (AS2 (mov%W0,%2,%0), xops);
-  output_asm_insn (\"1:\", xops);
+#ifdef LOCAL_LABEL_PREFIX
+  sprintf (buffer, \"%sLFFSHI%d:\",
+          LOCAL_LABEL_PREFIX, ffshi_label_number);
+#else
+  sprintf (buffer, \"%sLFFSHI%d:\",
+          \"\", ffshi_label_number);
+#endif
+  output_asm_insn (buffer, xops);
+
+  ffshi_label_number++;
   return \"\";
 }")
 \f