From: Matthias Braun Date: Mon, 10 Dec 2007 12:38:46 +0000 (+0000) Subject: fix sc_sub_bits with non 8*x bitsizes X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=80c11f310875b5129a68db981a6d6b6c5c3996cb;p=libfirm fix sc_sub_bits with non 8*x bitsizes [r16929] --- diff --git a/ir/tv/strcalc.c b/ir/tv/strcalc.c index 47c947570..06dd22c47 100644 --- a/ir/tv/strcalc.c +++ b/ir/tv/strcalc.c @@ -1309,8 +1309,8 @@ unsigned char sc_sub_bits(const void *value, int len, unsigned byte_ofs) { res |= _val(val[nibble_ofs + 1]) << 4; /* kick bits outsize */ - if (len < (int) (8*byte_ofs)) { - res &= 0xFF >> (8*byte_ofs - len); + if (len - 8 * byte_ofs < 8) { + res &= (1 << (len - 8 * byte_ofs)) - 1; } return res; }