Commit 1347292b by Jim Wilson

(force_to_mode, LSHIFTRT case): Avoid shifts larger

than HOST_BITS_PER_WIDE_INT.

From-SVN: r5516
parent b5e96255
...@@ -5771,10 +5771,12 @@ force_to_mode (x, mode, mask, reg) ...@@ -5771,10 +5771,12 @@ force_to_mode (x, mode, mask, reg)
break; break;
case LSHIFTRT: case LSHIFTRT:
/* Here we can only do something if the shift count is a constant and /* Here we can only do something if the shift count is a constant,
we can do arithmetic in OP_MODE. */ this shift constant is valid for the host, and we can do arithmetic
in OP_MODE. */
if (GET_CODE (XEXP (x, 1)) == CONST_INT 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) && GET_MODE_BITSIZE (op_mode) <= HOST_BITS_PER_WIDE_INT)
{ {
rtx inner = XEXP (x, 0); rtx inner = XEXP (x, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment