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

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

Issue 381633002: Use a register spec for StoreIC and KeyedStoreIC. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Code comments. 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
« no previous file with comments | « src/ic.h ('k') | src/x64/debug-x64.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_X64 7 #if V8_TARGET_ARCH_X64
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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 82
83 void RegExpConstructResultStub::InitializeInterfaceDescriptor( 83 void RegExpConstructResultStub::InitializeInterfaceDescriptor(
84 CodeStubInterfaceDescriptor* descriptor) { 84 CodeStubInterfaceDescriptor* descriptor) {
85 Register registers[] = { rcx, rbx, rax }; 85 Register registers[] = { rcx, rbx, rax };
86 descriptor->Initialize( 86 descriptor->Initialize(
87 ARRAY_SIZE(registers), registers, 87 ARRAY_SIZE(registers), registers,
88 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry); 88 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry);
89 } 89 }
90 90
91 91
92 void KeyedStoreFastElementStub::InitializeInterfaceDescriptor(
93 CodeStubInterfaceDescriptor* descriptor) {
94 Register registers[] = { rdx, rcx, rax };
95 descriptor->Initialize(
96 ARRAY_SIZE(registers), registers,
97 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure));
98 }
99
100
101 void TransitionElementsKindStub::InitializeInterfaceDescriptor( 92 void TransitionElementsKindStub::InitializeInterfaceDescriptor(
102 CodeStubInterfaceDescriptor* descriptor) { 93 CodeStubInterfaceDescriptor* descriptor) {
103 Register registers[] = { rax, rbx }; 94 Register registers[] = { rax, rbx };
104 descriptor->Initialize( 95 descriptor->Initialize(
105 ARRAY_SIZE(registers), registers, 96 ARRAY_SIZE(registers), registers,
106 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry); 97 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry);
107 } 98 }
108 99
109 100
110 static void InitializeArrayConstructorDescriptor( 101 static void InitializeArrayConstructorDescriptor(
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 void ToBooleanStub::InitializeInterfaceDescriptor( 215 void ToBooleanStub::InitializeInterfaceDescriptor(
225 CodeStubInterfaceDescriptor* descriptor) { 216 CodeStubInterfaceDescriptor* descriptor) {
226 Register registers[] = { rax }; 217 Register registers[] = { rax };
227 descriptor->Initialize(ARRAY_SIZE(registers), registers, 218 descriptor->Initialize(ARRAY_SIZE(registers), registers,
228 FUNCTION_ADDR(ToBooleanIC_Miss)); 219 FUNCTION_ADDR(ToBooleanIC_Miss));
229 descriptor->SetMissHandler( 220 descriptor->SetMissHandler(
230 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate())); 221 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate()));
231 } 222 }
232 223
233 224
234 void StoreGlobalStub::InitializeInterfaceDescriptor(
235 CodeStubInterfaceDescriptor* descriptor) {
236 Register registers[] = { rdx, rcx, rax };
237 descriptor->Initialize(ARRAY_SIZE(registers), registers,
238 FUNCTION_ADDR(StoreIC_MissFromStubFailure));
239 }
240
241
242 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor( 225 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor(
243 CodeStubInterfaceDescriptor* descriptor) { 226 CodeStubInterfaceDescriptor* descriptor) {
244 Register registers[] = { rax, rbx, rcx, rdx }; 227 Register registers[] = { rax, rbx, rcx, rdx };
245 descriptor->Initialize(ARRAY_SIZE(registers), registers, 228 descriptor->Initialize(ARRAY_SIZE(registers), registers,
246 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss)); 229 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss));
247 } 230 }
248 231
249 232
250 void BinaryOpICStub::InitializeInterfaceDescriptor( 233 void BinaryOpICStub::InitializeInterfaceDescriptor(
251 CodeStubInterfaceDescriptor* descriptor) { 234 CodeStubInterfaceDescriptor* descriptor) {
(...skipping 4687 matching lines...) Expand 10 before | Expand all | Expand 10 after
4939 return_value_operand, 4922 return_value_operand,
4940 NULL); 4923 NULL);
4941 } 4924 }
4942 4925
4943 4926
4944 #undef __ 4927 #undef __
4945 4928
4946 } } // namespace v8::internal 4929 } } // namespace v8::internal
4947 4930
4948 #endif // V8_TARGET_ARCH_X64 4931 #endif // V8_TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « src/ic.h ('k') | src/x64/debug-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698