equal
deleted
inserted
replaced
348 } |
348 } |
349 |
349 |
350 void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f); |
350 void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f); |
351 |
351 |
352 // implicit exceptions support |
352 // implicit exceptions support |
353 virtual address continuation_for_implicit_exception(address pc) { return NULL; } |
353 address continuation_for_implicit_div0_exception(address pc) { return continuation_for_implicit_exception(pc, true); } |
|
354 address continuation_for_implicit_null_exception(address pc) { return continuation_for_implicit_exception(pc, false); } |
354 |
355 |
355 static address get_deopt_original_pc(const frame* fr); |
356 static address get_deopt_original_pc(const frame* fr); |
356 |
357 |
357 // Inline cache support for class unloading and nmethod unloading |
358 // Inline cache support for class unloading and nmethod unloading |
358 private: |
359 private: |
359 bool cleanup_inline_caches_impl(bool unloading_occurred, bool clean_all); |
360 bool cleanup_inline_caches_impl(bool unloading_occurred, bool clean_all); |
|
361 |
|
362 address continuation_for_implicit_exception(address pc, bool for_div0_check); |
360 |
363 |
361 public: |
364 public: |
362 // Serial version used by sweeper and whitebox test |
365 // Serial version used by sweeper and whitebox test |
363 void cleanup_inline_caches(bool clean_all); |
366 void cleanup_inline_caches(bool clean_all); |
364 |
367 |