"*
{
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