From: Jim Wilson Date: Fri, 24 Dec 1993 20:20:44 +0000 (-0800) Subject: (convert_modes): Can't truncate REG with gen_lowpart if X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2bf29316da96818c2db73220318bce5679431c98;p=gcc.git (convert_modes): Can't truncate REG with gen_lowpart if TRULY_NOOP_TRUNCATION doesn't allow it. From-SVN: r6306 --- diff --git a/gcc/expr.c b/gcc/expr.c index ed9f6eb2882..f31ad280385 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -1223,7 +1223,9 @@ convert_modes (mode, oldmode, x, unsignedp) || (GET_MODE_SIZE (mode) <= GET_MODE_SIZE (oldmode) && ((GET_CODE (x) == MEM && ! MEM_VOLATILE_P (x) && direct_load[(int) mode]) - || GET_CODE (x) == REG))))) + || (GET_CODE (x) == REG + && TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (mode), + GET_MODE_BITSIZE (GET_MODE (x))))))))) { /* ?? If we don't know OLDMODE, we have to assume here that X does not need sign- or zero-extension. This may not be