diff options
Diffstat (limited to 'deps/v8/src/arm/interface-descriptors-arm.cc')
-rw-r--r-- | deps/v8/src/arm/interface-descriptors-arm.cc | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/deps/v8/src/arm/interface-descriptors-arm.cc b/deps/v8/src/arm/interface-descriptors-arm.cc index 6e77ee474a..da0cba9d10 100644 --- a/deps/v8/src/arm/interface-descriptors-arm.cc +++ b/deps/v8/src/arm/interface-descriptors-arm.cc @@ -98,7 +98,19 @@ void FastCloneShallowObjectDescriptor::Initialize( void CreateAllocationSiteDescriptor::Initialize( CallInterfaceDescriptorData* data) { Register registers[] = {cp, r2, r3}; - data->Initialize(arraysize(registers), registers, NULL); + Representation representations[] = {Representation::Tagged(), + Representation::Tagged(), + Representation::Smi()}; + data->Initialize(arraysize(registers), registers, representations); +} + + +void CreateWeakCellDescriptor::Initialize(CallInterfaceDescriptorData* data) { + Register registers[] = {cp, r2, r3, r1}; + Representation representations[] = { + Representation::Tagged(), Representation::Tagged(), Representation::Smi(), + Representation::Tagged()}; + data->Initialize(arraysize(registers), registers, representations); } @@ -125,6 +137,16 @@ void CallFunctionWithFeedbackDescriptor::Initialize( } +void CallFunctionWithFeedbackAndVectorDescriptor::Initialize( + CallInterfaceDescriptorData* data) { + Register registers[] = {cp, r1, r3, r2}; + Representation representations[] = { + Representation::Tagged(), Representation::Tagged(), Representation::Smi(), + Representation::Tagged()}; + data->Initialize(arraysize(registers), registers, representations); +} + + void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { // r0 : number of arguments // r1 : the function to call @@ -318,6 +340,31 @@ void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { r4, // call_data r2, // holder r1, // api_function_address + r3, // actual number of arguments + }; + Representation representations[] = { + Representation::Tagged(), // context + Representation::Tagged(), // callee + Representation::Tagged(), // call_data + Representation::Tagged(), // holder + Representation::External(), // api_function_address + Representation::Integer32(), // actual number of arguments + }; + data->Initialize(arraysize(registers), registers, representations, + &default_descriptor); +} + + +void ApiAccessorDescriptor::Initialize(CallInterfaceDescriptorData* data) { + static PlatformInterfaceDescriptor default_descriptor = + PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); + + Register registers[] = { + cp, // context + r0, // callee + r4, // call_data + r2, // holder + r1, // api_function_address }; Representation representations[] = { Representation::Tagged(), // context |