Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
ed03217
8305895: Implement JEP 450: Compact Object Headers (Experimental)
rkennke Aug 22, 2024
18e08c1
Add missing newline
rkennke Aug 22, 2024
1578ffa
Remove hashcode leftovers from SA
rkennke Aug 22, 2024
7009e14
Fix hash_mask_in_place in ClhsdbLongConstant test
rkennke Aug 22, 2024
5ffc582
Fix hash shift for 32 bit builds
rkennke Aug 22, 2024
eaec111
Fix bit counts in GCForwarding
rkennke Aug 22, 2024
c9e0d07
Merge remote-tracking branch 'origin/master' into JDK-8305895-v4
rkennke Sep 9, 2024
40d327c
Fix metaspace issues post JDK-8338929
tstuefe Sep 2, 2024
9652ea3
GCForwarding init, SerialGC: wrong max heap size used
tstuefe Aug 30, 2024
3aaf07a
Zero should allow LightWeight locking mode
tstuefe Aug 29, 2024
be6f395
Improve comment for CDS precalculating narrow Klass IDs
tstuefe Aug 30, 2024
bf5067e
More fixes post JDK-8338929
tstuefe Sep 2, 2024
a39e5ac
Fix merge error in ClassLoaderMetaspace::deallocate
tstuefe Sep 2, 2024
2224b93
fix merge problem in PSPromotionManager::push_objArray
tstuefe Sep 2, 2024
ecb017b
Fix TestAutoCreateSharedArchiveNoDefaultArchive
stefank Sep 2, 2024
439bbc0
Let CDS print compact headers state
stefank Sep 2, 2024
3f1d0ed
Use FLAG_SET_ERGO when turning off UseCompactObjectHeaders
stefank Sep 2, 2024
88b3709
aarch64: Fix loadNKlassCompactHeaders
xmas92 Sep 3, 2024
2bc8088
x86_64: Fix loadNKlassCompactHeaders
xmas92 Sep 3, 2024
0a10679
Cleanup markWord bits and comments
xmas92 Sep 3, 2024
8671688
Fix jdk/tools/jlink/plugins/CDSPluginTest.java
tstuefe Sep 3, 2024
e00e4f4
Fix runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest…
tstuefe Sep 3, 2024
294c2ce
GC code tweaks
stefank Aug 23, 2024
015f65a
Nit in header_size
stefank Sep 3, 2024
b35d6df
Simplify arrayOopDesc::length_offset_in_bytes and oopDesc::base_offse…
stefank Sep 4, 2024
4912638
Fix compiler/c2/irTests/TestPadding.java for +COH
tstuefe Sep 9, 2024
c5a840d
Fix release build error
tstuefe Sep 2, 2024
70f492d
Try to avoid lea in loadNklass (aarch64)
rkennke Sep 9, 2024
0a9a51b
GCForwarding touch-ups
rkennke Sep 9, 2024
91bc475
Get rid of forward_safe_* methods
rkennke Sep 9, 2024
3b1b6eb
Simplify oopDesc::init_mark()
rkennke Sep 9, 2024
49017fb
Simplify getKlass() in SA
rkennke Sep 9, 2024
33cf12e
Improve initialization of mark-word in CDS ArchiveHeapWriter
rkennke Sep 9, 2024
2884499
Print as warning when UCOH doesn't match in CDS archive
rkennke Sep 9, 2024
696003c
Fix comment
rkennke Sep 10, 2024
e986d19
Rename GCForwarding -> FullGCForwarding; some touch-ups
rkennke Sep 10, 2024
c85c2ed
Improve is_oop()
rkennke Sep 10, 2024
321a44a
Various touch-ups
rkennke Sep 10, 2024
6b27782
Remove asserts in XArrayKlass::oop_oop_iterate()
rkennke Sep 10, 2024
5da250c
More touch-ups, fix Shenandoah oop iterator
rkennke Sep 10, 2024
6abda7b
Fix FullGCForwarding initialization
rkennke Sep 10, 2024
bff4dc1
Re-enable some vectorization tests
rkennke Sep 11, 2024
b6c11f7
Make is_oop() MT-safe
rkennke Sep 11, 2024
9e008ac
Revert accidental change of UCOH default
rkennke Sep 11, 2024
69f1ef1
Hide log timestamps in test to prevent false failures
robcasloz Sep 12, 2024
990926f
Various touch-ups
rkennke Sep 13, 2024
af9adf3
Merge commit '597788850041e7272a23714c05ba546ee6080856' into JDK-8305…
rkennke Sep 16, 2024
d54133a
Fixes post 8338526
tstuefe Sep 11, 2024
78d1a22
remove stray debug output
tstuefe Sep 11, 2024
2f70eb5
Rework compressedklass encoding
tstuefe Sep 12, 2024
c398b05
clarify obscure assert in metasapce setup
tstuefe Sep 13, 2024
a191abc
Fix loop on aarch64
tstuefe Sep 13, 2024
49c8754
Fix test/hotspot/jtreg/runtime/CompressedOops/CompressedClassPointer…
tstuefe Sep 13, 2024
2125cd8
Merge remote-tracking branch 'origin/master' into JDK-8305895-v4
rkennke Sep 16, 2024
194d5ab
Merge upstream up to and including 8340184
tstuefe Sep 17, 2024
6a4617b
Fixes post-8340184
tstuefe Sep 17, 2024
28a26ae
fix CompressedClassPointersEncodingScheme yet again for linux aarch64
tstuefe Sep 17, 2024
352e708
Johan review feedback
tstuefe Sep 17, 2024
612d304
CompressedKlassPointers::is_encodable shall be callable with -UseCCP
tstuefe Sep 17, 2024
bb64162
Merge remote-tracking branch 'origin/master' into JDK-8305895-v4
rkennke Sep 18, 2024
9ad2e62
JVMCI support
mur47x111 Sep 18, 2024
b25a4b6
Simplify LIR_Assembler::emit_load_klass()
rkennke Sep 19, 2024
945eb6f
review feedback
tstuefe Sep 19, 2024
0d8a923
Merge remote-tracking branch 'lilliput/JEP-450-temporary-fix-branch-2…
rkennke Sep 19, 2024
2c4a787
Improve matching of loadNKlassCompactHeaders on aarch64
rkennke Sep 20, 2024
cd69da8
Enforce lightweight locking on 32-bit platforms
rkennke Sep 25, 2024
4904d43
Allow LM_MONITOR on 32-bit platforms
rkennke Sep 25, 2024
805a4e0
Improve CollectedHeap::is_oop()
rkennke Sep 26, 2024
d48f55d
@robcasloz review comments
rkennke Sep 26, 2024
059b157
Disable TestSplitPacks::test4a, failing on aarch64
rkennke Sep 27, 2024
f00c899
Disable some vectorization tests that fail with +UCOH and UseSSE<=3
rkennke Oct 2, 2024
d2547b4
Simplify object init code in interpreter
rkennke Oct 2, 2024
aea8f00
Revert "Disable TestSplitPacks::test4a, failing on aarch64"
rkennke Oct 2, 2024
2883e7b
Merge tag 'jdk-24+18' into JDK-8305895-v4
rkennke Oct 4, 2024
119bdc5
Fix for CDSPluginTest.java
rkennke Oct 4, 2024
8742f3c
Merge remote-tracking branch 'rkennke/JDK-8305895-v4' into JDK-830589…
rkennke Oct 4, 2024
572f1ac
@stefank review comments
rkennke Oct 7, 2024
6040108
Remove unused variable
rkennke Oct 7, 2024
1ab2077
Rename nklass/nKlass
rkennke Oct 7, 2024
17f8eb5
Some more review comments/cleanups
rkennke Oct 7, 2024
f65ef5d
Fix header < 16 bytes in indexOf intrinsic, by @sviswa7
rkennke Oct 8, 2024
4d7228e
Rename nklass in x86 code
rkennke Oct 8, 2024
9b1877d
Fix comment
rkennke Oct 8, 2024
17d8367
Rename nklass in aarch64
rkennke Oct 8, 2024
0be2fc4
Re-enable indexOf intrinsic for compact headers
rkennke Oct 8, 2024
d57dbfc
Improve PSParallelCompact::fill_dense_prefix_end() even more
rkennke Oct 8, 2024
4035bb6
Fix include guards
rkennke Oct 8, 2024
b289ef8
Increase compiler code stubs size for indexOf intrinsic
rkennke Oct 8, 2024
6722f8b
PPC64 implementation of Compact Object Headers (JEP 450)
TheRealMDoerr Oct 9, 2024
86f94fe
Merge tag 'jdk-24+19' into JDK-8305895-v4
rkennke Oct 15, 2024
005498b
Fix aarch64.ad
rkennke Oct 15, 2024
1fd365d
Address comments by @vpaprotsk
rkennke Oct 16, 2024
ec42f4d
Problem-list SharedBaseAddress tests on aarch64
rkennke Oct 16, 2024
e4c0878
Remove extra sanity check
rkennke Oct 16, 2024
1b907cc
Compact header riscv (#3)
rkennke Oct 17, 2024
8c4eb6d
Fix needle copying in indexOf intrinsic for smaller headers
rkennke Oct 22, 2024
e324d95
Merge tag 'jdk-24+20' into JDK-8305895-v4
rkennke Oct 22, 2024
19d05e4
Update copyright headers
rkennke Oct 22, 2024
2bbff19
Avoid assert/endless-loop in JFR code
rkennke Oct 22, 2024
1ef6394
Update copyright
rkennke Oct 22, 2024
aadd7b8
Conditionalize platform specific parts of CompressedClassPointersEnco…
rkennke Oct 24, 2024
c2f6d20
s390 port
rkennke Oct 24, 2024
434c681
Enable riscv in CompressedClassPointersEncodingScheme test
rkennke Oct 24, 2024
b945822
Merge tag 'jdk-24+22' into JDK-8305895-v4
rkennke Nov 5, 2024
1ea4de1
Fix gen-ZGC removal
rkennke Nov 6, 2024
4d28224
Merge tag 'jdk-25+23' into JDK-8305895-v4
rkennke Nov 7, 2024
c1a6323
Merge branch 'master' into JDK-8305895-v4
rkennke Nov 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 17 additions & 3 deletions make/Images.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,16 @@ CDS_DUMP_FLAGS = -Xmx128M -Xms128M
# Helper function for creating the CDS archives for the JDK and JRE
#
# Param1 - VM variant (e.g., server, client, zero, ...)
# Param2 - _nocoops, or empty
# Param2 - _nocoops, _coh, _nocoops_coh, or empty
define CreateCDSArchive
$1_$2_DUMP_EXTRA_ARG := $(if $(filter _nocoops, $2), -XX:-UseCompressedOops, )
$1_$2_DUMP_TYPE := $(if $(filter _nocoops, $2), -NOCOOPS, )
$1_$2_COOPS_OPTION := $(if $(findstring _nocoops, $2),-XX:-UseCompressedOops)
# enable and also explicitly disable coh as needed.
ifeq ($(call isTargetCpuBits, 64), true)
$1_$2_COH_OPTION := -XX:+UnlockExperimentalVMOptions \
$(if $(findstring _coh, $2),-XX:+UseCompactObjectHeaders,-XX:-UseCompactObjectHeaders)
endif
$1_$2_DUMP_EXTRA_ARG := $$($1_$2_COOPS_OPTION) $$($1_$2_COH_OPTION)
$1_$2_DUMP_TYPE := $(if $(findstring _nocoops, $2),-NOCOOPS,)$(if $(findstring _coh, $2),-COH,)

# Only G1 supports dumping the shared heap, so explicitly use G1 if the JVM supports it.
$1_$2_CDS_DUMP_FLAGS := $(CDS_DUMP_FLAGS) $(if $(filter g1gc, $(JVM_FEATURES_$1)), -XX:+UseG1GC)
Expand Down Expand Up @@ -190,6 +196,14 @@ ifeq ($(BUILD_CDS_ARCHIVE), true)
$(foreach v, $(JVM_VARIANTS), \
$(eval $(call CreateCDSArchive,$v,_nocoops)) \
)
ifeq ($(BUILD_CDS_ARCHIVE_COH), true)
$(foreach v, $(JVM_VARIANTS), \
$(eval $(call CreateCDSArchive,$v,_coh)) \
)
$(foreach v, $(JVM_VARIANTS), \
$(eval $(call CreateCDSArchive,$v,_nocoops_coh)) \
)
endif
endif
endif

Expand Down
1 change: 1 addition & 0 deletions make/autoconf/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
JDKOPT_EXCLUDE_TRANSLATIONS
JDKOPT_ENABLE_DISABLE_MANPAGES
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE_COH
JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT
JDKOPT_SETUP_MACOSX_SIGNING

Expand Down
31 changes: 31 additions & 0 deletions make/autoconf/jdk-options.m4
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,37 @@ AC_DEFUN([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE],
AC_SUBST(BUILD_CDS_ARCHIVE)
])

