RFR: 8312495: assert(0 <= i && i < _len) failed: illegal index after JDK-8287061 on big endian platforms

Richard Reingruber rrich at openjdk.org
Fri Jul 21 17:05:48 UTC 2023


On big endian platforms `jint` values are stored in the high part of `StackValue` values. Therefore the the `StackValue` cannot be cast directly to `jint`. More details why this has to be like this are given in the JBS issue.

This is a common pattern. See also

https://github.com/openjdk/jdk/blob/8d29329138d44800ee4c0c02dacc01a06097de66/src/hotspot/share/runtime/deoptimization.cpp#L1386-L1387
https://github.com/openjdk/jdk/blob/8d29329138d44800ee4c0c02dacc01a06097de66/src/hotspot/share/runtime/deoptimization.cpp#L1513-L1514

### Testing
Manny iterations of vmTestbase/vm/mlvm/meth/stress/compiler/sequences/Test.java.

JTReg tests: tier1-4 of hotspot and jdk. All of Langtools and jaxp. Renaissance benchmarks as functional tests.

All testing was done with fastdebug and release builds on the main platforms and also on Linux/PPC64le.

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

Commit messages:
 - Fix

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

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


More information about the hotspot-compiler-dev mailing list