From: Jeffrey A Law Date: Thu, 15 Mar 2001 19:55:43 +0000 (+0000) Subject: reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not "widen" a destination... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b216e516b8d9c93d229d6a66cde700ef77263ad7;p=gcc.git reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not "widen" a destination that is already wider than a word. * reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not "widen" a destination that is already wider than a word. Also do not widen if LOAD_EXTEND_OP is NIL for the given mode. From-SVN: r40510 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3ae6198497e..086126495b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Thu Mar 15 12:57:14 2001 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not + "widen" a destination that is already wider than a word. Also do + not widen if LOAD_EXTEND_OP is NIL for the given mode. + 2001-03-15 Bernd Schmidt * config/ia64/ia64.c (ia64_sched_reorder): Remove debugging aids. diff --git a/gcc/reload1.c b/gcc/reload1.c index 2f64c2d7d4a..39d1cc3383c 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -8279,9 +8279,13 @@ reload_cse_simplify_set (set, insn) && GET_CODE (SET_SRC (set)) != REG)) { #ifdef LOAD_EXTEND_OP - rtx wide_dest = gen_rtx_REG (word_mode, REGNO (SET_DEST (set))); - ORIGINAL_REGNO (wide_dest) = ORIGINAL_REGNO (SET_DEST (set)); - validate_change (insn, &SET_DEST (set), wide_dest, 1); + if (GET_MODE_BITSIZE (GET_MODE (SET_DEST (set))) < BITS_PER_WORD + && extend_op != NIL) + { + rtx wide_dest = gen_rtx_REG (word_mode, REGNO (SET_DEST (set))); + ORIGINAL_REGNO (wide_dest) = ORIGINAL_REGNO (SET_DEST (set)); + validate_change (insn, &SET_DEST (set), wide_dest, 1); + } #endif validate_change (insn, &SET_SRC (set), copy_rtx (this_rtx), 1);