Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: runtime/vm/simulator_arm.cc

Issue 14141008: Reset simulator top exit frame info when coming via long jump from a throw. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/simulator_mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_ARM) 10 #if defined(TARGET_ARCH_ARM)
(...skipping 1382 matching lines...) Expand 10 before | Expand all | Expand 10 after
1393 } 1393 }
1394 #ifdef VFPv3_D32 1394 #ifdef VFPv3_D32
1395 double zap_dvalue = static_cast<double>(icount_); 1395 double zap_dvalue = static_cast<double>(icount_);
1396 for (int i = D16; i <= D31; i++) { 1396 for (int i = D16; i <= D31; i++) {
1397 set_dregister(static_cast<DRegister>(i), zap_dvalue); 1397 set_dregister(static_cast<DRegister>(i), zap_dvalue);
1398 } 1398 }
1399 #endif // VFPv3_D32 1399 #endif // VFPv3_D32
1400 1400
1401 // Return. 1401 // Return.
1402 set_pc(saved_lr); 1402 set_pc(saved_lr);
1403 } else {
1404 // Coming via long jump from a throw. Continue to exception handler.
1405 set_top_exit_frame_info(0);
1403 } 1406 }
1404 1407
1405 break; 1408 break;
1406 } 1409 }
1407 case kBreakpointSvcCode: { 1410 case kBreakpointSvcCode: {
1408 SimulatorDebugger dbg(this); 1411 SimulatorDebugger dbg(this);
1409 dbg.Stop(instr, "breakpoint"); 1412 dbg.Stop(instr, "breakpoint");
1410 break; 1413 break;
1411 } 1414 }
1412 case kStopMessageSvcCode: { 1415 case kStopMessageSvcCode: {
(...skipping 1486 matching lines...) Expand 10 before | Expand all | Expand 10 after
2899 set_register(kStackTraceObjectReg, bit_cast<int32_t>(raw_stacktrace)); 2902 set_register(kStackTraceObjectReg, bit_cast<int32_t>(raw_stacktrace));
2900 } 2903 }
2901 buf->Longjmp(); 2904 buf->Longjmp();
2902 } 2905 }
2903 2906
2904 } // namespace dart 2907 } // namespace dart
2905 2908
2906 #endif // !defined(HOST_ARCH_ARM) 2909 #endif // !defined(HOST_ARCH_ARM)
2907 2910
2908 #endif // defined TARGET_ARCH_ARM 2911 #endif // defined TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/simulator_mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698