Request for reviews (XS): 7106774: JSR 292: nightly test inlineMHTarget fails with wrong result
vladimir.kozlov at oracle.com
Wed Nov 2 10:08:08 PDT 2011
On 11/2/11 7:03 AM, Christian Thalinger wrote:
> 7106774: JSR 292: nightly test inlineMHTarget fails with wrong result
> The problem is in code which was added with 7090904 that checks if the
> call site is a method handle invoke. The new code uses
> Bytecode::code() and compares the result to Bytecodes values:
> if (cur.code() == Bytecodes::_invokedynamic ||
> (cur.code() == Bytecodes::_invokevirtual&&
> But an invokevirtual can be quickened so that the resulting Bytecode
> is a different one:
> (dbx) n
> t at 2 (l at 2) stopped in Deoptimization::fetch_unroll_info_helper at line 393 in file "deoptimization.cpp"
> 393 if (cur.code() == Bytecodes::_invokedynamic ||
> (dbx) p cur.code()
> cur.code() = _fast_invokevfinal
> The fix is to use Bytecode_invoke::is_invokevirtual() and
> is_invokedynamic() which use Bytecode::java_code().
> Tested with failing test case.
More information about the hotspot-compiler-dev