Please look at the changes to the macro assembler once more.

http://codereview.chromium.org/209048/diff/4002/4005
File src/x64/macro-assembler-x64.cc (right):

http://codereview.chromium.org/209048/diff/4002/4005#newcode525
Line 525: if (Smi::IsValid(constant)) {
On 2009/09/23 07:41:53, Lasse Reichstein wrote:
> Drop the IsValid test, or change it to an ASSERT (you can be greater
than a
> non-valid smi, so unlike SmiEqualsConstant, it doesn't rule out that
the test
> should succeede).

Added a jump if non-smi range constant if below minimum smi.

http://codereview.chromium.org/209048/diff/4002/4005#newcode526
Line 526: Condition are_greater_equal = CheckSmiEqualsConstant(src,
constant);
On 2009/09/23 07:41:53, Lasse Reichstein wrote:
> This doesn't work. SmiEqualsConstant only checks for equality (as far
as you can
> assume).
> Do the test inline (there is currently no smi compare, but there will
be
> eventually), so:
>    cmpl(src, constant << kSmiTagSize);
>    j(greater_equal, on_greater_equals);

That was supposed to use the CheckSmiGreaterEqualsConstant below - which
it does now. Should we keep the CheckSmiGreaterEqualsConstant or just
linine the code here?

http://codereview.chromium.org/209048

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to