OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/compiler/js-native-context-specialization.h" | 5 #include "src/compiler/js-native-context-specialization.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/compilation-dependencies.h" | 9 #include "src/compilation-dependencies.h" |
10 #include "src/compiler/access-builder.h" | 10 #include "src/compiler/access-builder.h" |
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 transition_target->elements_kind())) { | 619 transition_target->elements_kind())) { |
620 // In-place migration, just store the {transition_target} map. | 620 // In-place migration, just store the {transition_target} map. |
621 transition_effect = graph()->NewNode( | 621 transition_effect = graph()->NewNode( |
622 simplified()->StoreField(AccessBuilder::ForMap()), receiver, | 622 simplified()->StoreField(AccessBuilder::ForMap()), receiver, |
623 jsgraph()->HeapConstant(transition_target), transition_effect, | 623 jsgraph()->HeapConstant(transition_target), transition_effect, |
624 transition_control); | 624 transition_control); |
625 } else { | 625 } else { |
626 // Instance migration, let the stub deal with the {receiver}. | 626 // Instance migration, let the stub deal with the {receiver}. |
627 TransitionElementsKindStub stub(isolate(), | 627 TransitionElementsKindStub stub(isolate(), |
628 transition_source->elements_kind(), | 628 transition_source->elements_kind(), |
629 transition_target->elements_kind(), | 629 transition_target->elements_kind()); |
630 transition_source->IsJSArrayMap()); | |
631 CallDescriptor const* const desc = Linkage::GetStubCallDescriptor( | 630 CallDescriptor const* const desc = Linkage::GetStubCallDescriptor( |
632 isolate(), graph()->zone(), stub.GetCallInterfaceDescriptor(), 0, | 631 isolate(), graph()->zone(), stub.GetCallInterfaceDescriptor(), 0, |
633 CallDescriptor::kNeedsFrameState, node->op()->properties()); | 632 CallDescriptor::kNeedsFrameState, node->op()->properties()); |
634 transition_effect = graph()->NewNode( | 633 transition_effect = graph()->NewNode( |
635 common()->Call(desc), jsgraph()->HeapConstant(stub.GetCode()), | 634 common()->Call(desc), jsgraph()->HeapConstant(stub.GetCode()), |
636 receiver, jsgraph()->HeapConstant(transition_target), context, | 635 receiver, jsgraph()->HeapConstant(transition_target), context, |
637 frame_state, transition_effect, transition_control); | 636 frame_state, transition_effect, transition_control); |
638 } | 637 } |
639 this_controls.push_back(transition_control); | 638 this_controls.push_back(transition_control); |
640 this_effects.push_back(transition_effect); | 639 this_effects.push_back(transition_effect); |
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1129 } | 1128 } |
1130 | 1129 |
1131 | 1130 |
1132 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { | 1131 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { |
1133 return jsgraph()->simplified(); | 1132 return jsgraph()->simplified(); |
1134 } | 1133 } |
1135 | 1134 |
1136 } // namespace compiler | 1135 } // namespace compiler |
1137 } // namespace internal | 1136 } // namespace internal |
1138 } // namespace v8 | 1137 } // namespace v8 |
OLD | NEW |