| Index: src/arm/lithium-codegen-arm.cc
|
| ===================================================================
|
| --- src/arm/lithium-codegen-arm.cc (revision 6094)
|
| +++ src/arm/lithium-codegen-arm.cc (working copy)
|
| @@ -1337,7 +1337,14 @@
|
|
|
|
|
| void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
|
| - Abort("DoInstanceOf unimplemented.");
|
| + // We expect object and function in registers r1 and r0.
|
| + InstanceofStub stub(InstanceofStub::kArgsInRegisters);
|
| + CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
|
| +
|
| + Label true_value, done;
|
| + __ tst(r0, r0);
|
| + __ mov(r0, Operand(Factory::false_value()), LeaveCC, eq);
|
| + __ mov(r0, Operand(Factory::true_value()), LeaveCC, ne);
|
| }
|
|
|
|
|
| @@ -1547,7 +1554,7 @@
|
|
|
|
|
| void LCodeGen::DoMathAbs(LUnaryMathOperation* instr) {
|
| - Abort("LUnaryMathOperation unimplemented.");
|
| + Abort("DoMathAbs unimplemented.");
|
| }
|
|
|
|
|
| @@ -1562,9 +1569,6 @@
|
|
|
|
|
| void LCodeGen::DoUnaryMathOperation(LUnaryMathOperation* instr) {
|
| - ASSERT(instr->op() == kMathFloor ||
|
| - instr->op() == kMathAbs);
|
| -
|
| switch (instr->op()) {
|
| case kMathAbs:
|
| DoMathAbs(instr);
|
| @@ -1576,6 +1580,7 @@
|
| DoMathSqrt(instr);
|
| break;
|
| default:
|
| + Abort("Unimplemented type of LUnaryMathOperation.");
|
| UNREACHABLE();
|
| }
|
| }
|
|
|