Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(525)

Unified Diff: src/mips/lithium-codegen-mips.cc

Issue 35463002: MIPS: Enable aligned keyed stores and loads for double arrays. Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/mips/assembler-mips.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(&not_nan);
__ sdc1(value, MemOperand(scratch, instr->additional_index() <<
- element_size_shift));
+ element_size_shift), aligned);
__ bind(&done);
}
« no previous file with comments | « src/mips/assembler-mips.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698