RFR: 8359678: C2: assert(static_cast<T1>(result) == thing) caused by ReverseBytesNode::Value()

SendaoYan syan at openjdk.org
Thu Jun 26 01:49:38 UTC 2025


On Wed, 25 Jun 2025 19:34:40 GMT, Hannes Greule <hgreule at openjdk.org> wrote:

> Fixes an assertion when passing an int larger than short/char to the corresponding reverseBytes method in a constant-folding scenario. By just using static_cast, we can ignore the upper bytes and just swap the lower bytes.
> 
> Using jasm, I added a test case that covers such inputs. It felt easier to test this way than the other scenarios mentioned in the bug report.
> 
> I also removed the redundant checked_cast calls from the int/long case; we already have the correct type there.
> 
> Please review. Thanks.

test/hotspot/jtreg/compiler/c2/gvn/ReverseBytesConstantsHelper.jasm line 25:

> 23:  */
> 24: 
> 25: public class ReverseBytesConstantsHelper version 65:0 {

Maybe we can remove 'version 65:0' ?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25988#discussion_r2167926976


More information about the hotspot-compiler-dev mailing list