################################################################################
#
# Enable or disable the default CDS archive generation for Compact Object Headers
#
AC_DEFUN([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE_COH],
[
UTIL_ARG_ENABLE(NAME: cds-archive-coh, DEFAULT: auto, RESULT: BUILD_CDS_ARCHIVE_COH,
DESC: [enable generation of default CDS archives for compact object headers (requires --enable-cds-archive)],
DEFAULT_DESC: [auto],
CHECKING_MSG: [if default CDS archives for compact object headers should be generated],
CHECK_AVAILABLE: [
AC_MSG_CHECKING([if CDS archive with compact object headers is available])
if test "x$BUILD_CDS_ARCHIVE" = "xfalse"; then
AC_MSG_RESULT([no (CDS default archive generation is disabled)])
AVAILABLE=false
elif test "x$OPENJDK_TARGET_CPU" != "xx86_64" &&
test "x$OPENJDK_TARGET_CPU" != "xaarch64" &&
test "x$OPENJDK_TARGET_CPU" != "xppc64" &&
test "x$OPENJDK_TARGET_CPU" != "xppc64le" &&
test "x$OPENJDK_TARGET_CPU" != "xriscv64" &&
test "x$OPENJDK_TARGET_CPU" != "xs390x"; then
AC_MSG_RESULT([no (compact object headers not supported for this platform)])
AVAILABLE=false
else
AC_MSG_RESULT([yes])
AVAILABLE=true
fi
])
AC_SUBST(BUILD_CDS_ARCHIVE_COH)
])

