RFR(S) 8190817: deopt special-case for _return_register_finalizer is confusing and leads to bugs

dean.long at oracle.com dean.long at oracle.com
Mon Nov 13 17:32:09 UTC 2017



This fix replaces the problematic use of 
_normal_table.entry(Bytecodes::_return).entry(vtos) as a deoptimization 
entry point with a proper deopt entry point returned by 
deopt_reexecute_return_entry().  This is needed to handle the situation 
where compiled code is calling register_finalizer() and gets deoptimized.

I also noticed that we generate duplicate entry points unnecessarily, so 
I cleaned that up at the same time.

aarch64/ppc64/s390 folks, please check that 
compiler/runtime/Test8168712.java still passes.


More information about the hotspot-compiler-dev mailing list