Index: src/x64/lithium-x64.cc |
=================================================================== |
--- src/x64/lithium-x64.cc (revision 6823) |
+++ src/x64/lithium-x64.cc (working copy) |
@@ -1081,9 +1081,8 @@ |
} else if (v->IsInstanceOf()) { |
HInstanceOf* instance_of = HInstanceOf::cast(v); |
LInstanceOfAndBranch* result = |
- new LInstanceOfAndBranch( |
- UseFixed(instance_of->left(), InstanceofStub::left()), |
- UseFixed(instance_of->right(), InstanceofStub::right())); |
+ new LInstanceOfAndBranch(UseFixed(instance_of->left(), rax), |
+ UseFixed(instance_of->right(), rdx)); |
return MarkAsCall(result, instr); |
} else if (v->IsTypeofIs()) { |
HTypeofIs* typeof_is = HTypeofIs::cast(v); |
@@ -1124,15 +1123,19 @@ |
LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) { |
- Abort("Unimplemented: %s", "DoInstanceOf"); |
- return NULL; |
+ LOperand* left = UseFixed(instr->left(), rax); |
+ LOperand* right = UseFixed(instr->right(), rdx); |
+ LInstanceOf* result = new LInstanceOf(left, right); |
+ return MarkAsCall(DefineFixed(result, rax), instr); |
} |
LInstruction* LChunkBuilder::DoInstanceOfKnownGlobal( |
HInstanceOfKnownGlobal* instr) { |
- Abort("Unimplemented: %s", "DoInstanceOfKnownGlobal"); |
- return NULL; |
+ LInstanceOfKnownGlobal* result = |
+ new LInstanceOfKnownGlobal(UseRegisterAtStart(instr->value())); |
+ MarkAsSaveDoubles(result); |
+ return AssignEnvironment(AssignPointerMap(DefineFixed(result, rax))); |
} |