(ffssi2 and ffshi2 recognizers): Generate unique labels by hand.

From-SVN: r5041
This commit is contained in:
Richard Stallman 1993-07-30 06:46:33 +00:00
parent 81d57b8e1d
commit 6d7512e473

View File

@ -4461,15 +4461,33 @@
"*
{
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 \"\";
}")
@ -4490,14 +4508,32 @@
"*
{
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 \"\";
}")