< prev index next >

src/hotspot/share/code/compiledMethod.inline.hpp

Print this page




  44 // -----------------------------------------------------------------------------
  45 // CompiledMethod::get_deopt_original_pc
  46 //
  47 // Return the original PC for the given PC if:
  48 // (a) the given PC belongs to a nmethod and
  49 // (b) it is a deopt PC
  50 
  51 inline address CompiledMethod::get_deopt_original_pc(const frame* fr) {
  52   if (fr->cb() == NULL)  return NULL;
  53 
  54   CompiledMethod* cm = fr->cb()->as_compiled_method_or_null();
  55   if (cm != NULL && cm->is_deopt_pc(fr->pc()))
  56     return cm->get_original_pc(fr);
  57 
  58   return NULL;
  59 }
  60 
  61 
  62 // class ExceptionCache methods
  63 
  64 inline int ExceptionCache::count() { return OrderAccess::load_acquire(&_count); }
  65 
  66 address ExceptionCache::pc_at(int index) {
  67   assert(index >= 0 && index < count(),"");
  68   return _pc[index];
  69 }
  70 
  71 address ExceptionCache::handler_at(int index) {
  72   assert(index >= 0 && index < count(),"");
  73   return _handler[index];
  74 }
  75 
  76 // increment_count is only called under lock, but there may be concurrent readers.
  77 inline void ExceptionCache::increment_count() { OrderAccess::release_store(&_count, _count + 1); }
  78 
  79 
  80 #endif // SHARE_CODE_COMPILEDMETHOD_INLINE_HPP


  44 // -----------------------------------------------------------------------------
  45 // CompiledMethod::get_deopt_original_pc
  46 //
  47 // Return the original PC for the given PC if:
  48 // (a) the given PC belongs to a nmethod and
  49 // (b) it is a deopt PC
  50 
  51 inline address CompiledMethod::get_deopt_original_pc(const frame* fr) {
  52   if (fr->cb() == NULL)  return NULL;
  53 
  54   CompiledMethod* cm = fr->cb()->as_compiled_method_or_null();
  55   if (cm != NULL && cm->is_deopt_pc(fr->pc()))
  56     return cm->get_original_pc(fr);
  57 
  58   return NULL;
  59 }
  60 
  61 
  62 // class ExceptionCache methods
  63 
  64 inline int ExceptionCache::count() { return Atomic::load_acquire(&_count); }
  65 
  66 address ExceptionCache::pc_at(int index) {
  67   assert(index >= 0 && index < count(),"");
  68   return _pc[index];
  69 }
  70 
  71 address ExceptionCache::handler_at(int index) {
  72   assert(index >= 0 && index < count(),"");
  73   return _handler[index];
  74 }
  75 
  76 // increment_count is only called under lock, but there may be concurrent readers.
  77 inline void ExceptionCache::increment_count() { Atomic::release_store(&_count, _count + 1); }
  78 
  79 
  80 #endif // SHARE_CODE_COMPILEDMETHOD_INLINE_HPP
< prev index next >