summaryrefslogtreecommitdiff
path: root/deps/v8/src/interface-descriptors.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/interface-descriptors.cc')
-rw-r--r--deps/v8/src/interface-descriptors.cc64
1 files changed, 43 insertions, 21 deletions
diff --git a/deps/v8/src/interface-descriptors.cc b/deps/v8/src/interface-descriptors.cc
index 2628b9fb6f..d14b1a1011 100644
--- a/deps/v8/src/interface-descriptors.cc
+++ b/deps/v8/src/interface-descriptors.cc
@@ -183,22 +183,6 @@ void StoreNamedTransitionDescriptor::InitializePlatformSpecific(
data->InitializePlatformSpecific(len, registers);
}
-void StoreGlobalViaContextDescriptor::InitializePlatformIndependent(
- CallInterfaceDescriptorData* data) {
- // kSlot, kValue
- MachineType machine_types[] = {MachineType::Int32(),
- MachineType::AnyTagged()};
- data->InitializePlatformIndependent(arraysize(machine_types), 0,
- machine_types);
-}
-
-void StoreGlobalViaContextDescriptor::InitializePlatformSpecific(
- CallInterfaceDescriptorData* data) {
- Register registers[] = {SlotRegister(), ValueRegister()};
- data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-
void StringCompareDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
Register registers[] = {LeftRegister(), RightRegister()};
@@ -233,7 +217,6 @@ void LoadWithVectorDescriptor::InitializePlatformIndependent(
machine_types);
}
-
void LoadWithVectorDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
Register registers[] = {ReceiverRegister(), NameRegister(), SlotRegister(),
@@ -241,6 +224,24 @@ void LoadWithVectorDescriptor::InitializePlatformSpecific(
data->InitializePlatformSpecific(arraysize(registers), registers);
}
+void LoadICProtoArrayDescriptor::InitializePlatformIndependent(
+ CallInterfaceDescriptorData* data) {
+ // kReceiver, kName, kSlot, kVector, kHandler
+ MachineType machine_types[] = {
+ MachineType::AnyTagged(), MachineType::AnyTagged(),
+ MachineType::TaggedSigned(), MachineType::AnyTagged(),
+ MachineType::AnyTagged()};
+ data->InitializePlatformIndependent(arraysize(machine_types), 0,
+ machine_types);
+}
+
+void LoadICProtoArrayDescriptor::InitializePlatformSpecific(
+ CallInterfaceDescriptorData* data) {
+ Register registers[] = {ReceiverRegister(), NameRegister(), SlotRegister(),
+ VectorRegister(), HandlerRegister()};
+ data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
void StoreWithVectorDescriptor::InitializePlatformIndependent(
CallInterfaceDescriptorData* data) {
// kReceiver, kName, kValue, kSlot, kVector
@@ -378,14 +379,35 @@ void CallFunctionWithFeedbackDescriptor::InitializePlatformIndependent(
void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformIndependent(
CallInterfaceDescriptorData* data) {
- // kFunction, kSlot, kVector
- MachineType machine_types[] = {MachineType::TaggedPointer(),
- MachineType::TaggedSigned(),
- MachineType::AnyTagged()};
+ // kFunction, kActualArgumentsCount, kSlot, kVector
+ MachineType machine_types[] = {
+ MachineType::TaggedPointer(), MachineType::Int32(),
+ MachineType::TaggedSigned(), MachineType::AnyTagged()};
+ data->InitializePlatformIndependent(arraysize(machine_types), 0,
+ machine_types);
+}
+
+void BuiltinDescriptor::InitializePlatformIndependent(
+ CallInterfaceDescriptorData* data) {
+ MachineType machine_types[] = {MachineType::AnyTagged(),
+ MachineType::Int32()};
data->InitializePlatformIndependent(arraysize(machine_types), 0,
machine_types);
}
+void BuiltinDescriptor::InitializePlatformSpecific(
+ CallInterfaceDescriptorData* data) {
+ Register registers[] = {NewTargetRegister(), ArgumentsCountRegister()};
+ data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
+const Register BuiltinDescriptor::ArgumentsCountRegister() {
+ return kJavaScriptCallArgCountRegister;
+}
+const Register BuiltinDescriptor::NewTargetRegister() {
+ return kJavaScriptCallNewTargetRegister;
+}
+
void ArrayNoArgumentConstructorDescriptor::InitializePlatformIndependent(
CallInterfaceDescriptorData* data) {
// kFunction, kAllocationSite, kActualArgumentsCount, kFunctionParameter