Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
a506853
8374020: Inconsistent handling of type updates in typeWithAnnotations
lahodaj Apr 2, 2026
262f574
8381487: Replace threadDump.schema.json with document to describe format
Apr 2, 2026
81b6fcc
8381555: test/hotspot/jtreg/gc/arguments/TestG1CompressedOops.java fa…
vpa1977 Apr 2, 2026
06c9aeb
8377550: [REDO] Need to keep leading zeros in TlsPremasterSecret of T…
djelinski Apr 2, 2026
0ada293
8380091: Tests in runtime/cds are failing with log parsing errors - m…
Apr 2, 2026
5e89669
8381568: Refactor java/net/spi/InetAddressResolverProvider test from …
Apr 2, 2026
e05eb14
8381475: Test tools/sincechecker/modules/jdk.compiler/JdkCompilerChec…
Apr 2, 2026
f1a414b
8338594: Update nsk/aod tests to use driver instead of othervm
shivshah-oracle Apr 3, 2026
fbbf2c3
8269613: vmTestbase/vm/mlvm/mixed/stress/java/findDeadlock/TestDescri…
shivshah-oracle Apr 3, 2026
95e9029
8381553: Clean up AOTCodeCache configuration checks
iklam Apr 3, 2026
4253db2
8350208: CTW: GraphKit::add_safepoint_edges asserts "not enough opera…
dean-long Apr 3, 2026
4bb7204
8377181: HttpClient may leak closed QUIC connection objects
djelinski Apr 3, 2026
f8ca6f6
8381554: RISC-V: Small refactoring for cmp_klass_compressed macro-ass…
DingliZhang Apr 3, 2026
4a47011
8369699: Template Framework Library: add VectorAPI types and operations
eme64 Apr 3, 2026
ba0aefb
8381596: Adjust checks which use supports_ht() on x86 for hybrid CPUs
Apr 3, 2026
0c98ab8
8380936: Cleanup temp dir usage in ZipFSTester
Apr 3, 2026
410b3e8
8381606: Javadoc typo in ResourceBundle example
naotoj Apr 3, 2026
e254526
8380958: GenShen: Regulator thread may observe inconsistent old gener…
Apr 3, 2026
a333111
8380291: AOT cache should store only unregistered classes with file: …
iklam Apr 3, 2026
f21e47d
8381549: GenShen: Global collections skip coalesce and fill when the …
Apr 3, 2026
1d29010
8379675: test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java uses remov…
PeyaPeyaPeyang Apr 6, 2026
f40a359
8373778: java.util.NoSuchElementException in HttpURLConnection.doTunn…
jaikiran Apr 6, 2026
4fcf913
8381639: Remove bug id 8381475 from test/jdk/tools/sincechecker/modul…
Apr 6, 2026
133c042
8364584: Inconsistency in setting up cpu feature bits
Apr 6, 2026
e796928
8381449: Build fails when Windows is not installed on C:
raneashay Apr 6, 2026
ef2e537
8380467: JFR: RepositoryFiles.updatePaths() searches for chunkfiles i…
roberttoyonaga Apr 6, 2026
273167f
8381683: Pass temp registers and use them in CardTableBarrierSetAssem…
Apr 6, 2026
1688d0f
8381655: Port JDK-8363978 fix from leyden repo to mainline
Apr 6, 2026
a90f5a6
8381611: RISC-V: Factor out function cmpptr from MacroAssembler
DingliZhang Apr 7, 2026
132a8d1
8381451: Prefetch support on Windows/x86 and Windows/AArch64
raneashay Apr 7, 2026
06b797e
8350603: Several more compiler tests ignore vm flags and don't have v…
anton-seoane Apr 7, 2026
f314212
8370416: C2: Optimizing away arraycopy leads to wrong execution
mhaessig Apr 7, 2026
0b803bd
8380103: Perfdata shared memory file flock failures
caspernorrbin Apr 7, 2026
9cf2b68
8381003: [REDO] Mitigate Neoverse-N1 erratum 1542419 negative impact …
Apr 7, 2026
c267c84
8358766: Improve detection of changes to print IGVN steps
anton-seoane Apr 7, 2026
69c4a21
8381561: G1: Cleanup patch in preparation for eager reclamation of fl…
stefank Apr 7, 2026
547ebe7
8381316: HttpClient / Http3: poor exception messages on SSL handshake…
djelinski Apr 7, 2026
34ac926
8378157: Section hyperlink in doc/testing.md refers to building.html …
PeyaPeyaPeyang Apr 7, 2026
b297f59
8381659: Determine actual jump instruction when AOT and JITed code ar…
Apr 7, 2026
da16b40
8381656: Take into account trampoline stub size and its relocations o…
Apr 7, 2026
67c6990
8344212: Bring back @see GraphicsConfiguration to MouseInfo.getPointe…
PeyaPeyaPeyang Apr 7, 2026
f6baab7
8379550: Bad bytecode offset after JDK-8371155
lahodaj Apr 8, 2026
7a11bdd
8381722: Incremental build fails with FileAlreadyExistsException: Pre…
djelinski Apr 8, 2026
cbef44c
8381008: [aix] Test java/net/DatagramSocket/SendReceiveMaxSize.java#p…
MBaesken Apr 8, 2026
6e1a1f9
8381724: RISC-V: Pass temp registers and use them in CardTableBarrier…
DingliZhang Apr 8, 2026
cfae18f
8381745: Ensure Modal/FileDialog tests explicitly reference Asserts c…
aivanov-jdk Apr 8, 2026
d7bace1
8380990: Update testng and junit tests to use diagnoseConfigurationIs…
serhiysachkov Apr 8, 2026
a27e7ca
8381793: Clean up unused ProblemList-coh.txt
coleenp Apr 8, 2026
2ff1a29
8381703: G1: Racy re-read of G1CMRootRegion::num_remaining_regions ca…
Apr 8, 2026
28a91d0
8381795: AArch64: Optimized build is broken after JDK-8381003
mhaessig Apr 8, 2026
cc1c427
8380755: jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventG1.java fai…
egahlin Apr 8, 2026
988ec86
8381838: java/net/DatagramSocket/SendReceiveMaxSize.java fails to com…
serhiysachkov Apr 8, 2026
52a54da
8381616: Refactor various java/net/*Socket*/ TestNG tests to use JUnit
dfuch Apr 8, 2026
3468692
8372617: Save and restore stubgen stubs when using an AOT code cache
adinn Apr 8, 2026
1e2aa61
8381770: Revert some shared changes done by JDK-8381003
Apr 8, 2026
67f590d
8381681: Clarify locale usage in Javadoc for the Locale display methods
Apr 8, 2026
13633c0
8381379: Support std/dstOffset attributes in CLDR's metazone definitions
naotoj Apr 8, 2026
67a7124
8381772: Remove mention of "mutable strings" in java.lang.String Java…
Apr 8, 2026
d3afc85
8381662: New test compiler/exceptions/TestDebugDuringExceptionCatchin…
dean-long Apr 8, 2026
dc81630
8381865: Fix debug build failure caused by not clearing CPU_APX_F fea…
Apr 8, 2026
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
7 changes: 4 additions & 3 deletions doc/testing.html
Original file line number Diff line number Diff line change
Expand Up @@ -284,9 +284,10 @@ <h3 id="jtreg">JTReg</h3>
<h3 id="gtest">Gtest</h3>
<p><strong>Note:</strong> To be able to run the Gtest suite, you need to
configure your build to be able to find a proper version of the gtest
source. For details, see the section <a
href="building.html#running-tests">"Running Tests" in the build
documentation</a>.</p>
source. For details, see the section <strong>"Running Tests" in the
build documentation</strong> (<a
href="building.html#running-tests">html</a>, <a
href="building.md#running-tests">markdown</a>).</p>
<p>Since the Hotspot Gtest suite is so quick, the default is to run all
tests. This is specified by just <code>gtest</code>, or as a fully
qualified test descriptor <code>gtest:all</code>.</p>
Expand Down
4 changes: 2 additions & 2 deletions doc/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,8 @@ use a fully qualified test descriptor, add `jtreg:`, e.g.

