Commit c3cc6b78 by Ulrich Weigand Committed by Ulrich Weigand

s390-protos.h (s390_function_prologue, [...]): Remove.

	* config/s390/s390-protos.h (s390_function_prologue,
	s390_function_epilogue): Remove.
	config/s390/s390.c (s390_function_prologue, s390_function_epilogue,
	TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.

	config/s390/s390.c (s390_machine_dependent_recorg): New function.
	config/s390/s390-protos.h (s390_machine_dependent_reorg): Declare it.
	config/s390/s390.h (MACHINE_DEPENDENT_REORG): Call it.
	config/s390/s390.c (s390_split_branches, s390_chunkify_pool): Adapt
	to being called from MACHINE_DEPENDENT_REORG.  Update regs_ever_live.

	config/s390/s390.c (s390_frame_info): Inline save_fprs_p.  Always
	assume BASE_REGISTER and RETURN_REGNUM need to be saved.
	(s390_emit_prologue): Assume RETURN_REGNUM to be saved iff
	function is not a leaf function.  Use save_gprs and restore_gprs.
	(s390_emit_epilogue): Likewise.
	(save_gprs, restore_gprs): New functions.
	(struct s390_frame): Remove return_reg_saved_p member.
	(save_fprs_p): Remove.
	(s390_optimize_prolog): New function.
	(s390_legitimate_reload_constant): Remove now unnecessary check.

	(s390_function_count): Remove.
	(s390_output_symbolic_const): Replace s390_function_count by
	current_function_funcdef_no.
	(s390_output_constant_pool): Likewise.

	(legitimize_pic_address): Use regs_ever_live to track PIC register
	instead of current_function_uses_pic_offset_table.
	(s390_emit_prologue): Likewise.
	config/s390/s390.md ("call", "call_value"): Likewise.

From-SVN: r56584
parent 3f662186
2002-08-26 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390-protos.h (s390_function_prologue,
s390_function_epilogue): Remove.
config/s390/s390.c (s390_function_prologue, s390_function_epilogue,
TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
config/s390/s390.c (s390_machine_dependent_recorg): New function.
config/s390/s390-protos.h (s390_machine_dependent_reorg): Declare it.
config/s390/s390.h (MACHINE_DEPENDENT_REORG): Call it.
config/s390/s390.c (s390_split_branches, s390_chunkify_pool): Adapt
to being called from MACHINE_DEPENDENT_REORG. Update regs_ever_live.
config/s390/s390.c (s390_frame_info): Inline save_fprs_p. Always
assume BASE_REGISTER and RETURN_REGNUM need to be saved.
(s390_emit_prologue): Assume RETURN_REGNUM to be saved iff
function is not a leaf function. Use save_gprs and restore_gprs.
(s390_emit_epilogue): Likewise.
(save_gprs, restore_gprs): New functions.
(struct s390_frame): Remove return_reg_saved_p member.
(save_fprs_p): Remove.
(s390_optimize_prolog): New function.
(s390_legitimate_reload_constant): Remove now unnecessary check.
(s390_function_count): Remove.
(s390_output_symbolic_const): Replace s390_function_count by
current_function_funcdef_no.
(s390_output_constant_pool): Likewise.
(legitimize_pic_address): Use regs_ever_live to track PIC register
instead of current_function_uses_pic_offset_table.
(s390_emit_prologue): Likewise.
config/s390/s390.md ("call", "call_value"): Likewise.
2002-08-26 Neil Booth <neil@daikokuya.co.uk> 2002-08-26 Neil Booth <neil@daikokuya.co.uk>
* c-opts.c (find_opt): Don't complain about wrong languages * c-opts.c (find_opt): Don't complain about wrong languages
......
...@@ -24,8 +24,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -24,8 +24,6 @@ Boston, MA 02111-1307, USA. */
extern void optimization_options PARAMS ((int, int)); extern void optimization_options PARAMS ((int, int));
extern void override_options PARAMS ((void)); extern void override_options PARAMS ((void));
extern int s390_arg_frame_offset PARAMS ((void)); extern int s390_arg_frame_offset PARAMS ((void));
extern void s390_function_prologue PARAMS ((FILE *, HOST_WIDE_INT));
extern void s390_function_epilogue PARAMS ((FILE *, HOST_WIDE_INT));
extern void s390_emit_prologue PARAMS ((void)); extern void s390_emit_prologue PARAMS ((void));
extern void s390_emit_epilogue PARAMS ((void)); extern void s390_emit_epilogue PARAMS ((void));
extern void s390_function_profiler PARAMS ((FILE *, int)); extern void s390_function_profiler PARAMS ((FILE *, int));
...@@ -72,6 +70,7 @@ extern void s390_trampoline_template PARAMS ((FILE *)); ...@@ -72,6 +70,7 @@ extern void s390_trampoline_template PARAMS ((FILE *));
extern void s390_initialize_trampoline PARAMS ((rtx, rtx, rtx)); extern void s390_initialize_trampoline PARAMS ((rtx, rtx, rtx));
extern rtx s390_gen_rtx_const_DI PARAMS ((int, int)); extern rtx s390_gen_rtx_const_DI PARAMS ((int, int));
extern rtx s390_simplify_dwarf_addr PARAMS ((rtx)); extern rtx s390_simplify_dwarf_addr PARAMS ((rtx));
extern void s390_machine_dependent_reorg PARAMS ((rtx));
#endif /* RTX_CODE */ #endif /* RTX_CODE */
#ifdef TREE_CODE #ifdef TREE_CODE
......
...@@ -94,10 +94,6 @@ extern int target_flags; ...@@ -94,10 +94,6 @@ extern int target_flags;
#define TARGET_IBM_FLOAT 0 #define TARGET_IBM_FLOAT 0
#define TARGET_IEEE_FLOAT 1 #define TARGET_IEEE_FLOAT 1
/* The current function count for create unique internal labels. */
extern int s390_function_count;
/* The amount of space used for outgoing arguments. */ /* The amount of space used for outgoing arguments. */
extern int current_function_outgoing_args_size; extern int current_function_outgoing_args_size;
...@@ -1349,4 +1345,11 @@ extern int s390_pool_overflow; ...@@ -1349,4 +1345,11 @@ extern int s390_pool_overflow;
goto WIN; \ goto WIN; \
} }
/* In rare cases, correct code generation requires extra machine dependent
processing between the second jump optimization pass and delayed branch
scheduling. On those machines, define this macro as a C statement to act on
the code starting at INSN. */
#define MACHINE_DEPENDENT_REORG(INSN) s390_machine_dependent_reorg (INSN)
#endif #endif
...@@ -6228,10 +6228,7 @@ ...@@ -6228,10 +6228,7 @@
compiler doesn't know about it, because the PLT glue compiler doesn't know about it, because the PLT glue
code uses it. In 64-bit, this is not necessary. */ code uses it. In 64-bit, this is not necessary. */
if (plt_call && !TARGET_64BIT) if (plt_call && !TARGET_64BIT)
{ use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx);
current_function_uses_pic_offset_table = 1;
use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx);
}
DONE; DONE;
}") }")
...@@ -6353,10 +6350,7 @@ ...@@ -6353,10 +6350,7 @@
compiler doesn't know about it, because the PLT glue compiler doesn't know about it, because the PLT glue
code uses it. In 64-bit, this is not necessary. */ code uses it. In 64-bit, this is not necessary. */
if (plt_call && !TARGET_64BIT) if (plt_call && !TARGET_64BIT)
{ use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx);
current_function_uses_pic_offset_table = 1;
use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx);
}
DONE; DONE;
}") }")
......
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