src/hotspot/share/opto/library_call.cpp
changeset 55418 922a4a554807
parent 55341 c63b9b87c28a
child 55490 3f3dc00a69a5
child 55604 a30c86af2eb7
equal deleted inserted replaced
55417:6c2d53701e34 55418:922a4a554807
  4499 JVMState* LibraryCallKit::arraycopy_restore_alloc_state(AllocateArrayNode* alloc, int& saved_reexecute_sp) {
  4499 JVMState* LibraryCallKit::arraycopy_restore_alloc_state(AllocateArrayNode* alloc, int& saved_reexecute_sp) {
  4500   if (alloc != NULL) {
  4500   if (alloc != NULL) {
  4501     ciMethod* trap_method = alloc->jvms()->method();
  4501     ciMethod* trap_method = alloc->jvms()->method();
  4502     int trap_bci = alloc->jvms()->bci();
  4502     int trap_bci = alloc->jvms()->bci();
  4503 
  4503 
  4504     if (!C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_intrinsic) &
  4504     if (!C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_intrinsic) &&
  4505           !C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_null_check)) {
  4505         !C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_null_check)) {
  4506       // Make sure there's no store between the allocation and the
  4506       // Make sure there's no store between the allocation and the
  4507       // arraycopy otherwise visible side effects could be rexecuted
  4507       // arraycopy otherwise visible side effects could be rexecuted
  4508       // in case of deoptimization and cause incorrect execution.
  4508       // in case of deoptimization and cause incorrect execution.
  4509       bool no_interfering_store = true;
  4509       bool no_interfering_store = true;
  4510       Node* mem = alloc->in(TypeFunc::Memory);
  4510       Node* mem = alloc->in(TypeFunc::Memory);