diff options
| author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-16 23:33:51 +0000 |
|---|---|---|
| committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-16 23:33:51 +0000 |
| commit | 3220d3c5425cfd41eec74046cbc72e780df35fa3 (patch) | |
| tree | e3ffdcf8b285a07768bf399be78316a46a82390c /gcc/expr.c | |
| parent | 8dfacec03f29db8ac452f3111e874bb882975a87 (diff) | |
| download | ppe42-gcc-3220d3c5425cfd41eec74046cbc72e780df35fa3.tar.gz ppe42-gcc-3220d3c5425cfd41eec74046cbc72e780df35fa3.zip | |
PR middle-end/25474
* expr.c (compress_float_constant): Copy the narrow constant into
a new pseudo before extending it to its final width.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112991 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
| -rw-r--r-- | gcc/expr.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index 8d2839f8d6d..b0e958c23b6 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -3346,7 +3346,11 @@ compress_float_constant (rtx x, rtx y) } else continue; - + + /* For CSE's benefit, force the compressed constant pool entry + into a new pseudo. This constant may be used in different modes, + and if not, combine will put things back together for us. */ + trunc_y = force_reg (srcmode, trunc_y); emit_unop_insn (ic, x, trunc_y, UNKNOWN); last_insn = get_last_insn (); |

