RFR: 8259236: C2 compilation fails with assert(is_power_of_2(value)) failed: value must be a power of 2: 8000000000000000

Claes Redestad redestad at openjdk.java.net
Tue Jan 5 15:17:59 UTC 2021


log2i_exact does not accept 0x8000000000000000 if the type is signed, which log2_long used before JDK-8257815 did. This adds a cast to julong, similar to what was previously done in btsL_mem_imm

Ran the test 10+ times in our CI without hitting the assert.

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

Commit messages:
 - Assertion in testing: Cast to unsigned to allow 0x8000...

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

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


More information about the hotspot-compiler-dev mailing list