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/interface-descriptors.cc

Issue 1250563004: HydrogenCodeStubs consume stack arguments via descriptor. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: REBASE. Created 5 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
« no previous file with comments | « src/interface-descriptors.h ('k') | src/mips/code-stubs-mips.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 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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/interface-descriptors.h" 7 #include "src/interface-descriptors.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 } 93 }
94 94
95 95
96 void StoreDescriptor::InitializePlatformSpecific( 96 void StoreDescriptor::InitializePlatformSpecific(
97 CallInterfaceDescriptorData* data) { 97 CallInterfaceDescriptorData* data) {
98 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister()}; 98 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister()};
99 data->InitializePlatformSpecific(arraysize(registers), registers); 99 data->InitializePlatformSpecific(arraysize(registers), registers);
100 } 100 }
101 101
102 102
103 void StoreTransitionDescriptor::InitializePlatformSpecific( 103 Type::FunctionType*
104 CallInterfaceDescriptorData* data) { 104 StoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType(
105 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), 105 Isolate* isolate, int paramater_count) {
106 MapRegister()}; 106 Type::FunctionType* function = Type::FunctionType::New(
107 data->InitializePlatformSpecific(arraysize(registers), registers); 107 AnyTagged(), Type::Undefined(), 4, isolate->interface_descriptor_zone());
108 function->InitParameter(0, AnyTagged()); // Receiver
109 function->InitParameter(1, AnyTagged()); // Name
110 function->InitParameter(2, AnyTagged()); // Value
111 function->InitParameter(3, AnyTagged()); // Map
112 return function;
108 } 113 }
109 114
110 115
111 Type::FunctionType* 116 Type::FunctionType*
112 LoadGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType( 117 LoadGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType(
113 Isolate* isolate, int paramater_count) { 118 Isolate* isolate, int paramater_count) {
114 Type::FunctionType* function = Type::FunctionType::New( 119 Type::FunctionType* function = Type::FunctionType::New(
115 AnyTagged(), Type::Undefined(), 3, isolate->interface_descriptor_zone()); 120 AnyTagged(), Type::Undefined(), 3, isolate->interface_descriptor_zone());
116 function->InitParameter(0, SmiType()); 121 function->InitParameter(0, SmiType());
117 function->InitParameter(1, SmiType()); 122 function->InitParameter(1, SmiType());
118 function->InitParameter(2, AnyTagged()); 123 function->InitParameter(2, AnyTagged());
119 return function; 124 return function;
120 } 125 }
121 126
122 127
123 void LoadGlobalViaContextDescriptor::InitializePlatformSpecific( 128 void LoadGlobalViaContextDescriptor::InitializePlatformSpecific(
124 CallInterfaceDescriptorData* data) { 129 CallInterfaceDescriptorData* data) {
125 Register registers[] = {DepthRegister(), SlotRegister(), NameRegister()}; 130 Register registers[] = {DepthRegister(), SlotRegister(), NameRegister()};
126 data->InitializePlatformSpecific(arraysize(registers), registers); 131 data->InitializePlatformSpecific(arraysize(registers), registers);
127 } 132 }
128 133
129 134
130 Type::FunctionType* 135 Type::FunctionType*
131 StoreGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType( 136 StoreGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType(
132 Isolate* isolate, int paramater_count) { 137 Isolate* isolate, int paramater_count) {
133 Type::FunctionType* function = Type::FunctionType::New( 138 Type::FunctionType* function = Type::FunctionType::New(
134 AnyTagged(), Type::Undefined(), 5, isolate->interface_descriptor_zone()); 139 AnyTagged(), Type::Undefined(), 4, isolate->interface_descriptor_zone());
135 function->InitParameter(0, SmiType()); 140 function->InitParameter(0, SmiType());
136 function->InitParameter(1, SmiType()); 141 function->InitParameter(1, SmiType());
137 function->InitParameter(2, AnyTagged()); 142 function->InitParameter(2, AnyTagged());
138 function->InitParameter(3, AnyTagged()); 143 function->InitParameter(3, AnyTagged());
139 return function; 144 return function;
140 } 145 }
141 146
142 147
143 void StoreGlobalViaContextDescriptor::InitializePlatformSpecific( 148 void StoreGlobalViaContextDescriptor::InitializePlatformSpecific(
144 CallInterfaceDescriptorData* data) { 149 CallInterfaceDescriptorData* data) {
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 AnyTagged(), Type::Undefined(), 5, isolate->interface_descriptor_zone()); 416 AnyTagged(), Type::Undefined(), 5, isolate->interface_descriptor_zone());
412 function->InitParameter(0, Type::Receiver()); 417 function->InitParameter(0, Type::Receiver());
413 function->InitParameter(1, SmiType()); 418 function->InitParameter(1, SmiType());
414 function->InitParameter(2, AnyTagged()); 419 function->InitParameter(2, AnyTagged());
415 function->InitParameter(3, AnyTagged()); 420 function->InitParameter(3, AnyTagged());
416 function->InitParameter(4, AnyTagged()); 421 function->InitParameter(4, AnyTagged());
417 return function; 422 return function;
418 } 423 }
419 } // namespace internal 424 } // namespace internal
420 } // namespace v8 425 } // namespace v8
OLDNEW
« no previous file with comments | « src/interface-descriptors.h ('k') | src/mips/code-stubs-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698