< prev index next >
src/hotspot/cpu/s390/compiledIC_s390.cpp
Print this page
*** 102,124 ****
}
// Creation also verifies the object.
NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + NativeCall::get_IC_pos_in_java_to_interp_stub());
NativeJump* jump = nativeJump_at(method_holder->next_instruction_address());
!
! #ifdef ASSERT
! // A generated lambda form might be deleted from the Lambdaform
! // cache in MethodTypeForm. If a jit compiled lambdaform method
! // becomes not entrant and the cache access returns null, the new
! // resolve will lead to a new generated LambdaForm.
! volatile intptr_t data = method_holder->data();
! volatile address destination = jump->jump_destination();
! assert(data == 0 || data == (intptr_t)callee() || callee->is_compiled_lambda_form(),
! "a) MT-unsafe modification of inline cache");
! assert(destination == (address)-1 || destination == entry,
! "b) MT-unsafe modification of inline cache");
! #endif
// Update stub.
method_holder->set_data((intptr_t)callee(), relocInfo::metadata_type);
jump->set_jump_destination(entry);
--- 102,112 ----
}
// Creation also verifies the object.
NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + NativeCall::get_IC_pos_in_java_to_interp_stub());
NativeJump* jump = nativeJump_at(method_holder->next_instruction_address());
! verify_mt_safe(callee, entry, method_holder, jump);
// Update stub.
method_holder->set_data((intptr_t)callee(), relocInfo::metadata_type);
jump->set_jump_destination(entry);
< prev index next >