Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index ccef1d6c2b37d499ccc9d25a86f0453d9f04719a..590d943252dc2014ff266c36073f5f4d1f467849 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -1114,6 +1114,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())); |
@@ -1543,6 +1546,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()); |
@@ -1628,6 +1638,12 @@ LInstruction* LChunkBuilder::DoExternalArrayLength( |
} |
+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()); |