From: Richard Kenner Date: Fri, 13 Jan 1995 23:43:36 +0000 (-0500) Subject: (optimize_bit_field): Don't remove a SUBREG that changes mode class. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4013a709018d4579b052a7a19322b2e969aa96a9;p=gcc.git (optimize_bit_field): Don't remove a SUBREG that changes mode class. From-SVN: r8744 --- diff --git a/gcc/function.c b/gcc/function.c index 884cca70ff2..73f59dab4e7 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1,5 +1,5 @@ /* Expands front end tree to back end RTL for GNU C-Compiler - Copyright (C) 1987, 88, 89, 91, 92, 93, 1994 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 89, 91-94, 1995 Free Software Foundation, Inc. This file is part of GNU CC. @@ -2318,7 +2318,9 @@ optimize_bit_field (body, insn, equiv_mem) rtx dest = SET_DEST (body); while (GET_CODE (dest) == SUBREG - && SUBREG_WORD (dest) == 0) + && SUBREG_WORD (dest) == 0 + && (GET_MODE_CLASS (GET_MODE (dest)) + == GET_MODE_CLASS (GET_MODE (SUBREG_REG (dest))))) dest = SUBREG_REG (dest); validate_change (insn, &SET_DEST (body), dest, 1);