RFR: 8287091: aarch64 : guarantee(val < (1ULL << nbits)) failed: Field too big for insn

Andrew Haley aph at openjdk.java.net
Mon May 23 15:00:29 UTC 2022


This is fallout from the patch for JDK-8285923.

The root cause of this bug is that there is a template definition of `cmp(register, immediate)` but there is not a template definition of `cmn(register, immediate)`. Given that we are close to rampdown, this patch fixes the bug in the most minimal way possible, by using `adds(zr, register, immediate)`, which correctly handles 64-bit operands.

In the next release cycle we should tidy up `cmn()` in the same way that was done for JDK-8206895.

Alternatively, we could back out JDK-8285923. I'd rather not, given that it fixes a real (if latent) bug, but if needs be I'll do so.

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

Commit messages:
 - 8287091: aarch64 : guarantee(val < (1ULL << nbits)) failed: Field too big for insn
 - 8287091: aarch64 : guarantee(val < (1ULL << nbits)) failed: Field too big for insn

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

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


More information about the hotspot-compiler-dev mailing list