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