diff options
author | Ben Murdoch <benm@google.com> | 2016-05-17 11:12:09 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2016-05-17 13:06:41 +0100 |
commit | 8389745919cae02139ddc085a63c00d024269cf2 (patch) | |
tree | 9b69609147476a7be455308f2a2046ddded6546b /src/ic/x87/ic-x87.cc | |
parent | 2a659f74200a1d68570107f58fd45dadd9cb6ff6 (diff) | |
download | v8-8389745919cae02139ddc085a63c00d024269cf2.tar.gz |
Upgrade to 5.0.71.48
Change-Id: I1d03e89e30c95997ef140af4d49a642a9a4ccd59
Diffstat (limited to 'src/ic/x87/ic-x87.cc')
-rw-r--r-- | src/ic/x87/ic-x87.cc | 53 |
1 files changed, 19 insertions, 34 deletions
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); } |