| Index: src/ic/mips/ic-mips.cc | 
| diff --git a/src/ic/mips/ic-mips.cc b/src/ic/mips/ic-mips.cc | 
| index 5e72e8979a000c477a7cc80c57e5ca5b5cb35513..1e01d4b9255b00a3410ac23150c17953d29c86ff 100644 | 
| --- a/src/ic/mips/ic-mips.cc | 
| +++ b/src/ic/mips/ic-mips.cc | 
| @@ -251,8 +251,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)); | 
|  | 
| @@ -269,14 +269,15 @@ 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; | 
|  | 
| -  __ lw(dictionary, | 
| -        FieldMemOperand(ReceiverRegister(), JSObject::kPropertiesOffset)); | 
| -  GenerateDictionaryLoad(masm, &slow, dictionary, NameRegister(), v0, a3, t0); | 
| +  __ lw(dictionary, FieldMemOperand(LoadConvention::ReceiverRegister(), | 
| +                                    JSObject::kPropertiesOffset)); | 
| +  GenerateDictionaryLoad(masm, &slow, dictionary, | 
| +                         LoadConvention::NameRegister(), v0, a3, t0); | 
| __ Ret(); | 
|  | 
| // Dictionary load failed, go slow (but don't miss). | 
| @@ -295,8 +296,8 @@ void LoadIC::GenerateMiss(MacroAssembler* masm) { | 
|  | 
| __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, a3, t0); | 
|  | 
| -  __ 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); | 
| @@ -307,8 +308,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); | 
| } | 
| @@ -393,8 +394,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)); | 
|  | 
| @@ -418,9 +419,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; | 
| @@ -457,7 +458,7 @@ void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) { | 
|  | 
| __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, a3, t0); | 
|  | 
| -  __ Push(ReceiverRegister(), NameRegister()); | 
| +  __ Push(LoadConvention::ReceiverRegister(), LoadConvention::NameRegister()); | 
|  | 
| // Perform tail call to the entry. | 
| ExternalReference ref = | 
| @@ -467,35 +468,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); | 
| } | 
| @@ -506,8 +482,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)); | 
|  | 
| @@ -666,8 +642,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)); | 
| @@ -847,9 +823,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 = t2; | 
| @@ -933,8 +909,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 = t0; | 
| DCHECK(!scratch1.is(receiver) && !scratch1.is(key)); | 
| @@ -971,7 +947,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()); | 
| @@ -980,11 +957,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( | 
| @@ -998,7 +975,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()); | 
| @@ -1008,9 +986,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(receiver.is(a1)); | 
| DCHECK(name.is(a2)); | 
|  |