Index: src/ic/ia32/ic-ia32.cc |
diff --git a/src/ic/ia32/ic-ia32.cc b/src/ic/ia32/ic-ia32.cc |
index 5f130786591269ef6736b0bbc5f643cd63db7cb4..38dda3cdce2284cb9feaa2d4c1442f7eb88c7aa9 100644 |
--- a/src/ic/ia32/ic-ia32.cc |
+++ b/src/ic/ia32/ic-ia32.cc |
@@ -310,8 +310,8 @@ void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) { |
Label slow, check_name, index_smi, index_name, property_array_property; |
Label probe_dictionary, check_number_dictionary; |
- Register receiver = ReceiverRegister(); |
- Register key = NameRegister(); |
+ Register receiver = LoadConvention::ReceiverRegister(); |
+ Register key = LoadConvention::NameRegister(); |
DCHECK(receiver.is(edx)); |
DCHECK(key.is(ecx)); |
@@ -480,8 +480,8 @@ void KeyedLoadIC::GenerateString(MacroAssembler* masm) { |
// Return address is on the stack. |
Label miss; |
- Register receiver = ReceiverRegister(); |
- Register index = NameRegister(); |
+ Register receiver = LoadConvention::ReceiverRegister(); |
+ Register index = LoadConvention::NameRegister(); |
Register scratch = ebx; |
DCHECK(!scratch.is(receiver) && !scratch.is(index)); |
Register result = eax; |
@@ -507,8 +507,8 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) { |
// Return address is on the stack. |
Label slow; |
- Register receiver = ReceiverRegister(); |
- Register key = NameRegister(); |
+ Register receiver = LoadConvention::ReceiverRegister(); |
+ Register key = LoadConvention::NameRegister(); |
Register scratch = eax; |
DCHECK(!scratch.is(receiver) && !scratch.is(key)); |
@@ -547,8 +547,8 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) { |
void KeyedLoadIC::GenerateSloppyArguments(MacroAssembler* masm) { |
// The return address is on the stack. |
- Register receiver = ReceiverRegister(); |
- Register key = NameRegister(); |
+ Register receiver = LoadConvention::ReceiverRegister(); |
+ Register key = LoadConvention::NameRegister(); |
DCHECK(receiver.is(edx)); |
DCHECK(key.is(ecx)); |
@@ -574,9 +574,9 @@ void KeyedLoadIC::GenerateSloppyArguments(MacroAssembler* masm) { |
void KeyedStoreIC::GenerateSloppyArguments(MacroAssembler* masm) { |
// Return address is on the stack. |
Label slow, notin; |
- Register receiver = ReceiverRegister(); |
- Register name = NameRegister(); |
- Register value = ValueRegister(); |
+ Register receiver = StoreConvention::ReceiverRegister(); |
+ Register name = StoreConvention::NameRegister(); |
+ Register value = StoreConvention::ValueRegister(); |
DCHECK(receiver.is(edx)); |
DCHECK(name.is(ecx)); |
DCHECK(value.is(eax)); |
@@ -608,9 +608,9 @@ static void KeyedStoreGenerateGenericHelper( |
Label transition_smi_elements; |
Label finish_object_store, non_double_value, transition_double_elements; |
Label fast_double_without_map_check; |
- Register receiver = KeyedStoreIC::ReceiverRegister(); |
- Register key = KeyedStoreIC::NameRegister(); |
- Register value = KeyedStoreIC::ValueRegister(); |
+ Register receiver = StoreConvention::ReceiverRegister(); |
+ Register key = StoreConvention::NameRegister(); |
+ Register value = StoreConvention::ValueRegister(); |
DCHECK(receiver.is(edx)); |
DCHECK(key.is(ecx)); |
DCHECK(value.is(eax)); |
@@ -746,8 +746,8 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, |
Label slow, fast_object, fast_object_grow; |
Label fast_double, fast_double_grow; |
Label array, extra, check_if_double_array; |
- Register receiver = ReceiverRegister(); |
- Register key = NameRegister(); |
+ Register receiver = StoreConvention::ReceiverRegister(); |
+ Register key = StoreConvention::NameRegister(); |
DCHECK(receiver.is(edx)); |
DCHECK(key.is(ecx)); |
@@ -826,8 +826,8 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, |
void LoadIC::GenerateMegamorphic(MacroAssembler* masm) { |
// The return address is on the stack. |
- Register receiver = ReceiverRegister(); |
- Register name = NameRegister(); |
+ Register receiver = LoadConvention::ReceiverRegister(); |
+ Register name = LoadConvention::NameRegister(); |
DCHECK(receiver.is(edx)); |
DCHECK(name.is(ecx)); |
@@ -844,15 +844,15 @@ void LoadIC::GenerateMegamorphic(MacroAssembler* masm) { |
void LoadIC::GenerateNormal(MacroAssembler* masm) { |
Register dictionary = eax; |
- DCHECK(!dictionary.is(ReceiverRegister())); |
- DCHECK(!dictionary.is(NameRegister())); |
+ DCHECK(!dictionary.is(LoadConvention::ReceiverRegister())); |
+ DCHECK(!dictionary.is(LoadConvention::NameRegister())); |
Label slow; |
- __ mov(dictionary, |
- FieldOperand(ReceiverRegister(), JSObject::kPropertiesOffset)); |
- GenerateDictionaryLoad(masm, &slow, dictionary, NameRegister(), edi, ebx, |
- eax); |
+ __ mov(dictionary, FieldOperand(LoadConvention::ReceiverRegister(), |
+ JSObject::kPropertiesOffset)); |
+ GenerateDictionaryLoad(masm, &slow, dictionary, |
+ LoadConvention::NameRegister(), edi, ebx, eax); |
__ ret(0); |
// Dictionary load failed, go slow (but don't miss). |
@@ -862,8 +862,8 @@ void LoadIC::GenerateNormal(MacroAssembler* masm) { |
static void LoadIC_PushArgs(MacroAssembler* masm) { |
- Register receiver = LoadIC::ReceiverRegister(); |
- Register name = LoadIC::NameRegister(); |
+ Register receiver = LoadConvention::ReceiverRegister(); |
+ Register name = LoadConvention::NameRegister(); |
DCHECK(!ebx.is(receiver) && !ebx.is(name)); |
__ pop(ebx); |
@@ -908,31 +908,6 @@ void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) { |
} |
-// IC register specifications |
-const Register LoadIC::ReceiverRegister() { return edx; } |
-const Register LoadIC::NameRegister() { return ecx; } |
- |
- |
-const Register LoadIC::SlotRegister() { |
- DCHECK(FLAG_vector_ics); |
- return eax; |
-} |
- |
- |
-const Register LoadIC::VectorRegister() { |
- DCHECK(FLAG_vector_ics); |
- return ebx; |
-} |
- |
- |
-const Register StoreIC::ReceiverRegister() { return edx; } |
-const Register StoreIC::NameRegister() { return ecx; } |
-const Register StoreIC::ValueRegister() { return eax; } |
- |
- |
-const Register KeyedStoreIC::MapRegister() { return ebx; } |
- |
- |
void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) { |
// Return address is on the stack. |
LoadIC_PushArgs(masm); |
@@ -946,8 +921,9 @@ void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { |
// Return address is on the stack. |
Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( |
Code::ComputeHandlerFlags(Code::STORE_IC)); |
- masm->isolate()->stub_cache()->GenerateProbe(masm, flags, ReceiverRegister(), |
- NameRegister(), ebx, no_reg); |
+ masm->isolate()->stub_cache()->GenerateProbe( |
+ masm, flags, StoreConvention::ReceiverRegister(), |
+ StoreConvention::NameRegister(), ebx, no_reg); |
// Cache miss: Jump to runtime. |
GenerateMiss(masm); |
@@ -955,9 +931,9 @@ void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { |
static void StoreIC_PushArgs(MacroAssembler* masm) { |
- Register receiver = StoreIC::ReceiverRegister(); |
- Register name = StoreIC::NameRegister(); |
- Register value = StoreIC::ValueRegister(); |
+ Register receiver = StoreConvention::ReceiverRegister(); |
+ Register name = StoreConvention::NameRegister(); |
+ Register value = StoreConvention::ValueRegister(); |
DCHECK(!ebx.is(receiver) && !ebx.is(name) && !ebx.is(value)); |
@@ -982,9 +958,9 @@ void StoreIC::GenerateMiss(MacroAssembler* masm) { |
void StoreIC::GenerateNormal(MacroAssembler* masm) { |
Label restore_miss; |
- Register receiver = ReceiverRegister(); |
- Register name = NameRegister(); |
- Register value = ValueRegister(); |
+ Register receiver = StoreConvention::ReceiverRegister(); |
+ Register name = StoreConvention::NameRegister(); |
+ Register value = StoreConvention::ValueRegister(); |
Register dictionary = ebx; |
__ mov(dictionary, FieldOperand(receiver, JSObject::kPropertiesOffset)); |