On Aug 31, 2017, at 1:36 PM, Karen Kinnear <[email protected]> wrote:
> 
> So today we re-resolve the callsite specifier for EACH BCI.

Yes, for invokedynamic.  In order to make this work we have to allocate
a distinct CP cache cell for each individual indy instruction.  This is
done in the Rewriter, and uses all 4 of the operand fields of indy.
(None of this is true for condy.)

> I presume that an invoke dynamic that has a static argument which is a 
> constant dynamic will use the shared 
> resolved bootstrap specifier for that constant dynamic, just as other static 
> arguments that reference
> constant pool entries such as String, MethodType, MethodHandle, Class use 
> shared resolution based on constant-pool entry.

Yes.  That is a basic behavior of the CP.  To do anything else would
require explicit language in the spec. and special code in the JVM,
as for indy.

— John

Reply via email to