**Note:** To be able to run the Gtest suite, you need to configure your build
to be able to find a proper version of the gtest source. For details, see the
section ["Running Tests" in the build
documentation](building.html#running-tests).
section **"Running Tests" in the build
documentation** ([html](building.html#running-tests), [markdown](building.md#running-tests)).

Since the Hotspot Gtest suite is so quick, the default is to run all tests.
This is specified by just `gtest`, or as a fully qualified test descriptor
Expand Down
12 changes: 7 additions & 5 deletions make/autoconf/toolchain_microsoft.m4
Original file line number Diff line number Diff line change
Expand Up @@ -217,10 +217,12 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMFILES_X86/$VS_INSTALL_DIR], [well-known name])
fi
# Derive system drive root from CMD (which is at <drive>/windows/system32/cmd.exe)
WINSYSDRIVE_ROOT="$(dirname "$(dirname "$(dirname "$CMD")")")"
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files/$VS_INSTALL_DIR], [well-known name])
[$WINSYSDRIVE_ROOT/program files/$VS_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files (x86)/$VS_INSTALL_DIR], [well-known name])
[$WINSYSDRIVE_ROOT/program files (x86)/$VS_INSTALL_DIR], [well-known name])
if test "x$SDK_INSTALL_DIR" != x; then
if test "x$ProgramW6432" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
Expand All @@ -235,9 +237,9 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
[$PROGRAMFILES/$SDK_INSTALL_DIR], [well-known name])
fi
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files/$SDK_INSTALL_DIR], [well-known name])
[$WINSYSDRIVE_ROOT/program files/$SDK_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files (x86)/$SDK_INSTALL_DIR], [well-known name])
[$WINSYSDRIVE_ROOT/program files (x86)/$SDK_INSTALL_DIR], [well-known name])
fi

