Performance is approx. the same (~0.2% increase on V8 benchmark suite).
http://codereview.chromium.org/196077/diff/1/5 File src/x64/builtins-x64.cc (right): http://codereview.chromium.org/196077/diff/1/5#newcode358 Line 358: __ PositiveSmiTimesPowerOfTwoToInteger64(rdx, rdx, kPointerSizeLog2); It should not assume anything except that rdx contains a positive smi. If any code above makes assumptions on the representation of a smi, it should be changed. This should be __PositiveSmi...er64(rdx, rax, ...) and omit the mov before. http://codereview.chromium.org/196077/diff/1/6 File src/x64/codegen-x64.cc (right): http://codereview.chromium.org/196077/diff/1/6#newcode727 Line 727: Condition is_smi = masm_->CheckSmi(receiver.reg()); I thought about inlining the CheckSmi call in the branch, but didn't like to have an argument computation with side effects (it emits code). I have avoided extending JumpTarget, but it would make sense to have a few frequently used branch types directly on the JumpTarget (and perhaps on deferred code too). http://codereview.chromium.org/196077/diff/1/6#newcode5390 Line 5390: __ SmiShiftLogicRightConstant(answer.reg(), Will rename LogicRight into LogicalRight. http://codereview.chromium.org/196077 --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---