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

Side by Side Diff: src/ic/arm/ic-arm.cc

Issue 2343813002: [ic] Move KeyedStoreIC::GenerateSlow() to ic-XXX.cc to avoid code duplication. (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/ic/arm/handler-compiler-arm.cc ('k') | src/ic/arm64/handler-compiler-arm64.cc » ('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_ARM 5 #if V8_TARGET_ARCH_ARM
6 6
7 #include "src/codegen.h" 7 #include "src/codegen.h"
8 #include "src/ic/ic.h" 8 #include "src/ic/ic.h"
9 #include "src/ic/ic-compiler.h" 9 #include "src/ic/ic-compiler.h"
10 #include "src/ic/stub-cache.h" 10 #include "src/ic/stub-cache.h"
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 StoreWithVectorDescriptor::VectorRegister()); 447 StoreWithVectorDescriptor::VectorRegister());
448 } 448 }
449 449
450 450
451 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { 451 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
452 StoreIC_PushArgs(masm); 452 StoreIC_PushArgs(masm);
453 453
454 __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss); 454 __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss);
455 } 455 }
456 456
457 void KeyedStoreIC::GenerateSlow(MacroAssembler* masm) {
458 StoreIC_PushArgs(masm);
459
460 // The slow case calls into the runtime to complete the store without causing
461 // an IC miss that would otherwise cause a transition to the generic stub.
462 __ TailCallRuntime(Runtime::kKeyedStoreIC_Slow);
463 }
457 464
458 static void KeyedStoreGenerateMegamorphicHelper( 465 static void KeyedStoreGenerateMegamorphicHelper(
459 MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow, 466 MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow,
460 KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length, 467 KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length,
461 Register value, Register key, Register receiver, Register receiver_map, 468 Register value, Register key, Register receiver, Register receiver_map,
462 Register elements_map, Register elements) { 469 Register elements_map, Register elements) {
463 Label transition_smi_elements; 470 Label transition_smi_elements;
464 Label finish_object_store, non_double_value, transition_double_elements; 471 Label finish_object_store, non_double_value, transition_double_elements;
465 Label fast_double_without_map_check; 472 Label fast_double_without_map_check;
466 473
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 patcher.EmitCondition(ne); 863 patcher.EmitCondition(ne);
857 } else { 864 } else {
858 DCHECK(Assembler::GetCondition(branch_instr) == ne); 865 DCHECK(Assembler::GetCondition(branch_instr) == ne);
859 patcher.EmitCondition(eq); 866 patcher.EmitCondition(eq);
860 } 867 }
861 } 868 }
862 } // namespace internal 869 } // namespace internal
863 } // namespace v8 870 } // namespace v8
864 871
865 #endif // V8_TARGET_ARCH_ARM 872 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/ic/arm/handler-compiler-arm.cc ('k') | src/ic/arm64/handler-compiler-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698