Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 1e16a55c0968b281c667378384a5067e12250dde..138219b49a6f247a0498284a022c39edaf7106a6 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -1108,6 +1108,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()); |
@@ -1601,6 +1611,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); |