+2004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * final.c (output_in_slot): Delete.
+ (final_scan_insn): Revert 2004-09-03 change.
+ (output_asm_insn): Likewise.
+ * config/sparc/sparc.c (output_return): Likewise.
+ (output_sibcall): Likewise.
+
2004-09-06 Jan Hubicka <jh@suse.cz>
* loop.c (loop_dump_aux): Do not print RTL when not available.
if (! delay)
abort ();
- final_scan_insn (delay, asm_out_file, 1, 0, 2, NULL);
+ final_scan_insn (delay, asm_out_file, 1, 0, 1, NULL);
PATTERN (delay) = gen_blockage ();
INSN_CODE (delay) = -1;
}
epilogue_renumber (&pat, 0);
fprintf (asm_out_file, "\treturn\t%%i7+%d\n",
sparc_skip_caller_unimp ? 12 : 8);
- final_scan_insn (delay, asm_out_file, 1, 0, 2, NULL);
+ final_scan_insn (delay, asm_out_file, 1, 0, 1, NULL);
}
else
{
output_asm_insn ("sethi\t%%hi(%a0), %%g1", operands);
output_asm_insn ("jmp\t%%g1 + %%lo(%a0)", operands);
- final_scan_insn (delay, asm_out_file, 1, 0, 2, NULL);
+ final_scan_insn (delay, asm_out_file, 1, 0, 1, NULL);
PATTERN (delay) = gen_blockage ();
INSN_CODE (delay) = -1;
rtx final_sequence;
-/* True if we are outputting insns in a delay slot. This is used
- to prettify the assembly. */
-static bool output_in_slot;
-
#ifdef ASSEMBLER_DIALECT
/* Number of the assembler dialect to use, starting at 0. */
is the insn being scanned.
Value returned is the next insn to be scanned.
- NOPEEPHOLES is used to disallow peephole processing:
- - 0: peepholes are allowed,
- - 1: peepholes are not allowed,
- - 2: peepholes are not allowed and we are in the
- slot of a delayed branch.
+ NOPEEPHOLES is the flag to disallow peephole processing (currently
+ used for within delayed branch sequence output).
SEEN is used to track the end of the prologue, for emitting
debug information. We force the emission of a line note after
rtx
final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
- int prescan, int nopeepholes, int *seen)
+ int prescan, int nopeepholes ATTRIBUTE_UNUSED,
+ int *seen)
{
#ifdef HAVE_cc0
rtx set;
/* We loop in case any instruction in a delay slot gets
split. */
do
- insn = final_scan_insn (insn, file, 0, prescan, 2, seen);
+ insn = final_scan_insn (insn, file, 0, prescan, 1, seen);
while (insn != next);
}
#ifdef DBR_OUTPUT_SEQEND
#endif
/* Output assembler code from the template. */
- output_in_slot = (nopeepholes > 1);
output_asm_insn (template, recog_data.operand);
- output_in_slot = false;
/* If necessary, report the effect that the instruction has on
the unwind info. We've already done this for delay slots
memset (opoutput, 0, sizeof opoutput);
p = template;
putc ('\t', asm_out_file);
- if (output_in_slot)
- putc (' ', asm_out_file);
#ifdef ASM_OUTPUT_OPCODE
ASM_OUTPUT_OPCODE (asm_out_file, p);