| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 <math.h> // for isnan. | 5 #include <math.h> // for isnan. |
| 6 #include <setjmp.h> | 6 #include <setjmp.h> |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 | 8 |
| 9 #include "vm/globals.h" | 9 #include "vm/globals.h" |
| 10 #if defined(TARGET_ARCH_MIPS) | 10 #if defined(TARGET_ARCH_MIPS) |
| (...skipping 965 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 976 set_register(RA, icount_); | 976 set_register(RA, icount_); |
| 977 | 977 |
| 978 // Zap floating point registers. | 978 // Zap floating point registers. |
| 979 int32_t zap_dvalue = icount_; | 979 int32_t zap_dvalue = icount_; |
| 980 for (int i = F0; i <= F31; i++) { | 980 for (int i = F0; i <= F31; i++) { |
| 981 set_fregister(static_cast<FRegister>(i), zap_dvalue); | 981 set_fregister(static_cast<FRegister>(i), zap_dvalue); |
| 982 } | 982 } |
| 983 | 983 |
| 984 // Return. Subtract to account for pc_ increment after return. | 984 // Return. Subtract to account for pc_ increment after return. |
| 985 set_pc(saved_ra - Instr::kInstrSize); | 985 set_pc(saved_ra - Instr::kInstrSize); |
| 986 } else { |
| 987 // Coming via long jump from a throw. Continue to exception handler. |
| 988 set_top_exit_frame_info(0); |
| 986 } | 989 } |
| 987 } else { | 990 } else { |
| 988 SimulatorDebugger dbg(this); | 991 SimulatorDebugger dbg(this); |
| 989 dbg.Stop(instr, "breakpoint"); | 992 dbg.Stop(instr, "breakpoint"); |
| 990 // Adjust for extra pc increment. | 993 // Adjust for extra pc increment. |
| 991 set_pc(get_pc() - Instr::kInstrSize); | 994 set_pc(get_pc() - Instr::kInstrSize); |
| 992 } | 995 } |
| 993 } | 996 } |
| 994 | 997 |
| 995 | 998 |
| (...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1866 set_register(kStackTraceObjectReg, bit_cast<int32_t>(raw_stacktrace)); | 1869 set_register(kStackTraceObjectReg, bit_cast<int32_t>(raw_stacktrace)); |
| 1867 } | 1870 } |
| 1868 buf->Longjmp(); | 1871 buf->Longjmp(); |
| 1869 } | 1872 } |
| 1870 | 1873 |
| 1871 } // namespace dart | 1874 } // namespace dart |
| 1872 | 1875 |
| 1873 #endif // !defined(HOST_ARCH_MIPS) | 1876 #endif // !defined(HOST_ARCH_MIPS) |
| 1874 | 1877 |
| 1875 #endif // defined TARGET_ARCH_MIPS | 1878 #endif // defined TARGET_ARCH_MIPS |
| OLD | NEW |