Commit 5cfc5f84 by Daniel Jacobowitz Committed by Daniel Jacobowitz

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
parent 3348b696
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.
......
/* 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)
{
......
/* 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)
{
......
......@@ -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
......
/* 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);
......
......@@ -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;
}
......
/* 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)
......
......@@ -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)
......
......@@ -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 *);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment