(final_scan_insn): Always set OPS and use alloca.

From-SVN: r6643
This commit is contained in:
Richard Kenner 1994-02-27 10:47:55 -05:00
parent d0c766547a
commit 39178486b7

View File

@ -1627,7 +1627,7 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
if (asm_noperands (body) >= 0)
{
int noperands = asm_noperands (body);
rtx *ops;
rtx *ops = (rtx *) alloca (noperands * sizeof (rtx));
char *string;
/* There's no telling what that did to the condition codes. */
@ -1635,11 +1635,6 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
if (prescan > 0)
break;
/* alloca won't do here, since only return from `final'
would free it. */
if (noperands > 0)
ops = (rtx *) xmalloc (noperands * sizeof (rtx));
if (! app_on)
{
fprintf (file, ASM_APP_ON);
@ -1652,11 +1647,10 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
/* Inhibit aborts on what would otherwise be compiler bugs. */
insn_noperands = noperands;
this_is_asm_operands = insn;
/* Output the insn using them. */
output_asm_insn (string, ops);
this_is_asm_operands = 0;
if (noperands > 0)
free (ops);
break;
}