Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index ea88cb3f84a92652ec2d98dd7f44ede82bd72c5a..f46a95b3ccdf5740e5935c2296b70a104bc7ade6 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -2004,7 +2004,15 @@ void LCodeGen::DoInstanceOf(LInstanceOf* instr) { |
void LCodeGen::DoInstanceOfAndBranch(LInstanceOfAndBranch* instr) { |
- Abort("DoInstanceOfAndBranch unimplemented."); |
+ int true_block = chunk_->LookupDestination(instr->true_block_id()); |
+ int false_block = chunk_->LookupDestination(instr->false_block_id()); |
+ |
+ Register result = r0; |
+ |
+ InstanceofStub stub(InstanceofStub::kArgsInRegisters); |
Søren Thygesen Gjesse
2011/01/26 07:38:51
Don't you need to change the creation of LInstance
Karl Klose
2011/01/26 20:39:18
Yes, I fixed it.
On 2011/01/26 07:38:51, Søren Gj
|
+ CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
+ __ tst(result, Operand(result)); |
+ EmitBranch(true_block, false_block, eq); |
} |