| OLD | NEW | 
|---|
| 1 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 <setjmp.h> | 5 #include <setjmp.h> | 
| 6 #include <stdlib.h> | 6 #include <stdlib.h> | 
| 7 | 7 | 
| 8 #include "vm/globals.h" | 8 #include "vm/globals.h" | 
| 9 #if defined(TARGET_ARCH_ARM64) | 9 #if defined(TARGET_ARCH_ARM64) | 
| 10 | 10 | 
| (...skipping 3031 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3042   while (isolate->top_resource() != NULL && | 3042   while (isolate->top_resource() != NULL && | 
| 3043          (reinterpret_cast<uword>(isolate->top_resource()) < native_sp)) { | 3043          (reinterpret_cast<uword>(isolate->top_resource()) < native_sp)) { | 
| 3044     isolate->top_resource()->~StackResource(); | 3044     isolate->top_resource()->~StackResource(); | 
| 3045   } | 3045   } | 
| 3046 | 3046 | 
| 3047   // Unwind the C++ stack and continue simulation in the target frame. | 3047   // Unwind the C++ stack and continue simulation in the target frame. | 
| 3048   set_pc(static_cast<int64_t>(pc)); | 3048   set_pc(static_cast<int64_t>(pc)); | 
| 3049   set_register(NULL, SP, static_cast<int64_t>(sp)); | 3049   set_register(NULL, SP, static_cast<int64_t>(sp)); | 
| 3050   set_register(NULL, FP, static_cast<int64_t>(fp)); | 3050   set_register(NULL, FP, static_cast<int64_t>(fp)); | 
| 3051   // Set the tag. | 3051   // Set the tag. | 
| 3052   isolate->set_vm_tag(VMTag::kScriptTagId); | 3052   isolate->set_vm_tag(VMTag::kDartTagId); | 
| 3053   // Clear top exit frame. | 3053   // Clear top exit frame. | 
| 3054   isolate->set_top_exit_frame_info(0); | 3054   isolate->set_top_exit_frame_info(0); | 
| 3055 | 3055 | 
| 3056   ASSERT(raw_exception != Object::null()); | 3056   ASSERT(raw_exception != Object::null()); | 
| 3057   set_register(NULL, kExceptionObjectReg, bit_cast<int64_t>(raw_exception)); | 3057   set_register(NULL, kExceptionObjectReg, bit_cast<int64_t>(raw_exception)); | 
| 3058   set_register(NULL, kStackTraceObjectReg, bit_cast<int64_t>(raw_stacktrace)); | 3058   set_register(NULL, kStackTraceObjectReg, bit_cast<int64_t>(raw_stacktrace)); | 
| 3059   buf->Longjmp(); | 3059   buf->Longjmp(); | 
| 3060 } | 3060 } | 
| 3061 | 3061 | 
| 3062 }  // namespace dart | 3062 }  // namespace dart | 
| 3063 | 3063 | 
| 3064 #endif  // !defined(HOST_ARCH_ARM64) | 3064 #endif  // !defined(HOST_ARCH_ARM64) | 
| 3065 | 3065 | 
| 3066 #endif  // defined TARGET_ARCH_ARM64 | 3066 #endif  // defined TARGET_ARCH_ARM64 | 
| OLD | NEW | 
|---|