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 -~----------~----~----~----~------~----~------~--~---
