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

Side by Side Diff: src/compiler/mips64/code-generator-mips64.cc

Issue 769283002: MIPS: Improve pushing arguments on stack. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 6 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/code-generator.h" 5 #include "src/compiler/code-generator.h"
6 #include "src/compiler/code-generator-impl.h" 6 #include "src/compiler/code-generator-impl.h"
7 #include "src/compiler/gap-resolver.h" 7 #include "src/compiler/gap-resolver.h"
8 #include "src/compiler/node-matchers.h" 8 #include "src/compiler/node-matchers.h"
9 #include "src/compiler/node-properties-inl.h" 9 #include "src/compiler/node-properties-inl.h"
10 #include "src/mips/macro-assembler-mips.h" 10 #include "src/mips/macro-assembler-mips.h"
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 } 452 }
453 case kMips64Ldc1: 453 case kMips64Ldc1:
454 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); 454 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand());
455 break; 455 break;
456 case kMips64Sdc1: 456 case kMips64Sdc1:
457 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); 457 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand());
458 break; 458 break;
459 case kMips64Push: 459 case kMips64Push:
460 __ Push(i.InputRegister(0)); 460 __ Push(i.InputRegister(0));
461 break; 461 break;
462 case kMips64StackClaim: {
463 int words = MiscField::decode(instr->opcode());
464 __ Dsubu(sp, sp, Operand(words << kPointerSizeLog2));
465 break;
466 }
467 case kMips64StoreToStackSlot: {
468 int slot = MiscField::decode(instr->opcode());
469 __ sd(i.InputRegister(0), MemOperand(sp, slot << kPointerSizeLog2));
470 break;
471 }
462 case kMips64StoreWriteBarrier: 472 case kMips64StoreWriteBarrier:
463 Register object = i.InputRegister(0); 473 Register object = i.InputRegister(0);
464 Register index = i.InputRegister(1); 474 Register index = i.InputRegister(1);
465 Register value = i.InputRegister(2); 475 Register value = i.InputRegister(2);
466 __ daddu(index, object, index); 476 __ daddu(index, object, index);
467 __ sd(value, MemOperand(index)); 477 __ sd(value, MemOperand(index));
468 SaveFPRegsMode mode = 478 SaveFPRegsMode mode =
469 frame()->DidAllocateDoubleRegisters() ? kSaveFPRegs : kDontSaveFPRegs; 479 frame()->DidAllocateDoubleRegisters() ? kSaveFPRegs : kDontSaveFPRegs;
470 RAStatus ra_status = kRAHasNotBeenSaved; 480 RAStatus ra_status = kRAHasNotBeenSaved;
471 __ RecordWrite(object, index, value, ra_status, mode); 481 __ RecordWrite(object, index, value, ra_status, mode);
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 } 1227 }
1218 } 1228 }
1219 MarkLazyDeoptSite(); 1229 MarkLazyDeoptSite();
1220 } 1230 }
1221 1231
1222 #undef __ 1232 #undef __
1223 1233
1224 } // namespace compiler 1234 } // namespace compiler
1225 } // namespace internal 1235 } // namespace internal
1226 } // namespace v8 1236 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/mips/instruction-selector-mips.cc ('k') | src/compiler/mips64/instruction-codes-mips64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698