69 assert(top_zero_frame() == NULL, "junk on stack after Java call");
70 }
71
72 public:
73 void set_last_Java_frame() {
74 set_last_Java_frame(top_zero_frame(), zero_stack()->sp());
75 }
76 void reset_last_Java_frame() {
77 frame_anchor()->zap();
78 }
79 void set_last_Java_frame(ZeroFrame* fp, intptr_t* sp) {
80 frame_anchor()->set(sp, NULL, fp);
81 }
82
83 public:
84 ZeroFrame* last_Java_fp() {
85 return frame_anchor()->last_Java_fp();
86 }
87
88 private:
89 frame pd_last_frame() {
90 assert(has_last_Java_frame(), "must have last_Java_sp() when suspended");
91 return frame(last_Java_fp(), last_Java_sp());
92 }
93
94 public:
95 static ByteSize last_Java_fp_offset() {
96 return byte_offset_of(JavaThread, _anchor) +
97 JavaFrameAnchor::last_Java_fp_offset();
98 }
99
100 public:
101 // Check for pending suspend requests and pending asynchronous
102 // exceptions. There are separate accessors for these, but
103 // _suspend_flags is volatile so using them would be unsafe.
104 bool has_special_condition_for_native_trans() {
105 return _suspend_flags != 0;
106 }
107
108 public:
109 bool pd_get_top_frame_for_signal_handler(frame* fr_addr,
110 void* ucontext,
111 bool isInJava) {
112 ShouldNotCallThis();
|
69 assert(top_zero_frame() == NULL, "junk on stack after Java call");
70 }
71
72 public:
73 void set_last_Java_frame() {
74 set_last_Java_frame(top_zero_frame(), zero_stack()->sp());
75 }
76 void reset_last_Java_frame() {
77 frame_anchor()->zap();
78 }
79 void set_last_Java_frame(ZeroFrame* fp, intptr_t* sp) {
80 frame_anchor()->set(sp, NULL, fp);
81 }
82
83 public:
84 ZeroFrame* last_Java_fp() {
85 return frame_anchor()->last_Java_fp();
86 }
87
88 private:
89 frame pd_last_frame();
90
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:
98 // Check for pending suspend requests and pending asynchronous
99 // exceptions. There are separate accessors for these, but
100 // _suspend_flags is volatile so using them would be unsafe.
101 bool has_special_condition_for_native_trans() {
102 return _suspend_flags != 0;
103 }
104
105 public:
106 bool pd_get_top_frame_for_signal_handler(frame* fr_addr,
107 void* ucontext,
108 bool isInJava) {
109 ShouldNotCallThis();
|