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); |
} |