[Vm-dev] [commit] r2463 - CogVM source as per
VMMaker.oscog-eem.105. Fix signed32BitValueOf for most neg-
David T. Lewis
lewis at mail.msen.com
Mon Jul 25 21:25:28 UTC 2011
On Mon, Jul 25, 2011 at 02:01:31PM -0700, Eliot Miranda wrote:
>
> Hi David,
>
> >
> > The issue does not exist in VMMaker trunk, which uses a simpler and
> > presumably faster implementation.
>
> Alas, no, it still exists. The expression 0 - value is still undefined for
> overflow (i.e. undefined for max neg int) and hence, depending on compiler,
> the following statement value >= 0 may be assumed to be always true. This
> is the case for the intel compiler that we used at Qwaq/Teleplace, and is
> the reason I made the change in the first place. So yes, one does need the
> shift expression to be able to rely on different compilers generating
> correct code in this edge case.
Thanks Eliot.
Dave
More information about the Vm-dev
mailing list