From 109480b1c5e848f7411da6caad8dad560e66d13a Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Thu, 12 Jun 2003 13:47:52 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/s390/s390.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87d86d7217d..ece54b6447c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-06-12 Ulrich Weigand + + * config/s390/s390.c (s390_emit_prologue): Use LA instead of AR + to initialize GOT register. + 2003-06-12 Roger Sayle * 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 43d63dab8a6..6b42699bc20 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)); } -- 2.30.2