From 2ab0a5c41c7ae40cf1ae3bc172c1daebbec43643 Mon Sep 17 00:00:00 2001 From: Torbjorn Granlund Date: Sat, 12 Feb 1994 12:40:58 +0000 Subject: [PATCH] (expand_shift): Truncate immediate count if SHIFT_COUNT_TRUNCATED. From-SVN: r6538 --- gcc/expmed.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gcc/expmed.c b/gcc/expmed.c index ccf130e5672..a4eea006417 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -1602,6 +1602,14 @@ expand_shift (code, mode, shifted, amount, target, unsignedp) op1 = expand_expr (amount, NULL_RTX, VOIDmode, 0); +#if SHIFT_COUNT_TRUNCATED + if (SHIFT_COUNT_TRUNCATED + && GET_CODE (op1) == CONST_INT + && (unsigned HOST_WIDE_INT) INTVAL (op1) >= GET_MODE_BITSIZE (mode)) + op1 = GEN_INT ((unsigned HOST_WIDE_INT) INTVAL (op1) + % GET_MODE_BITSIZE (mode)); +#endif + if (op1 == const0_rtx) return shifted; -- 2.30.2