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

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

Issue 894683003: Introduce LanguageMode, drop StrictMode. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebased (w/ conflicts) Created 5 years, 10 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/ia32/lithium-ia32.h ('k') | src/ic/arm/ic-compiler-arm.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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM 7 #if V8_TARGET_ARCH_ARM
8 8
9 #include "src/codegen.h" 9 #include "src/codegen.h"
10 #include "src/ic/ic.h" 10 #include "src/ic/ic.h"
(...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 receiver_map, r4, slow); 715 receiver_map, r4, slow);
716 mode = AllocationSite::GetMode(FAST_DOUBLE_ELEMENTS, FAST_ELEMENTS); 716 mode = AllocationSite::GetMode(FAST_DOUBLE_ELEMENTS, FAST_ELEMENTS);
717 ElementsTransitionGenerator::GenerateDoubleToObject( 717 ElementsTransitionGenerator::GenerateDoubleToObject(
718 masm, receiver, key, value, receiver_map, mode, slow); 718 masm, receiver, key, value, receiver_map, mode, slow);
719 __ ldr(elements, FieldMemOperand(receiver, JSObject::kElementsOffset)); 719 __ ldr(elements, FieldMemOperand(receiver, JSObject::kElementsOffset));
720 __ jmp(&finish_object_store); 720 __ jmp(&finish_object_store);
721 } 721 }
722 722
723 723
724 void KeyedStoreIC::GenerateMegamorphic(MacroAssembler* masm, 724 void KeyedStoreIC::GenerateMegamorphic(MacroAssembler* masm,
725 StrictMode strict_mode) { 725 LanguageMode language_mode) {
726 // ---------- S t a t e -------------- 726 // ---------- S t a t e --------------
727 // -- r0 : value 727 // -- r0 : value
728 // -- r1 : key 728 // -- r1 : key
729 // -- r2 : receiver 729 // -- r2 : receiver
730 // -- lr : return address 730 // -- lr : return address
731 // ----------------------------------- 731 // -----------------------------------
732 Label slow, fast_object, fast_object_grow; 732 Label slow, fast_object, fast_object_grow;
733 Label fast_double, fast_double_grow; 733 Label fast_double, fast_double_grow;
734 Label array, extra, check_if_double_array, maybe_name_key, miss; 734 Label array, extra, check_if_double_array, maybe_name_key, miss;
735 735
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 __ ldr(ip, FieldMemOperand(elements, FixedArray::kLengthOffset)); 770 __ ldr(ip, FieldMemOperand(elements, FixedArray::kLengthOffset));
771 __ cmp(key, Operand(ip)); 771 __ cmp(key, Operand(ip));
772 __ b(lo, &fast_object); 772 __ b(lo, &fast_object);
773 773
774 // Slow case, handle jump to runtime. 774 // Slow case, handle jump to runtime.
775 __ bind(&slow); 775 __ bind(&slow);
776 // Entry registers are intact. 776 // Entry registers are intact.
777 // r0: value. 777 // r0: value.
778 // r1: key. 778 // r1: key.
779 // r2: receiver. 779 // r2: receiver.
780 PropertyICCompiler::GenerateRuntimeSetProperty(masm, strict_mode); 780 PropertyICCompiler::GenerateRuntimeSetProperty(masm, language_mode);
781 // Never returns to here. 781 // Never returns to here.
782 782
783 __ bind(&maybe_name_key); 783 __ bind(&maybe_name_key);
784 __ ldr(r4, FieldMemOperand(key, HeapObject::kMapOffset)); 784 __ ldr(r4, FieldMemOperand(key, HeapObject::kMapOffset));
785 __ ldrb(r4, FieldMemOperand(r4, Map::kInstanceTypeOffset)); 785 __ ldrb(r4, FieldMemOperand(r4, Map::kInstanceTypeOffset));
786 __ JumpIfNotUniqueNameInstanceType(r4, &slow); 786 __ JumpIfNotUniqueNameInstanceType(r4, &slow);
787 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( 787 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
788 Code::ComputeHandlerFlags(Code::STORE_IC)); 788 Code::ComputeHandlerFlags(Code::STORE_IC));
789 masm->isolate()->stub_cache()->GenerateProbe( 789 masm->isolate()->stub_cache()->GenerateProbe(
790 masm, Code::STORE_IC, flags, false, receiver, key, r3, r4, r5, r6); 790 masm, Code::STORE_IC, flags, false, receiver, key, r3, r4, r5, r6);
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 patcher.EmitCondition(ne); 981 patcher.EmitCondition(ne);
982 } else { 982 } else {
983 DCHECK(Assembler::GetCondition(branch_instr) == ne); 983 DCHECK(Assembler::GetCondition(branch_instr) == ne);
984 patcher.EmitCondition(eq); 984 patcher.EmitCondition(eq);
985 } 985 }
986 } 986 }
987 } 987 }
988 } // namespace v8::internal 988 } // namespace v8::internal
989 989
990 #endif // V8_TARGET_ARCH_ARM 990 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/ia32/lithium-ia32.h ('k') | src/ic/arm/ic-compiler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698