pa.c (emit_move_sequence): When making a reference to the data space before reload...
authorJeff Law <law@gcc.gnu.org>
Thu, 1 Oct 1992 17:03:46 +0000 (11:03 -0600)
committerJeff Law <law@gcc.gnu.org>
Thu, 1 Oct 1992 17:03:46 +0000 (11:03 -0600)
* pa.c (emit_move_sequence): When making a reference to the data
space before reload, emit an insn sequence which is much more
likely to create "addil" instructions rather than "ldil; add"
sequences.  Doing so greatly reduces the chance of running into a
HPUX linker bug when compiling kernels.

From-SVN: r2296

gcc/config/pa/pa.c

index f723542eb956fa94dbbc855bbe6184befb8a846e..7f34d807c544ed99b6be93951387ba277ee95f8c 100644 (file)
@@ -665,10 +665,12 @@ emit_move_sequence (operands, mode)
                }
              else
                {
-                 rtx temp1 = gen_reg_rtx (mode), temp2 = gen_reg_rtx (mode);
+                 rtx temp1, temp2 = gen_reg_rtx (mode);
 
-                 emit_insn (gen_rtx (SET, VOIDmode,
-                                     temp1, gen_rtx (HIGH, mode, operand1)));
+                 /* For 2.4 we could set RTX_UNCHANGING and add a 
+                    REG_EQUAL note for the first insn.  This would 
+                    allow the first insn to be moved out of loops.  */
+                 temp1 = gen_rtx (HIGH, mode, operand1);
                  emit_insn (gen_rtx (SET, VOIDmode,
                                      temp2,
                                      gen_rtx (PLUS, mode,