################################################################################
#
# Enable the alternative CDS core region alignment
Expand Down
1 change: 1 addition & 0 deletions make/autoconf/spec.gmk.template
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@ EXCLUDE_TRANSLATIONS := @EXCLUDE_TRANSLATIONS@
BUILD_MANPAGES := @BUILD_MANPAGES@

BUILD_CDS_ARCHIVE := @BUILD_CDS_ARCHIVE@
BUILD_CDS_ARCHIVE_COH := @BUILD_CDS_ARCHIVE_COH@

ENABLE_COMPATIBLE_CDS_ALIGNMENT := @ENABLE_COMPATIBLE_CDS_ALIGNMENT@

Expand Down
20 changes: 19 additions & 1 deletion src/hotspot/cpu/aarch64/aarch64.ad
Original file line number Diff line number Diff line change
Expand Up @@ -5756,6 +5756,10 @@ opclass memory(indirect, indIndexScaled, indIndexScaledI2L, indIndexI2L, indInde
indirectN, indIndexScaledN, indIndexScaledI2LN, indIndexI2LN, indIndexN, indOffIN, indOffLN, indirectX2P, indOffX2P);


opclass memory_noindex(indirect,
indOffI1, indOffL1,indOffI2, indOffL2, indOffI4, indOffL4, indOffI8, indOffL8,
indirectN, indOffIN, indOffLN, indirectX2P, indOffX2P);

