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/globals.h" // Needed here to get TARGET_ARCH_X64. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_X64. |
6 #if defined(TARGET_ARCH_X64) | 6 #if defined(TARGET_ARCH_X64) |
7 | 7 |
8 #include "vm/code_generator.h" | 8 #include "vm/code_generator.h" |
9 | 9 |
10 #include "lib/error.h" | 10 #include "lib/error.h" |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 const ParsedFunction& parsed_function) | 184 const ParsedFunction& parsed_function) |
185 : assembler_(assembler), | 185 : assembler_(assembler), |
186 parsed_function_(parsed_function), | 186 parsed_function_(parsed_function), |
187 locals_space_size_(-1), | 187 locals_space_size_(-1), |
188 state_(NULL), | 188 state_(NULL), |
189 pc_descriptors_list_(NULL), | 189 pc_descriptors_list_(NULL), |
190 exception_handlers_list_(NULL), | 190 exception_handlers_list_(NULL), |
191 try_index_(CatchClauseNode::kInvalidTryIndex) { | 191 try_index_(CatchClauseNode::kInvalidTryIndex) { |
192 ASSERT(assembler_ != NULL); | 192 ASSERT(assembler_ != NULL); |
193 ASSERT(parsed_function.node_sequence() != NULL); | 193 ASSERT(parsed_function.node_sequence() != NULL); |
| 194 ASSERT(Isolate::Current()->long_jump_base()->IsSafeToJump()); |
194 pc_descriptors_list_ = new CodeGenerator::DescriptorList(); | 195 pc_descriptors_list_ = new CodeGenerator::DescriptorList(); |
195 exception_handlers_list_ = new CodeGenerator::HandlerList(); | 196 exception_handlers_list_ = new CodeGenerator::HandlerList(); |
196 } | 197 } |
197 | 198 |
198 | 199 |
199 bool CodeGenerator::IsResultNeeded(AstNode* node) const { | 200 bool CodeGenerator::IsResultNeeded(AstNode* node) const { |
200 return !state()->IsRootNode(node); | 201 return !state()->IsRootNode(node); |
201 } | 202 } |
202 | 203 |
203 | 204 |
(...skipping 2594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2798 const Error& error = Error::Handle( | 2799 const Error& error = Error::Handle( |
2799 Parser::FormatError(script, token_index, "Error", format, args)); | 2800 Parser::FormatError(script, token_index, "Error", format, args)); |
2800 va_end(args); | 2801 va_end(args); |
2801 Isolate::Current()->long_jump_base()->Jump(1, error); | 2802 Isolate::Current()->long_jump_base()->Jump(1, error); |
2802 UNREACHABLE(); | 2803 UNREACHABLE(); |
2803 } | 2804 } |
2804 | 2805 |
2805 } // namespace dart | 2806 } // namespace dart |
2806 | 2807 |
2807 #endif // defined TARGET_ARCH_X64 | 2808 #endif // defined TARGET_ARCH_X64 |
OLD | NEW |