Thanks for this fix Nilay.

We agree that the longterm fix for this is stl bitsets right?


On Tue, Jun 14, 2011 at 8:52 PM, Nilay Vaish <[email protected]> wrote:

> changeset f897d0483b06 in /z/repo/gem5
> details: http://repo.gem5.org/gem5?cmd=changeset;node=f897d0483b06
> description:
>        Ruby: Correct set LONG_BITS and INDEX_SHIFT in class Set.
>        The code for Set class was written under the assumption that
>        std::numeric_limits<long>::digits returns the number of bits used
> for
>        data type long, which was presumed to be either 32 or 64. But return
> value
>        is actually one less, that is, it is either 31 or 63. The value is
> now
>        being incremented by 1 so as to correctly set it.
>
> diffstat:
>
>  src/mem/ruby/common/Set.hh |  2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diffs (12 lines):
>
> diff -r 9fb150de362e -r f897d0483b06 src/mem/ruby/common/Set.hh
> --- a/src/mem/ruby/common/Set.hh        Sun Jun 12 23:52:21 2011 -0700
> +++ b/src/mem/ruby/common/Set.hh        Tue Jun 14 19:51:44 2011 -0500
> @@ -54,7 +54,7 @@
>     long *m_p_nArray;      // an word array to hold the bits in the set
>     long m_p_nArray_Static[NUMBER_WORDS_PER_SET];
>
> -    static const int LONG_BITS = std::numeric_limits<long>::digits;
> +    static const int LONG_BITS = std::numeric_limits<long>::digits + 1;
>     static const int INDEX_SHIFT = LONG_BITS == 64 ? 6 : 5;
>     static const int INDEX_MASK = (1 << INDEX_SHIFT) - 1;
>
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev
>



-- 
- Korey
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to