From: Ali Saidi Date: Wed, 9 May 2007 16:01:31 +0000 (-0400) Subject: bit_val was being used directly in the statement in return. If type B had fewer bits... X-Git-Tag: m5_2.0_beta3~4^2~4^2^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ee70d8cfc430e38b84945e8b9ea870585b98f87c;p=gem5.git bit_val was being used directly in the statement in return. If type B had fewer bits than last, bit_val << last would get the wrong answer. src/base/bitfield.hh: bit_val was being used directly in the statement in return. If type B had fewer bits than last, bit_val << last would get the wrong answer. --HG-- extra : convert_revision : cbc43ccd139f82ebbd65f30af5d05b87c4edac64 --- diff --git a/src/base/bitfield.hh b/src/base/bitfield.hh index 69cce2245..518bad6b8 100644 --- a/src/base/bitfield.hh +++ b/src/base/bitfield.hh @@ -96,8 +96,9 @@ inline T insertBits(T val, int first, int last, B bit_val) { + T t_bit_val = bit_val; T bmask = mask(first - last + 1) << last; - return ((bit_val << last) & bmask) | (val & ~bmask); + return ((t_bit_val << last) & bmask) | (val & ~bmask); } /**