< prev index next >

src/share/vm/runtime/thread.hpp

Print this page




 911     stack_guard_yellow_reserved_disabled,// disabled (temporarily) after stack overflow
 912     stack_guard_enabled         // enabled
 913   };
 914 
 915  private:
 916 
 917 #if INCLUDE_JVMCI
 918   // The _pending_* fields below are used to communicate extra information
 919   // from an uncommon trap in JVMCI compiled code to the uncommon trap handler.
 920 
 921   // Communicates the DeoptReason and DeoptAction of the uncommon trap
 922   int       _pending_deoptimization;
 923 
 924   // Specifies whether the uncommon trap is to bci 0 of a synchronized method
 925   // before the monitor has been acquired.
 926   bool      _pending_monitorenter;
 927 
 928   // Specifies if the DeoptReason for the last uncommon trap was Reason_transfer_to_interpreter
 929   bool      _pending_transfer_to_interpreter;
 930 



 931   // An object that JVMCI compiled code can use to further describe and
 932   // uniquely identify the  speculative optimization guarded by the uncommon trap
 933   oop       _pending_failed_speculation;
 934 
 935   // These fields are mutually exclusive in terms of live ranges.
 936   union {
 937     // Communicates the pc at which the most recent implicit exception occurred
 938     // from the signal handler to a deoptimization stub.
 939     address   _implicit_exception_pc;
 940 
 941     // Communicates an alternative call target to an i2c stub from a JavaCall .
 942     address   _alternate_call_target;
 943   } _jvmci;
 944 
 945   // Support for high precision, thread sensitive counters in JVMCI compiled code.
 946   jlong*    _jvmci_counters;
 947 
 948  public:
 949   static jlong* _jvmci_old_thread_counters;
 950   static void collect_counters(typeArrayOop array);


1299 
1300   void set_deopt_compiled_method(CompiledMethod* nm)  { _deopt_nmethod = nm; }
1301   CompiledMethod* deopt_compiled_method()        { return _deopt_nmethod; }
1302 
1303   Method*    callee_target() const               { return _callee_target; }
1304   void set_callee_target  (Method* x)          { _callee_target   = x; }
1305 
1306   // Oop results of vm runtime calls
1307   oop  vm_result() const                         { return _vm_result; }
1308   void set_vm_result  (oop x)                    { _vm_result   = x; }
1309 
1310   Metadata*    vm_result_2() const               { return _vm_result_2; }
1311   void set_vm_result_2  (Metadata* x)          { _vm_result_2   = x; }
1312 
1313   MemRegion deferred_card_mark() const           { return _deferred_card_mark; }
1314   void set_deferred_card_mark(MemRegion mr)      { _deferred_card_mark = mr;   }
1315 
1316 #if INCLUDE_JVMCI
1317   int  pending_deoptimization() const             { return _pending_deoptimization; }
1318   oop  pending_failed_speculation() const         { return _pending_failed_speculation; }


1319   bool has_pending_monitorenter() const           { return _pending_monitorenter; }
1320   void set_pending_monitorenter(bool b)           { _pending_monitorenter = b; }
1321   void set_pending_deoptimization(int reason)     { _pending_deoptimization = reason; }
1322   void set_pending_failed_speculation(oop failed_speculation) { _pending_failed_speculation = failed_speculation; }
1323   void set_pending_transfer_to_interpreter(bool b) { _pending_transfer_to_interpreter = b; }
1324   void set_jvmci_alternate_call_target(address a) { assert(_jvmci._alternate_call_target == NULL, "must be"); _jvmci._alternate_call_target = a; }
1325   void set_jvmci_implicit_exception_pc(address a) { assert(_jvmci._implicit_exception_pc == NULL, "must be"); _jvmci._implicit_exception_pc = a; }
1326 #endif // INCLUDE_JVMCI
1327 
1328   // Exception handling for compiled methods
1329   oop      exception_oop() const                 { return _exception_oop; }
1330   address  exception_pc() const                  { return _exception_pc; }
1331   address  exception_handler_pc() const          { return _exception_handler_pc; }
1332   bool     is_method_handle_return() const       { return _is_method_handle_return == 1; }
1333 
1334   void set_exception_oop(oop o)                  { (void)const_cast<oop&>(_exception_oop = o); }
1335   void set_exception_pc(address a)               { _exception_pc = a; }
1336   void set_exception_handler_pc(address a)       { _exception_handler_pc = a; }
1337   void set_is_method_handle_return(bool value)   { _is_method_handle_return = value ? 1 : 0; }
1338 




 911     stack_guard_yellow_reserved_disabled,// disabled (temporarily) after stack overflow
 912     stack_guard_enabled         // enabled
 913   };
 914 
 915  private:
 916 
 917 #if INCLUDE_JVMCI
 918   // The _pending_* fields below are used to communicate extra information
 919   // from an uncommon trap in JVMCI compiled code to the uncommon trap handler.
 920 
 921   // Communicates the DeoptReason and DeoptAction of the uncommon trap
 922   int       _pending_deoptimization;
 923 
 924   // Specifies whether the uncommon trap is to bci 0 of a synchronized method
 925   // before the monitor has been acquired.
 926   bool      _pending_monitorenter;
 927 
 928   // Specifies if the DeoptReason for the last uncommon trap was Reason_transfer_to_interpreter
 929   bool      _pending_transfer_to_interpreter;
 930 
 931   // Guard for re-entrant call to JVMCIRuntime::adjust_comp_level
 932   bool      _adjusting_comp_level;
 933 
 934   // An object that JVMCI compiled code can use to further describe and
 935   // uniquely identify the  speculative optimization guarded by the uncommon trap
 936   oop       _pending_failed_speculation;
 937 
 938   // These fields are mutually exclusive in terms of live ranges.
 939   union {
 940     // Communicates the pc at which the most recent implicit exception occurred
 941     // from the signal handler to a deoptimization stub.
 942     address   _implicit_exception_pc;
 943 
 944     // Communicates an alternative call target to an i2c stub from a JavaCall .
 945     address   _alternate_call_target;
 946   } _jvmci;
 947 
 948   // Support for high precision, thread sensitive counters in JVMCI compiled code.
 949   jlong*    _jvmci_counters;
 950 
 951  public:
 952   static jlong* _jvmci_old_thread_counters;
 953   static void collect_counters(typeArrayOop array);


