OLD | NEW |
---|---|
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/interface-descriptors.h" | 5 #include "src/interface-descriptors.h" |
6 | 6 |
7 namespace v8 { | 7 namespace v8 { |
8 namespace internal { | 8 namespace internal { |
9 | 9 |
10 namespace { | 10 namespace { |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
123 return function; | 123 return function; |
124 } | 124 } |
125 | 125 |
126 void LoadGlobalWithVectorDescriptor::InitializePlatformSpecific( | 126 void LoadGlobalWithVectorDescriptor::InitializePlatformSpecific( |
127 CallInterfaceDescriptorData* data) { | 127 CallInterfaceDescriptorData* data) { |
128 Register registers[] = {LoadWithVectorDescriptor::SlotRegister(), | 128 Register registers[] = {LoadWithVectorDescriptor::SlotRegister(), |
129 LoadWithVectorDescriptor::VectorRegister()}; | 129 LoadWithVectorDescriptor::VectorRegister()}; |
130 data->InitializePlatformSpecific(arraysize(registers), registers); | 130 data->InitializePlatformSpecific(arraysize(registers), registers); |
131 } | 131 } |
132 | 132 |
133 FunctionType* StoreDescriptor::BuildCallInterfaceDescriptorFunctionType( | |
134 Isolate* isolate, int paramater_count) { | |
Jakob Kummerow
2016/07/14 11:08:05
nit: s/mater/meter/. While you're at it, you can f
Igor Sheludko
2016/07/14 13:05:23
Done.
| |
135 Zone* zone = isolate->interface_descriptor_zone(); | |
136 FunctionType* function = | |
137 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | |
138 function->InitParameter(0, AnyTagged(zone)); | |
139 function->InitParameter(1, AnyTagged(zone)); | |
140 function->InitParameter(2, AnyTagged(zone)); | |
141 function->InitParameter(3, SmiType(zone)); | |
142 return function; | |
143 } | |
144 | |
133 void StoreDescriptor::InitializePlatformSpecific( | 145 void StoreDescriptor::InitializePlatformSpecific( |
134 CallInterfaceDescriptorData* data) { | 146 CallInterfaceDescriptorData* data) { |
135 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister()}; | 147 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), |
148 SlotRegister()}; | |
136 data->InitializePlatformSpecific(arraysize(registers), registers); | 149 data->InitializePlatformSpecific(arraysize(registers), registers); |
137 } | 150 } |
138 | 151 |
139 | 152 |
140 void StoreTransitionDescriptor::InitializePlatformSpecific( | 153 void StoreTransitionDescriptor::InitializePlatformSpecific( |
141 CallInterfaceDescriptorData* data) { | 154 CallInterfaceDescriptorData* data) { |
142 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), | 155 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), |
143 MapRegister()}; | 156 MapRegister()}; |
144 | 157 |
145 data->InitializePlatformSpecific(arraysize(registers), registers); | 158 data->InitializePlatformSpecific(arraysize(registers), registers); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
251 function->InitParameter(index++, AnyTagged(zone)); // name | 264 function->InitParameter(index++, AnyTagged(zone)); // name |
252 function->InitParameter(index++, AnyTagged(zone)); // value | 265 function->InitParameter(index++, AnyTagged(zone)); // value |
253 function->InitParameter(index++, AnyTagged(zone)); // map | 266 function->InitParameter(index++, AnyTagged(zone)); // map |
254 if (has_slot) { | 267 if (has_slot) { |
255 function->InitParameter(index++, SmiType(zone)); // slot | 268 function->InitParameter(index++, SmiType(zone)); // slot |
256 } | 269 } |
257 function->InitParameter(index++, AnyTagged(zone)); // vector | 270 function->InitParameter(index++, AnyTagged(zone)); // vector |
258 return function; | 271 return function; |
259 } | 272 } |
260 | 273 |
261 FunctionType* VectorStoreICDescriptor::BuildCallInterfaceDescriptorFunctionType( | 274 FunctionType* |
275 StoreWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( | |
262 Isolate* isolate, int paramater_count) { | 276 Isolate* isolate, int paramater_count) { |
263 Zone* zone = isolate->interface_descriptor_zone(); | 277 Zone* zone = isolate->interface_descriptor_zone(); |
264 FunctionType* function = | 278 FunctionType* function = |
265 Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction(); | 279 Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction(); |
266 function->InitParameter(0, AnyTagged(zone)); | 280 function->InitParameter(0, AnyTagged(zone)); |
267 function->InitParameter(1, AnyTagged(zone)); | 281 function->InitParameter(1, AnyTagged(zone)); |
268 function->InitParameter(2, AnyTagged(zone)); | 282 function->InitParameter(2, AnyTagged(zone)); |
269 function->InitParameter(3, SmiType(zone)); | 283 function->InitParameter(3, SmiType(zone)); |
270 function->InitParameter(4, AnyTagged(zone)); | 284 function->InitParameter(4, AnyTagged(zone)); |
271 return function; | 285 return function; |
272 } | 286 } |
273 | 287 |
274 | 288 void StoreWithVectorDescriptor::InitializePlatformSpecific( |
275 void VectorStoreICDescriptor::InitializePlatformSpecific( | |
276 CallInterfaceDescriptorData* data) { | 289 CallInterfaceDescriptorData* data) { |
277 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), | 290 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), |
278 SlotRegister(), VectorRegister()}; | 291 SlotRegister(), VectorRegister()}; |
279 data->InitializePlatformSpecific(arraysize(registers), registers); | 292 data->InitializePlatformSpecific(arraysize(registers), registers); |
280 } | 293 } |
281 | 294 |
282 FunctionType* | |
283 VectorStoreICTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType( | |
284 Isolate* isolate, int paramater_count) { | |
285 Zone* zone = isolate->interface_descriptor_zone(); | |
286 FunctionType* function = | |
287 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | |
288 function->InitParameter(0, AnyTagged(zone)); | |
289 function->InitParameter(1, AnyTagged(zone)); | |
290 function->InitParameter(2, AnyTagged(zone)); | |
291 function->InitParameter(3, SmiType(zone)); | |
292 return function; | |
293 } | |
294 | |
295 | |
296 void VectorStoreICTrampolineDescriptor::InitializePlatformSpecific( | |
297 CallInterfaceDescriptorData* data) { | |
298 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), | |
299 SlotRegister()}; | |
300 data->InitializePlatformSpecific(arraysize(registers), registers); | |
301 } | |
302 | |
303 const Register ApiGetterDescriptor::ReceiverRegister() { | 295 const Register ApiGetterDescriptor::ReceiverRegister() { |
304 return LoadDescriptor::ReceiverRegister(); | 296 return LoadDescriptor::ReceiverRegister(); |
305 } | 297 } |
306 | 298 |
307 void ApiGetterDescriptor::InitializePlatformSpecific( | 299 void ApiGetterDescriptor::InitializePlatformSpecific( |
308 CallInterfaceDescriptorData* data) { | 300 CallInterfaceDescriptorData* data) { |
309 Register registers[] = {ReceiverRegister(), HolderRegister(), | 301 Register registers[] = {ReceiverRegister(), HolderRegister(), |
310 CallbackRegister()}; | 302 CallbackRegister()}; |
311 data->InitializePlatformSpecific(arraysize(registers), registers); | 303 data->InitializePlatformSpecific(arraysize(registers), registers); |
312 } | 304 } |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
583 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 575 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
584 function->InitParameter(kAccumulatorParameter, AnyTagged(zone)); | 576 function->InitParameter(kAccumulatorParameter, AnyTagged(zone)); |
585 function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone)); | 577 function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone)); |
586 function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone)); | 578 function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone)); |
587 function->InitParameter(kDispatchTableParameter, AnyTagged(zone)); | 579 function->InitParameter(kDispatchTableParameter, AnyTagged(zone)); |
588 return function; | 580 return function; |
589 } | 581 } |
590 | 582 |
591 } // namespace internal | 583 } // namespace internal |
592 } // namespace v8 | 584 } // namespace v8 |
OLD | NEW |