src/share/vm/code/nmethod.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8031320_8u Sdiff src/share/vm/code

src/share/vm/code/nmethod.cpp

Print this page
rev 5968 : 8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed


 464   _has_flushed_dependencies   = 0;
 465   _has_unsafe_access          = 0;
 466   _has_method_handle_invokes  = 0;
 467   _lazy_critical_native       = 0;
 468   _has_wide_vectors           = 0;
 469   _marked_for_deoptimization  = 0;
 470   _lock_count                 = 0;
 471   _stack_traversal_mark       = 0;
 472   _unload_reported            = false;           // jvmti state
 473 
 474 #ifdef ASSERT
 475   _oops_are_stale             = false;
 476 #endif
 477 
 478   _oops_do_mark_link       = NULL;
 479   _jmethod_id              = NULL;
 480   _osr_link                = NULL;
 481   _scavenge_root_link      = NULL;
 482   _scavenge_root_state     = 0;
 483   _compiler                = NULL;
 484 


 485 #ifdef HAVE_DTRACE_H
 486   _trap_offset             = 0;
 487 #endif // def HAVE_DTRACE_H
 488 }
 489 
 490 nmethod* nmethod::new_native_nmethod(methodHandle method,
 491   int compile_id,
 492   CodeBuffer *code_buffer,
 493   int vep_offset,
 494   int frame_complete,
 495   int frame_size,
 496   ByteSize basic_lock_owner_sp_offset,
 497   ByteSize basic_lock_sp_offset,
 498   OopMapSet* oop_maps) {
 499   code_buffer->finalize_oop_references(method);
 500   // create nmethod
 501   nmethod* nm = NULL;
 502   {
 503     MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
 504     int native_nmethod_size = allocation_size(code_buffer, sizeof(nmethod));




 464   _has_flushed_dependencies   = 0;
 465   _has_unsafe_access          = 0;
 466   _has_method_handle_invokes  = 0;
 467   _lazy_critical_native       = 0;
 468   _has_wide_vectors           = 0;
 469   _marked_for_deoptimization  = 0;
 470   _lock_count                 = 0;
 471   _stack_traversal_mark       = 0;
 472   _unload_reported            = false;           // jvmti state
 473 
 474 #ifdef ASSERT
 475   _oops_are_stale             = false;
 476 #endif
 477 
 478   _oops_do_mark_link       = NULL;
 479   _jmethod_id              = NULL;
 480   _osr_link                = NULL;
 481   _scavenge_root_link      = NULL;
 482   _scavenge_root_state     = 0;
 483   _compiler                = NULL;
 484 #if INCLUDE_RTM_OPT
 485   _rtm_state               = NoRTM;
 486 #endif
 487 #ifdef HAVE_DTRACE_H
 488   _trap_offset             = 0;
 489 #endif // def HAVE_DTRACE_H
 490 }
 491 
 492 nmethod* nmethod::new_native_nmethod(methodHandle method,
 493   int compile_id,
 494   CodeBuffer *code_buffer,
 495   int vep_offset,
 496   int frame_complete,
 497   int frame_size,
 498   ByteSize basic_lock_owner_sp_offset,
 499   ByteSize basic_lock_sp_offset,
 500   OopMapSet* oop_maps) {
 501   code_buffer->finalize_oop_references(method);
 502   // create nmethod
 503   nmethod* nm = NULL;
 504   {
 505     MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
 506     int native_nmethod_size = allocation_size(code_buffer, sizeof(nmethod));


src/share/vm/code/nmethod.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File