hotspot/src/share/vm/opto/output.cpp
changeset 4566 b363f6ef4068
parent 4564 55dfb20908d0
child 4748 3fa8d8a7c0ea
equal deleted inserted replaced
4565:cbb3fed38514 4566:b363f6ef4068
   792 #ifdef ENABLE_ZAP_DEAD_LOCALS
   792 #ifdef ENABLE_ZAP_DEAD_LOCALS
   793   assert( is_node_getting_a_safepoint(mach),  "logic does not match; false negative");
   793   assert( is_node_getting_a_safepoint(mach),  "logic does not match; false negative");
   794 #endif
   794 #endif
   795 
   795 
   796   int safepoint_pc_offset = current_offset;
   796   int safepoint_pc_offset = current_offset;
       
   797   bool is_method_handle_invoke = false;
   797 
   798 
   798   // Add the safepoint in the DebugInfoRecorder
   799   // Add the safepoint in the DebugInfoRecorder
   799   if( !mach->is_MachCall() ) {
   800   if( !mach->is_MachCall() ) {
   800     mcall = NULL;
   801     mcall = NULL;
   801     debug_info()->add_safepoint(safepoint_pc_offset, sfn->_oop_map);
   802     debug_info()->add_safepoint(safepoint_pc_offset, sfn->_oop_map);
   802   } else {
   803   } else {
   803     mcall = mach->as_MachCall();
   804     mcall = mach->as_MachCall();
       
   805 
       
   806     // Is the call a MethodHandle call?
       
   807     if (mcall->is_MachCallJava())
       
   808       is_method_handle_invoke = mcall->as_MachCallJava()->_method_handle_invoke;
       
   809 
   804     safepoint_pc_offset += mcall->ret_addr_offset();
   810     safepoint_pc_offset += mcall->ret_addr_offset();
   805     debug_info()->add_safepoint(safepoint_pc_offset, mcall->_oop_map);
   811     debug_info()->add_safepoint(safepoint_pc_offset, mcall->_oop_map);
   806   }
   812   }
   807 
   813 
   808   // Loop over the JVMState list to add scope information
   814   // Loop over the JVMState list to add scope information
   911     ciMethod* scope_method = method ? method : _method;
   917     ciMethod* scope_method = method ? method : _method;
   912     // Describe the scope here
   918     // Describe the scope here
   913     assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI");
   919     assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI");
   914     assert(!jvms->should_reexecute() || depth == max_depth, "reexecute allowed only for the youngest");
   920     assert(!jvms->should_reexecute() || depth == max_depth, "reexecute allowed only for the youngest");
   915     // Now we can describe the scope.
   921     // Now we can describe the scope.
   916     bool is_method_handle_invoke = false;
       
   917     debug_info()->describe_scope(safepoint_pc_offset, scope_method, jvms->bci(), jvms->should_reexecute(), is_method_handle_invoke, locvals, expvals, monvals);
   922     debug_info()->describe_scope(safepoint_pc_offset, scope_method, jvms->bci(), jvms->should_reexecute(), is_method_handle_invoke, locvals, expvals, monvals);
   918   } // End jvms loop
   923   } // End jvms loop
   919 
   924 
   920   // Mark the end of the scope set.
   925   // Mark the end of the scope set.
   921   debug_info()->end_safepoint(safepoint_pc_offset);
   926   debug_info()->end_safepoint(safepoint_pc_offset);