// iRegIorL2I is used for src inputs in rules for 32 bit int (I)
// operations. it allows the src to be either an iRegI or a (ConvL2I
// iRegL). in the latter case the l2i normally planted for a ConvL2I
Expand Down Expand Up @@ -6682,7 +6686,7 @@ instruct loadKlass(iRegPNoSp dst, memory8 mem)
instruct loadNKlass(iRegNNoSp dst, memory4 mem)
%{
match(Set dst (LoadNKlass mem));
predicate(!needs_acquiring_load(n));
predicate(!needs_acquiring_load(n) && !UseCompactObjectHeaders);

ins_cost(4 * INSN_COST);
format %{ "ldrw $dst, $mem\t# compressed class ptr" %}
Expand All @@ -6692,6 +6696,20 @@ instruct loadNKlass(iRegNNoSp dst, memory4 mem)
ins_pipe(iload_reg_mem);
%}

instruct loadNKlassCompactHeaders(iRegNNoSp dst, memory_noindex mem)
%{
match(Set dst (LoadNKlass mem));
predicate(!needs_acquiring_load(n) && UseCompactObjectHeaders);

ins_cost(4 * INSN_COST);
format %{ "load_narrow_klass_compact $dst, $mem\t# compressed class ptr" %}
ins_encode %{
assert($mem$$index$$Register == noreg, "must not have indexed address");
__ load_narrow_klass_compact_c2($dst$$Register, $mem$$base$$Register, $mem$$disp);
%}
ins_pipe(iload_reg_mem);
%}

