diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2003-06-12 13:47:52 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2003-06-12 13:47:52 +0000 |
commit | 109480b1c5e848f7411da6caad8dad560e66d13a (patch) | |
tree | 042fd94d21a132bb5ad0934ec711aae6139fc996 | |
parent | f7df23be90f2f2d73234546a192271007c29d5cc (diff) | |
download | gcc-109480b1c5e848f7411da6caad8dad560e66d13a.zip gcc-109480b1c5e848f7411da6caad8dad560e66d13a.tar.gz gcc-109480b1c5e848f7411da6caad8dad560e66d13a.tar.bz2 |
s390.c (s390_emit_prologue): Use LA instead of AR to initialize GOT register.
* config/s390/s390.c (s390_emit_prologue): Use LA instead of AR
to initialize GOT register.
From-SVN: r67829
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/s390/s390.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87d86d7..ece54b6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-06-12 Ulrich Weigand <uweigand@de.ibm.com> + + * config/s390/s390.c (s390_emit_prologue): Use LA instead of AR + to initialize GOT register. + 2003-06-12 Roger Sayle <roger@eyesopen.com> * fold-const.c (tree_expr_nonnegative_p): Add support for diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 43d63da..6b42699 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -5497,8 +5497,10 @@ s390_emit_prologue () REG_NOTES(insn) = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD, NULL_RTX, REG_NOTES (insn)); - insn = emit_insn (gen_add2_insn (pic_offset_table_rtx, - gen_rtx_REG (Pmode, BASE_REGISTER))); + got_symbol = gen_rtx_REG (Pmode, BASE_REGISTER); + got_symbol = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, got_symbol), 101); + got_symbol = gen_rtx_PLUS (Pmode, got_symbol, pic_offset_table_rtx); + insn = emit_move_insn (pic_offset_table_rtx, got_symbol); REG_NOTES(insn) = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD, NULL_RTX, REG_NOTES (insn)); } |