| Index: src/arm/lithium-codegen-arm.cc
|
| ===================================================================
|
| --- src/arm/lithium-codegen-arm.cc (revision 6255)
|
| +++ src/arm/lithium-codegen-arm.cc (working copy)
|
| @@ -1636,36 +1636,19 @@
|
| void LCodeGen::DoLoadKeyedFastElement(LLoadKeyedFastElement* instr) {
|
| Register elements = ToRegister(instr->elements());
|
| Register key = EmitLoadRegister(instr->key(), scratch0());
|
| - Register result;
|
| + Register result = ToRegister(instr->result());
|
| Register scratch = scratch0();
|
| + ASSERT(result.is(elements));
|
|
|
| - if (instr->load_result() != NULL) {
|
| - result = ToRegister(instr->load_result());
|
| - } else {
|
| - result = ToRegister(instr->result());
|
| - ASSERT(result.is(elements));
|
| - }
|
| -
|
| // Load the result.
|
| __ add(scratch, elements, Operand(key, LSL, kPointerSizeLog2));
|
| __ ldr(result, FieldMemOperand(scratch, FixedArray::kHeaderSize));
|
|
|
| - Representation r = instr->hydrogen()->representation();
|
| - if (r.IsInteger32()) {
|
| - // Untag and check for smi.
|
| - __ SmiUntag(result);
|
| - DeoptimizeIf(cs, instr->environment());
|
| - } else if (r.IsDouble()) {
|
| - EmitNumberUntagD(result,
|
| - ToDoubleRegister(instr->result()),
|
| - instr->environment());
|
| - } else {
|
| - // Check for the hole value.
|
| - ASSERT(r.IsTagged());
|
| - __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex);
|
| - __ cmp(result, scratch);
|
| - DeoptimizeIf(eq, instr->environment());
|
| - }
|
| + // Check for the hole value.
|
| + ASSERT(r.IsTagged());
|
| + __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex);
|
| + __ cmp(result, scratch);
|
| + DeoptimizeIf(eq, instr->environment());
|
| }
|
|
|
|
|
|
|