Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/runtime/thread.hpp
          +++ new/src/share/vm/runtime/thread.hpp
↓ open down ↓ 747 lines elided ↑ open up ↑
 748  748  
 749  749    StackGuardState        _stack_guard_state;
 750  750  
 751  751    // Compiler exception handling (NOTE: The _exception_oop is *NOT* the same as _pending_exception. It is
 752  752    // used to temp. parsing values into and out of the runtime system during exception handling for compiled
 753  753    // code)
 754  754    volatile oop     _exception_oop;               // Exception thrown in compiled code
 755  755    volatile address _exception_pc;                // PC where exception happened
 756  756    volatile address _exception_handler_pc;        // PC for handler of exception
 757  757    volatile int     _exception_stack_size;        // Size of frame where exception happened
      758 +  volatile int     _is_method_handle_exception;  // True if the current exception PC is at a MethodHandle call.
 758  759  
 759  760    // support for compilation
 760  761    bool    _is_compiling;                         // is true if a compilation is active inthis thread (one compilation per thread possible)
 761  762  
 762  763    // support for JNI critical regions
 763  764    jint    _jni_active_critical;                  // count of entries into JNI critical region
 764  765  
 765  766    // For deadlock detection.
 766  767    int _depth_first_number;
 767  768  
↓ open down ↓ 312 lines elided ↑ open up ↑
1080 1081    void set_vm_result  (oop x)                    { _vm_result   = x; }
1081 1082  
1082 1083    oop  vm_result_2() const                       { return _vm_result_2; }
1083 1084    void set_vm_result_2  (oop x)                  { _vm_result_2   = x; }
1084 1085  
1085 1086    // Exception handling for compiled methods
1086 1087    oop      exception_oop() const                 { return _exception_oop; }
1087 1088    int      exception_stack_size() const          { return _exception_stack_size; }
1088 1089    address  exception_pc() const                  { return _exception_pc; }
1089 1090    address  exception_handler_pc() const          { return _exception_handler_pc; }
     1091 +  int      is_method_handle_exception() const    { return _is_method_handle_exception; }
1090 1092  
1091 1093    void set_exception_oop(oop o)                  { _exception_oop = o; }
1092 1094    void set_exception_pc(address a)               { _exception_pc = a; }
1093 1095    void set_exception_handler_pc(address a)       { _exception_handler_pc = a; }
1094 1096    void set_exception_stack_size(int size)        { _exception_stack_size = size; }
     1097 +  void set_is_method_handle_exception(int value) { _is_method_handle_exception = value; }
1095 1098  
1096 1099    // Stack overflow support
1097 1100    inline size_t stack_available(address cur_sp);
1098 1101    address stack_yellow_zone_base()
1099 1102      { return (address)(stack_base() - (stack_size() - (stack_red_zone_size() + stack_yellow_zone_size()))); }
1100 1103    size_t  stack_yellow_zone_size()
1101 1104      { return StackYellowPages * os::vm_page_size(); }
1102 1105    address stack_red_zone_base()
1103 1106      { return (address)(stack_base() - (stack_size() - stack_red_zone_size())); }
1104 1107    size_t stack_red_zone_size()
↓ open down ↓ 53 lines elided ↑ open up ↑
1158 1161    static ByteSize callee_target_offset()         { return byte_offset_of(JavaThread, _callee_target       ); }
1159 1162    static ByteSize vm_result_offset()             { return byte_offset_of(JavaThread, _vm_result           ); }
1160 1163    static ByteSize vm_result_2_offset()           { return byte_offset_of(JavaThread, _vm_result_2         ); }
1161 1164    static ByteSize thread_state_offset()          { return byte_offset_of(JavaThread, _thread_state        ); }
1162 1165    static ByteSize saved_exception_pc_offset()    { return byte_offset_of(JavaThread, _saved_exception_pc  ); }
1163 1166    static ByteSize osthread_offset()              { return byte_offset_of(JavaThread, _osthread            ); }
1164 1167    static ByteSize exception_oop_offset()         { return byte_offset_of(JavaThread, _exception_oop       ); }
1165 1168    static ByteSize exception_pc_offset()          { return byte_offset_of(JavaThread, _exception_pc        ); }
1166 1169    static ByteSize exception_handler_pc_offset()  { return byte_offset_of(JavaThread, _exception_handler_pc); }
1167 1170    static ByteSize exception_stack_size_offset()  { return byte_offset_of(JavaThread, _exception_stack_size); }
     1171 +  static ByteSize is_method_handle_exception_offset() { return byte_offset_of(JavaThread, _is_method_handle_exception); }
1168 1172    static ByteSize stack_guard_state_offset()     { return byte_offset_of(JavaThread, _stack_guard_state   ); }
1169 1173    static ByteSize suspend_flags_offset()         { return byte_offset_of(JavaThread, _suspend_flags       ); }
1170 1174  
1171 1175    static ByteSize do_not_unlock_if_synchronized_offset() { return byte_offset_of(JavaThread, _do_not_unlock_if_synchronized); }
1172 1176  
1173 1177  #ifndef SERIALGC
1174 1178    static ByteSize satb_mark_queue_offset()       { return byte_offset_of(JavaThread, _satb_mark_queue); }
1175 1179    static ByteSize dirty_card_queue_offset()      { return byte_offset_of(JavaThread, _dirty_card_queue); }
1176 1180  #endif // !SERIALGC
1177 1181  
↓ open down ↓ 616 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX