aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-02-06 17:25:19 +0000
committerJeff Law <law@gcc.gnu.org>1999-02-06 10:25:19 -0700
commitf15ec016f923608e212ebdbe4d817905bbb4c8ed (patch)
treedeed8a8af9389dfbc100aab13f1c145f1267d3e6
parent8d31fdf4ba7ab6ec4131c56991863348101d00bd (diff)
downloadgcc-f15ec016f923608e212ebdbe4d817905bbb4c8ed.zip
gcc-f15ec016f923608e212ebdbe4d817905bbb4c8ed.tar.gz
gcc-f15ec016f923608e212ebdbe4d817905bbb4c8ed.tar.bz2
* mn10300.md (reload_insi): Do not earlyclobber the output operand.
From-SVN: r25065
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/config/mn10300/mn10300.md4
2 files changed, 4 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0ddb92f..966825a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
Sat Feb 6 18:14:46 1999 Jeffrey A Law (law@cygnus.com)
+ * mn10300.md (reload_insi): Do not earlyclobber the output operand.
+
* README.g77, gcc.c, gcc.texi: Update email addresses.
* invoke.texi system.h: Likewise.
diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md
index d576d21..8e090a3 100644
--- a/gcc/config/mn10300/mn10300.md
+++ b/gcc/config/mn10300/mn10300.md
@@ -155,7 +155,6 @@
{
if (XEXP (operands[1], 0) == stack_pointer_rtx)
{
- emit_move_insn (operands[0], XEXP (operands[1], 0));
if (GET_CODE (XEXP (operands[1], 1)) == SUBREG
&& (GET_MODE_SIZE (GET_MODE (XEXP (operands[1], 1)))
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (XEXP (operands[1], 1))))))
@@ -164,10 +163,10 @@
SUBREG_REG (XEXP (operands[1], 1))));
else
emit_move_insn (operands[2], XEXP (operands[1], 1));
+ emit_move_insn (operands[0], XEXP (operands[1], 0));
}
else
{
- emit_move_insn (operands[0], XEXP (operands[1], 1));
if (GET_CODE (XEXP (operands[1], 0)) == SUBREG
&& (GET_MODE_SIZE (GET_MODE (XEXP (operands[1], 0)))
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (XEXP (operands[1], 0))))))
@@ -176,6 +175,7 @@
SUBREG_REG (XEXP (operands[1], 0))));
else
emit_move_insn (operands[2], XEXP (operands[1], 0));
+ emit_move_insn (operands[0], XEXP (operands[1], 1));
}
emit_insn (gen_addsi3 (operands[0], operands[0], operands[2]));
DONE;