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

Side by Side Diff: src/mips/ic-mips.cc

Issue 352583002: The IC exposes a register definition. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: CodeStubDescriptor is beefed up to encapsulate an owned pointer and other fields. Created 6 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 5
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #if V8_TARGET_ARCH_MIPS 9 #if V8_TARGET_ARCH_MIPS
10 10
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 __ Push(a1, a0); 553 __ Push(a1, a0);
554 554
555 // Perform tail call to the entry. 555 // Perform tail call to the entry.
556 ExternalReference ref = 556 ExternalReference ref =
557 ExternalReference(IC_Utility(kKeyedLoadIC_Miss), isolate); 557 ExternalReference(IC_Utility(kKeyedLoadIC_Miss), isolate);
558 558
559 __ TailCallExternalReference(ref, 2, 1); 559 __ TailCallExternalReference(ref, 2, 1);
560 } 560 }
561 561
562 562
563 // IC register specifications
564 const Register LoadIC::ReceiverRegister() { return a0; }
565 const Register LoadIC::NameRegister() { return a2; }
566 const Register KeyedLoadIC::ReceiverRegister() { return a1; }
567 const Register KeyedLoadIC::NameRegister() { return a0; }
568
569
570 const Register* KeyedLoadIC::AllocateRegisterArray() {
571 Register* registers = new Register[kRegisterArgumentCount];
572 registers[0] = ReceiverRegister();
573 registers[1] = NameRegister();
574 return registers;
575 }
576
577
563 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) { 578 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
564 // ---------- S t a t e -------------- 579 // ---------- S t a t e --------------
565 // -- ra : return address 580 // -- ra : return address
566 // -- a0 : key 581 // -- a0 : key
567 // -- a1 : receiver 582 // -- a1 : receiver
568 // ----------------------------------- 583 // -----------------------------------
569 584
570 __ Push(a1, a0); 585 __ Push(a1, a0);
571 586
572 __ TailCallRuntime(Runtime::kKeyedGetProperty, 2, 1); 587 __ TailCallRuntime(Runtime::kKeyedGetProperty, 2, 1);
(...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after
1331 } else { 1346 } else {
1332 ASSERT(Assembler::IsBne(branch_instr)); 1347 ASSERT(Assembler::IsBne(branch_instr));
1333 patcher.ChangeBranchCondition(eq); 1348 patcher.ChangeBranchCondition(eq);
1334 } 1349 }
1335 } 1350 }
1336 1351
1337 1352
1338 } } // namespace v8::internal 1353 } } // namespace v8::internal
1339 1354
1340 #endif // V8_TARGET_ARCH_MIPS 1355 #endif // V8_TARGET_ARCH_MIPS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698