| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 "vm/intermediate_language.h" | 5 #include "vm/intermediate_language.h" |
| 6 | 6 |
| 7 #include "vm/bit_vector.h" | 7 #include "vm/bit_vector.h" |
| 8 #include "vm/dart_entry.h" | 8 #include "vm/dart_entry.h" |
| 9 #include "vm/flow_graph_allocator.h" | 9 #include "vm/flow_graph_allocator.h" |
| 10 #include "vm/flow_graph_builder.h" | 10 #include "vm/flow_graph_builder.h" |
| (...skipping 800 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 811 } | 811 } |
| 812 | 812 |
| 813 | 813 |
| 814 void StoreInstanceFieldComp::EmitNativeCode(FlowGraphCompiler* compiler) { | 814 void StoreInstanceFieldComp::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 815 Register instance_reg = locs()->in(0).reg(); | 815 Register instance_reg = locs()->in(0).reg(); |
| 816 Register value_reg = locs()->in(1).reg(); | 816 Register value_reg = locs()->in(1).reg(); |
| 817 | 817 |
| 818 if (HasICData()) { | 818 if (HasICData()) { |
| 819 ASSERT(original() != NULL); | 819 ASSERT(original() != NULL); |
| 820 Label* deopt = compiler->AddDeoptStub(original()->deopt_id(), | 820 Label* deopt = compiler->AddDeoptStub(original()->deopt_id(), |
| 821 original()->token_pos(), | |
| 822 original()->try_index(), | 821 original()->try_index(), |
| 823 kDeoptInstanceGetterSameTarget, | 822 kDeoptInstanceGetterSameTarget, |
| 824 instance_reg, | 823 instance_reg, |
| 825 value_reg); | 824 value_reg); |
| 826 // Smis do not have instance fields (Smi class is always first). | 825 // Smis do not have instance fields (Smi class is always first). |
| 827 Register temp_reg = locs()->temp(0).reg(); | 826 Register temp_reg = locs()->temp(0).reg(); |
| 828 ASSERT(temp_reg != instance_reg); | 827 ASSERT(temp_reg != instance_reg); |
| 829 ASSERT(temp_reg != value_reg); | 828 ASSERT(temp_reg != value_reg); |
| 830 ASSERT(ic_data() != NULL); | 829 ASSERT(ic_data() != NULL); |
| 831 compiler->EmitClassChecksNoSmi(*ic_data(), instance_reg, temp_reg, deopt); | 830 compiler->EmitClassChecksNoSmi(*ic_data(), instance_reg, temp_reg, deopt); |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1211 locations_[i] = Location::NoLocation(); | 1210 locations_[i] = Location::NoLocation(); |
| 1212 } | 1211 } |
| 1213 } | 1212 } |
| 1214 } | 1213 } |
| 1215 } | 1214 } |
| 1216 | 1215 |
| 1217 | 1216 |
| 1218 #undef __ | 1217 #undef __ |
| 1219 | 1218 |
| 1220 } // namespace dart | 1219 } // namespace dart |
| OLD | NEW |