| Index: src/ic/mips64/ic-mips64.cc
|
| diff --git a/src/ic/mips64/ic-mips64.cc b/src/ic/mips64/ic-mips64.cc
|
| index 897880c1a37a4a53a2301262c7b9498f943c3de3..d995b8af0681af5266b5975638a52b20489fbca3 100644
|
| --- a/src/ic/mips64/ic-mips64.cc
|
| +++ b/src/ic/mips64/ic-mips64.cc
|
| @@ -250,8 +250,8 @@ static void GenerateKeyNameCheck(MacroAssembler* masm, Register key,
|
|
|
| void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
|
| // The return address is in lr.
|
| - Register receiver = ReceiverRegister();
|
| - Register name = NameRegister();
|
| + Register receiver = LoadConvention::ReceiverRegister();
|
| + Register name = LoadConvention::NameRegister();
|
| DCHECK(receiver.is(a1));
|
| DCHECK(name.is(a2));
|
|
|
| @@ -268,13 +268,14 @@ void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
|
|
|
| void LoadIC::GenerateNormal(MacroAssembler* masm) {
|
| Register dictionary = a0;
|
| - DCHECK(!dictionary.is(ReceiverRegister()));
|
| - DCHECK(!dictionary.is(NameRegister()));
|
| + DCHECK(!dictionary.is(LoadConvention::ReceiverRegister()));
|
| + DCHECK(!dictionary.is(LoadConvention::NameRegister()));
|
| Label slow;
|
|
|
| - __ ld(dictionary,
|
| - FieldMemOperand(ReceiverRegister(), JSObject::kPropertiesOffset));
|
| - GenerateDictionaryLoad(masm, &slow, dictionary, NameRegister(), v0, a3, a4);
|
| + __ ld(dictionary, FieldMemOperand(LoadConvention::ReceiverRegister(),
|
| + JSObject::kPropertiesOffset));
|
| + GenerateDictionaryLoad(masm, &slow, dictionary,
|
| + LoadConvention::NameRegister(), v0, a3, a4);
|
| __ Ret();
|
|
|
| // Dictionary load failed, go slow (but don't miss).
|
| @@ -293,8 +294,8 @@ void LoadIC::GenerateMiss(MacroAssembler* masm) {
|
|
|
| __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, a3, a4);
|
|
|
| - __ mov(LoadIC_TempRegister(), ReceiverRegister());
|
| - __ Push(LoadIC_TempRegister(), NameRegister());
|
| + __ mov(LoadIC_TempRegister(), LoadConvention::ReceiverRegister());
|
| + __ Push(LoadIC_TempRegister(), LoadConvention::NameRegister());
|
|
|
| // Perform tail call to the entry.
|
| ExternalReference ref = ExternalReference(IC_Utility(kLoadIC_Miss), isolate);
|
| @@ -305,8 +306,8 @@ void LoadIC::GenerateMiss(MacroAssembler* masm) {
|
| void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
|
| // The return address is in ra.
|
|
|
| - __ mov(LoadIC_TempRegister(), ReceiverRegister());
|
| - __ Push(LoadIC_TempRegister(), NameRegister());
|
| + __ mov(LoadIC_TempRegister(), LoadConvention::ReceiverRegister());
|
| + __ Push(LoadIC_TempRegister(), LoadConvention::NameRegister());
|
|
|
| __ TailCallRuntime(Runtime::kGetProperty, 2, 1);
|
| }
|
| @@ -391,8 +392,8 @@ static MemOperand GenerateUnmappedArgumentsLookup(MacroAssembler* masm,
|
|
|
| void KeyedLoadIC::GenerateSloppyArguments(MacroAssembler* masm) {
|
| // The return address is in ra.
|
| - Register receiver = ReceiverRegister();
|
| - Register key = NameRegister();
|
| + Register receiver = LoadConvention::ReceiverRegister();
|
| + Register key = LoadConvention::NameRegister();
|
| DCHECK(receiver.is(a1));
|
| DCHECK(key.is(a2));
|
|
|
| @@ -416,9 +417,9 @@ void KeyedLoadIC::GenerateSloppyArguments(MacroAssembler* masm) {
|
|
|
|
|
| void KeyedStoreIC::GenerateSloppyArguments(MacroAssembler* masm) {
|
| - Register receiver = ReceiverRegister();
|
| - Register key = NameRegister();
|
| - Register value = ValueRegister();
|
| + Register receiver = StoreConvention::ReceiverRegister();
|
| + Register key = StoreConvention::NameRegister();
|
| + Register value = StoreConvention::ValueRegister();
|
| DCHECK(value.is(a0));
|
|
|
| Label slow, notin;
|
| @@ -455,7 +456,7 @@ void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) {
|
|
|
| __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, a3, a4);
|
|
|
| - __ Push(ReceiverRegister(), NameRegister());
|
| + __ Push(LoadConvention::ReceiverRegister(), LoadConvention::NameRegister());
|
|
|
| // Perform tail call to the entry.
|
| ExternalReference ref =
|
| @@ -465,35 +466,10 @@ void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| -// IC register specifications
|
| -const Register LoadIC::ReceiverRegister() { return a1; }
|
| -const Register LoadIC::NameRegister() { return a2; }
|
| -
|
| -
|
| -const Register LoadIC::SlotRegister() {
|
| - DCHECK(FLAG_vector_ics);
|
| - return a0;
|
| -}
|
| -
|
| -
|
| -const Register LoadIC::VectorRegister() {
|
| - DCHECK(FLAG_vector_ics);
|
| - return a3;
|
| -}
|
| -
|
| -
|
| -const Register StoreIC::ReceiverRegister() { return a1; }
|
| -const Register StoreIC::NameRegister() { return a2; }
|
| -const Register StoreIC::ValueRegister() { return a0; }
|
| -
|
| -
|
| -const Register KeyedStoreIC::MapRegister() { return a3; }
|
| -
|
| -
|
| void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
|
| // The return address is in ra.
|
|
|
| - __ Push(ReceiverRegister(), NameRegister());
|
| + __ Push(LoadConvention::ReceiverRegister(), LoadConvention::NameRegister());
|
|
|
| __ TailCallRuntime(Runtime::kKeyedGetProperty, 2, 1);
|
| }
|
| @@ -504,8 +480,8 @@ void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) {
|
| Label slow, check_name, index_smi, index_name, property_array_property;
|
| Label probe_dictionary, check_number_dictionary;
|
|
|
| - Register key = NameRegister();
|
| - Register receiver = ReceiverRegister();
|
| + Register key = LoadConvention::NameRegister();
|
| + Register receiver = LoadConvention::ReceiverRegister();
|
| DCHECK(key.is(a2));
|
| DCHECK(receiver.is(a1));
|
|
|
| @@ -671,8 +647,8 @@ void KeyedLoadIC::GenerateString(MacroAssembler* masm) {
|
| // Return address is in ra.
|
| Label miss;
|
|
|
| - Register receiver = ReceiverRegister();
|
| - Register index = NameRegister();
|
| + Register receiver = LoadConvention::ReceiverRegister();
|
| + Register index = LoadConvention::NameRegister();
|
| Register scratch = a3;
|
| Register result = v0;
|
| DCHECK(!scratch.is(receiver) && !scratch.is(index));
|
| @@ -856,9 +832,9 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
|
| Label array, extra, check_if_double_array;
|
|
|
| // Register usage.
|
| - Register value = ValueRegister();
|
| - Register key = NameRegister();
|
| - Register receiver = ReceiverRegister();
|
| + Register value = StoreConvention::ValueRegister();
|
| + Register key = StoreConvention::NameRegister();
|
| + Register receiver = StoreConvention::ReceiverRegister();
|
| DCHECK(value.is(a0));
|
| Register receiver_map = a3;
|
| Register elements_map = a6;
|
| @@ -942,8 +918,8 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) {
|
| // Return address is in ra.
|
| Label slow;
|
|
|
| - Register receiver = ReceiverRegister();
|
| - Register key = NameRegister();
|
| + Register receiver = LoadConvention::ReceiverRegister();
|
| + Register key = LoadConvention::NameRegister();
|
| Register scratch1 = a3;
|
| Register scratch2 = a4;
|
| DCHECK(!scratch1.is(receiver) && !scratch1.is(key));
|
| @@ -980,7 +956,8 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) {
|
|
|
| void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
|
| // Push receiver, key and value for runtime call.
|
| - __ Push(ReceiverRegister(), NameRegister(), ValueRegister());
|
| + __ Push(StoreConvention::ReceiverRegister(), StoreConvention::NameRegister(),
|
| + StoreConvention::ValueRegister());
|
|
|
| ExternalReference ref =
|
| ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate());
|
| @@ -989,11 +966,11 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
|
|
|
|
|
| void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
|
| - Register receiver = ReceiverRegister();
|
| - Register name = NameRegister();
|
| + Register receiver = StoreConvention::ReceiverRegister();
|
| + Register name = StoreConvention::NameRegister();
|
| DCHECK(receiver.is(a1));
|
| DCHECK(name.is(a2));
|
| - DCHECK(ValueRegister().is(a0));
|
| + DCHECK(StoreConvention::ValueRegister().is(a0));
|
|
|
| // Get the receiver from the stack and probe the stub cache.
|
| Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
|
| @@ -1007,7 +984,8 @@ void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
|
|
|
|
|
| void StoreIC::GenerateMiss(MacroAssembler* masm) {
|
| - __ Push(ReceiverRegister(), NameRegister(), ValueRegister());
|
| + __ Push(StoreConvention::ReceiverRegister(), StoreConvention::NameRegister(),
|
| + StoreConvention::ValueRegister());
|
| // Perform tail call to the entry.
|
| ExternalReference ref =
|
| ExternalReference(IC_Utility(kStoreIC_Miss), masm->isolate());
|
| @@ -1017,9 +995,9 @@ void StoreIC::GenerateMiss(MacroAssembler* masm) {
|
|
|
| void StoreIC::GenerateNormal(MacroAssembler* masm) {
|
| Label miss;
|
| - Register receiver = ReceiverRegister();
|
| - Register name = NameRegister();
|
| - Register value = ValueRegister();
|
| + Register receiver = StoreConvention::ReceiverRegister();
|
| + Register name = StoreConvention::NameRegister();
|
| + Register value = StoreConvention::ValueRegister();
|
| Register dictionary = a3;
|
| DCHECK(!AreAliased(value, receiver, name, dictionary, a4, a5));
|
|
|
|
|