87 assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); |
87 assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); |
88 return frame(last_Java_fp(), last_Java_sp()); |
88 return frame(last_Java_fp(), last_Java_sp()); |
89 } |
89 } |
90 |
90 |
91 public: |
91 public: |
|
92 static ByteSize last_Java_fp_offset() { |
|
93 return byte_offset_of(JavaThread, _anchor) + |
|
94 JavaFrameAnchor::last_Java_fp_offset(); |
|
95 } |
|
96 |
|
97 public: |
92 // Check for pending suspend requests and pending asynchronous |
98 // Check for pending suspend requests and pending asynchronous |
93 // exceptions. There are separate accessors for these, but |
99 // exceptions. There are separate accessors for these, but |
94 // _suspend_flags is volatile so using them would be unsafe. |
100 // _suspend_flags is volatile so using them would be unsafe. |
95 bool has_special_condition_for_native_trans() { |
101 bool has_special_condition_for_native_trans() { |
96 return _suspend_flags != 0; |
102 return _suspend_flags != 0; |