RFR: 8256375: AArch64: aarch64-asmtest.py may generate undefined register r18

Dong Bo dongbo at openjdk.java.net
Thu Nov 19 02:46:15 UTC 2020


In aarch64-asmtest.py, register `r18` is not generated for all the GeneralRegister instructions, except `LoadStoreOp` and `LoadStorePairOp`.
So when adding new instructions to the script before `LoadStoreOp` or `LoadStorePairOp`,
assembler smoke test may fail with undefined register `r18`, like:
Creating javadoc element list
.../jdk/src/hotspot/cpu/aarch64/assembler_aarch64.cpp: In function 'void entry(CodeBuffer*)':
.../jdk/src/hotspot/cpu/aarch64/assembler_aarch64.cpp:580:37: error: 'r18' was not declared in this scope; did you mean 'z18'?
  580 | __ ldp(r28, r22, Address(__ pre(r18, 16))); // ldp x28, x22, [x18, #16]!
      | ^~~
      | z18
gmake[3]: *** [lib/CompileJvm.gmk:143: .../jdk/build/linux-aarch64-server-fastdebug/hotspot/variant-server/libjvm/objs/assembler_aarch64.o] Error 1
gmake[3]: *** Waiting for unfinished jobs....
Compiling 89 properties into resource bundles for java.desktop

This excludes `r18` from the random list of `LoadStoreOp` and `LoadStorePairOp`.

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

Commit messages:
 - 8256375: AArch64: aarch64-asmtest.py may generate undefined register r18

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

PR: https://git.openjdk.java.net/jdk/pull/1304


More information about the hotspot-compiler-dev mailing list