RFR: 8320682: [AArch64] C1 compilation fails with "Field too big for insn"

Daniel Lundén duke at openjdk.org
Mon Dec 4 14:25:48 UTC 2023


This changeset fixes an issue on aarch64 where addresses for float and double constants were sometimes out of range for PC-relative offsets using `adr`.

Changes:
- Fix the issue by replacing `adr` with `lea`.
- Add a regression test.

Thanks to @fisk  and @xmas92 for the assistance.

### Testing
Tests: tier1, tier2, tier3, tier4, tier5
Platforms: windows-x64, linux-x64, linux-aarch64, macosx-x64, macosx-aarch64

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

Commit messages:
 - Remove OS restriction in test
 - Add regression test
 - Replace adr in const2reg with lea

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

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


More information about the hotspot-compiler-dev mailing list