| Index: src/interface-descriptors.cc
|
| diff --git a/src/interface-descriptors.cc b/src/interface-descriptors.cc
|
| index dd0be43ae0a5a0d307fe0854d672e5fad3d8feab..2324c62eda5447a1f0ffad894a05a8b752c8c0e7 100644
|
| --- a/src/interface-descriptors.cc
|
| +++ b/src/interface-descriptors.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "src/v8.h"
|
|
|
| +#include "src/ic/ic-conventions.h"
|
| #include "src/interface-descriptors.h"
|
|
|
| namespace v8 {
|
| @@ -51,5 +52,53 @@ void CallInterfaceDescriptor::Initialize(
|
| InterfaceDescriptor::Initialize(register_parameter_count, registers,
|
| param_representations, platform_descriptor);
|
| }
|
| +
|
| +
|
| +void CallDescriptors::InitializeForIsolateAllPlatforms(Isolate* isolate) {
|
| + {
|
| + CallInterfaceDescriptor* descriptor =
|
| + isolate->call_descriptor(CallDescriptorKey::LoadICCall);
|
| + Register registers[] = {InterfaceDescriptor::ContextRegister(),
|
| + LoadConvention::ReceiverRegister(),
|
| + LoadConvention::NameRegister()};
|
| + descriptor->Initialize(arraysize(registers), registers, NULL);
|
| + }
|
| + {
|
| + CallInterfaceDescriptor* descriptor =
|
| + isolate->call_descriptor(CallDescriptorKey::StoreICCall);
|
| + Register registers[] = {InterfaceDescriptor::ContextRegister(),
|
| + StoreConvention::ReceiverRegister(),
|
| + StoreConvention::NameRegister(),
|
| + StoreConvention::ValueRegister()};
|
| + descriptor->Initialize(arraysize(registers), registers, NULL);
|
| + }
|
| + {
|
| + CallInterfaceDescriptor* descriptor = isolate->call_descriptor(
|
| + CallDescriptorKey::ElementTransitionAndStoreCall);
|
| + Register registers[] = {
|
| + InterfaceDescriptor::ContextRegister(),
|
| + StoreConvention::ValueRegister(), StoreConvention::MapRegister(),
|
| + StoreConvention::NameRegister(), StoreConvention::ReceiverRegister()};
|
| + descriptor->Initialize(arraysize(registers), registers, NULL);
|
| + }
|
| + {
|
| + CallInterfaceDescriptor* descriptor =
|
| + isolate->call_descriptor(CallDescriptorKey::InstanceofCall);
|
| + Register registers[] = {InterfaceDescriptor::ContextRegister(),
|
| + InstanceofConvention::left(),
|
| + InstanceofConvention::right()};
|
| + descriptor->Initialize(arraysize(registers), registers, NULL);
|
| + }
|
| + {
|
| + CallInterfaceDescriptor* descriptor =
|
| + isolate->call_descriptor(CallDescriptorKey::VectorLoadICCall);
|
| + Register registers[] = {InterfaceDescriptor::ContextRegister(),
|
| + FullVectorLoadConvention::ReceiverRegister(),
|
| + FullVectorLoadConvention::NameRegister(),
|
| + FullVectorLoadConvention::SlotRegister(),
|
| + FullVectorLoadConvention::VectorRegister()};
|
| + descriptor->Initialize(arraysize(registers), registers, NULL);
|
| + }
|
| +}
|
| }
|
| } // namespace v8::internal
|
|
|