From: Jeffrey A Law Date: Thu, 13 Jan 2000 09:36:29 +0000 (+0000) Subject: combine.c (if_then_else_cond): Be careful about what kinds of RTL expressions are... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=668bcf76c4001dcb54013ef416bf7ced08c3da48;p=gcc.git combine.c (if_then_else_cond): Be careful about what kinds of RTL expressions are passed to operand_subword. * combine.c (if_then_else_cond): Be careful about what kinds of RTL expressions are passed to operand_subword. From-SVN: r31383 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e33b563511..c5471bce8c3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com) + * combine.c (if_then_else_cond): Be careful about what kinds + of RTL expressions are passed to operand_subword. + * flow.c (split_edge): If we have to insert a new jump, make sure to associate it with a basic block. diff --git a/gcc/combine.c b/gcc/combine.c index 484d6871a85..97ec1821989 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -7216,7 +7216,10 @@ if_then_else_cond (x, ptrue, pfalse) && 0 != (cond0 = if_then_else_cond (SUBREG_REG (x), &true0, &false0))) { - if (GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) > UNITS_PER_WORD + if ((GET_CODE (SUBREG_REG (x)) == REG + || GET_CODE (SUBREG_REG (x)) == MEM + || CONSTANT_P (SUBREG_REG (x))) + && GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) > UNITS_PER_WORD && (WORDS_BIG_ENDIAN || SUBREG_WORD (x) != 0)) { true0 = operand_subword (true0, SUBREG_WORD (x), 0, mode);