Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/crankshaft/ia32/lithium-codegen-ia32.cc

Issue 1912633002: [ic] Split LoadIC into LoadGlobalIC and LoadIC. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebasing Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #if V8_TARGET_ARCH_IA32 5 #if V8_TARGET_ARCH_IA32
6 6
7 #include "src/crankshaft/ia32/lithium-codegen-ia32.h" 7 #include "src/crankshaft/ia32/lithium-codegen-ia32.h"
8 8
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/code-factory.h" 10 #include "src/code-factory.h"
(...skipping 2406 matching lines...) Expand 10 before | Expand all | Expand 10 after
2417 2417
2418 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) { 2418 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
2419 DCHECK(ToRegister(instr->context()).is(esi)); 2419 DCHECK(ToRegister(instr->context()).is(esi));
2420 DCHECK(ToRegister(instr->global_object()) 2420 DCHECK(ToRegister(instr->global_object())
2421 .is(LoadDescriptor::ReceiverRegister())); 2421 .is(LoadDescriptor::ReceiverRegister()));
2422 DCHECK(ToRegister(instr->result()).is(eax)); 2422 DCHECK(ToRegister(instr->result()).is(eax));
2423 2423
2424 __ mov(LoadDescriptor::NameRegister(), instr->name()); 2424 __ mov(LoadDescriptor::NameRegister(), instr->name());
2425 EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr); 2425 EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
2426 Handle<Code> ic = 2426 Handle<Code> ic =
2427 CodeFactory::LoadICInOptimizedCode(isolate(), instr->typeof_mode()) 2427 CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
2428 .code(); 2428 .code();
2429 CallCode(ic, RelocInfo::CODE_TARGET, instr); 2429 CallCode(ic, RelocInfo::CODE_TARGET, instr);
2430 } 2430 }
2431 2431
2432 2432
2433 void LCodeGen::DoLoadContextSlot(LLoadContextSlot* instr) { 2433 void LCodeGen::DoLoadContextSlot(LLoadContextSlot* instr) {
2434 Register context = ToRegister(instr->context()); 2434 Register context = ToRegister(instr->context());
2435 Register result = ToRegister(instr->result()); 2435 Register result = ToRegister(instr->result());
2436 __ mov(result, ContextOperand(context, instr->slot_index())); 2436 __ mov(result, ContextOperand(context, instr->slot_index()));
2437 2437
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
2533 } 2533 }
2534 2534
2535 2535
2536 void LCodeGen::DoLoadNamedGeneric(LLoadNamedGeneric* instr) { 2536 void LCodeGen::DoLoadNamedGeneric(LLoadNamedGeneric* instr) {
2537 DCHECK(ToRegister(instr->context()).is(esi)); 2537 DCHECK(ToRegister(instr->context()).is(esi));
2538 DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister())); 2538 DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
2539 DCHECK(ToRegister(instr->result()).is(eax)); 2539 DCHECK(ToRegister(instr->result()).is(eax));
2540 2540
2541 __ mov(LoadDescriptor::NameRegister(), instr->name()); 2541 __ mov(LoadDescriptor::NameRegister(), instr->name());
2542 EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr); 2542 EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
2543 Handle<Code> ic = 2543 Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
2544 CodeFactory::LoadICInOptimizedCode(isolate(), NOT_INSIDE_TYPEOF).code();
2545 CallCode(ic, RelocInfo::CODE_TARGET, instr); 2544 CallCode(ic, RelocInfo::CODE_TARGET, instr);
2546 } 2545 }
2547 2546
2548 2547
2549 void LCodeGen::DoLoadFunctionPrototype(LLoadFunctionPrototype* instr) { 2548 void LCodeGen::DoLoadFunctionPrototype(LLoadFunctionPrototype* instr) {
2550 Register function = ToRegister(instr->function()); 2549 Register function = ToRegister(instr->function());
2551 Register temp = ToRegister(instr->temp()); 2550 Register temp = ToRegister(instr->temp());
2552 Register result = ToRegister(instr->result()); 2551 Register result = ToRegister(instr->result());
2553 2552
2554 // Get the prototype or initial map from the function. 2553 // Get the prototype or initial map from the function.
(...skipping 2744 matching lines...) Expand 10 before | Expand all | Expand 10 after
5299 __ bind(deferred->exit()); 5298 __ bind(deferred->exit());
5300 __ bind(&done); 5299 __ bind(&done);
5301 } 5300 }
5302 5301
5303 #undef __ 5302 #undef __
5304 5303
5305 } // namespace internal 5304 } // namespace internal
5306 } // namespace v8 5305 } // namespace v8
5307 5306
5308 #endif // V8_TARGET_ARCH_IA32 5307 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/crankshaft/arm64/lithium-codegen-arm64.cc ('k') | src/crankshaft/mips/lithium-codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698