< prev index next >
src/hotspot/share/c1/c1_LIRGenerator.cpp
Print this page
@@ -641,17 +641,18 @@
default: ShouldNotReachHere();
}
}
-void LIRGenerator::monitor_enter(LIR_Opr object, LIR_Opr lock, LIR_Opr hdr, LIR_Opr scratch, int monitor_no, CodeEmitInfo* info_for_exception, CodeEmitInfo* info) {
+void LIRGenerator::monitor_enter(LIR_Opr object, LIR_Opr lock, LIR_Opr hdr, LIR_Opr scratch, int monitor_no,
+ CodeEmitInfo* info_for_exception, CodeEmitInfo* info, CodeStub* throw_imse_stub) {
if (!GenerateSynchronizationCode) return;
// for slow path, use debug info for state after successful locking
- CodeStub* slow_path = new MonitorEnterStub(object, lock, info);
+ CodeStub* slow_path = new MonitorEnterStub(object, lock, info, throw_imse_stub, scratch);
__ load_stack_address_monitor(monitor_no, lock);
// 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);
+ __ lock_object(hdr, object, lock, scratch, slow_path, info_for_exception, throw_imse_stub);
}
void LIRGenerator::monitor_exit(LIR_Opr object, LIR_Opr lock, LIR_Opr new_hdr, LIR_Opr scratch, int monitor_no) {
if (!GenerateSynchronizationCode) return;
< prev index next >