Minor correction: 31-bit tagged _signed_ integers are used on ia32, on
x64 you get 32-bit tagged _signed_ integers. Neither though are wide
enough to contain all values from unsigned 32-bit integer range.
Thus if you are really using them as 32bit _unsigned_ integers, e.g.
you are doing something like:
var a = (b ^ c) >>> 0; // force into uint32 and then use in
non-int32-truncating manner.
then unfortunately even V8's optimizing compiler gets confused. It
does not have designated uint32 representation and does not try to
infer when int32 can be safely used instead of uint32 (another example
of this bug:
http://code.google.com/p/v8/issues/detail?id=2097).
I suggest you post your code here if possible so that we could take a look.
--
Vyacheslav Egorov
> --
> v8-users mailing list
>
v8-u...@googlegroups.com
>
http://groups.google.com/group/v8-users