| Index: src/x64/lithium-x64.cc
|
| ===================================================================
|
| --- src/x64/lithium-x64.cc (revision 9006)
|
| +++ src/x64/lithium-x64.cc (working copy)
|
| @@ -1036,11 +1036,7 @@
|
| : instr->SecondSuccessor();
|
| return new LGoto(successor->block_id());
|
| }
|
| - LInstruction* branch = new LBranch(UseRegister(v));
|
| - // When we handle all cases, we never deopt, so we don't need to assign the
|
| - // environment then.
|
| - bool all_cases_handled = instr->expected_input_types().IsAll();
|
| - return all_cases_handled ? branch : AssignEnvironment(branch);
|
| + return AssignEnvironment(new LBranch(UseRegister(v)));
|
| }
|
|
|
|
|
| @@ -1502,19 +1498,13 @@
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoFixedArrayLength(HFixedArrayLength* instr) {
|
| +LInstruction* LChunkBuilder::DoFixedArrayBaseLength(
|
| + HFixedArrayBaseLength* instr) {
|
| LOperand* array = UseRegisterAtStart(instr->value());
|
| - return DefineAsRegister(new LFixedArrayLength(array));
|
| + return DefineAsRegister(new LFixedArrayBaseLength(array));
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoExternalArrayLength(
|
| - HExternalArrayLength* instr) {
|
| - LOperand* array = UseRegisterAtStart(instr->value());
|
| - return DefineAsRegister(new LExternalArrayLength(array));
|
| -}
|
| -
|
| -
|
| LInstruction* LChunkBuilder::DoElementsKind(HElementsKind* instr) {
|
| LOperand* object = UseRegisterAtStart(instr->value());
|
| return DefineAsRegister(new LElementsKind(object));
|
| @@ -1529,8 +1519,9 @@
|
|
|
|
|
| LInstruction* LChunkBuilder::DoBoundsCheck(HBoundsCheck* instr) {
|
| - return AssignEnvironment(new LBoundsCheck(UseRegisterAtStart(instr->index()),
|
| - Use(instr->length())));
|
| + return AssignEnvironment(new LBoundsCheck(
|
| + UseRegisterOrConstantAtStart(instr->index()),
|
| + Use(instr->length())));
|
| }
|
|
|
|
|
| @@ -1831,9 +1822,9 @@
|
| ASSERT(instr->representation().IsTagged());
|
| ASSERT(instr->key()->representation().IsInteger32());
|
| LOperand* obj = UseRegisterAtStart(instr->object());
|
| - LOperand* key = UseRegisterAtStart(instr->key());
|
| + LOperand* key = UseRegisterOrConstantAtStart(instr->key());
|
| LLoadKeyedFastElement* result = new LLoadKeyedFastElement(obj, key);
|
| - return AssignEnvironment(DefineSameAsFirst(result));
|
| + return AssignEnvironment(DefineAsRegister(result));
|
| }
|
|
|
|
|
|
|