hotspot/src/share/vm/code/nmethod.cpp
changeset 4564 55dfb20908d0
parent 4479 5686407cde7a
child 4567 7fc02fbe5c7a
equal deleted inserted replaced
4563:973da517fcec 4564:55dfb20908d0
  1761   }
  1761   }
  1762   assert(prev_offset == PcDesc::upper_offset_limit,
  1762   assert(prev_offset == PcDesc::upper_offset_limit,
  1763          "must end with a sentinel");
  1763          "must end with a sentinel");
  1764 #endif //ASSERT
  1764 #endif //ASSERT
  1765 
  1765 
       
  1766   // Search for MethodHandle invokes and tag the nmethod.
       
  1767   for (int i = 0; i < count; i++) {
       
  1768     if (pcs[i].is_method_handle_invoke()) {
       
  1769       set_has_method_handle_invokes(true);
       
  1770       break;
       
  1771     }
       
  1772   }
       
  1773 
  1766   int size = count * sizeof(PcDesc);
  1774   int size = count * sizeof(PcDesc);
  1767   assert(scopes_pcs_size() >= size, "oob");
  1775   assert(scopes_pcs_size() >= size, "oob");
  1768   memcpy(scopes_pcs_begin(), pcs, size);
  1776   memcpy(scopes_pcs_begin(), pcs, size);
  1769 
  1777 
  1770   // Adjust the final sentinel downward.
  1778   // Adjust the final sentinel downward.
  2024 }
  2032 }
  2025 
  2033 
  2026 bool nmethod::is_deopt_pc(address pc) {
  2034 bool nmethod::is_deopt_pc(address pc) {
  2027   bool ret =  pc == deopt_handler_begin();
  2035   bool ret =  pc == deopt_handler_begin();
  2028   return ret;
  2036   return ret;
       
  2037 }
       
  2038 
       
  2039 
       
  2040 // -----------------------------------------------------------------------------
       
  2041 // MethodHandle
       
  2042 
       
  2043 bool nmethod::is_method_handle_return(address return_pc) {
       
  2044   if (!has_method_handle_invokes())  return false;
       
  2045   PcDesc* pd = pc_desc_at(return_pc);
       
  2046   if (pd == NULL)
       
  2047     return false;
       
  2048   return pd->is_method_handle_invoke();
  2029 }
  2049 }
  2030 
  2050 
  2031 
  2051 
  2032 // -----------------------------------------------------------------------------
  2052 // -----------------------------------------------------------------------------
  2033 // Verification
  2053 // Verification