// Load Float
instruct loadF(vRegF dst, memory4 mem)
%{
Expand Down
47 changes: 5 additions & 42 deletions src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2243,8 +2243,6 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {

Address src_length_addr = Address(src, arrayOopDesc::length_offset_in_bytes());
Address dst_length_addr = Address(dst, arrayOopDesc::length_offset_in_bytes());
Address src_klass_addr = Address(src, oopDesc::klass_offset_in_bytes());
Address dst_klass_addr = Address(dst, oopDesc::klass_offset_in_bytes());

// test for null
if (flags & LIR_OpArrayCopy::src_null_check) {
Expand Down Expand Up @@ -2305,15 +2303,7 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
// We don't know the array types are compatible
if (basic_type != T_OBJECT) {
// Simple test for basic type arrays
if (UseCompressedClassPointers) {
__ ldrw(tmp, src_klass_addr);
__ ldrw(rscratch1, dst_klass_addr);
__ cmpw(tmp, rscratch1);
} else {
__ ldr(tmp, src_klass_addr);
__ ldr(rscratch1, dst_klass_addr);
__ cmp(tmp, rscratch1);
}
__ cmp_klasses_from_objects(src, dst, tmp, rscratch1);
__ br(Assembler::NE, *stub->entry());
} else {
// For object arrays, if src is a sub class of dst then we can
Expand Down Expand Up @@ -2435,36 +2425,14 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
// but not necessarily exactly of type default_type.
Label known_ok, halt;
__ mov_metadata(tmp, default_type->constant_encoding());
if (UseCompressedClassPointers) {
__ encode_klass_not_null(tmp);
}

if (basic_type != T_OBJECT) {

if (UseCompressedClassPointers) {
__ ldrw(rscratch1, dst_klass_addr);
__ cmpw(tmp, rscratch1);
} else {
__ ldr(rscratch1, dst_klass_addr);
__ cmp(tmp, rscratch1);
}
__ cmp_klass(dst, tmp, rscratch1);
__ br(Assembler::NE, halt);
if (UseCompressedClassPointers) {
__ ldrw(rscratch1, src_klass_addr);
__ cmpw(tmp, rscratch1);
} else {
__ ldr(rscratch1, src_klass_addr);
__ cmp(tmp, rscratch1);
}
__ cmp_klass(src, tmp, rscratch1);
__ br(Assembler::EQ, known_ok);
} else {
if (UseCompressedClassPointers) {
__ ldrw(rscratch1, dst_klass_addr);
__ cmpw(tmp, rscratch1);
} else {
__ ldr(rscratch1, dst_klass_addr);
__ cmp(tmp, rscratch1);
}
__ cmp_klass(dst, tmp, rscratch1);
__ br(Assembler::EQ, known_ok);
__ cmp(src, dst);
__ br(Assembler::EQ, known_ok);
Expand Down Expand Up @@ -2547,12 +2515,7 @@ void LIR_Assembler::emit_load_klass(LIR_OpLoadKlass* op) {
add_debug_info_for_null_check_here(info);
}

if (UseCompressedClassPointers) {
__ ldrw(result, Address (obj, oopDesc::klass_offset_in_bytes()));
__ decode_klass_not_null(result);
} else {
__ ldr(result, Address (obj, oopDesc::klass_offset_in_bytes()));
}
__ load_klass(result, obj);
}

void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
Expand Down
20 changes: 12 additions & 8 deletions src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -175,15 +175,19 @@ void C1_MacroAssembler::try_allocate(Register obj, Register var_size_in_bytes, i

void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register len, Register t1, Register t2) {
assert_different_registers(obj, klass, len);
// This assumes that all prototype bits fit in an int32_t
mov(t1, (int32_t)(intptr_t)markWord::prototype().value());
str(t1, Address(obj, oopDesc::mark_offset_in_bytes()));

if (UseCompressedClassPointers) { // Take care not to kill klass
encode_klass_not_null(t1, klass);
strw(t1, Address(obj, oopDesc::klass_offset_in_bytes()));
if (UseCompactObjectHeaders) {
ldr(t1, Address(klass, Klass::prototype_header_offset()));
str(t1, Address(obj, oopDesc::mark_offset_in_bytes()));
} else {
str(klass, Address(obj, oopDesc::klass_offset_in_bytes()));
mov(t1, checked_cast<int32_t>(markWord::prototype().value()));
str(t1, Address(obj, oopDesc::mark_offset_in_bytes()));
if (UseCompressedClassPointers) { // Take care not to kill klass
encode_klass_not_null(t1, klass);
strw(t1, Address(obj, oopDesc::klass_offset_in_bytes()));
} else {
str(klass, Address(obj, oopDesc::klass_offset_in_bytes()));
}
}

if (len->is_valid()) {
Expand All @@ -194,7 +198,7 @@ void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register
// Clear gap/first 4 bytes following the length field.
strw(zr, Address(obj, base_offset));
}
} else if (UseCompressedClassPointers) {
} else if (UseCompressedClassPointers && !UseCompactObjectHeaders) {
store_klass_gap(obj, zr);
}
}
Expand Down
9 changes: 9 additions & 0 deletions src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2689,3 +2689,12 @@ bool C2_MacroAssembler::in_scratch_emit_size() {
}
return MacroAssembler::in_scratch_emit_size();
}

void C2_MacroAssembler::load_narrow_klass_compact_c2(Register dst, Register obj, int disp) {
// Note: Don't clobber obj anywhere in that method!

// The incoming address is pointing into obj-start + klass_offset_in_bytes. We need to extract
// obj-start, so that we can load from the object's mark-word instead.
ldr(dst, Address(obj, disp - oopDesc::klass_offset_in_bytes()));
lsr(dst, dst, markWord::klass_shift);
}
2 changes: 2 additions & 0 deletions src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,4 +186,6 @@
void vector_signum_sve(FloatRegister dst, FloatRegister src, FloatRegister zero,
FloatRegister one, FloatRegister vtmp, PRegister pgtmp, SIMD_RegVariant T);

void load_narrow_klass_compact_c2(Register dst, Register obj, int disp);

#endif // CPU_AARCH64_C2_MACROASSEMBLER_AARCH64_HPP
16 changes: 0 additions & 16 deletions src/hotspot/cpu/aarch64/compressedKlass_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,19 +117,3 @@ char* CompressedKlassPointers::reserve_address_space_for_compressed_classes(size

return result;
}

void CompressedKlassPointers::initialize(address addr, size_t len) {
constexpr uintptr_t unscaled_max = nth_bit(32);
assert(len <= unscaled_max, "Klass range larger than 32 bits?");

// Shift is always 0 on aarch64.
_shift = 0;

// On aarch64, we don't bother with zero-based encoding (base=0 shift>0).
address const end = addr + len;
_base = (end <= (address)unscaled_max) ? nullptr : addr;

// Remember the Klass range:
_klass_range_start = addr;
_klass_range_end = addr + len;
}
Loading