From 2bf29316da96818c2db73220318bce5679431c98 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Fri, 24 Dec 1993 12:20:44 -0800 Subject: [PATCH] (convert_modes): Can't truncate REG with gen_lowpart if TRULY_NOOP_TRUNCATION doesn't allow it. From-SVN: r6306 --- gcc/expr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 -- 2.30.2