On Wed, 17 Apr 2024 15:26:52 GMT, Matias Saavedra Silva <matsa...@openjdk.org> 
wrote:

> Before [JDK-8307190](https://bugs.openjdk.org/browse/JDK-8307190), 
> [JDK-8309673](https://bugs.openjdk.org/browse/JDK-8309673), and 
> [JDK-8301995](https://bugs.openjdk.org/browse/JDK-8301995), invokedynamic 
> operands needed to be rewritten to encoded values to better distinguish indy 
> entries from other cp cache entries. The above changes now distinguish 
> between entries with `to_cp_index()` using the bytecode, which is now 
> propagated by the callers.
> 
> The encoding flips the bits of the index so the encoded index is always 
> negative, leading to access errors if there is no matching decode call. These 
> calls are removed with some methods adjusted to distinguish between indices 
> with the bytecode. Verified with tier 1-5 tests.

src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstantPool.java 
line 720:

> 718:     @Override
> 719:     public JavaMethod lookupMethod(int rawIndex, int opcode, 
> ResolvedJavaMethod caller) {
> 720:         int which = rawIndex;

We could get rid of that intermediate variable now and just use `rawIndex` 
below.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/18819#discussion_r1570192972

Reply via email to