OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include <map> | 5 #include <map> |
6 #include <set> | 6 #include <set> |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "vm/kernel_to_il.h" | 9 #include "vm/kernel_to_il.h" |
10 | 10 |
(...skipping 2670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2681 | 2681 |
2682 return instructions; | 2682 return instructions; |
2683 } | 2683 } |
2684 | 2684 |
2685 | 2685 |
2686 Fragment FlowGraphBuilder::StoreInstanceFieldGuarded( | 2686 Fragment FlowGraphBuilder::StoreInstanceFieldGuarded( |
2687 const dart::Field& field, | 2687 const dart::Field& field, |
2688 bool is_initialization_store) { | 2688 bool is_initialization_store) { |
2689 Fragment instructions; | 2689 Fragment instructions; |
2690 const dart::Field& field_clone = MayCloneField(Z, field); | 2690 const dart::Field& field_clone = MayCloneField(Z, field); |
2691 if (FLAG_use_field_guards) { | 2691 if (I->use_field_guards()) { |
2692 LocalVariable* store_expression = MakeTemporary(); | 2692 LocalVariable* store_expression = MakeTemporary(); |
2693 instructions += LoadLocal(store_expression); | 2693 instructions += LoadLocal(store_expression); |
2694 instructions += GuardFieldClass(field_clone, H.thread()->GetNextDeoptId()); | 2694 instructions += GuardFieldClass(field_clone, H.thread()->GetNextDeoptId()); |
2695 instructions += LoadLocal(store_expression); | 2695 instructions += LoadLocal(store_expression); |
2696 instructions += GuardFieldLength(field_clone, H.thread()->GetNextDeoptId()); | 2696 instructions += GuardFieldLength(field_clone, H.thread()->GetNextDeoptId()); |
2697 } | 2697 } |
2698 instructions += StoreInstanceField(field_clone, is_initialization_store); | 2698 instructions += StoreInstanceField(field_clone, is_initialization_store); |
2699 return instructions; | 2699 return instructions; |
2700 } | 2700 } |
2701 | 2701 |
(...skipping 3682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6384 thread->clear_sticky_error(); | 6384 thread->clear_sticky_error(); |
6385 return error.raw(); | 6385 return error.raw(); |
6386 } | 6386 } |
6387 } | 6387 } |
6388 | 6388 |
6389 | 6389 |
6390 } // namespace kernel | 6390 } // namespace kernel |
6391 } // namespace dart | 6391 } // namespace dart |
6392 | 6392 |
6393 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 6393 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
OLD | NEW |