[9] RFR (XS): 8146983: C1: assert(appendix.not_null()) failed for invokehandle bytecode

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Wed Jan 13 13:53:18 UTC 2016


http://cr.openjdk.java.net/~vlivanov/8146983/webrev.00
https://bugs.openjdk.java.net/browse/JDK-8146983

Assertion added in 8140659 is too strong: sometimes appendix patching 
for invokehandle happens when there's no appendix argument.

Appendix is present only for MH::invoke (_invokeGeneric; see 
LinkResolver::lookup_polymorphic_method). MH::invokeExact doesn't have 
an appendix. But C1 uses patching for all unresolved invokedynamic & 
invokehandle call sites (see GraphBuilder::invoke and 
Bytecodes::has_optional_appendix).

The fix is to remove the assertion.

Also, fixed a leftover from 8140659: appendix resolution for 
invokehandle should be idempotent as well.

Testing: JPRT

Best regards,
Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list