| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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/runtime_entry.h" | 5 #include "vm/runtime_entry.h" |
| 6 | 6 |
| 7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
| 8 #include "vm/ast.h" | 8 #include "vm/ast.h" |
| 9 #include "vm/code_patcher.h" | 9 #include "vm/code_patcher.h" |
| 10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" |
| (...skipping 1686 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1697 // recursive stack trace collection. | 1697 // recursive stack trace collection. |
| 1698 intptr_t saved_stacktrace_every = FLAG_stacktrace_every; | 1698 intptr_t saved_stacktrace_every = FLAG_stacktrace_every; |
| 1699 FLAG_stacktrace_every = 0; | 1699 FLAG_stacktrace_every = 0; |
| 1700 DebuggerStackTrace* stack = isolate->debugger()->StackTrace(); | 1700 DebuggerStackTrace* stack = isolate->debugger()->StackTrace(); |
| 1701 intptr_t num_frames = stack->Length(); | 1701 intptr_t num_frames = stack->Length(); |
| 1702 for (intptr_t i = 0; i < num_frames; i++) { | 1702 for (intptr_t i = 0; i < num_frames; i++) { |
| 1703 ActivationFrame* frame = stack->FrameAt(i); | 1703 ActivationFrame* frame = stack->FrameAt(i); |
| 1704 #ifndef DART_PRECOMPILED_RUNTIME | 1704 #ifndef DART_PRECOMPILED_RUNTIME |
| 1705 // Ensure that we have unoptimized code. | 1705 // Ensure that we have unoptimized code. |
| 1706 frame->function().EnsureHasCompiledUnoptimizedCode(); | 1706 frame->function().EnsureHasCompiledUnoptimizedCode(); |
| 1707 const int num_vars = frame->NumLocalVariables(); | 1707 #endif |
| 1708 #else | |
| 1709 // Variable locations and number are unknown when precompiling. | 1708 // Variable locations and number are unknown when precompiling. |
| 1710 const int num_vars = 0; | 1709 const int num_vars = |
| 1711 #endif | 1710 FLAG_precompiled_runtime ? 0 : frame->NumLocalVariables(); |
| 1712 TokenPosition unused = TokenPosition::kNoSource; | 1711 TokenPosition unused = TokenPosition::kNoSource; |
| 1713 for (intptr_t v = 0; v < num_vars; v++) { | 1712 for (intptr_t v = 0; v < num_vars; v++) { |
| 1714 frame->VariableAt(v, &var_name, &unused, &unused, &unused, &var_value); | 1713 frame->VariableAt(v, &var_name, &unused, &unused, &unused, &var_value); |
| 1715 } | 1714 } |
| 1716 } | 1715 } |
| 1717 if (FLAG_stress_async_stacks) { | 1716 if (FLAG_stress_async_stacks) { |
| 1718 Debugger::CollectAwaiterReturnStackTrace(); | 1717 Debugger::CollectAwaiterReturnStackTrace(); |
| 1719 } | 1718 } |
| 1720 FLAG_stacktrace_every = saved_stacktrace_every; | 1719 FLAG_stacktrace_every = saved_stacktrace_every; |
| 1721 } | 1720 } |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2277 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); | 2276 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); |
| 2278 const Object& value = Object::Handle(arguments.ArgAt(1)); | 2277 const Object& value = Object::Handle(arguments.ArgAt(1)); |
| 2279 field.RecordStore(value); | 2278 field.RecordStore(value); |
| 2280 } | 2279 } |
| 2281 | 2280 |
| 2282 DEFINE_RUNTIME_ENTRY(InitStaticField, 1) { | 2281 DEFINE_RUNTIME_ENTRY(InitStaticField, 1) { |
| 2283 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); | 2282 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); |
| 2284 field.EvaluateInitializer(); | 2283 field.EvaluateInitializer(); |
| 2285 } | 2284 } |
| 2286 | 2285 |
| 2287 // Print the stop message. | |
| 2288 DEFINE_LEAF_RUNTIME_ENTRY(void, PrintStopMessage, 1, const char* message) { | |
| 2289 OS::Print("Stop message: %s\n", message); | |
| 2290 } | |
| 2291 END_LEAF_RUNTIME_ENTRY | |
| 2292 | |
| 2293 // Use expected function signatures to help MSVC compiler resolve overloading. | 2286 // Use expected function signatures to help MSVC compiler resolve overloading. |
| 2294 typedef double (*UnaryMathCFunction)(double x); | 2287 typedef double (*UnaryMathCFunction)(double x); |
| 2295 typedef double (*BinaryMathCFunction)(double x, double y); | 2288 typedef double (*BinaryMathCFunction)(double x, double y); |
| 2296 | 2289 |
| 2297 DEFINE_RAW_LEAF_RUNTIME_ENTRY( | 2290 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2298 LibcPow, | 2291 LibcPow, |
| 2299 2, | 2292 2, |
| 2300 true /* is_float */, | 2293 true /* is_float */, |
| 2301 reinterpret_cast<RuntimeFunction>(static_cast<BinaryMathCFunction>(&pow))); | 2294 reinterpret_cast<RuntimeFunction>(static_cast<BinaryMathCFunction>(&pow))); |
| 2302 | 2295 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2368 true /* is_float */, | 2361 true /* is_float */, |
| 2369 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&tan))); | 2362 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&tan))); |
| 2370 | 2363 |
| 2371 DEFINE_RAW_LEAF_RUNTIME_ENTRY( | 2364 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2372 LibcAtan, | 2365 LibcAtan, |
| 2373 1, | 2366 1, |
| 2374 true /* is_float */, | 2367 true /* is_float */, |
| 2375 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&atan))); | 2368 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&atan))); |
| 2376 | 2369 |
| 2377 } // namespace dart | 2370 } // namespace dart |
| OLD | NEW |