VCVARS_VER=auto
Expand Down Expand Up @@ -338,7 +340,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_VISUAL_STUDIO_ENV],
OLDPATH="$PATH"
# Make sure we only capture additions to PATH needed by VS.
# Clear out path, but need system dir present for vsvars cmd file to be able to run
export PATH=$WINENV_PREFIX/c/windows/system32
export PATH="$(dirname "$CMD")"
# The "| cat" is to stop SetEnv.Cmd to mess with system colors on some systems
# We can't pass -vcvars_ver=$VCVARS_VER here because cmd.exe eats all '='
# in bat file arguments. :-(
Expand Down
12 changes: 12 additions & 0 deletions make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ public class CLDRConverter {
static final String EXEMPLAR_CITY_PREFIX = "timezone.excity.";
static final String ZONE_NAME_PREFIX = "timezone.displayname.";
static final String METAZONE_ID_PREFIX = "metazone.id.";
static final String METAZONE_DSTOFFSET_PREFIX = "metazone.dstoffset.";
static final String PARENT_LOCALE_PREFIX = "parentLocale.";
static final String LIKELY_SCRIPT_PREFIX = "likelyScript.";
static final String META_EMPTY_ZONE_NAME = "EMPTY_ZONE";
Expand Down Expand Up @@ -139,6 +140,11 @@ public class CLDRConverter {
private static final Map<String, String> tzdbSubstLetters = HashMap.newHashMap(512);
private static final Map<String, String> tzdbLinks = HashMap.newHashMap(512);

// Map of explicit dst offsets for metazones
// key: time zone ID
// value: explicit dstOffset for the corresponding metazone name
static final Map<String, String> explicitDstOffsets = HashMap.newHashMap(32);

static enum DraftType {
UNCONFIRMED,
PROVISIONAL,
Expand Down Expand Up @@ -867,6 +873,12 @@ private static Map<String, Object> extractZoneNames(Map<String, Object> map, Str
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
names.putAll(exCities);

// Explicit metazone offsets
if (id.equals("root")) {
explicitDstOffsets.forEach((k, v) ->
names.put(METAZONE_DSTOFFSET_PREFIX + k, v));
}

// If there's no UTC entry at this point, add an empty one
if (!names.isEmpty() && !names.containsKey("UTC")) {
names.putIfAbsent(METAZONE_ID_PREFIX + META_EMPTY_ZONE_NAME, EMPTY_ZONE);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2026, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -84,7 +84,15 @@ public void startElement(String uri, String localName, String qName, Attributes

if (fromLDT.isBefore(now) && toLDT.isAfter(now)) {
metazone = attributes.getValue("mzone");

// Explicit metazone DST offsets. Only the "dst" offset is needed,
// as "std" is used by default when it doesn't match.
String dstOffset = attributes.getValue("dstOffset");
if (dstOffset != null) {
CLDRConverter.explicitDstOffsets.put(tzid, dstOffset);
}
}

pushIgnoredContainer(qName);
break;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2026, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -198,7 +198,8 @@ public void generateBundle(String packageName, String baseName, String localeID,
} else if (value instanceof String) {
String valStr = (String)value;
if (type == BundleType.TIMEZONE &&
!key.startsWith(CLDRConverter.EXEMPLAR_CITY_PREFIX) ||
!(key.startsWith(CLDRConverter.EXEMPLAR_CITY_PREFIX) ||
key.startsWith(CLDRConverter.METAZONE_DSTOFFSET_PREFIX)) ||
valStr.startsWith(META_VALUE_PREFIX)) {
out.printf(" { \"%s\", %s },\n", key, CLDRConverter.saveConvert(valStr, useJava));
} else {
Expand Down
3 changes: 2 additions & 1 deletion make/langtools/tools/previewfeature/SetupPreviewFeature.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import java.lang.reflect.Field;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -76,7 +77,7 @@ public static void main(String... args) throws Exception {
var target = Path.of(args[1]);
Files.createDirectories(target.getParent());
if (constantsToAdd.isEmpty()) {
Files.copy(source, target);
Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
} else {
String sourceCode = Files.readString(source);
try (var out = Files.newBufferedWriter(target)) {
Expand Down
5 changes: 4 additions & 1 deletion make/scripts/fixpath.sh
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,10 @@ function setup() {
fi

if [[ -z ${CMD+x} ]]; then
CMD="$DRIVEPREFIX/c/windows/system32/cmd.exe"
CMD="$(type -p cmd.exe 2>/dev/null)"
if [[ -z "$CMD" ]]; then
CMD="$DRIVEPREFIX/c/windows/system32/cmd.exe"
fi
fi

if [[ -z ${WINTEMP+x} ]]; then
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/aarch64.ad
Original file line number Diff line number Diff line change
Expand Up @@ -1182,12 +1182,12 @@ class CallStubImpl {
public:
// Size of call trampoline stub.
static uint size_call_trampoline() {
return 0; // no call trampolines on this platform
return MacroAssembler::max_trampoline_stub_size();
}

// number of relocations needed by a call trampoline stub
static uint reloc_call_trampoline() {
return 0; // no call trampolines on this platform
return 5; // metadata; call dest; trampoline address; trampoline destination; trampoline_owner_metadata
}
};

Expand Down
5 changes: 5 additions & 0 deletions src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
#include "runtime/frame.inline.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
#include "runtime/threadIdentifier.hpp"
#include "utilities/powerOfTwo.hpp"
#include "vmreg_aarch64.inline.hpp"

Expand Down Expand Up @@ -520,6 +521,10 @@ void LIR_Assembler::const2reg(LIR_Opr src, LIR_Opr dest, LIR_PatchCode patch_cod
#if INCLUDE_CDS
if (AOTCodeCache::is_on_for_dump()) {
address b = c->as_pointer();
if (b == (address)ThreadIdentifier::unsafe_offset()) {
__ lea(dest->as_register_lo(), ExternalAddress(b));
break;
}
if (AOTRuntimeConstants::contains(b)) {
__ load_aotrc_address(dest->as_register_lo(), b);
break;
Expand Down
13 changes: 9 additions & 4 deletions src/hotspot/cpu/aarch64/compiledIC_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,21 @@ void CompiledDirectCall::set_to_interpreted(const methodHandle& callee, address
NativeMovConstReg* method_holder
= nativeMovConstReg_at(stub + NativeInstruction::instruction_size);

// In AOT "production" run we have mixture of AOTed and normal JITed code.
// Static call stub in AOTed nmethod always has far jump.
// Normal JITed nmethod may have short or far jump depending on distance.
// Determine actual jump instruction we have in code.
address next_instr = method_holder->next_instruction_address();
bool is_general_jump = nativeInstruction_at(next_instr)->is_general_jump();

#ifdef ASSERT
NativeJump* jump = MacroAssembler::codestub_branch_needs_far_jump()
? nativeGeneralJump_at(method_holder->next_instruction_address())
: nativeJump_at(method_holder->next_instruction_address());
NativeJump* jump = is_general_jump ? nativeGeneralJump_at(next_instr) : nativeJump_at(next_instr);
verify_mt_safe(callee, entry, method_holder, jump);
#endif

// Update stub.
method_holder->set_data((intptr_t)callee());
MacroAssembler::pd_patch_instruction(method_holder->next_instruction_address(), entry);
MacroAssembler::pd_patch_instruction(next_instr, entry);
ICache::invalidate_range(stub, to_interp_stub_size());
// Update jump to call.
set_destination_mt_safe(stub);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,25 +56,27 @@ void CardTableBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet d
}
}

void CardTableBarrierSetAssembler::store_check(MacroAssembler* masm, Register obj, Address dst) {

void CardTableBarrierSetAssembler::store_check(MacroAssembler* masm, Register obj, Address dst, Register tmp1, Register tmp2) {
precond(tmp1 != noreg);
precond(tmp2 != noreg);
assert_different_registers(obj, tmp1, tmp2);
BarrierSet* bs = BarrierSet::barrier_set();
assert(bs->kind() == BarrierSet::CardTableBarrierSet, "Wrong barrier set kind");

__ lsr(obj, obj, CardTable::card_shift());

assert(CardTable::dirty_card_val() == 0, "must be");

__ load_byte_map_base(rscratch1);
__ load_byte_map_base(tmp1);

if (UseCondCardMark) {
Label L_already_dirty;
__ ldrb(rscratch2, Address(obj, rscratch1));
__ cbz(rscratch2, L_already_dirty);
__ strb(zr, Address(obj, rscratch1));
__ ldrb(tmp2, Address(obj, tmp1));
__ cbz(tmp2, L_already_dirty);
__ strb(zr, Address(obj, tmp1));
__ bind(L_already_dirty);
} else {
__ strb(zr, Address(obj, rscratch1));
__ strb(zr, Address(obj, tmp1));
}
}

Expand Down Expand Up @@ -112,10 +114,10 @@ void CardTableBarrierSetAssembler::oop_store_at(MacroAssembler* masm, DecoratorS
if (needs_post_barrier) {
// flatten object address if needed
if (!precise || (dst.index() == noreg && dst.offset() == 0)) {
store_check(masm, dst.base(), dst);
store_check(masm, dst.base(), dst, tmp1, tmp2);
} else {
__ lea(tmp3, dst);
store_check(masm, tmp3, dst);
store_check(masm, tmp3, dst, tmp1, tmp2);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class CardTableBarrierSetAssembler: public BarrierSetAssembler {
virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address dst, Register val, Register tmp1, Register tmp2, Register tmp3);

void store_check(MacroAssembler* masm, Register obj, Address dst);
void store_check(MacroAssembler* masm, Register obj, Address dst, Register tmp1, Register tmp2);
};

#endif // CPU_AARCH64_GC_SHARED_CARDTABLEBARRIERSETASSEMBLER_AARCH64_HPP
Original file line number Diff line number Diff line change
Expand Up @@ -879,7 +879,9 @@ void ZBarrierSetAssembler::patch_barrier_relocation(address addr, int format) {
ShouldNotReachHere();
}

ICache::invalidate_word((address)patch_addr);
if (!UseSingleICacheInvalidation) {
ICache::invalidate_word((address)patch_addr);
}
}

#ifdef COMPILER1
Expand Down
4 changes: 4 additions & 0 deletions src/hotspot/cpu/aarch64/globals_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,10 @@ define_pd_global(intx, InlineSmallCode, 1000);
"Branch Protection to use: none, standard, pac-ret") \
product(bool, AlwaysMergeDMB, true, DIAGNOSTIC, \
"Always merge DMB instructions in code emission") \
product(bool, NeoverseN1ICacheErratumMitigation, false, DIAGNOSTIC, \
"Enable workaround for Neoverse N1 erratum 1542419") \
product(bool, UseSingleICacheInvalidation, false, DIAGNOSTIC, \
"Defer multiple ICache invalidation to single invalidation") \

// end of ARCH_FLAGS

Expand Down
12 changes: 8 additions & 4 deletions src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -952,7 +952,10 @@ void MacroAssembler::emit_static_call_stub() {
}

int MacroAssembler::static_call_stub_size() {
if (!codestub_branch_needs_far_jump()) {
// During AOT production run AOT and JIT compiled code
// are used at the same time. We need this size
// to be the same for both types of code.
if (!codestub_branch_needs_far_jump() && !AOTCodeCache::is_on_for_use()) {
// isb; movk; movz; movz; b
return 5 * NativeInstruction::instruction_size;
}
Expand Down Expand Up @@ -3451,7 +3454,7 @@ void MacroAssembler::subw(Register Rd, Register Rn, RegisterOrConstant decrement
void MacroAssembler::reinit_heapbase()
{
if (UseCompressedOops) {
if (Universe::is_fully_initialized()) {
if (Universe::is_fully_initialized() && !AOTCodeCache::is_on_for_dump()) {
mov(rheapbase, CompressedOops::base());
} else {
lea(rheapbase, ExternalAddress(CompressedOops::base_addr()));
Expand Down Expand Up @@ -5125,7 +5128,8 @@ void MacroAssembler::cmp_klass(Register obj, Register klass, Register tmp) {
if (CompressedKlassPointers::base() == nullptr) {
cmp(klass, tmp, LSL, CompressedKlassPointers::shift());
return;
} else if (((uint64_t)CompressedKlassPointers::base() & 0xffffffff) == 0
} else if (!AOTCodeCache::is_on_for_dump() &&
((uint64_t)CompressedKlassPointers::base() & 0xffffffff) == 0
&& CompressedKlassPointers::shift() == 0) {
// Only the bottom 32 bits matter
cmpw(klass, tmp);
Expand Down Expand Up @@ -5368,7 +5372,7 @@ void MacroAssembler::encode_klass_not_null_for_aot(Register dst, Register src) {
}

void MacroAssembler::encode_klass_not_null(Register dst, Register src) {
if (AOTCodeCache::is_on_for_dump()) {
if (CompressedKlassPointers::base() != nullptr && AOTCodeCache::is_on_for_dump()) {
encode_klass_not_null_for_aot(dst, src);
return;
}
Expand Down
7 changes: 6 additions & 1 deletion src/hotspot/cpu/aarch64/relocInfo_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,12 @@ void Relocation::pd_set_data_value(address x, bool verify_only) {
bytes = MacroAssembler::pd_patch_instruction_size(addr(), x);
break;
}
ICache::invalidate_range(addr(), bytes);

if (UseSingleICacheInvalidation) {
assert(_binding != nullptr, "expect to be called with RelocIterator in use");
} else {
ICache::invalidate_range(addr(), bytes);
}
}

address Relocation::pd_call_destination(address orig_addr) {
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/aarch64/runtime_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ ExceptionBlob* OptoRuntime::generate_exception_blob() {
assert(SimpleRuntimeFrame::framesize % 4 == 0, "sp not 16-byte aligned");

const char* name = OptoRuntime::stub_name(StubId::c2_exception_id);
CodeBlob* blob = AOTCodeCache::load_code_blob(AOTCodeEntry::C2Blob, (uint)BlobId::c2_exception_id, name);
CodeBlob* blob = AOTCodeCache::load_code_blob(AOTCodeEntry::C2Blob, BlobId::c2_exception_id);
if (blob != nullptr) {
return blob->as_exception_blob();
}
Expand Down
Loading
Loading