Index: src/x64/interface-descriptors-x64.cc |
diff --git a/src/x64/interface-descriptors-x64.cc b/src/x64/interface-descriptors-x64.cc |
index d0e24dd714c26f788f50610c64d3d41a403b170c..84fdca4fb9226d6b3ff43f2eaadf7358a5380f03 100644 |
--- a/src/x64/interface-descriptors-x64.cc |
+++ b/src/x64/interface-descriptors-x64.cc |
@@ -18,17 +18,9 @@ const Register LoadDescriptor::ReceiverRegister() { return rdx; } |
const Register LoadDescriptor::NameRegister() { return rcx; } |
-const Register VectorLoadICDescriptor::ReceiverRegister() { |
- return LoadDescriptor::ReceiverRegister(); |
-} |
- |
- |
-const Register VectorLoadICDescriptor::NameRegister() { |
- return LoadDescriptor::NameRegister(); |
-} |
+const Register VectorLoadICTrampolineDescriptor::SlotRegister() { return rax; } |
-const Register VectorLoadICDescriptor::SlotRegister() { return rax; } |
const Register VectorLoadICDescriptor::VectorRegister() { return rbx; } |
@@ -37,28 +29,28 @@ const Register StoreDescriptor::NameRegister() { return rcx; } |
const Register StoreDescriptor::ValueRegister() { return rax; } |
-const Register ElementTransitionAndStoreDescriptor::ReceiverRegister() { |
- return StoreDescriptor::ReceiverRegister(); |
+const Register ElementTransitionAndStoreDescriptor::MapRegister() { |
+ return rbx; |
} |
-const Register ElementTransitionAndStoreDescriptor::NameRegister() { |
- return StoreDescriptor::NameRegister(); |
-} |
+const Register InstanceofDescriptor::left() { return rax; } |
+const Register InstanceofDescriptor::right() { return rdx; } |
-const Register ElementTransitionAndStoreDescriptor::ValueRegister() { |
- return StoreDescriptor::ValueRegister(); |
-} |
+const Register ArgumentsAccessReadDescriptor::index() { return rdx; } |
+const Register ArgumentsAccessReadDescriptor::parameter_count() { return rax; } |
-const Register ElementTransitionAndStoreDescriptor::MapRegister() { |
- return rbx; |
-} |
+const Register ApiGetterDescriptor::function_address() { return r8; } |
-const Register InstanceofDescriptor::left() { return rax; } |
-const Register InstanceofDescriptor::right() { return rdx; } |
+const Register MathPowTaggedDescriptor::exponent() { return rdx; } |
+ |
+ |
+const Register MathPowIntegerDescriptor::exponent() { |
+ return MathPowTaggedDescriptor::exponent(); |
+} |
void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
@@ -110,12 +102,29 @@ void CreateAllocationSiteDescriptor::Initialize( |
} |
+void StoreArrayLiteralElementDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
+ Register registers[] = {rsi, rcx, rax}; |
+ data->Initialize(arraysize(registers), registers, NULL); |
+} |
+ |
+ |
void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
Register registers[] = {rsi, rdi}; |
data->Initialize(arraysize(registers), registers, NULL); |
} |
+void CallFunctionWithFeedbackDescriptor::Initialize( |
+ CallInterfaceDescriptorData* data) { |
+ Register registers[] = {rsi, rdi, rdx}; |
+ Representation representations[] = {Representation::Tagged(), |
+ Representation::Tagged(), |
+ Representation::Smi()}; |
+ data->Initialize(arraysize(registers), registers, representations); |
+} |
+ |
+ |
void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { |
// rax : number of arguments |
// rbx : feedback vector |