72 } 73 void reset_last_Java_frame() { 74 frame_anchor()->zap(); 75 } 76 void set_last_Java_frame(ZeroFrame* fp, intptr_t* sp) { 77 frame_anchor()->set(sp, NULL, fp); 78 } 79 80 public: 81 ZeroFrame* last_Java_fp() { 82 return frame_anchor()->last_Java_fp(); 83 } 84 85 private: 86 frame pd_last_frame() { 87 assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); 88 return frame(last_Java_fp(), last_Java_sp()); 89 } 90 91 public: 92 // Check for pending suspend requests and pending asynchronous 93 // exceptions. There are separate accessors for these, but 94 // _suspend_flags is volatile so using them would be unsafe. 95 bool has_special_condition_for_native_trans() { 96 return _suspend_flags != 0; 97 } 98 99 public: 100 bool pd_get_top_frame_for_signal_handler(frame* fr_addr, 101 void* ucontext, 102 bool isInJava) { 103 ShouldNotCallThis(); 104 } 105 106 // These routines are only used on cpu architectures that 107 // have separate register stacks (Itanium). 108 static bool register_stack_overflow() { return false; } 109 static void enable_register_stack_guard() {} 110 static void disable_register_stack_guard() {} | 72 } 73 void reset_last_Java_frame() { 74 frame_anchor()->zap(); 75 } 76 void set_last_Java_frame(ZeroFrame* fp, intptr_t* sp) { 77 frame_anchor()->set(sp, NULL, fp); 78 } 79 80 public: 81 ZeroFrame* last_Java_fp() { 82 return frame_anchor()->last_Java_fp(); 83 } 84 85 private: 86 frame pd_last_frame() { 87 assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); 88 return frame(last_Java_fp(), last_Java_sp()); 89 } 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(); 110 } 111 112 // These routines are only used on cpu architectures that 113 // have separate register stacks (Itanium). 114 static bool register_stack_overflow() { return false; } 115 static void enable_register_stack_guard() {} 116 static void disable_register_stack_guard() {} |