From 1cc277aa11338da1cf3e307aaa48102e6f777e22 Mon Sep 17 00:00:00 2001
From: uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 12 Jun 2003 13:47:52 +0000
Subject: [PATCH] 	* config/s390/s390.c (s390_emit_prologue): Use LA
 instead of AR 	to initialize GOT register.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67829 138bc75d-0d04-0410-961f-82ee72b054a4
---
 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 87d86d7217d5..ece54b6447c8 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 43d63dab8a6a..6b42699bc202 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));
 	}
-- 
GitLab