equal
deleted
inserted
replaced
350 |
350 |
351 static address get_deopt_original_pc(const frame* fr); |
351 static address get_deopt_original_pc(const frame* fr); |
352 |
352 |
353 // Inline cache support for class unloading and nmethod unloading |
353 // Inline cache support for class unloading and nmethod unloading |
354 private: |
354 private: |
355 void cleanup_inline_caches_impl(bool unloading_occurred, bool clean_all); |
355 bool cleanup_inline_caches_impl(bool unloading_occurred, bool clean_all); |
|
356 |
356 public: |
357 public: |
357 void cleanup_inline_caches(bool clean_all) { |
358 // Serial version used by sweeper and whitebox test |
358 // Serial version used by sweeper and whitebox test |
359 void cleanup_inline_caches(bool clean_all); |
359 cleanup_inline_caches_impl(false, clean_all); |
|
360 } |
|
361 |
360 |
362 virtual void clear_inline_caches(); |
361 virtual void clear_inline_caches(); |
363 void clear_ic_stubs(); |
362 void clear_ic_stubs(); |
364 |
363 |
365 // Verify and count cached icholder relocations. |
364 // Verify and count cached icholder relocations. |
388 // GC support |
387 // GC support |
389 protected: |
388 protected: |
390 address oops_reloc_begin() const; |
389 address oops_reloc_begin() const; |
391 |
390 |
392 private: |
391 private: |
393 void static clean_ic_if_metadata_is_dead(CompiledIC *ic); |
392 bool static clean_ic_if_metadata_is_dead(CompiledIC *ic); |
394 |
393 |
395 void clean_ic_stubs(); |
394 void clean_ic_stubs(); |
396 |
395 |
397 public: |
396 public: |
398 // GC unloading support |
397 // GC unloading support |
399 // Cleans unloaded klasses and unloaded nmethods in inline caches |
398 // Cleans unloaded klasses and unloaded nmethods in inline caches |
400 |
399 |
401 virtual bool is_unloading() = 0; |
400 virtual bool is_unloading() = 0; |
402 |
401 |
403 void unload_nmethod_caches(bool class_unloading_occurred); |
402 bool unload_nmethod_caches(bool class_unloading_occurred); |
404 virtual void do_unloading(bool unloading_occurred) { } |
403 virtual void do_unloading(bool unloading_occurred) { } |
405 |
404 |
406 private: |
405 private: |
407 PcDesc* find_pc_desc(address pc, bool approximate) { |
406 PcDesc* find_pc_desc(address pc, bool approximate) { |
408 return _pc_desc_container.find_pc_desc(pc, approximate, PcDescSearch(code_begin(), scopes_pcs_begin(), scopes_pcs_end())); |
407 return _pc_desc_container.find_pc_desc(pc, approximate, PcDescSearch(code_begin(), scopes_pcs_begin(), scopes_pcs_end())); |