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
