comparison src/share/vm/utilities/exceptions.hpp @ 16535:ada0a7729b6f

Truffle: introduce debug option to print the stack trace when transferring to the interpreter
author Andreas Woess <andreas.woess@jku.at>
date Wed, 16 Jul 2014 15:18:48 +0200
parents 4ca6dc0799b6
children 52b4284cb496
comparison
equal deleted inserted replaced
16534:4aaa97f42b92 16535:ada0a7729b6f
63 protected: 63 protected:
64 #ifdef GRAAL 64 #ifdef GRAAL
65 int _pending_deoptimization; 65 int _pending_deoptimization;
66 oop _pending_failed_speculation; 66 oop _pending_failed_speculation;
67 bool _pending_monitorenter; 67 bool _pending_monitorenter;
68 bool _pending_transfer_to_interpreter;
68 #endif 69 #endif
69 oop _pending_exception; // Thread has gc actions. 70 oop _pending_exception; // Thread has gc actions.
70 const char* _exception_file; // file information for exception (debugging only) 71 const char* _exception_file; // file information for exception (debugging only)
71 int _exception_line; // line information for exception (debugging only) 72 int _exception_line; // line information for exception (debugging only)
72 friend void check_ThreadShadow(); // checks _pending_exception offset 73 friend void check_ThreadShadow(); // checks _pending_exception offset
98 static ByteSize pending_failed_speculation_offset() { return byte_offset_of(ThreadShadow, _pending_failed_speculation); } 99 static ByteSize pending_failed_speculation_offset() { return byte_offset_of(ThreadShadow, _pending_failed_speculation); }
99 100
100 void set_pending_monitorenter(bool b) { _pending_monitorenter = b; } 101 void set_pending_monitorenter(bool b) { _pending_monitorenter = b; }
101 void set_pending_deoptimization(int reason) { _pending_deoptimization = reason; } 102 void set_pending_deoptimization(int reason) { _pending_deoptimization = reason; }
102 void set_pending_failed_speculation(oop failed_speculation) { _pending_failed_speculation = failed_speculation; } 103 void set_pending_failed_speculation(oop failed_speculation) { _pending_failed_speculation = failed_speculation; }
104 void set_pending_transfer_to_interpreter(bool b) { _pending_transfer_to_interpreter = b; }
103 #endif 105 #endif
104 106
105 // use THROW whenever possible! 107 // use THROW whenever possible!
106 void set_pending_exception(oop exception, const char* file, int line); 108 void set_pending_exception(oop exception, const char* file, int line);
107 109
109 void clear_pending_exception(); 111 void clear_pending_exception();
110 112
111 ThreadShadow() : _pending_exception(NULL), 113 ThreadShadow() : _pending_exception(NULL),
112 _exception_file(NULL), _exception_line(0) 114 _exception_file(NULL), _exception_line(0)
113 #ifdef GRAAL 115 #ifdef GRAAL
114 , _pending_monitorenter(false), _pending_deoptimization(-1), _pending_failed_speculation(NULL) 116 , _pending_monitorenter(false), _pending_deoptimization(-1), _pending_failed_speculation(NULL), _pending_transfer_to_interpreter(false)
115 #endif 117 #endif
116 {} 118 {}
117 }; 119 };
118 120
119 121