| Index: src/arm64/ic-arm64.cc
|
| diff --git a/src/arm64/ic-arm64.cc b/src/arm64/ic-arm64.cc
|
| index d42e68a36cf923421f3c4060314f3b610efb8128..3c87831c616f94ad107004f341402ac847a83fba 100644
|
| --- a/src/arm64/ic-arm64.cc
|
| +++ b/src/arm64/ic-arm64.cc
|
| @@ -412,6 +412,8 @@ void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
|
| // -- lr : return address
|
| // -- x0 : receiver
|
| // -----------------------------------
|
| + ASSERT(x0.is(ReceiverRegister()));
|
| + ASSERT(x2.is(NameRegister()));
|
|
|
| // Probe the stub cache.
|
| Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC);
|
| @@ -429,6 +431,8 @@ void LoadIC::GenerateNormal(MacroAssembler* masm) {
|
| // -- lr : return address
|
| // -- x0 : receiver
|
| // -----------------------------------
|
| + ASSERT(x0.is(ReceiverRegister()));
|
| + ASSERT(x2.is(NameRegister()));
|
| Label miss, slow;
|
|
|
| GenerateNameDictionaryReceiverCheck(masm, x0, x1, x3, x4, &miss);
|
| @@ -449,9 +453,7 @@ void LoadIC::GenerateNormal(MacroAssembler* masm) {
|
|
|
| void LoadIC::GenerateMiss(MacroAssembler* masm) {
|
| // ----------- S t a t e -------------
|
| - // -- x2 : name
|
| // -- lr : return address
|
| - // -- x0 : receiver
|
| // -----------------------------------
|
| Isolate* isolate = masm->isolate();
|
| ASM_LOCATION("LoadIC::GenerateMiss");
|
| @@ -459,7 +461,7 @@ void LoadIC::GenerateMiss(MacroAssembler* masm) {
|
| __ IncrementCounter(isolate->counters()->load_miss(), 1, x3, x4);
|
|
|
| // Perform tail call to the entry.
|
| - __ Push(x0, x2);
|
| + __ Push(ReceiverRegister(), NameRegister());
|
| ExternalReference ref =
|
| ExternalReference(IC_Utility(kLoadIC_Miss), isolate);
|
| __ TailCallExternalReference(ref, 2, 1);
|
| @@ -468,12 +470,9 @@ void LoadIC::GenerateMiss(MacroAssembler* masm) {
|
|
|
| void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
|
| // ---------- S t a t e --------------
|
| - // -- x2 : name
|
| // -- lr : return address
|
| - // -- x0 : receiver
|
| // -----------------------------------
|
| -
|
| - __ Push(x0, x2);
|
| + __ Push(ReceiverRegister(), NameRegister());
|
| __ TailCallRuntime(Runtime::kGetProperty, 2, 1);
|
| }
|
|
|
| @@ -484,6 +483,8 @@ void KeyedLoadIC::GenerateSloppyArguments(MacroAssembler* masm) {
|
| // -- x0 : key
|
| // -- x1 : receiver
|
| // -----------------------------------
|
| + ASSERT(x1.is(ReceiverRegister()));
|
| + ASSERT(x0.is(NameRegister()));
|
| Register result = x0;
|
| Register key = x0;
|
| Register receiver = x1;
|
| @@ -518,7 +519,6 @@ void KeyedStoreIC::GenerateSloppyArguments(MacroAssembler* masm) {
|
| // -- x1 : key
|
| // -- x2 : receiver
|
| // -----------------------------------
|
| -
|
| Label slow, notin;
|
|
|
| Register value = x0;
|
| @@ -565,14 +565,12 @@ void KeyedStoreIC::GenerateSloppyArguments(MacroAssembler* masm) {
|
| void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) {
|
| // ---------- S t a t e --------------
|
| // -- lr : return address
|
| - // -- x0 : key
|
| - // -- x1 : receiver
|
| // -----------------------------------
|
| Isolate* isolate = masm->isolate();
|
|
|
| __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, x10, x11);
|
|
|
| - __ Push(x1, x0);
|
| + __ Push(ReceiverRegister(), NameRegister());
|
|
|
| // Perform tail call to the entry.
|
| ExternalReference ref =
|
| @@ -592,13 +590,8 @@ const Register KeyedLoadIC::NameRegister() { return x0; }
|
| void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
|
| // ---------- S t a t e --------------
|
| // -- lr : return address
|
| - // -- x0 : key
|
| - // -- x1 : receiver
|
| // -----------------------------------
|
| - Register key = x0;
|
| - Register receiver = x1;
|
| -
|
| - __ Push(receiver, key);
|
| + __ Push(ReceiverRegister(), NameRegister());
|
| __ TailCallRuntime(Runtime::kKeyedGetProperty, 2, 1);
|
| }
|
|
|
| @@ -772,6 +765,8 @@ void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) {
|
| // -- x0 : key
|
| // -- x1 : receiver
|
| // -----------------------------------
|
| + ASSERT(x1.is(ReceiverRegister()));
|
| + ASSERT(x0.is(NameRegister()));
|
| Label slow, check_name, index_smi, index_name;
|
|
|
| Register key = x0;
|
| @@ -807,6 +802,8 @@ void KeyedLoadIC::GenerateString(MacroAssembler* masm) {
|
| // -- x0 : key (index)
|
| // -- x1 : receiver
|
| // -----------------------------------
|
| + ASSERT(x1.is(ReceiverRegister()));
|
| + ASSERT(x0.is(NameRegister()));
|
| Label miss;
|
|
|
| Register index = x0;
|
| @@ -839,6 +836,8 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) {
|
| // -- x0 : key
|
| // -- x1 : receiver
|
| // -----------------------------------
|
| + ASSERT(x1.is(ReceiverRegister()));
|
| + ASSERT(x0.is(NameRegister()));
|
| Label slow;
|
| Register key = x0;
|
| Register receiver = x1;
|
|
|