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

Side by Side Diff: src/ic/keyed-store-generic.cc

Issue 2619823005: [ic][stubs] Move more IC-related methods from CSA to AccessorAssembler. (Closed)
Patch Set: Code reshuffling Created 3 years, 11 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/handler-configuration-inl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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/ic/keyed-store-generic.h" 5 #include "src/ic/keyed-store-generic.h"
6 6
7 #include "src/code-factory.h" 7 #include "src/code-factory.h"
8 #include "src/code-stub-assembler.h" 8 #include "src/code-stub-assembler.h"
9 #include "src/contexts.h" 9 #include "src/contexts.h"
10 #include "src/ic/accessor-assembler-impl.h" 10 #include "src/ic/accessor-assembler-impl.h"
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 Bind(&found_hole); 355 Bind(&found_hole);
356 } 356 }
357 BranchIfPrototypesHaveNonFastElements(receiver_map, slow, 357 BranchIfPrototypesHaveNonFastElements(receiver_map, slow,
358 &hole_check_passed); 358 &hole_check_passed);
359 Bind(&hole_check_passed); 359 Bind(&hole_check_passed);
360 } 360 }
361 361
362 // Try to store the value as a double. 362 // Try to store the value as a double.
363 { 363 {
364 Label non_number_value(this); 364 Label non_number_value(this);
365 Node* double_value = PrepareValueForWrite(value, Representation::Double(), 365 Node* double_value = TryTaggedToFloat64(value, &non_number_value);
366 &non_number_value); 366
367 // Make sure we do not store signalling NaNs into double arrays. 367 // Make sure we do not store signalling NaNs into double arrays.
368 double_value = Float64SilenceNaN(double_value); 368 double_value = Float64SilenceNaN(double_value);
369 // If we're about to introduce holes, ensure holey elements. 369 // If we're about to introduce holes, ensure holey elements.
370 if (update_length == kBumpLengthWithGap) { 370 if (update_length == kBumpLengthWithGap) {
371 TryChangeToHoleyMap(receiver, receiver_map, elements_kind, context, 371 TryChangeToHoleyMap(receiver, receiver_map, elements_kind, context,
372 FAST_DOUBLE_ELEMENTS, slow); 372 FAST_DOUBLE_ELEMENTS, slow);
373 } 373 }
374 StoreNoWriteBarrier(MachineRepresentation::kFloat64, elements, offset, 374 StoreNoWriteBarrier(MachineRepresentation::kFloat64, elements, offset,
375 double_value); 375 double_value);
376 MaybeUpdateLengthAndReturn(receiver, intptr_index, value, update_length); 376 MaybeUpdateLengthAndReturn(receiver, intptr_index, value, update_length);
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 Bind(&slow); 778 Bind(&slow);
779 { 779 {
780 Comment("KeyedStoreGeneric_slow"); 780 Comment("KeyedStoreGeneric_slow");
781 TailCallRuntime(Runtime::kSetProperty, context, receiver, name, value, 781 TailCallRuntime(Runtime::kSetProperty, context, receiver, name, value,
782 SmiConstant(language_mode)); 782 SmiConstant(language_mode));
783 } 783 }
784 } 784 }
785 785
786 } // namespace internal 786 } // namespace internal
787 } // namespace v8 787 } // namespace v8
OLDNEW
« no previous file with comments | « src/ic/handler-configuration-inl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698