Chromium Code Reviews| Index: src/ia32/lithium-ia32.cc |
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
| index d0ca2a847c2a40ba6e309662fcf936f33afe5816..6ff14315517478155584752ad6abcb51f264ae9c 100644 |
| --- a/src/ia32/lithium-ia32.cc |
| +++ b/src/ia32/lithium-ia32.cc |
| @@ -2229,14 +2229,21 @@ LInstruction* LChunkBuilder::DoLoadKeyed(HLoadKeyed* instr) { |
| result = DefineAsRegister(new(zone()) LLoadKeyed(backing_store, key)); |
| } |
| - if ((instr->is_external() || instr->is_fixed_typed_array()) ? |
|
Jakob Kummerow
2015/04/23 13:40:00
Yo dawg, I heard you like conditions, so I put a c
mvstanton
2015/04/27 07:57:12
:D, yeah I was like wha?
|
| - // see LCodeGen::DoLoadKeyedExternalArray |
| - ((instr->elements_kind() == EXTERNAL_UINT32_ELEMENTS || |
| - instr->elements_kind() == UINT32_ELEMENTS) && |
| - !instr->CheckFlag(HInstruction::kUint32)) : |
| - // see LCodeGen::DoLoadKeyedFixedDoubleArray and |
| - // LCodeGen::DoLoadKeyedFixedArray |
| - instr->RequiresHoleCheck()) { |
| + bool needs_environment; |
|
Jakob Kummerow
2015/04/23 13:40:00
We used to have to initialize such variables to ke
mvstanton
2015/04/27 07:57:12
I'll try to go without it, hopefully it'll work.
|
| + if (instr->is_external() || instr->is_fixed_typed_array()) { |
| + // see LCodeGen::DoLoadKeyedExternalArray |
| + needs_environment = (elements_kind == EXTERNAL_UINT32_ELEMENTS || |
| + elements_kind == UINT32_ELEMENTS) && |
| + !instr->CheckFlag(HInstruction::kUint32); |
| + } else { |
| + // see LCodeGen::DoLoadKeyedFixedDoubleArray and |
| + // LCodeGen::DoLoadKeyedFixedArray |
| + needs_environment = |
| + instr->RequiresHoleCheck() || |
| + (instr->hole_mode() == CONVERT_HOLE_TO_UNDEFINED && info()->IsStub()); |
| + } |
| + |
| + if (needs_environment) { |
| result = AssignEnvironment(result); |
| } |
| return result; |