From: Jim Wilson Date: Tue, 28 Sep 1993 23:00:13 +0000 (-0700) Subject: (force_to_mode, LSHIFTRT case): Avoid shifts larger X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1347292b885d50b86ca6eb5abe9583eac53911e5;p=gcc.git (force_to_mode, LSHIFTRT case): Avoid shifts larger than HOST_BITS_PER_WIDE_INT. From-SVN: r5516 --- diff --git a/gcc/combine.c b/gcc/combine.c index d6ce0348a4f..45d572a7add 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -5771,10 +5771,12 @@ force_to_mode (x, mode, mask, reg) break; case LSHIFTRT: - /* Here we can only do something if the shift count is a constant and - we can do arithmetic in OP_MODE. */ + /* Here we can only do something if the shift count is a constant, + this shift constant is valid for the host, and we can do arithmetic + in OP_MODE. */ if (GET_CODE (XEXP (x, 1)) == CONST_INT + && INTVAL (XEXP (x, 1)) < HOST_BITS_PER_WIDE_INT && GET_MODE_BITSIZE (op_mode) <= HOST_BITS_PER_WIDE_INT) { rtx inner = XEXP (x, 0);