Index: src/interface-descriptors.cc |
diff --git a/src/interface-descriptors.cc b/src/interface-descriptors.cc |
index cfb88672c69e7fa3a4ffbf36a8a3ce99bcbfd280..d4faf5215b5afbbc02937dcac8112ddacc3bc88e 100644 |
--- a/src/interface-descriptors.cc |
+++ b/src/interface-descriptors.cc |
@@ -90,6 +90,21 @@ void LoadDescriptor::InitializePlatformSpecific( |
data->InitializePlatformSpecific(arraysize(registers), registers); |
} |
+void LoadFieldDescriptor::InitializePlatformIndependent( |
+ CallInterfaceDescriptorData* data) { |
+ // kReceiver, kSmiHandler |
+ MachineType machine_types[] = {MachineType::AnyTagged(), |
+ MachineType::AnyTagged()}; |
+ data->InitializePlatformIndependent(arraysize(machine_types), 0, |
+ machine_types); |
+} |
+ |
+void LoadFieldDescriptor::InitializePlatformSpecific( |
+ CallInterfaceDescriptorData* data) { |
+ Register registers[] = {ReceiverRegister(), SmiHandlerRegister()}; |
+ data->InitializePlatformSpecific(arraysize(registers), registers); |
+} |
+ |
void LoadGlobalDescriptor::InitializePlatformIndependent( |
CallInterfaceDescriptorData* data) { |
// kName, kSlot |
@@ -237,6 +252,19 @@ void MathPowIntegerDescriptor::InitializePlatformSpecific( |
data->InitializePlatformSpecific(arraysize(registers), registers); |
} |
+const Register LoadFieldDescriptor::ReceiverRegister() { |
+ // Reuse the register from the LoadDescriptor, since given the |
+ // LoadFieldDescriptor's usage, it doesn't matter exactly which registers are |
+ // used to pass parameters in. |
+ return LoadDescriptor::ReceiverRegister(); |
+} |
+const Register LoadFieldDescriptor::SmiHandlerRegister() { |
+ // Reuse the register from the LoadDescriptor, since given the |
+ // LoadFieldDescriptor's usage, it doesn't matter exactly which registers are |
+ // used to pass parameters in. |
+ return LoadDescriptor::NameRegister(); |
+} |
+ |
void LoadWithVectorDescriptor::InitializePlatformIndependent( |
CallInterfaceDescriptorData* data) { |
// kReceiver, kName, kSlot, kVector |