RFR: 8282049: AArch64: Use ZR for integer zero immediate volatile stores

Dmitry Chuyko dchuyko at openjdk.java.net
Thu Feb 17 14:05:19 UTC 2022


Rules and encodings for volatile stores of immediate zero byte, char, int, long and pointers were added in aarch64.ad. E.g. storeimmN0_volatile() and aarch64_enc_stlrw0(). They use stlr instructions with ZR similar to what is already done for non-volatile zero stores and str instructions.

So for example

mov x13, xzr
stlr x13, [x11]

turns into

stlr xzr [x11]

There's no direct effect in dedicated micro-benchmarks on N1 but 1 register and 1 instruction are saved.

Testing: jtreg tier1, tier2, applications/jcstress on bare metal Graviton 2.

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

Commit messages:
 - Added rules for stlr zr, mem

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

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


More information about the hotspot-compiler-dev mailing list