1302 
1303   void set_deopt_compiled_method(CompiledMethod* nm)  { _deopt_nmethod = nm; }
1304   CompiledMethod* deopt_compiled_method()        { return _deopt_nmethod; }
1305 
1306   Method*    callee_target() const               { return _callee_target; }
1307   void set_callee_target  (Method* x)          { _callee_target   = x; }
1308 
1309   // Oop results of vm runtime calls
1310   oop  vm_result() const                         { return _vm_result; }
1311   void set_vm_result  (oop x)                    { _vm_result   = x; }
1312 
1313   Metadata*    vm_result_2() const               { return _vm_result_2; }
1314   void set_vm_result_2  (Metadata* x)          { _vm_result_2   = x; }
1315 
1316   MemRegion deferred_card_mark() const           { return _deferred_card_mark; }
1317   void set_deferred_card_mark(MemRegion mr)      { _deferred_card_mark = mr;   }
1318 
1319 #if INCLUDE_JVMCI
1320   int  pending_deoptimization() const             { return _pending_deoptimization; }
1321   oop  pending_failed_speculation() const         { return _pending_failed_speculation; }
1322   bool adjusting_comp_level() const               { return _adjusting_comp_level; }
1323   void set_adjusting_comp_level(bool b)           { _adjusting_comp_level = b; }
1324   bool has_pending_monitorenter() const           { return _pending_monitorenter; }
1325   void set_pending_monitorenter(bool b)           { _pending_monitorenter = b; }
1326   void set_pending_deoptimization(int reason)     { _pending_deoptimization = reason; }
1327   void set_pending_failed_speculation(oop failed_speculation) { _pending_failed_speculation = failed_speculation; }
1328   void set_pending_transfer_to_interpreter(bool b) { _pending_transfer_to_interpreter = b; }
1329   void set_jvmci_alternate_call_target(address a) { assert(_jvmci._alternate_call_target == NULL, "must be"); _jvmci._alternate_call_target = a; }
1330   void set_jvmci_implicit_exception_pc(address a) { assert(_jvmci._implicit_exception_pc == NULL, "must be"); _jvmci._implicit_exception_pc = a; }
1331 #endif // INCLUDE_JVMCI
1332 
1333   // Exception handling for compiled methods
1334   oop      exception_oop() const                 { return _exception_oop; }
1335   address  exception_pc() const                  { return _exception_pc; }
1336   address  exception_handler_pc() const          { return _exception_handler_pc; }
1337   bool     is_method_handle_return() const       { return _is_method_handle_return == 1; }
1338 
1339   void set_exception_oop(oop o)                  { (void)const_cast<oop&>(_exception_oop = o); }
1340   void set_exception_pc(address a)               { _exception_pc = a; }
1341   void set_exception_handler_pc(address a)       { _exception_handler_pc = a; }
1342   void set_is_method_handle_return(bool value)   { _is_method_handle_return = value ? 1 : 0; }
1343 


< prev index next >