diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-05-29 00:50:16 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-05-29 00:50:16 +0000 |
commit | ce8a8c795f3c5afd4f319258a24234ebaa43d034 (patch) | |
tree | 2b4baed9c1988440f8c4b3cd91c6a5e0413e63d2 /gcc/gcse.c | |
parent | a6cddc624fb52b9455aa4878bb3d63b6f97f3a8f (diff) | |
download | gcc-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
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r-- | gcc/gcse.c | 12 |
1 files changed, 7 insertions, 5 deletions
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. |