Index: src/arm/lithium-arm.cc |
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
index be08cff84314b224488ea5ffaf76cc31b8dfe144..f6aa53430eb261a75d756df85457f6bcdfcfe60f 100644 |
--- a/src/arm/lithium-arm.cc |
+++ b/src/arm/lithium-arm.cc |
@@ -1111,6 +1111,9 @@ LInstruction* LChunkBuilder::DoTest(HTest* instr) { |
HCompareSymbolEq* compare = HCompareSymbolEq::cast(v); |
return new LCmpSymbolEqAndBranch(UseRegisterAtStart(compare->left()), |
UseRegisterAtStart(compare->right())); |
+ } else if (v->IsCompareConstantEq()) { |
+ HCompareConstantEq* compare = HCompareConstantEq::cast(v); |
+ return new LCmpConstantEqAndBranch(UseRegisterAtStart(compare->value())); |
} else if (v->IsTypeofIs()) { |
HTypeofIs* typeof_is = HTypeofIs::cast(v); |
return new LTypeofIsAndBranch(UseTempRegister(typeof_is->value())); |
@@ -1519,6 +1522,13 @@ LInstruction* LChunkBuilder::DoCompareSymbolEq( |
} |
+LInstruction* LChunkBuilder::DoCompareConstantEq( |
+ HCompareConstantEq* instr) { |
+ LOperand* left = UseRegisterAtStart(instr->value()); |
+ return DefineAsRegister(new LCmpConstantEq(left)); |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoIsNull(HIsNull* instr) { |
ASSERT(instr->value()->representation().IsTagged()); |
LOperand* value = UseRegisterAtStart(instr->value()); |
@@ -1603,6 +1613,12 @@ LInstruction* LChunkBuilder::DoFixedArrayLength(HFixedArrayLength* instr) { |
} |
+LInstruction* LChunkBuilder::DoElementsKind(HElementsKind* instr) { |
+ LOperand* object = UseRegisterAtStart(instr->value()); |
+ return DefineAsRegister(new LElementsKind(object)); |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoValueOf(HValueOf* instr) { |
LOperand* object = UseRegister(instr->value()); |
LValueOf* result = new LValueOf(object, TempRegister()); |