Skip to content

Commit de02503

Browse files
committed
8346832: runtime/CompressedOops/CompressedCPUSpecificClassSpaceReservation.java fails on RISC-V
Reviewed-by: stuefe, fjiang
1 parent 27646e5 commit de02503

File tree

2 files changed

+3
-15
lines changed

2 files changed

+3
-15
lines changed

src/hotspot/cpu/riscv/compressedKlass_riscv.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ char* CompressedKlassPointers::reserve_address_space_for_compressed_classes(size
3131

3232
char* result = nullptr;
3333

34-
// RiscV loads a 64-bit immediate in up to four separate steps, splitting it into four different sections
34+
// RISC-V loads a 64-bit immediate in up to four separate steps, splitting it into four different sections
3535
// (two 32-bit sections, each split into two subsections of 20/12 bits).
3636
//
3737
// 63 ....... 44 43 ... 32 31 ....... 12 11 ... 0
@@ -51,11 +51,6 @@ char* CompressedKlassPointers::reserve_address_space_for_compressed_classes(size
5151
// with one instruction (2)
5252
result = reserve_address_space_for_unscaled_encoding(size, aslr);
5353

54-
// Failing that, attempt to reserve for base=zero shift>0
55-
if (result == nullptr && optimize_for_zero_base) {
56-
result = reserve_address_space_for_zerobased_encoding(size, aslr);
57-
}
58-
5954
// Failing that, optimize for case (3) - a base with only bits set between [32-44)
6055
if (result == nullptr) {
6156
const uintptr_t from = nth_bit(32);

test/hotspot/jtreg/runtime/CompressedOops/CompressedCPUSpecificClassSpaceReservation.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,8 @@ private static void do_test(boolean CDS) throws IOException {
8585
output.shouldContain(tryReserveFor16bitMoveIntoQ3);
8686
} else if (Platform.isRISCV64()) {
8787
output.shouldContain(tryReserveForUnscaled); // unconditionally
88-
if (CDS) {
89-
output.shouldNotContain(tryReserveForZeroBased);
90-
// bits 32..44
91-
output.shouldContain("reserve_between (range [0x0000000100000000-0x0000100000000000)");
92-
} else {
93-
output.shouldContain(tryReserveForZeroBased);
94-
// bits 32..44, but not lower than zero-based limit
95-
output.shouldContain("reserve_between (range [0x0000000800000000-0x0000100000000000)");
96-
}
88+
// bits 32..44
89+
output.shouldContain("reserve_between (range [0x0000000100000000-0x0000100000000000)");
9790
// bits 44..64
9891
output.shouldContain("reserve_between (range [0x0000100000000000-0xffffffffffffffff)");
9992
} else if (Platform.isS390x()) {

0 commit comments

Comments
 (0)