| Index: src/ic/arm64/ic-arm64.cc
|
| diff --git a/src/ic/arm64/ic-arm64.cc b/src/ic/arm64/ic-arm64.cc
|
| index 4804a23be7055415a1e629cdfe57ed80879a2c59..1a42dfbd2586f6d918a39efdb119602e66c6b6fc 100644
|
| --- a/src/ic/arm64/ic-arm64.cc
|
| +++ b/src/ic/arm64/ic-arm64.cc
|
| @@ -357,9 +357,17 @@ void LoadIC::GenerateMiss(MacroAssembler* masm) {
|
| __ IncrementCounter(isolate->counters()->load_miss(), 1, x3, x4);
|
|
|
| // Perform tail call to the entry.
|
| - __ Push(LoadDescriptor::ReceiverRegister(), LoadDescriptor::NameRegister());
|
| + if (FLAG_vector_ics) {
|
| + __ Push(VectorLoadICDescriptor::ReceiverRegister(),
|
| + VectorLoadICDescriptor::NameRegister(),
|
| + VectorLoadICDescriptor::SlotRegister(),
|
| + VectorLoadICDescriptor::VectorRegister());
|
| + } else {
|
| + __ Push(LoadDescriptor::ReceiverRegister(), LoadDescriptor::NameRegister());
|
| + }
|
| ExternalReference ref = ExternalReference(IC_Utility(kLoadIC_Miss), isolate);
|
| - __ TailCallExternalReference(ref, 2, 1);
|
| + int arg_count = FLAG_vector_ics ? 4 : 2;
|
| + __ TailCallExternalReference(ref, arg_count, 1);
|
| }
|
|
|
|
|
| @@ -422,13 +430,20 @@ void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) {
|
|
|
| __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, x10, x11);
|
|
|
| - __ Push(LoadDescriptor::ReceiverRegister(), LoadDescriptor::NameRegister());
|
| + if (FLAG_vector_ics) {
|
| + __ Push(VectorLoadICDescriptor::ReceiverRegister(),
|
| + VectorLoadICDescriptor::NameRegister(),
|
| + VectorLoadICDescriptor::SlotRegister(),
|
| + VectorLoadICDescriptor::VectorRegister());
|
| + } else {
|
| + __ Push(LoadDescriptor::ReceiverRegister(), LoadDescriptor::NameRegister());
|
| + }
|
|
|
| // Perform tail call to the entry.
|
| ExternalReference ref =
|
| ExternalReference(IC_Utility(kKeyedLoadIC_Miss), isolate);
|
| -
|
| - __ TailCallExternalReference(ref, 2, 1);
|
| + int arg_count = FLAG_vector_ics ? 4 : 2;
|
| + __ TailCallExternalReference(ref, arg_count, 1);
|
| }
|
|
|
|
|
|
|