(ffssi2 and ffshi2 recognizers): Generate unique labels by hand.
From-SVN: r5041
This commit is contained in:
parent
81d57b8e1d
commit
6d7512e473
@ -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 \"\";
|
||||
}")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user