final.c (final_scan_insn): Make non-static again.

* final.c (final_scan_insn): Make non-static again.
	* output.h (final_scan_insn): Re-add prototype.
	* config/arc/arc.c (arc_output_function_epilogue): Add NULL
	to final_scan_insn call.
	* config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
	* config/mips/mips.c (mips_output_conditional_branch): Likewise.
	* config/pa/pa.c (output_lbranch, output_call): Likewise.
	* config/sh/sh.c (print_slot): Likewise.
	* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
	(output_sibcall, sparc_flat_function_epilogue): Likewise.

From-SVN: r76117
This commit is contained in:
Daniel Jacobowitz 2004-01-18 22:37:29 +00:00 committed by Daniel Jacobowitz
parent 3348b696a8
commit 5cfc5f84fb
9 changed files with 42 additions and 22 deletions

View File

@ -1,3 +1,16 @@
2004-01-18 Daniel Jacobowitz <drow@mvista.com>
* final.c (final_scan_insn): Make non-static again.
* output.h (final_scan_insn): Re-add prototype.
* config/arc/arc.c (arc_output_function_epilogue): Add NULL
to final_scan_insn call.
* config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
* config/mips/mips.c (mips_output_conditional_branch): Likewise.
* config/pa/pa.c (output_lbranch, output_call): Likewise.
* config/sh/sh.c (print_slot): Likewise.
* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
(output_sibcall, sparc_flat_function_epilogue): Likewise.
2004-01-18 Jan Hubicka <jh@suse.cz>
* basic-block.h (try_redirect_by_replacing_jump): Declare.

View File

@ -1,5 +1,5 @@
/* Subroutines used for code generation on the Argonaut ARC cpu.
Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of GCC.
@ -1303,7 +1303,7 @@ arc_output_function_epilogue (FILE *file, HOST_WIDE_INT size)
/* ??? If stack intactness is important, always emit now. */
if (MUST_SAVE_RETURN_ADDR && epilogue_delay != NULL_RTX)
{
final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1);
final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1, NULL);
epilogue_delay = NULL_RTX;
}
@ -1335,7 +1335,8 @@ arc_output_function_epilogue (FILE *file, HOST_WIDE_INT size)
{
if (epilogue_delay)
{
final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1);
final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1,
NULL);
}
}
@ -1360,7 +1361,7 @@ arc_output_function_epilogue (FILE *file, HOST_WIDE_INT size)
abort ();
if (restored < size)
abort ();
final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1);
final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1, NULL);
}
else if (frame_pointer_needed && !fp_restored_p)
{

View File

@ -1,5 +1,6 @@
/* Definitions for GCC. Part of the machine description for CRIS.
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Contributed by Axis Communications. Written by Hans-Peter Nilsson.
This file is part of GCC.
@ -1259,7 +1260,7 @@ cris_target_asm_function_epilogue (FILE *file, HOST_WIDE_INT size)
/* Output the delay-slot-insn the mandated way. */
final_scan_insn (XEXP (current_function_epilogue_delay_list, 0),
file, 1, -2, 1);
file, 1, -2, 1, NULL);
}
else if (file)
{

View File

@ -9285,7 +9285,7 @@ mips_output_conditional_branch (rtx insn, rtx *operands, int two_operands_p,
/* Output delay slot instruction. */
rtx insn = final_sequence;
final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file,
optimize, 0, 1);
optimize, 0, 1, NULL);
INSN_DELETED_P (XVECEXP (insn, 0, 1)) = 1;
}
else
@ -9304,7 +9304,7 @@ mips_output_conditional_branch (rtx insn, rtx *operands, int two_operands_p,
/* Output delay slot instruction. */
rtx insn = final_sequence;
final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file,
optimize, 0, 1);
optimize, 0, 1, NULL);
INSN_DELETED_P (XVECEXP (insn, 0, 1)) = 1;
}
else

View File

