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

Side by Side Diff: src/arm64/code-stubs-arm64.cc

Issue 551043005: Added CallInterfaceDescriptors to all code stubs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE. Created 6 years, 3 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
« no previous file with comments | « src/arm64/code-stubs-arm64.h ('k') | src/arm64/interface-descriptors-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 719
720 void MathPowStub::Generate(MacroAssembler* masm) { 720 void MathPowStub::Generate(MacroAssembler* masm) {
721 // Stack on entry: 721 // Stack on entry:
722 // jssp[0]: Exponent (as a tagged value). 722 // jssp[0]: Exponent (as a tagged value).
723 // jssp[1]: Base (as a tagged value). 723 // jssp[1]: Base (as a tagged value).
724 // 724 //
725 // The (tagged) result will be returned in x0, as a heap number. 725 // The (tagged) result will be returned in x0, as a heap number.
726 726
727 Register result_tagged = x0; 727 Register result_tagged = x0;
728 Register base_tagged = x10; 728 Register base_tagged = x10;
729 Register exponent_tagged = x11; 729 Register exponent_tagged = MathPowTaggedDescriptor::exponent();
730 Register exponent_integer = x12; 730 DCHECK(exponent_tagged.is(x11));
731 Register exponent_integer = MathPowIntegerDescriptor::exponent();
732 DCHECK(exponent_integer.is(x12));
731 Register scratch1 = x14; 733 Register scratch1 = x14;
732 Register scratch0 = x15; 734 Register scratch0 = x15;
733 Register saved_lr = x19; 735 Register saved_lr = x19;
734 FPRegister result_double = d0; 736 FPRegister result_double = d0;
735 FPRegister base_double = d0; 737 FPRegister base_double = d0;
736 FPRegister exponent_double = d1; 738 FPRegister exponent_double = d1;
737 FPRegister base_double_copy = d2; 739 FPRegister base_double_copy = d2;
738 FPRegister scratch1_double = d6; 740 FPRegister scratch1_double = d6;
739 FPRegister scratch0_double = d7; 741 FPRegister scratch0_double = d7;
740 742
(...skipping 858 matching lines...) Expand 10 before | Expand all | Expand 10 after
1599 // Reload true/false because they were clobbered in the builtin call. 1601 // Reload true/false because they were clobbered in the builtin call.
1600 __ LoadTrueFalseRoots(res_true, res_false); 1602 __ LoadTrueFalseRoots(res_true, res_false);
1601 __ Cmp(result, 0); 1603 __ Cmp(result, 0);
1602 __ Csel(result, res_true, res_false, eq); 1604 __ Csel(result, res_true, res_false, eq);
1603 } 1605 }
1604 __ Ret(); 1606 __ Ret();
1605 } 1607 }
1606 1608
1607 1609
1608 void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* masm) { 1610 void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* masm) {
1609 Register arg_count = x0; 1611 Register arg_count = ArgumentsAccessReadDescriptor::parameter_count();
1610 Register key = x1; 1612 Register key = ArgumentsAccessReadDescriptor::index();
1613 DCHECK(arg_count.is(x0));
1614 DCHECK(key.is(x1));
1611 1615
1612 // The displacement is the offset of the last parameter (if any) relative 1616 // The displacement is the offset of the last parameter (if any) relative
1613 // to the frame pointer. 1617 // to the frame pointer.
1614 static const int kDisplacement = 1618 static const int kDisplacement =
1615 StandardFrameConstants::kCallerSPOffset - kPointerSize; 1619 StandardFrameConstants::kCallerSPOffset - kPointerSize;
1616 1620
1617 // Check that the key is a smi. 1621 // Check that the key is a smi.
1618 Label slow; 1622 Label slow;
1619 __ JumpIfNotSmi(key, &slow); 1623 __ JumpIfNotSmi(key, &slow);
1620 1624
(...skipping 3380 matching lines...) Expand 10 before | Expand all | Expand 10 after
5001 5005
5002 5006
5003 void CallApiGetterStub::Generate(MacroAssembler* masm) { 5007 void CallApiGetterStub::Generate(MacroAssembler* masm) {
5004 // ----------- S t a t e ------------- 5008 // ----------- S t a t e -------------
5005 // -- sp[0] : name 5009 // -- sp[0] : name
5006 // -- sp[8 - kArgsLength*8] : PropertyCallbackArguments object 5010 // -- sp[8 - kArgsLength*8] : PropertyCallbackArguments object
5007 // -- ... 5011 // -- ...
5008 // -- x2 : api_function_address 5012 // -- x2 : api_function_address
5009 // ----------------------------------- 5013 // -----------------------------------
5010 5014
5011 Register api_function_address = x2; 5015 Register api_function_address = ApiGetterDescriptor::function_address();
5016 DCHECK(api_function_address.is(x2));
5012 5017
5013 __ Mov(x0, masm->StackPointer()); // x0 = Handle<Name> 5018 __ Mov(x0, masm->StackPointer()); // x0 = Handle<Name>
5014 __ Add(x1, x0, 1 * kPointerSize); // x1 = PCA 5019 __ Add(x1, x0, 1 * kPointerSize); // x1 = PCA
5015 5020
5016 const int kApiStackSpace = 1; 5021 const int kApiStackSpace = 1;
5017 5022
5018 // Allocate space for CallApiFunctionAndReturn can store some scratch 5023 // Allocate space for CallApiFunctionAndReturn can store some scratch
5019 // registeres on the stack. 5024 // registeres on the stack.
5020 const int kCallApiFunctionSpillSpace = 4; 5025 const int kCallApiFunctionSpillSpace = 4;
5021 5026
(...skipping 18 matching lines...) Expand all
5040 MemOperand(fp, 6 * kPointerSize), 5045 MemOperand(fp, 6 * kPointerSize),
5041 NULL); 5046 NULL);
5042 } 5047 }
5043 5048
5044 5049
5045 #undef __ 5050 #undef __
5046 5051
5047 } } // namespace v8::internal 5052 } } // namespace v8::internal
5048 5053
5049 #endif // V8_TARGET_ARCH_ARM64 5054 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm64/code-stubs-arm64.h ('k') | src/arm64/interface-descriptors-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698