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

Richard Reingruber rrich at openjdk.org
Thu Jul 27 13:42:53 UTC 2023


On Fri, 21 Jul 2023 14:24:35 GMT, Richard Reingruber <rrich at openjdk.org> wrote:

> 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.

This pull request has now been integrated.

Changeset: 8661b8e1
Author:    Richard Reingruber <rrich at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/8661b8e11568f752c0bc515a028092f77bcaf940
Stats:     93 lines in 7 files changed: 13 ins; 19 del; 61 mod

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

Reviewed-by: clanger, kvn, dlong

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

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


More information about the hotspot-compiler-dev mailing list