From 8389745919cae02139ddc085a63c00d024269cf2 Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Tue, 17 May 2016 11:12:09 +0100 Subject: Upgrade to 5.0.71.48 Change-Id: I1d03e89e30c95997ef140af4d49a642a9a4ccd59 --- src/ic/x87/ic-x87.cc | 53 +++++++++++++++++++--------------------------------- 1 file changed, 19 insertions(+), 34 deletions(-) (limited to 'src/ic/x87/ic-x87.cc') diff --git a/src/ic/x87/ic-x87.cc b/src/ic/x87/ic-x87.cc index d4cc3ce8..5bbd9c58 100644 --- a/src/ic/x87/ic-x87.cc +++ b/src/ic/x87/ic-x87.cc @@ -167,7 +167,7 @@ static void GenerateKeyedLoadReceiverCheck(MacroAssembler* masm, static void GenerateFastArrayLoad(MacroAssembler* masm, Register receiver, Register key, Register scratch, Register scratch2, Register result, - Label* slow, LanguageMode language_mode) { + Label* slow) { // Register use: // receiver - holds the receiver and is unchanged. // key - holds the key and is unchanged (must be a smi). @@ -211,13 +211,8 @@ static void GenerateFastArrayLoad(MacroAssembler* masm, Register receiver, __ jmp(&check_next_prototype); __ bind(&absent); - if (is_strong(language_mode)) { - // Strong mode accesses must throw in this case, so call the runtime. - __ jmp(slow); - } else { - __ mov(result, masm->isolate()->factory()->undefined_value()); - __ jmp(&done); - } + __ mov(result, masm->isolate()->factory()->undefined_value()); + __ jmp(&done); __ bind(&in_bounds); // Fast case: Do the load. @@ -262,9 +257,7 @@ static void GenerateKeyNameCheck(MacroAssembler* masm, Register key, __ bind(&unique); } - -void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm, - LanguageMode language_mode) { +void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm) { // The return address is on the stack. Label slow, check_name, index_smi, index_name, property_array_property; Label probe_dictionary, check_number_dictionary; @@ -286,11 +279,10 @@ void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm, // Check the receiver's map to see if it has fast elements. __ CheckFastElements(eax, &check_number_dictionary); - GenerateFastArrayLoad(masm, receiver, key, eax, ebx, eax, &slow, - language_mode); + GenerateFastArrayLoad(masm, receiver, key, eax, ebx, eax, &slow); Isolate* isolate = masm->isolate(); Counters* counters = isolate->counters(); - __ IncrementCounter(counters->keyed_load_generic_smi(), 1); + __ IncrementCounter(counters->ic_keyed_load_generic_smi(), 1); __ ret(0); __ bind(&check_number_dictionary); @@ -318,8 +310,8 @@ void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm, __ bind(&slow); // Slow case: jump to runtime. - __ IncrementCounter(counters->keyed_load_generic_slow(), 1); - GenerateRuntimeGetProperty(masm, language_mode); + __ IncrementCounter(counters->ic_keyed_load_generic_slow(), 1); + GenerateRuntimeGetProperty(masm); __ bind(&check_name); GenerateKeyNameCheck(masm, key, eax, ebx, &index_name, &slow); @@ -363,7 +355,7 @@ void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm, GenerateGlobalInstanceTypeCheck(masm, eax, &slow); GenerateDictionaryLoad(masm, &slow, ebx, key, eax, edi, eax); - __ IncrementCounter(counters->keyed_load_generic_symbol(), 1); + __ IncrementCounter(counters->ic_keyed_load_generic_symbol(), 1); __ ret(0); __ bind(&index_name); @@ -628,8 +620,7 @@ void KeyedStoreIC::GenerateMegamorphic(MacroAssembler* masm, GenerateMiss(masm); } - -void LoadIC::GenerateNormal(MacroAssembler* masm, LanguageMode language_mode) { +void LoadIC::GenerateNormal(MacroAssembler* masm) { Register dictionary = eax; DCHECK(!dictionary.is(LoadDescriptor::ReceiverRegister())); DCHECK(!dictionary.is(LoadDescriptor::NameRegister())); @@ -644,7 +635,7 @@ void LoadIC::GenerateNormal(MacroAssembler* masm, LanguageMode language_mode) { // Dictionary load failed, go slow (but don't miss). __ bind(&slow); - GenerateRuntimeGetProperty(masm, language_mode); + GenerateRuntimeGetProperty(masm); } @@ -668,16 +659,14 @@ static void LoadIC_PushArgs(MacroAssembler* masm) { void LoadIC::GenerateMiss(MacroAssembler* masm) { // Return address is on the stack. - __ IncrementCounter(masm->isolate()->counters()->load_miss(), 1); + __ IncrementCounter(masm->isolate()->counters()->ic_load_miss(), 1); LoadIC_PushArgs(masm); // Perform tail call to the entry. __ TailCallRuntime(Runtime::kLoadIC_Miss); } - -void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm, - LanguageMode language_mode) { +void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) { // Return address is on the stack. Register receiver = LoadDescriptor::ReceiverRegister(); Register name = LoadDescriptor::NameRegister(); @@ -689,14 +678,13 @@ void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm, __ push(ebx); // Do tail-call to runtime routine. - __ TailCallRuntime(is_strong(language_mode) ? Runtime::kGetPropertyStrong - : Runtime::kGetProperty); + __ TailCallRuntime(Runtime::kGetProperty); } void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) { // Return address is on the stack. - __ IncrementCounter(masm->isolate()->counters()->keyed_load_miss(), 1); + __ IncrementCounter(masm->isolate()->counters()->ic_keyed_load_miss(), 1); LoadIC_PushArgs(masm); @@ -704,9 +692,7 @@ void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) { __ TailCallRuntime(Runtime::kKeyedLoadIC_Miss); } - -void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm, - LanguageMode language_mode) { +void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) { // Return address is on the stack. Register receiver = LoadDescriptor::ReceiverRegister(); Register name = LoadDescriptor::NameRegister(); @@ -718,8 +704,7 @@ void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm, __ push(ebx); // Do tail-call to runtime routine. - __ TailCallRuntime(is_strong(language_mode) ? Runtime::kKeyedGetPropertyStrong - : Runtime::kKeyedGetProperty); + __ TailCallRuntime(Runtime::kKeyedGetProperty); } @@ -777,14 +762,14 @@ void StoreIC::GenerateNormal(MacroAssembler* masm) { receiver, edi); __ Drop(3); Counters* counters = masm->isolate()->counters(); - __ IncrementCounter(counters->store_normal_hit(), 1); + __ IncrementCounter(counters->ic_store_normal_hit(), 1); __ ret(0); __ bind(&restore_miss); __ pop(slot); __ pop(vector); __ pop(receiver); - __ IncrementCounter(counters->store_normal_miss(), 1); + __ IncrementCounter(counters->ic_store_normal_miss(), 1); GenerateMiss(masm); } -- cgit v1.2.3