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

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

Issue 2358533002: [crankshaft] Remove HStoreNamedGeneric and use HCallWithDescriptor instead to call StoreIC. (Closed)
Patch Set: Created 4 years, 3 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
« no previous file with comments | « src/crankshaft/hydrogen-instructions.cc ('k') | src/crankshaft/ia32/lithium-ia32.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 3680 matching lines...) Expand 10 before | Expand all | Expand 10 after
3691 value, 3691 value,
3692 temp, 3692 temp,
3693 kSaveFPRegs, 3693 kSaveFPRegs,
3694 EMIT_REMEMBERED_SET, 3694 EMIT_REMEMBERED_SET,
3695 instr->hydrogen()->SmiCheckForWriteBarrier(), 3695 instr->hydrogen()->SmiCheckForWriteBarrier(),
3696 instr->hydrogen()->PointersToHereCheckForValue()); 3696 instr->hydrogen()->PointersToHereCheckForValue());
3697 } 3697 }
3698 } 3698 }
3699 3699
3700 3700
3701 void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) {
3702 DCHECK(ToRegister(instr->context()).is(esi));
3703 DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
3704 DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
3705
3706 EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
3707
3708 __ mov(StoreDescriptor::NameRegister(), instr->name());
3709 Handle<Code> ic =
3710 CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
3711 .code();
3712 CallCode(ic, RelocInfo::CODE_TARGET, instr);
3713 }
3714
3715
3716 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) { 3701 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) {
3717 Condition cc = instr->hydrogen()->allow_equality() ? above : above_equal; 3702 Condition cc = instr->hydrogen()->allow_equality() ? above : above_equal;
3718 if (instr->index()->IsConstantOperand()) { 3703 if (instr->index()->IsConstantOperand()) {
3719 __ cmp(ToOperand(instr->length()), 3704 __ cmp(ToOperand(instr->length()),
3720 ToImmediate(LConstantOperand::cast(instr->index()), 3705 ToImmediate(LConstantOperand::cast(instr->index()),
3721 instr->hydrogen()->length()->representation())); 3706 instr->hydrogen()->length()->representation()));
3722 cc = CommuteCondition(cc); 3707 cc = CommuteCondition(cc);
3723 } else if (instr->length()->IsConstantOperand()) { 3708 } else if (instr->length()->IsConstantOperand()) {
3724 __ cmp(ToOperand(instr->index()), 3709 __ cmp(ToOperand(instr->index()),
3725 ToImmediate(LConstantOperand::cast(instr->length()), 3710 ToImmediate(LConstantOperand::cast(instr->length()),
(...skipping 1555 matching lines...) Expand 10 before | Expand all | Expand 10 after
5281 __ bind(deferred->exit()); 5266 __ bind(deferred->exit());
5282 __ bind(&done); 5267 __ bind(&done);
5283 } 5268 }
5284 5269
5285 #undef __ 5270 #undef __
5286 5271
5287 } // namespace internal 5272 } // namespace internal
5288 } // namespace v8 5273 } // namespace v8
5289 5274
5290 #endif // V8_TARGET_ARCH_IA32 5275 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/crankshaft/hydrogen-instructions.cc ('k') | src/crankshaft/ia32/lithium-ia32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698