diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-10-29 17:18:07 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-10-29 10:18:07 -0700 |
commit | 839366ddec3534593850e1660ead262a8a260158 (patch) | |
tree | 2495469f2ea50e61a6bcc1f505aadd7160321678 /gcc | |
parent | 60049c8def3e6e834f5cfaf9c0ff6de2e6e083b8 (diff) | |
download | gcc-839366ddec3534593850e1660ead262a8a260158.zip gcc-839366ddec3534593850e1660ead262a8a260158.tar.gz gcc-839366ddec3534593850e1660ead262a8a260158.tar.bz2 |
mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end of the sequences to reload the HILO register...
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/mips/mips.md | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9670a1b..b67825d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 18d4a76..847c5fb 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -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. */ |