diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb10ffaf24a..053a25ff387 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Fri Apr 24 16:45:03 1998 J"orn Rennecke + + * (gen_shl_and, in case 1): Fix comparison with mask. + Fri Apr 24 06:46:40 1998 Nick Clifton * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow frame diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 6441a41063c..437164c924a 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -1292,7 +1292,7 @@ gen_shl_and (dest, left_rtx, mask_rtx, source) if (first < 0) { - emit_insn ((mask << right) == 0xff + emit_insn ((mask << right) <= 0xff ? gen_zero_extendqisi2(dest, gen_lowpart (QImode, source)) : gen_zero_extendhisi2(dest, @@ -1315,7 +1315,7 @@ gen_shl_and (dest, left_rtx, mask_rtx, source) mask <<= first; } if (first >= 0) - emit_insn (mask == 0xff + emit_insn (mask <= 0xff ? gen_zero_extendqisi2(dest, gen_lowpart (QImode, dest)) : gen_zero_extendhisi2(dest, gen_lowpart (HImode, dest))); if (total_shift > 0)