| 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 25 matching lines...) Expand all Loading... |
| 36 Zone* zone = isolate->interface_descriptor_zone(); | 36 Zone* zone = isolate->interface_descriptor_zone(); |
| 37 FunctionType* function = | 37 FunctionType* function = |
| 38 Type::Function(AnyTagged(zone), Type::Undefined(), parameter_count, zone) | 38 Type::Function(AnyTagged(zone), Type::Undefined(), parameter_count, zone) |
| 39 ->AsFunction(); | 39 ->AsFunction(); |
| 40 while (parameter_count-- != 0) { | 40 while (parameter_count-- != 0) { |
| 41 function->InitParameter(parameter_count, AnyTagged(zone)); | 41 function->InitParameter(parameter_count, AnyTagged(zone)); |
| 42 } | 42 } |
| 43 return function; | 43 return function; |
| 44 } | 44 } |
| 45 | 45 |
| 46 | |
| 47 void CallInterfaceDescriptorData::InitializePlatformSpecific( | 46 void CallInterfaceDescriptorData::InitializePlatformSpecific( |
| 48 int register_parameter_count, Register* registers, | 47 int register_parameter_count, const Register* registers, |
| 49 PlatformInterfaceDescriptor* platform_descriptor) { | 48 PlatformInterfaceDescriptor* platform_descriptor) { |
| 50 platform_specific_descriptor_ = platform_descriptor; | 49 platform_specific_descriptor_ = platform_descriptor; |
| 51 register_param_count_ = register_parameter_count; | 50 register_param_count_ = register_parameter_count; |
| 52 | 51 |
| 53 // InterfaceDescriptor owns a copy of the registers array. | 52 // InterfaceDescriptor owns a copy of the registers array. |
| 54 register_params_.Reset(NewArray<Register>(register_parameter_count)); | 53 register_params_.Reset(NewArray<Register>(register_parameter_count)); |
| 55 for (int i = 0; i < register_parameter_count; i++) { | 54 for (int i = 0; i < register_parameter_count; i++) { |
| 56 register_params_[i] = registers[i]; | 55 register_params_[i] = registers[i]; |
| 57 } | 56 } |
| 58 } | 57 } |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 Register registers[] = {LeftRegister(), RightRegister()}; | 182 Register registers[] = {LeftRegister(), RightRegister()}; |
| 184 data->InitializePlatformSpecific(arraysize(registers), registers); | 183 data->InitializePlatformSpecific(arraysize(registers), registers); |
| 185 } | 184 } |
| 186 | 185 |
| 187 void TypeConversionDescriptor::InitializePlatformSpecific( | 186 void TypeConversionDescriptor::InitializePlatformSpecific( |
| 188 CallInterfaceDescriptorData* data) { | 187 CallInterfaceDescriptorData* data) { |
| 189 Register registers[] = {ArgumentRegister()}; | 188 Register registers[] = {ArgumentRegister()}; |
| 190 data->InitializePlatformSpecific(arraysize(registers), registers); | 189 data->InitializePlatformSpecific(arraysize(registers), registers); |
| 191 } | 190 } |
| 192 | 191 |
| 193 void HasPropertyDescriptor::InitializePlatformSpecific( | |
| 194 CallInterfaceDescriptorData* data) { | |
| 195 Register registers[] = {KeyRegister(), ObjectRegister()}; | |
| 196 data->InitializePlatformSpecific(arraysize(registers), registers); | |
| 197 } | |
| 198 | |
| 199 void MathPowTaggedDescriptor::InitializePlatformSpecific( | 192 void MathPowTaggedDescriptor::InitializePlatformSpecific( |
| 200 CallInterfaceDescriptorData* data) { | 193 CallInterfaceDescriptorData* data) { |
| 201 Register registers[] = {exponent()}; | 194 Register registers[] = {exponent()}; |
| 202 data->InitializePlatformSpecific(arraysize(registers), registers); | 195 data->InitializePlatformSpecific(arraysize(registers), registers); |
| 203 } | 196 } |
| 204 | 197 |
| 205 | 198 |
| 206 void MathPowIntegerDescriptor::InitializePlatformSpecific( | 199 void MathPowIntegerDescriptor::InitializePlatformSpecific( |
| 207 CallInterfaceDescriptorData* data) { | 200 CallInterfaceDescriptorData* data) { |
| 208 Register registers[] = {exponent()}; | 201 Register registers[] = {exponent()}; |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 544 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 537 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
| 545 function->InitParameter(kAccumulatorParameter, AnyTagged(zone)); | 538 function->InitParameter(kAccumulatorParameter, AnyTagged(zone)); |
| 546 function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone)); | 539 function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone)); |
| 547 function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone)); | 540 function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone)); |
| 548 function->InitParameter(kDispatchTableParameter, AnyTagged(zone)); | 541 function->InitParameter(kDispatchTableParameter, AnyTagged(zone)); |
| 549 return function; | 542 return function; |
| 550 } | 543 } |
| 551 | 544 |
| 552 } // namespace internal | 545 } // namespace internal |
| 553 } // namespace v8 | 546 } // namespace v8 |
| OLD | NEW |