s390.c (s390_emit_prologue): Use LA instead of AR to initialize GOT register.
authorUlrich Weigand <uweigand@de.ibm.com>
Thu, 12 Jun 2003 13:47:52 +0000 (13:47 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Thu, 12 Jun 2003 13:47:52 +0000 (13:47 +0000)
* config/s390/s390.c (s390_emit_prologue): Use LA instead of AR
to initialize GOT register.

From-SVN: r67829

gcc/ChangeLog
gcc/config/s390/s390.c

index 87d86d7..ece54b6 100644 (file)
@@ -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
index 43d63da..6b42699 100644 (file)
@@ -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));
        }