]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/s390/s390.md
s390.c (s390_split_branches): Add return value.
authorUlrich Weigand <uweigand@de.ibm.com>
Tue, 15 Oct 2002 16:27:34 +0000 (16:27 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Tue, 15 Oct 2002 16:27:34 +0000 (16:27 +0000)
commitaee4e0dbfa31eabba0faf4f5a6d7b04373d9914c
tree70e672c489b3c41dbcbaf66481eef5c6e83c2942
parent6742d92b7f8742b0ac8bc860d5ed4e809a2f901b
s390.c (s390_split_branches): Add return value.

* config/s390/s390.c (s390_split_branches): Add return
value.  Add parameters TEMP_REG and TEMP_USED.  Use unspec 104.

(find_base_register_in_addr): New function.
(find_base_register_ref): New function.
(replace_base_register_ref): New function.

(struct constant_pool): Add members pool_insn, insns, and anchor.
Remove member last_insn.
(s390_start_pool): Initialize them.
(s390_end_pool): Emit pool placeholder insn.
(s390_add_pool_insn): New function.
(s390_find_pool): Use insns bitmap instead of addresses.
(s390_dump_pool): Replace placeholder insn.  Emit anchor.
Replace unspec 104 by local-pool-relative references.
(s390_output_constant_pool): Output anchor label if required.
(s390_output_symbolic_const): Handle unspec 104 and 105.
(s390_add_pool): Remove, replace by ...
(s390_add_constant, s390_find_constant): ... these new functions.
(s390_add_anchor): New function.

(s390_chunkify_pool): Delete, replace by ...
(s390_chunkify_start, s390_chunkify_finish,
s390_chunkify_cancel): ... these new functions.
(s390_optimize_prolog): Add parameter TEMP_REGNO.
Recompute register live data for special registers.
(s390_fixup_clobbered_return_reg): New function.
(s390_machine_dependent_reorg): Rewrite to use new
s390_chunkify_... routines.

config/s390/s390.md ("reload_base"): Rename to ...
("reload_base_31"): ... this.
("reload_base_64"): New insn.
("reload_base2"): Remove.
("reload_anchor"): New insn.
("pool"): New insn.

s390.c (s390_pool_overflow): Remove.
s390.h (s390_pool_overflow): Likewise.
s390.md ("cjump", "icjump", "doloop_si"): Remove s390_pool_overflow.

From-SVN: r58168
gcc/ChangeLog
gcc/config/s390/s390.c
gcc/config/s390/s390.h
gcc/config/s390/s390.md