| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index ccef1d6c2b37d499ccc9d25a86f0453d9f04719a..8c8dc5960664a12b8fcb823edb975e77827f9ae5 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->IsCompareWithConstant()) {
|
| + HCompareWithConstant* compare = HCompareWithConstant::cast(v);
|
| + return new LCmpWithConstantAndBranch(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::DoCompareWithConstant(
|
| + HCompareWithConstant* instr) {
|
| + LOperand* left = UseRegisterAtStart(instr->value());
|
| + return DefineAsRegister(new LCmpWithConstant(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());
|
|
|