http://codereview.chromium.org/6374002/diff/1/src/x64/code-stubs-x64.cc File src/x64/code-stubs-x64.cc (right):
http://codereview.chromium.org/6374002/diff/1/src/x64/code-stubs-x64.cc#newcode4333 src/x64/code-stubs-x64.cc:4333: __ sbbl(rax, rcx); // Subtract one if below (aka. carry set). Done. Well spotted. http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc File src/x64/lithium-codegen-x64.cc (right): http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc#newcode1035 src/x64/lithium-codegen-x64.cc:1035: inline Condition LCodeGen::TokenToCondition(Token::Value op, bool is_unsigned) { It's only used in this file, so it's declared here. http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc#newcode1066 src/x64/lithium-codegen-x64.cc:1066: __ Cmp(ToRegister(left), ToHandle(LConstantOperand::cast(right))); I probably should. We know that the constant is a 32-bit value at this point. Done. http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc#newcode1279 src/x64/lithium-codegen-x64.cc:1279: Register temp = ToRegister(instr->TempAt(0)); It should be safe. We only use it as scratch register for CmpObjectType, and kScratchRegister can be used there. http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc#newcode1344 src/x64/lithium-codegen-x64.cc:1344: __ CmpObjectType(temp, JS_FUNCTION_TYPE, temp2); We can, but the current implementation uses the fact that it has two temp registers to ensure that "temp" isn't the same register as "input". http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc#newcode1356 src/x64/lithium-codegen-x64.cc:1356: // The class name we are testing against is a symbol because it's a literal. Done. http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc#newcode1379 src/x64/lithium-codegen-x64.cc:1379: temp = temp2; This is the place where we seem that we do need them - in order to ensure that "temp" isn't the same register as "input". I don't know if there is another way to ensure that we have another register. http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc#newcode1847 src/x64/lithium-codegen-x64.cc:1847: __ Cmp(input, Handle<Object>(Heap::true_value())); Done, both. http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-codegen-x64.cc#newcode1852 src/x64/lithium-codegen-x64.cc:1852: } else if (type_name->Equals(Heap::undefined_symbol())) { Done. http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-x64.cc File src/x64/lithium-x64.cc (right): http://codereview.chromium.org/6374002/diff/1/src/x64/lithium-x64.cc#newcode924 src/x64/lithium-x64.cc:924: return new LCmpIDAndBranch(UseRegisterAtStart(left), I don't believe there is a CmpIAndBranch, only a CmpIDAndBranch. It will do the right thing if both operands are integers. http://codereview.chromium.org/6374002/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
