hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp

Print this page




  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() {}