-
Enhancement
-
Resolution: Fixed
-
P4
-
21, 22
-
b09
-
riscv
-
linux
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8313695 | 21.0.1 | Vladimir Kempik | P4 | Resolved | Fixed | b06 |
JDK-8318307 | 17.0.10 | Olga Mikhaltcova | P4 | Resolved | Fixed | b01 |
C2_MacroAssembler::string_compare()
generate_compare_long_string_different_encoding()
generate_compare_long_string_same_encoding()
All do misaligned memory access even when -XX:+AvoidUnalignedAccesses
C2_MacroAssembler::string_compare() and generate_compare_long_string_same_encoding() do it only for the tail.
generate_compare_long_string_different_encoding does it for Latin string ( address is 4 b-bytes aligned but no 8-bytes aligned, and reading 8 bytes on every iteration of the loop).
This results in pretty bad results ( in jmh benches) on platforms without hardware misaligned access support ( like hifive unmatched)
- backported by
-
JDK-8313695 RISC-V: misaligned memory access in String.Compare intrinsic
-
- Resolved
-
-
JDK-8318307 RISC-V: misaligned memory access in String.Compare intrinsic
-
- Resolved
-
- relates to
-
JDK-8347489 RISC-V: Misaligned memory access with COH
-
- Resolved
-
- links to
-
Commit openjdk/jdk17u-dev/80460e38
-
Commit openjdk/jdk21u/89875df8
-
Commit openjdk/jdk/d6245b68
-
Review openjdk/jdk17u-dev/1876
-
Review openjdk/jdk21u/28
-
Review openjdk/jdk/14534