RFR: 8334706: [JVMCI] APX registers incorrectly exposed on AMD64

Doug Simon dnsimon at openjdk.org
Fri Jun 21 10:09:19 UTC 2024


This PR fixes a bug introduced by [JDK-8329032](https://bugs.openjdk.org/browse/JDK-8329032) which added the APX registers to `AMD64.java`.
It broke [this invariant](https://github.com/openjdk/jdk/blob/d2bebffb1fd26fae4526afd33a818ee776b7102e/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/Architecture.java#L48-L52):

    /**
     * List of all available registers on this architecture. The index of each register in this list
     * is equal to its {@linkplain Register#number number}.
     */
    private final RegisterArray registers;

That invariant is relied upon by the Graal register allocator.
This PR now tests the invariant and fixes the definitions in `AMD64.java` that were violating it.

This fix was developed by @tkrodriguez.

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

Commit messages:
 - APX registers incorrectly exposed on AMD64

Changes: https://git.openjdk.org/jdk/pull/19824/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19824&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8334706
  Stats: 15 lines in 2 files changed: 10 ins; 4 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/19824.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19824/head:pull/19824

PR: https://git.openjdk.org/jdk/pull/19824


More information about the hotspot-compiler-dev mailing list