summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-05-29 00:50:16 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-05-29 00:50:16 +0000
commitce8a8c795f3c5afd4f319258a24234ebaa43d034 (patch)
tree2b4baed9c1988440f8c4b3cd91c6a5e0413e63d2
parenta6cddc624fb52b9455aa4878bb3d63b6f97f3a8f (diff)
downloadgcc-ce8a8c795f3c5afd4f319258a24234ebaa43d034.tar.gz
* gcse.c (pre_delete): Fix code to determine the mode of
the reaching pseudo register. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20134 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/gcse.c12
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b29b6c0abc6..85dad03ca40 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Fri May 29 01:48:25 1998 Jeffrey A Law (law@cygnus.com)
+
+ * gcse.c (pre_delete): Fix code to determine the mode of
+ the reaching pseudo register.
+
Fri May 29 01:07:28 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* Makefile.in (GEN): Add gencheck
diff --git a/gcc/gcse.c b/gcc/gcse.c
index abfc1d14bcd..2c6a9d1d99e 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -4548,15 +4548,17 @@ pre_delete ()
if (TEST_BIT (ppin, indx))
{
- /* Create a pseudo-reg to store the result of reaching
- expressions into. */
- if (expr->reaching_reg == NULL)
- expr->reaching_reg = gen_reg_rtx (GET_MODE (expr->expr));
-
set = single_set (insn);
if (! set)
abort ();
+ /* Create a pseudo-reg to store the result of reaching
+ expressions into. Get the mode for the new pseudo
+ from the mode of the original destination pseudo. */
+ if (expr->reaching_reg == NULL)
+ expr->reaching_reg
+ = gen_reg_rtx (GET_MODE (SET_DEST (set)));
+
/* In theory this should never fail since we're creating
a reg->reg copy.