| Index: src/mips/lithium-codegen-mips.cc
|
| diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc
|
| index 2c6e5a501af061844956d05a03fc01884f993481..3936b075e1b00cdf3e6cd5dae03ca4c5e7f2db6b 100644
|
| --- a/src/mips/lithium-codegen-mips.cc
|
| +++ b/src/mips/lithium-codegen-mips.cc
|
| @@ -3095,6 +3095,7 @@ void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) {
|
| Register key = no_reg;
|
| DoubleRegister result = ToDoubleRegister(instr->result());
|
| Register scratch = scratch0();
|
| + bool aligned = FLAG_enable_aligned_doubles;
|
|
|
| int element_size_shift = ElementsKindToShiftSize(FAST_DOUBLE_ELEMENTS);
|
|
|
| @@ -3118,7 +3119,7 @@ void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) {
|
| __ Addu(scratch, scratch, at);
|
| }
|
|
|
| - __ ldc1(result, MemOperand(scratch));
|
| + __ ldc1(result, MemOperand(scratch), aligned);
|
|
|
| if (instr->hydrogen()->RequiresHoleCheck()) {
|
| __ lw(scratch, MemOperand(scratch, sizeof(kHoleNanLower32)));
|
| @@ -4301,6 +4302,7 @@ void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) {
|
| DoubleRegister double_scratch = double_scratch0();
|
| bool key_is_constant = instr->key()->IsConstantOperand();
|
| Label not_nan, done;
|
| + bool aligned = FLAG_enable_aligned_doubles;
|
|
|
| // Calculate the effective address of the slot in the array to store the
|
| // double value.
|
| @@ -4339,7 +4341,7 @@ void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) {
|
|
|
| __ bind(¬_nan);
|
| __ sdc1(value, MemOperand(scratch, instr->additional_index() <<
|
| - element_size_shift));
|
| + element_size_shift), aligned);
|
| __ bind(&done);
|
| }
|
|
|
|
|