| 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 4674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4685 | 4685 |
| 4686 TargetEntryInstr* then_entry; | 4686 TargetEntryInstr* then_entry; |
| 4687 TargetEntryInstr* otherwise_entry; | 4687 TargetEntryInstr* otherwise_entry; |
| 4688 instructions += BranchIfTrue(&then_entry, &otherwise_entry, negate); | 4688 instructions += BranchIfTrue(&then_entry, &otherwise_entry, negate); |
| 4689 | 4689 |
| 4690 Value* top = stack_; | 4690 Value* top = stack_; |
| 4691 Fragment then_fragment(then_entry); | 4691 Fragment then_fragment(then_entry); |
| 4692 then_fragment += TranslateExpression(node->then()); | 4692 then_fragment += TranslateExpression(node->then()); |
| 4693 then_fragment += StoreLocal(parsed_function_->expression_temp_var()); | 4693 then_fragment += StoreLocal(parsed_function_->expression_temp_var()); |
| 4694 then_fragment += Drop(); | 4694 then_fragment += Drop(); |
| 4695 ASSERT(stack_ == top); |
| 4695 | 4696 |
| 4696 ASSERT(stack_ == top); | |
| 4697 Fragment otherwise_fragment(otherwise_entry); | 4697 Fragment otherwise_fragment(otherwise_entry); |
| 4698 otherwise_fragment += TranslateExpression(node->otherwise()); | 4698 otherwise_fragment += TranslateExpression(node->otherwise()); |
| 4699 otherwise_fragment += StoreLocal(parsed_function_->expression_temp_var()); | 4699 otherwise_fragment += StoreLocal(parsed_function_->expression_temp_var()); |
| 4700 otherwise_fragment += Drop(); | 4700 otherwise_fragment += Drop(); |
| 4701 ASSERT(stack_ == top); |
| 4701 | 4702 |
| 4702 JoinEntryInstr* join = BuildJoinEntry(); | 4703 JoinEntryInstr* join = BuildJoinEntry(); |
| 4703 then_fragment += Goto(join); | 4704 then_fragment += Goto(join); |
| 4704 otherwise_fragment += Goto(join); | 4705 otherwise_fragment += Goto(join); |
| 4705 | 4706 |
| 4706 fragment_ = Fragment(instructions.entry, join) + | 4707 fragment_ = Fragment(instructions.entry, join) + |
| 4707 LoadLocal(parsed_function_->expression_temp_var()); | 4708 LoadLocal(parsed_function_->expression_temp_var()); |
| 4708 } | 4709 } |
| 4709 | 4710 |
| 4710 | 4711 |
| (...skipping 1135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5846 instructions += LoadLocal(parsed_function_->current_context_var()); | 5847 instructions += LoadLocal(parsed_function_->current_context_var()); |
| 5847 instructions += StoreInstanceField(Closure::context_offset()); | 5848 instructions += StoreInstanceField(Closure::context_offset()); |
| 5848 | 5849 |
| 5849 return instructions; | 5850 return instructions; |
| 5850 } | 5851 } |
| 5851 | 5852 |
| 5852 | 5853 |
| 5853 } // namespace kernel | 5854 } // namespace kernel |
| 5854 } // namespace dart | 5855 } // namespace dart |
| 5855 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 5856 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
| OLD | NEW |