diff options
author | Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> | 2003-02-14 14:23:48 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-02-14 14:23:48 -0800 |
commit | ce65116b73931409aa6d9ba7ed3e81a686298ba6 (patch) | |
tree | bc83ac912c675b861d2063805a41e52a80ee42e4 /gcc/reload1.c | |
parent | 394a76de7328db70e7511ebb5b271d76e9bac2bf (diff) | |
download | gcc-ce65116b73931409aa6d9ba7ed3e81a686298ba6.zip gcc-ce65116b73931409aa6d9ba7ed3e81a686298ba6.tar.gz gcc-ce65116b73931409aa6d9ba7ed3e81a686298ba6.tar.bz2 |
re PR rtl-optimization/7702 (gcc-3.2 optimization problem on a DEC alpha under OSF1)
PR optimization/7702
* reload1.c (reload_cse_simplify_set): Honor
CANNOT_CHANGE_MODE_CLASS.
From-SVN: r62921
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index e272640..441a447 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -8282,7 +8282,13 @@ reload_cse_simplify_set (set, insn) { #ifdef LOAD_EXTEND_OP if (GET_MODE_BITSIZE (GET_MODE (SET_DEST (set))) < BITS_PER_WORD - && extend_op != NIL) + && extend_op != NIL +#ifdef CANNOT_CHANGE_MODE_CLASS + && !CANNOT_CHANGE_MODE_CLASS (GET_MODE (SET_DEST (set)), + word_mode, + REGNO_REG_CLASS (REGNO (SET_DEST (set)))) +#endif + ) { rtx wide_dest = gen_rtx_REG (word_mode, REGNO (SET_DEST (set))); ORIGINAL_REGNO (wide_dest) = ORIGINAL_REGNO (SET_DEST (set)); |