]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end of the sequences...
authorJeffrey A Law <law@cygnus.com>
Thu, 29 Oct 1998 17:18:07 +0000 (17:18 +0000)
committerJeff Law <law@gcc.gnu.org>
Thu, 29 Oct 1998 17:18:07 +0000 (10:18 -0700)
        * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
        of the sequences to reload the HILO register which do not actually
        reference HILO.

From-SVN: r23430

gcc/ChangeLog
gcc/config/mips/mips.md

index 9670a1be0a32a64a73020036cdc9574c3d73c96b..b67825de419f17efb48b314179273eb4c079347a 100644 (file)
@@ -1,3 +1,9 @@
+Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
+       of the sequences to reload the HILO register which do not actually
+       reference HILO.
+
 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
 
        * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
index 18d4a76c3034982b4a917fb90cacb034daf68151..847c5fb3ddbf7113bad55df8acbc3d75a563f808 100644 (file)
@@ -4803,6 +4803,7 @@ move\\t%0,%z4\\n\\
          emit_move_insn (gen_rtx (REG, SImode, 64), scratch);
          emit_move_insn (scratch, loword);
          emit_move_insn (gen_rtx (REG, SImode, 65), scratch);
+          emit_insn (gen_rtx_USE (VOIDmode, operands[0]));
        }
       else
        {
@@ -4811,6 +4812,7 @@ move\\t%0,%z4\\n\\
          emit_insn (gen_ashldi3 (scratch, operands[1], GEN_INT (32)));
          emit_insn (gen_ashrdi3 (scratch, scratch, GEN_INT (32)));
          emit_insn (gen_movdi (gen_rtx (REG, DImode, 65), scratch));
+          emit_insn (gen_rtx_USE (VOIDmode, operands[0]));
        }
       DONE;
     }
@@ -4822,6 +4824,7 @@ move\\t%0,%z4\\n\\
       emit_insn (gen_movdi (operands[0], gen_rtx (REG, DImode, 64)));
       emit_insn (gen_ashldi3 (operands[0], operands[0], GEN_INT (32)));
       emit_insn (gen_iordi3 (operands[0], operands[0], scratch));
+      emit_insn (gen_rtx_USE (VOIDmode, operands[1]));
       DONE;
     }
   /* This handles moves between a float register and HI/LO.  */
@@ -4851,6 +4854,7 @@ move\\t%0,%z4\\n\\
       emit_insn (gen_ashldi3 (scratch, operands[1], GEN_INT (32)));
       emit_insn (gen_ashrdi3 (scratch, scratch, GEN_INT (32)));
       emit_insn (gen_movdi (gen_rtx (REG, DImode, 65), scratch));
+      emit_insn (gen_rtx_USE (VOIDmode, operands[0]));
       DONE;
     }
   if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) == HILO_REGNUM)
@@ -4879,6 +4883,7 @@ move\\t%0,%z4\\n\\
          emit_move_insn (hiword, scratch);
          emit_move_insn (scratch, gen_rtx (REG, SImode, 65));
          emit_move_insn (loword, scratch);
+         emit_insn (gen_rtx_USE (VOIDmode, operands[1]));
        }
       else if (TARGET_MIPS16 && ! M16_REG_P (REGNO (operands[0])))
        {
@@ -4893,6 +4898,7 @@ move\\t%0,%z4\\n\\
          emit_insn (gen_ashldi3 (scratch2, scratch2, GEN_INT (32)));
          emit_insn (gen_iordi3 (scratch, scratch, scratch2));
          emit_insn (gen_movdi (operands[0], scratch));
+         emit_insn (gen_rtx_USE (VOIDmode, operands[1]));
        }
       else
        {
@@ -4902,6 +4908,7 @@ move\\t%0,%z4\\n\\
          emit_insn (gen_movdi (operands[0], gen_rtx (REG, DImode, 64)));
          emit_insn (gen_ashldi3 (operands[0], operands[0], GEN_INT (32)));
          emit_insn (gen_iordi3 (operands[0], operands[0], scratch));
+         emit_insn (gen_rtx_USE (VOIDmode, operands[1]));
        }
       DONE;
     }
@@ -5225,6 +5232,7 @@ move\\t%0,%z4\\n\\
       emit_insn (gen_movsi (gen_rtx (REG, SImode, 65), operands[1]));
       emit_insn (gen_ashrsi3 (operands[2], operands[1], GEN_INT (31)));
       emit_insn (gen_movsi (gen_rtx (REG, SImode, 64), operands[2]));
+      emit_insn (gen_rtx_USE (VOIDmode, operands[0]));
       DONE;
     }
   /* Use a mult to reload LO on mips16.  ??? This is hideous.  */