mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-11 04:09:38 +08:00
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:
parent
3348b696a8
commit
5cfc5f84fb
@ -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.
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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 *);
|
||||
|
Loading…
Reference in New Issue
Block a user