@ -1,6 +1,6 @@
/* Subroutines for insn-output.c for HPPA.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003 Free Software Foundation, Inc.
2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c
This file is part of GCC.
@ -6125,7 +6125,7 @@ output_lbranch (rtx dest, rtx insn)
abort ();
final_scan_insn (NEXT_INSN (insn), asm_out_file,
optimize, 0, 0);
optimize, 0, 0, NULL);
/* Now delete the delay insn. */
PUT_CODE (NEXT_INSN (insn), NOTE);
@ -7129,7 +7129,7 @@ output_call (rtx insn, rtx call_dest, int sibcall)
&& !sibcall)
{
final_scan_insn (NEXT_INSN (insn), asm_out_file,
optimize, 0, 0);
optimize, 0, 0, NULL);
/* Now delete the delay insn. */
PUT_CODE (NEXT_INSN (insn), NOTE);
@ -7177,7 +7177,8 @@ output_call (rtx insn, rtx call_dest, int sibcall)
/* A non-jump insn in the delay slot. By definition we can
emit this insn before the call (and in fact before argument
relocating. */
final_scan_insn (NEXT_INSN (insn), asm_out_file, optimize, 0, 0);
final_scan_insn (NEXT_INSN (insn), asm_out_file, optimize, 0, 0,
NULL);
/* Now delete the delay insn. */
PUT_CODE (NEXT_INSN (insn), NOTE);

View File

@ -1096,7 +1096,7 @@ output_movedouble (rtx insn ATTRIBUTE_UNUSED, rtx operands[],
static void
print_slot (rtx insn)
{
final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file, optimize, 0, 1);
final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file, optimize, 0, 1, NULL);
INSN_DELETED_P (XVECEXP (insn, 0, 1)) = 1;
}

View File

@ -1,6 +1,6 @@
/* Subroutines for insn-output.c for SPARC.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
at Cygnus Support.
@ -4539,7 +4539,7 @@ sparc_nonflat_function_epilogue (FILE *file,
? "\treturn\t%i7+12\n"
: "\treturn\t%i7+8\n", file);
final_scan_insn (XEXP (current_function_epilogue_delay_list, 0),
file, 1, 0, 0);
file, 1, 0, 0, NULL);
}
else
{
@ -4564,7 +4564,7 @@ sparc_nonflat_function_epilogue (FILE *file,
insn = emit_jump_insn (insn);
sparc_emitting_epilogue = true;
final_scan_insn (insn, file, 1, 0, 1);
final_scan_insn (insn, file, 1, 0, 1, NULL);
sparc_emitting_epilogue = false;
}
}
@ -4586,7 +4586,7 @@ sparc_nonflat_function_epilogue (FILE *file,
abort ();
fprintf (file, "\t%s\n", ret);
final_scan_insn (XEXP (current_function_epilogue_delay_list, 0),
file, 1, 0, 1);
file, 1, 0, 1, NULL);
}
/* Output 'nop' instead of 'sub %sp,-0,%sp' when no frame, so as to
avoid generating confusing assembly language output. */
@ -4629,7 +4629,7 @@ output_sibcall (rtx insn, rtx call_operand)
if (! delay)
abort ();
final_scan_insn (delay, asm_out_file, 1, 0, 1);
final_scan_insn (delay, asm_out_file, 1, 0, 1, NULL);
PATTERN (delay) = gen_blockage ();
INSN_CODE (delay) = -1;
delay_slot = 0;
@ -4659,7 +4659,7 @@ output_sibcall (rtx insn, rtx call_operand)
if (! delay)
abort ();
final_scan_insn (delay, asm_out_file, 1, 0, 1);
final_scan_insn (delay, asm_out_file, 1, 0, 1, NULL);
PATTERN (delay) = gen_blockage ();
INSN_CODE (delay) = -1;
delay_slot = 0;
@ -7916,7 +7916,7 @@ sparc_flat_function_epilogue (FILE *file, HOST_WIDE_INT size)
{
if (size)
abort ();
final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1);
final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1, NULL);
}
else if (size > 4096)

View File

@ -235,7 +235,6 @@ static int final_addr_vec_align (rtx);
#ifdef HAVE_ATTR_length
static int align_fuzz (rtx, rtx, int, unsigned);
#endif
static rtx final_scan_insn (rtx, FILE *, int, int, int, int *);
/* Initialize data in final at the beginning of a compilation. */
@ -1638,7 +1637,7 @@ output_alternate_entry_point (FILE *file, rtx insn)
at the beginning of the second basic block, whichever comes
first. */
static rtx
rtx
final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
int prescan, int nopeepholes ATTRIBUTE_UNUSED,
int *seen)

View File

@ -68,6 +68,11 @@ extern void final_end_function (void);
/* Output assembler code for some insns: all or part of a function. */
extern void final (rtx, FILE *, int, int);
/* The final scan for one insn, INSN. Args are same as in `final', except
that INSN is the insn being scanned. Value returned is the next insn to
be scanned. */
extern rtx final_scan_insn (rtx, FILE *, int, int, int, int *);
/* Replace a SUBREG with a REG or a MEM, based on the thing it is a
subreg of. */
extern rtx alter_subreg (rtx *);