On 2014/09/18 14:11:01, Weiliang wrote:

https://codereview.chromium.org/582713002/diff/1/src/compiler/ia32/code-generator-ia32.cc
File src/compiler/ia32/code-generator-ia32.cc (right):


https://codereview.chromium.org/582713002/diff/1/src/compiler/ia32/code-generator-ia32.cc#newcode310
src/compiler/ia32/code-generator-ia32.cc:310: __ j(not_carry, &done,
Label::kNear);
On 2014/09/18 14:03:06, titzer wrote:
> What does this extra condition here check?
>
> Note that this the implementation of ChangeFloat64ToUint32, which explicitly
> assumes that all of its inputs lie in the range [0...2^32-1] and are
integers.

cvttsd2si truncates the result by rounding toward zero. So when changing the range from [0...2^32-1] to [-2^31, 2^31-1], we need to compensate the result.

Well, i don't see your comment quite clearly.

If the input lies in the range [0...2^32-1] and are integers, the check is
redundant I think.(So the test case should be re-written to only feed integers.)
But could you please share where does such explicit assumption come from?

Thanks
-Weiliang

https://codereview.chromium.org/582713002/

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to