From dc3e17add0fcce3988cd981e161aa983139743e9 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 5 May 1993 17:32:10 -0400 Subject: [PATCH] (num_sign_bit_copies, case SUBREG): Properly compute the number of sign bit copies of SUBREGs of promoted objects. From-SVN: r4341 --- gcc/combine.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/combine.c b/gcc/combine.c index 9e14ea694d1..cd5936d1e9b 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1,5 +1,5 @@ /* Optimize by combining instructions for GNU compiler. - Copyright (C) 1987, 1988, 1992 Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1992, 1993 Free Software Foundation, Inc. This file is part of GNU CC. @@ -6519,8 +6519,8 @@ num_sign_bit_copies (x, mode) high-order bits are known to be sign bit copies. */ if (SUBREG_PROMOTED_VAR_P (x) && ! SUBREG_PROMOTED_UNSIGNED_P (x)) - return (GET_MODE_BITSIZE (mode) - GET_MODE_BITSIZE (GET_MODE (x)) - + num_sign_bit_copies (SUBREG_REG (x), GET_MODE (x))); + return MAX (bitwidth - GET_MODE_BITSIZE (GET_MODE (x)) + 1, + num_sign_bit_copies (SUBREG_REG (x), mode)); /* For a smaller object, just ignore the high bits. */ if (bitwidth <= GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (x)))) -- 2.30.2