| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 49277757e1af526147ad77c79421c54fff69cea1..4f55f8c61ae8a1f33df8cd8b718d830369674f6d 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -3085,7 +3085,7 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) {
|
| ASSERT(!instr->hydrogen()->representation().IsDouble());
|
| }
|
| Register temp = instr->hydrogen()->representation().IsDouble()
|
| - ? ToRegister(instr->temp()) : ToRegister(instr->result());
|
| + ? scratch0() : ToRegister(instr->result());
|
| if (instr->hydrogen()->is_in_object()) {
|
| __ ldr(temp, FieldMemOperand(object, instr->hydrogen()->offset()));
|
| } else {
|
| @@ -3102,8 +3102,8 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) {
|
| __ vmov(flt_scratch, temp);
|
| __ vcvt_f64_s32(result, flt_scratch);
|
| __ b(&done);
|
| - __ sub(ip, temp, Operand(kHeapObjectTag));
|
| - __ vldr(result, ip, HeapNumber::kValueOffset);
|
| + __ bind(&load_from_heap_number);
|
| + __ vldr(result, FieldMemOperand(temp, HeapNumber::kValueOffset));
|
| __ bind(&done);
|
| }
|
| }
|
|
|