Chromium Code Reviews| 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 |