RFR: JDK-8269408: [lworld] [lqagain] Withfield and field resolution update

Frederic Parain fparain at openjdk.java.net
Fri Jun 25 20:02:34 UTC 2021

Please review those changes in the interpreter and the field resolution code.

With the L/Q model, field resolution must now check that putfield is applied only on identity objects and withfield is applied only on primitive objects.
The interpreter now performs the required null check on the receiver when executing a withfield bytecode.
The implementation of withfield has been reworked to remove some of the costly operations it was using (retrieving the last Java frame to be able to extract arguments of the withfield bytecode). The old version of withfield in the interpreter runtime has not been removed because it is still used by the aarch64 platform.
The withfield unit test has been extended to cover all kind of fields.
No additional test regarding field resolution has been added yet, I'll work with Harold to define and implement them. They'll be integrated in a later patch.

Thank you,



Commit messages:
 - More efficient interpreted withfield

Changes: https://git.openjdk.java.net/valhalla/pull/465/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=465&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8269408
  Stats: 226 lines in 5 files changed: 224 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/465.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/465/head:pull/465

PR: https://git.openjdk.java.net/valhalla/pull/465

More information about the valhalla-dev mailing list