| 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
|
|
|