< prev index next >

src/share/vm/c1/c1_LIRGenerator.cpp

Print this page

        

*** 430,440 **** if (bci == SynchronizationEntryBCI) { if (x->as_ExceptionObject() || x->as_Throw()) { // all locals are dead on exit from the synthetic unlocker liveness.clear(); } else { ! assert(x->as_MonitorEnter() || x->as_ProfileInvoke(), "only other cases are MonitorEnter and ProfileInvoke"); } } if (!liveness.is_valid()) { // Degenerate or breakpointed method. bailout("Degenerate or breakpointed method"); --- 430,440 ---- if (bci == SynchronizationEntryBCI) { if (x->as_ExceptionObject() || x->as_Throw()) { // all locals are dead on exit from the synthetic unlocker liveness.clear(); } else { ! assert(x->as_MonitorEnter() || x->as_MonitorExit() || x->as_ProfileInvoke(), "only other cases are MonitorEnter, MonitorExit and ProfileInvoke"); } } if (!liveness.is_valid()) { // Degenerate or breakpointed method. bailout("Degenerate or breakpointed method");
*** 649,664 **** // for handling NullPointerException, use debug info representing just the lock stack before this monitorenter __ lock_object(hdr, object, lock, scratch, slow_path, info_for_exception); } ! void LIRGenerator::monitor_exit(LIR_Opr object, LIR_Opr lock, LIR_Opr new_hdr, LIR_Opr scratch, int monitor_no) { if (!GenerateSynchronizationCode) return; // setup registers LIR_Opr hdr = lock; lock = new_hdr; ! CodeStub* slow_path = new MonitorExitStub(lock, UseFastLocking, monitor_no); __ load_stack_address_monitor(monitor_no, lock); __ unlock_object(hdr, object, lock, scratch, slow_path); } #ifndef PRODUCT --- 649,664 ---- // for handling NullPointerException, use debug info representing just the lock stack before this monitorenter __ lock_object(hdr, object, lock, scratch, slow_path, info_for_exception); } ! void LIRGenerator::monitor_exit(LIR_Opr object, LIR_Opr lock, LIR_Opr new_hdr, LIR_Opr scratch, int monitor_no, CodeEmitInfo* info) { if (!GenerateSynchronizationCode) return; // setup registers LIR_Opr hdr = lock; lock = new_hdr; ! CodeStub* slow_path = new MonitorExitStub(lock, UseFastLocking, monitor_no, info); __ load_stack_address_monitor(monitor_no, lock); __ unlock_object(hdr, object, lock, scratch, slow_path); } #ifndef PRODUCT
< prev index next >