431 address entry_point() const { return _entry_point; } // normal entry point
432 address verified_entry_point() const { return _verified_entry_point; } // if klass is correct
433
434 // flag accessing and manipulation
435 bool is_in_use() const { return _state == in_use; }
436 bool is_alive() const { return _state == in_use || _state == not_entrant; }
437 bool is_not_entrant() const { return _state == not_entrant; }
438 bool is_zombie() const { return _state == zombie; }
439 bool is_unloaded() const { return _state == unloaded; }
440
441 #if INCLUDE_RTM_OPT
442 // rtm state accessing and manipulating
443 RTMState rtm_state() const { return _rtm_state; }
444 void set_rtm_state(RTMState state) { _rtm_state = state; }
445 #endif
446
447 // Make the nmethod non entrant. The nmethod will continue to be
448 // alive. It is used when an uncommon trap happens. Returns true
449 // if this thread changed the state of the nmethod or false if
450 // another thread performed the transition.
451 bool make_not_entrant() { return make_not_entrant_or_zombie(not_entrant); }
452 bool make_zombie() { return make_not_entrant_or_zombie(zombie); }
453
454 // used by jvmti to track if the unload event has been reported
455 bool unload_reported() { return _unload_reported; }
456 void set_unload_reported() { _unload_reported = true; }
457
458 void set_unloading_next(nmethod* next) { _unloading_next = next; }
459 nmethod* unloading_next() { return _unloading_next; }
460
461 static unsigned char global_unloading_clock() { return _global_unloading_clock; }
462 static void increase_unloading_clock();
463
464 void set_unloading_clock(unsigned char unloading_clock);
465 unsigned char unloading_clock();
466
467 bool is_marked_for_deoptimization() const { return _marked_for_deoptimization; }
468 void mark_for_deoptimization() { _marked_for_deoptimization = true; }
469
470 void make_unloaded(BoolObjectClosure* is_alive, oop cause);
471
|
431 address entry_point() const { return _entry_point; } // normal entry point
432 address verified_entry_point() const { return _verified_entry_point; } // if klass is correct
433
434 // flag accessing and manipulation
435 bool is_in_use() const { return _state == in_use; }
436 bool is_alive() const { return _state == in_use || _state == not_entrant; }
437 bool is_not_entrant() const { return _state == not_entrant; }
438 bool is_zombie() const { return _state == zombie; }
439 bool is_unloaded() const { return _state == unloaded; }
440
441 #if INCLUDE_RTM_OPT
442 // rtm state accessing and manipulating
443 RTMState rtm_state() const { return _rtm_state; }
444 void set_rtm_state(RTMState state) { _rtm_state = state; }
445 #endif
446
447 // Make the nmethod non entrant. The nmethod will continue to be
448 // alive. It is used when an uncommon trap happens. Returns true
449 // if this thread changed the state of the nmethod or false if
450 // another thread performed the transition.
451 bool make_not_entrant() {
452 assert(!method()->is_method_handle_intrinsic(), "Cannot make MH intrinsic not entrant");
453 return make_not_entrant_or_zombie(not_entrant);
454 }
455 bool make_zombie() { return make_not_entrant_or_zombie(zombie); }
456
457 // used by jvmti to track if the unload event has been reported
458 bool unload_reported() { return _unload_reported; }
459 void set_unload_reported() { _unload_reported = true; }
460
461 void set_unloading_next(nmethod* next) { _unloading_next = next; }
462 nmethod* unloading_next() { return _unloading_next; }
463
464 static unsigned char global_unloading_clock() { return _global_unloading_clock; }
465 static void increase_unloading_clock();
466
467 void set_unloading_clock(unsigned char unloading_clock);
468 unsigned char unloading_clock();
469
470 bool is_marked_for_deoptimization() const { return _marked_for_deoptimization; }
471 void mark_for_deoptimization() { _marked_for_deoptimization = true; }
472
473 void make_unloaded(BoolObjectClosure* is_alive, oop cause);
474
|