s390.c (struct machine_function): Remove member literal_pool_label.
authorUlrich Weigand <uweigand@de.ibm.com>
Wed, 27 Aug 2003 18:50:37 +0000 (18:50 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Wed, 27 Aug 2003 18:50:37 +0000 (18:50 +0000)
commit5af2f3d3ff87a08c4292f6dcbf60a6d1b7039e6c
treee9a0c8f1f0cae9c87fa0998db829f25c9f9eca97
parent031b59ce354bedebe9ecd57e90be14026ba77523
s390.c (struct machine_function): Remove member literal_pool_label.

* config/s390/s390.c (struct machine_function): Remove member
literal_pool_label.
(s390_optimize_prolog): Replace TEMP_REG argument with
TEMP_USED and BASE_USED.  Do not check get_pool_size ().
(general_s_operand): Accept all immediates before reload if
ALLOW_IMMEDIATE.  If not ALLOW_IMMEDIATE, reject literal pool
references.
(s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling.
(find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns.
(s390_alloc_pool): New function.
(s390_new_pool): Call it.
(s390_dump_pool): Add REMOTE_LABEL argument.
(s390_chunkify_start): Add BASE_REG argument.  Do not check
get_pool_size ().
(s390_chunkify_finish): Add BASE_REG argument.  Adapt
s390_dump_pool call.
(s390_pool_count, s390_nr_constants): Remove.
(s390_output_constant_pool): Remove.
(s390_mainpool_start): New function.
(s390_mainpool_finish): New function.
(s390_mainpool_cancel): New function.
(s390_reorg): Implement main literal pool handling.
(s390_emit_prologue): Emit main_pool placeholder instead of
literal_pool_31 / literal_pool_64 insns.
* config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove.
(ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove.
* config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant.
("main_base_31_small", "main_base_31_large"): New insns.
("main_base_64",  "main_pool"): New insns.
("literal_pool_31", "literal_pool_64"): Remove.

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