From: Richard Stallman Date: Fri, 30 Jul 1993 06:46:33 +0000 (+0000) Subject: (ffssi2 and ffshi2 recognizers): Generate unique labels by hand. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6d7512e47340cf0451ca674ed78b45375d579163;p=gcc.git (ffssi2 and ffshi2 recognizers): Generate unique labels by hand. From-SVN: r5041 --- diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index cda31501380..f0a0498936b 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -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 \"\"; }")