* config/s390/s390-protos.h (s390_load_got): Update prototype.
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 27 Jun 2004 15:31:53 +0000 (15:31 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 27 Jun 2004 15:31:53 +0000 (15:31 +0000)
commit20074f87151a22f1b419a7c02661a1709f2344fb
treee2fca769f59904c06f359a977016ccbfe57c6045
parentcba48a36a4c761c3d00cc801ad3356c6a5c2a8f2
* config/s390/s390-protos.h (s390_load_got): Update prototype.
* config/s390/s390.c (struct machine_function): Add member base_reg.
(s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
(s390_split_branches): Annotate late pool references.
(annotate_constant_pool_refs): New function.
(find_constant_pool_ref): Work on annotated pool references.
(replace_constant_pool_ref): Likewise.  Use explicit base.
(replace_ltrel_base): Use explicit base.
(s390_mainpool_start): Reflect main_pool pattern change.
(s390_mainpool_finish): Use base register from main_pool.
Update calls to replace_ltrel_base and replace_constant_pool_ref.
(s390_chunkify_start): Use base_reg from struct machine_function.
(s390_chunkify_finish): Remove base_reg argument.  Update calls
to replace_ltrel_base and replace_constant_pool_ref.
(s390_reorg): Don't decide upon base register.  Update calls.
(s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
but return sequence instead.
(s390_emit_prologue): Decide upon base register to use.  Annotate
all literal pool references.  Adapt to main_pool pattern change.
Update s390_load_got call; move MAYBE_DEAD handling here.
(s390_emit_epilogue): Annotate late literal pool references.
Remove barrier before register restore instruction.
* config/s390/s390.md (UNSPEC_LTREF): New constant.
("builtin_setjmp_receiver"): Update s390_load_got call.
("main_pool"): Explicitly reference base register.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83735 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/s390/s390-protos.h
gcc/config/s390/s390.c
gcc/config/s390/s390.md