Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge jdk-24+20 into rivos/main #196

Merged
merged 97 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
1604255
8341619: C2: remove unused StoreCM node
robcasloz Oct 10, 2024
e9327b6
8339205: Optimize StackMapGenerator
wenshao Oct 10, 2024
6e01384
8341136: Optimize StackMapGenerator::trimAndCompress
wenshao Oct 10, 2024
2d8fcc4
8340193: Open source several AWT Dialog tests - Batch 1
Oct 10, 2024
a7d2077
8340366: Open source several AWT Dialog tests - Batch 3
Oct 10, 2024
4beb771
8339538: Wrong timeout computations in DnsClient
AlekseiEfimov Oct 10, 2024
6fad6af
8341819: LightweightSynchronizer::enter_for races with deflation
xmas92 Oct 10, 2024
76541b0
8341792: Fix ExceptionOccurred in java.security.jgss
wangweij Oct 10, 2024
7eb5535
8341789: Fix ExceptionOccurred in java.base
Oct 10, 2024
a5cad0e
8341791: Fix ExceptionOccurred in java.prefs
Oct 10, 2024
32f817a
8340978: Open source few DnD tests - Set6
Oct 10, 2024
2a6f030
8339974: Graphics2D.drawString doesn't always work with Font derived …
gredler Oct 10, 2024
97ee8bb
8340173: Open source some Component/Panel/EventQueue tests - Set2
Oct 10, 2024
06f34d7
8339651: ShenandoahPacer::setup_for_mark, ShenandoahPacer::setup_for_…
Oct 10, 2024
cd4981c
8341257: Open source few DND tests - Set1
Oct 10, 2024
24eb360
8341906: Optimize ClassFile writing BufBuffer
wenshao Oct 11, 2024
472db92
8341900: Optimize DirectCodeBuilder writeBody
wenshao Oct 11, 2024
ace44e5
8341806: Gcc version detection failure on Alinux3
Oct 11, 2024
ae41daf
8341880: RISC-V: riscv_vector.h native build fails with gcc13 after J…
Oct 11, 2024
7c0dbf8
8341820: Check return value of hcreate_r
MBaesken Oct 11, 2024
519544c
8341909: G1: Add region index to region printer output
Oct 11, 2024
6133866
8341070: javac fails with an exception when compiling import module u…
lahodaj Oct 11, 2024
7276a1b
8341784: Refactor TypeVect to use a BasicType instead of a const Type*
Oct 11, 2024
1f6bd0c
8341972: java/awt/dnd/DnDRemoveFocusOwnerCrashTest.java timed out aft…
Oct 11, 2024
0a57fe1
8341178: TypeRawPtr::add_offset may be "miscompiled" due to UB
Oct 11, 2024
3f53d57
8340327: A common framework to support public key algorithms with sta…
wangweij Oct 11, 2024
c4965d9
8341794: Fix ExceptionOccurred in jdk.attach
Oct 11, 2024
2db3397
8341797: Fix ExceptionOccurred in jdk.jdi
Oct 11, 2024
2e1c193
8342003: ProblemList sun/security/tools/keytool/GenKeyPairSigner.java
Oct 12, 2024
41ee582
8341138: Rename jtreg property docker.support as container.support
Oct 12, 2024
5c4f1ef
8226933: [TEST_BUG]GTK L&F: There is no swatches or RGB tab in JColor…
Oct 14, 2024
fe98f86
8226938: [TEST_BUG]GTK L&F: There is no Details button in FileChooser…
Oct 14, 2024
8d0975a
8336726: C2: assert(!do_asserts || projs->fallthrough_ioproj != nullp…
TobiHartmann Oct 14, 2024
037f11b
8341708: Optimize safepoint poll encoding with smaller poll data offset
shipilev Oct 14, 2024
e3f6503
8341893: AArch64: Micro-optimize compressed ptr decoding
shipilev Oct 14, 2024
dcac4b0
8341471: Reversed field layout caused by unstable sorting
Oct 14, 2024
b20c5c7
8341967: Unify os::current_file_offset and os::seek_to_file_offset ac…
MBaesken Oct 14, 2024
1581508
8335091: NMT: VMATree reserve_mapping and commit_mapping APIs need ME…
Oct 14, 2024
ba3774d
8341637: java/net/Socket/UdpSocket.java fails with "java.net.BindExce…
dfuch Oct 14, 2024
f56a154
8341881: [REDO] java/nio/file/attribute/BasicFileAttributeView/Creati…
Oct 14, 2024
9e262df
8342002: sun/security/tools/keytool/GenKeyPairSigner.java failed due …
wangweij Oct 14, 2024
a8a8b2d
8341831: PhaseCFG::insert_anti_dependences asserts with "no loads"
Oct 14, 2024
6071346
8339879: Open some dialog awt tests
Oct 14, 2024
a2c7752
8317356: Fix missing null checks in the ClassFile API
liach Oct 14, 2024
bd62644
8341924: Improve error message with structurally malformed Code array
liach Oct 14, 2024
a601cd2
8342014: RISC-V: ZStoreBarrierStubC2 clobbers rflags
RealFYang Oct 15, 2024
e6698f5
8337851: Some tests have name which confuse jtreg
toshiogata Oct 15, 2024
521effe
8340189: 8339531 incorrect for Big Endian platforms
minborg Oct 15, 2024
3b8a2f8
8337269: G1ConfidencePercent interpreted inconsistently
Oct 15, 2024
f4dccfd
8338596: Clarify handling of restricted and caller-sensitive methods
mcimadamore Oct 15, 2024
c9a536c
8337339: gc/arguments/Test*SizeFlags.java timing out with Xcomp
Oct 15, 2024
df7d6e0
8338603: DiagnosticCommandMBean operations should standardize types f…
kevinjwalls Oct 15, 2024
369c573
8302111: Serialization considerations
slumericanB Feb 5, 2024
893e7bc
8328726: Better Kerberos support
wangweij Apr 17, 2024
03bc6b3
8328286: Enhance HTTP client
dfuch May 7, 2024
cfa25b7
8328544: Improve handling of vectorization
eme64 May 21, 2024
498a582
8311208: Improve CDS Support
Jun 21, 2024
dadcee1
8307383: Enhance DTLS connections
Jul 1, 2024
d9f6383
8331446: Improve deserialization support
Jul 4, 2024
c89f76c
8332644: Improve graph optimizations
dean-long Jul 11, 2024
490d099
8335713: Enhance vectorization analysis
eme64 Jul 23, 2024
2c0c653
8342044: Increase timeout of gc/shenandoah/oom/TestClassLoaderLeak.java
MBaesken Oct 15, 2024
54c9348
8336103: Clean up confusing Method::is_initializer
shipilev Oct 15, 2024
6ed6dff
8341871: Disable G1 for unsupported platforms after JDK-8334060
shipilev Oct 15, 2024
5eae20f
8323672: Suppress unwanted autoconf added flags in CC and CXX
TheShermanTanker Oct 15, 2024
b9cabbe
8341997: Tests create files in src tree instead of scratch dir
Oct 15, 2024
86ce19e
8341142: Maintain a single source file for sun.net.www.protocol.jar.J…
jaikiran Oct 16, 2024
6d7e679
8340790: Open source several AWT Dialog tests - Batch 4
Oct 16, 2024
e94e3bb
8324672: Update jdk/java/time/tck/java/time/TCKInstant.java now() to …
Oct 16, 2024
e4ff553
8341931: os_linux gtest uses lambdas with explicit capture lists
Oct 16, 2024
724de68
8342081: Shenandoah: Remove extra ShenandoahMarkUpdateRefsSuperClosure
shipilev Oct 16, 2024
b9b0bd0
8337221: CompileFramework: test library to conveniently compile java …
eme64 Oct 16, 2024
577babf
8334010: VM crashes with ObjectAlignmentInBytes > GCCardSizeInBytes
Oct 16, 2024
e7cf25c
8340801: Disable ubsan checks in some awt/2d coding
MBaesken Oct 16, 2024
ebc17c7
8339637: (tz) Update Timezone Data to 2024b
johnyjose30 Oct 16, 2024
c81aa75
8331051: Add an `@since` checker test for `java.base` module
nizarbenalla Oct 16, 2024
cf5bb12
Merge
jaikiran Oct 16, 2024
1cc3223
8336911: ZGC: Division by zero in heuristics after JDK-8332717
MBaesken Oct 16, 2024
7625b29
8329597: C2: Intrinsify Reference.clear
shipilev Oct 16, 2024
c34fb2c
8338883: Show warning when CreateCoredumpOnCrash set, but core dump w…
Oct 16, 2024
709914f
8338023: Support two vector selectFrom API
Oct 16, 2024
44151f4
8342145: File libCreationTimeHelper.c compile fails on Alpine
Oct 16, 2024
d4f0ba7
8342439: Build failure after 8338023
Oct 16, 2024
ed68096
8341862: PPC64: C1 unwind_handler fails to unlock synchronized method…
reinrich Oct 16, 2024
2853852
8342332: [JVMCI] Export CompilerToVM::Data::dtanh
Oct 16, 2024
b4ab290
8331959: Update PKCS#11 Cryptographic Token Interface to v3.1
slumericanB Oct 16, 2024
4e703b2
8340140: Open some dialog awt tests 3
Oct 16, 2024
3da6890
8338751: ConfigureNotify behavior has changed in KWin 6.2
zzag Oct 16, 2024
58d39c3
8340313: Crash due to invalid oop in nmethod after C1 patching
TobiHartmann Oct 17, 2024
22a1fee
8341328: Refactor initial Assertion Predicate creation into separate …
chhagedorn Oct 17, 2024
f6fe5ea
8341072: Open source several AWT Canvas and Rectangle related tests
Oct 17, 2024
e0dabfb
8340279: Open source several AWT Dialog tests - Batch 2
Oct 17, 2024
fa39e84
8342042: PPC64: compiler_fast_unlock_object flags failure instead of …
reinrich Oct 17, 2024
f9208fa
8341715: PPC64: ObjectMonitor::_owner should be reset unconditionally…
reinrich Oct 17, 2024
8862ca0
8342338: Remove redundant IIOPURLTest.java
kevinjwalls Oct 17, 2024
7a64fbb
8338851: Hoist os::Posix::realpath() to os::realpath() and implement …
Oct 17, 2024
37493f6
Merge remote-tracking branch 'origin/rivos/main' into rivos/merge-jdk…
luhenry Oct 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 19 additions & 0 deletions make/autoconf/jvm-features.m4
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,22 @@ AC_DEFUN([JVM_FEATURES_CALCULATE_ACTIVE],
$JVM_FEATURES_ENABLED, $JVM_FEATURES_DISABLED)
])

################################################################################
# Filter the unsupported feature combinations.
# This is called after JVM_FEATURES_ACTIVE are fully populated.
#
AC_DEFUN([JVM_FEATURES_FILTER_UNSUPPORTED],
[
# G1 late barrier expansion in C2 is not implemented for some platforms.
# Choose not to support G1 in this configuration.
if JVM_FEATURES_IS_ACTIVE(compiler2); then
if test "x$OPENJDK_TARGET_CPU" = "xx86"; then
AC_MSG_NOTICE([G1 cannot be used with C2 on this platform, disabling G1])
UTIL_GET_NON_MATCHING_VALUES(JVM_FEATURES_ACTIVE, $JVM_FEATURES_ACTIVE, "g1gc")
fi
fi
])

################################################################################
# Helper function for JVM_FEATURES_VERIFY. Check if the specified JVM
# feature is active. To be used in shell if constructs, like this:
Expand Down Expand Up @@ -554,6 +570,9 @@ AC_DEFUN_ONCE([JVM_FEATURES_SETUP],
# The result is stored in JVM_FEATURES_ACTIVE.
JVM_FEATURES_CALCULATE_ACTIVE($variant)
# Filter unsupported feature combinations from JVM_FEATURES_ACTIVE.
JVM_FEATURES_FILTER_UNSUPPORTED
# Verify consistency for JVM_FEATURES_ACTIVE.
JVM_FEATURES_VERIFY($variant)
Expand Down
14 changes: 8 additions & 6 deletions make/autoconf/toolchain.m4
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_POST_DETECTION],
[
# Restore old path, except for the microsoft toolchain, which requires the
# toolchain path to remain in place. Otherwise the compiler will not work in
# some siutations in later configure checks.
# some situations in later configure checks.
if test "x$TOOLCHAIN_TYPE" != "xmicrosoft"; then
PATH="$OLD_PATH"
fi
Expand All @@ -316,10 +316,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_POST_DETECTION],
# This is necessary since AC_PROG_CC defaults CFLAGS to "-g -O2"
CFLAGS="$ORG_CFLAGS"
CXXFLAGS="$ORG_CXXFLAGS"

# filter out some unwanted additions autoconf may add to CXX; we saw this on macOS with autoconf 2.72
UTIL_GET_NON_MATCHING_VALUES(cxx_filtered, $CXX, -std=c++11 -std=gnu++11)
CXX="$cxx_filtered"
])

# Check if a compiler is of the toolchain type we expect, and save the version
Expand Down Expand Up @@ -358,6 +354,11 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
# Copyright (C) 2013 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# or look like
# gcc (GCC) 10.2.1 20200825 (Alibaba 10.2.1-3.8 2.32)
# Copyright (C) 2020 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
COMPILER_VERSION_OUTPUT=`$COMPILER --version 2>&1`
# Check that this is likely to be GCC.
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Free Software Foundation" > /dev/null
Expand All @@ -371,7 +372,8 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \
$SED -e 's/ *Copyright .*//'`
COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
$SED -e 's/^.* \(@<:@1-9@:>@<:@0-9@:>@*\.@<:@0-9.@:>@*\)@<:@^0-9.@:>@.*$/\1/'`
$AWK -F ')' '{print [$]2}' | \
$AWK '{print [$]1}'`
elif test "x$TOOLCHAIN_TYPE" = xclang; then
# clang --version output typically looks like
# Apple clang version 15.0.0 (clang-1500.3.9.4)
Expand Down
64 changes: 64 additions & 0 deletions make/autoconf/util.m4
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,70 @@

m4_include([util_paths.m4])

###############################################################################
# Overwrite the existing version of AC_PROG_CC with our own custom variant.
# Unlike the regular AC_PROG_CC, the compiler list must always be passed.
AC_DEFUN([AC_PROG_CC],
[
AC_LANG_PUSH(C)
AC_ARG_VAR([CC], [C compiler command])
AC_ARG_VAR([CFLAGS], [C compiler flags])
_AC_ARG_VAR_LDFLAGS()
_AC_ARG_VAR_LIBS()
_AC_ARG_VAR_CPPFLAGS()
AC_CHECK_TOOLS(CC, [$1])
test -z "$CC" && AC_MSG_FAILURE([no acceptable C compiler found in \$PATH])
# Provide some information about the compiler.
_AS_ECHO_LOG([checking for _AC_LANG compiler version])
set X $ac_compile
ac_compiler=$[2]
for ac_option in --version -v -V -qversion -version; do
_AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD])
done
m4_expand_once([_AC_COMPILER_EXEEXT])
m4_expand_once([_AC_COMPILER_OBJEXT])
_AC_PROG_CC_G
AC_LANG_POP(C)
])

###############################################################################
# Overwrite the existing version of AC_PROG_CXX with our own custom variant.
# Unlike the regular AC_PROG_CXX, the compiler list must always be passed.
AC_DEFUN([AC_PROG_CXX],
[
AC_LANG_PUSH(C++)
AC_ARG_VAR([CXX], [C++ compiler command])
AC_ARG_VAR([CXXFLAGS], [C++ compiler flags])
_AC_ARG_VAR_LDFLAGS()
_AC_ARG_VAR_LIBS()
_AC_ARG_VAR_CPPFLAGS()
AC_CHECK_TOOLS(CXX, [$1])
# Provide some information about the compiler.
_AS_ECHO_LOG([checking for _AC_LANG compiler version])
set X $ac_compile
ac_compiler=$[2]
for ac_option in --version -v -V -qversion; do
_AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD])
done
m4_expand_once([_AC_COMPILER_EXEEXT])
m4_expand_once([_AC_COMPILER_OBJEXT])
_AC_PROG_CXX_G
AC_LANG_POP(C++)
])

################################################################################
# Create a function/macro that takes a series of named arguments. The call is
# similar to AC_DEFUN, but the setup of the function looks like this:
Expand Down
2 changes: 2 additions & 0 deletions make/test/JtregNativeJdk.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ ifeq ($(call isTargetOs, linux), true)
# stripping during the test libraries' build.
BUILD_JDK_JTREG_LIBRARIES_CFLAGS_libFib := -g
BUILD_JDK_JTREG_LIBRARIES_STRIP_SYMBOLS_libFib := false
# nio tests' libCreationTimeHelper native needs -ldl linker flag
BUILD_JDK_JTREG_LIBRARIES_LDFLAGS_libCreationTimeHelper := -ldl
endif

ifeq ($(ASAN_ENABLED), true)
Expand Down
34 changes: 0 additions & 34 deletions src/hotspot/cpu/aarch64/aarch64.ad
Original file line number Diff line number Diff line change
Expand Up @@ -2307,10 +2307,6 @@ const RegMask* Matcher::predicate_reg_mask(void) {
return &_PR_REG_mask;
}

const TypeVectMask* Matcher::predicate_reg_type(const Type* elemTy, int length) {
return new TypeVectMask(elemTy, length);
}

// Vector calling convention not yet implemented.
bool Matcher::supports_vector_calling_convention(void) {
return false;
Expand Down Expand Up @@ -6892,36 +6888,6 @@ instruct loadConD(vRegD dst, immD con) %{

// Store Instructions

// Store CMS card-mark Immediate
instruct storeimmCM0(immI0 zero, memory1 mem)
%{
match(Set mem (StoreCM mem zero));

ins_cost(INSN_COST);
format %{ "storestore (elided)\n\t"
"strb zr, $mem\t# byte" %}

ins_encode(aarch64_enc_strb0(mem));

ins_pipe(istore_mem);
%}

// Store CMS card-mark Immediate with intervening StoreStore
// needed when using CMS with no conditional card marking
instruct storeimmCM0_ordered(immI0 zero, memory1 mem)
%{
match(Set mem (StoreCM mem zero));

ins_cost(INSN_COST * 2);
format %{ "storestore\n\t"
"dmb ishst"
"\n\tstrb zr, $mem\t# byte" %}

ins_encode(aarch64_enc_strb0_ordered(mem));

ins_pipe(istore_mem);
%}

// Store Byte
instruct storeB(iRegIorL2I src, memory1 mem)
%{
Expand Down
10 changes: 6 additions & 4 deletions src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1189,6 +1189,8 @@ void ZBarrierSetAssembler::generate_c2_store_barrier_stub(MacroAssembler* masm,
__ lea(rscratch1, RuntimeAddress(ZBarrierSetRuntime::store_barrier_on_native_oop_field_without_healing_addr()));
} else if (stub->is_atomic()) {
__ lea(rscratch1, RuntimeAddress(ZBarrierSetRuntime::store_barrier_on_oop_field_with_healing_addr()));
} else if (stub->is_nokeepalive()) {
__ lea(rscratch1, RuntimeAddress(ZBarrierSetRuntime::no_keepalive_store_barrier_on_oop_field_without_healing_addr()));
} else {
__ lea(rscratch1, RuntimeAddress(ZBarrierSetRuntime::store_barrier_on_oop_field_without_healing_addr()));
}
Expand Down Expand Up @@ -1307,11 +1309,11 @@ Label* ZLoadBarrierStubC2Aarch64::entry() {
return ZBarrierStubC2::entry();
}

ZStoreBarrierStubC2Aarch64::ZStoreBarrierStubC2Aarch64(const MachNode* node, Address ref_addr, Register new_zaddress, Register new_zpointer, bool is_native, bool is_atomic)
: ZStoreBarrierStubC2(node, ref_addr, new_zaddress, new_zpointer, is_native, is_atomic), _deferred_emit(false) {}
ZStoreBarrierStubC2Aarch64::ZStoreBarrierStubC2Aarch64(const MachNode* node, Address ref_addr, Register new_zaddress, Register new_zpointer, bool is_native, bool is_atomic, bool is_nokeepalive)
: ZStoreBarrierStubC2(node, ref_addr, new_zaddress, new_zpointer, is_native, is_atomic, is_nokeepalive), _deferred_emit(false) {}

ZStoreBarrierStubC2Aarch64* ZStoreBarrierStubC2Aarch64::create(const MachNode* node, Address ref_addr, Register new_zaddress, Register new_zpointer, bool is_native, bool is_atomic) {
ZStoreBarrierStubC2Aarch64* const stub = new (Compile::current()->comp_arena()) ZStoreBarrierStubC2Aarch64(node, ref_addr, new_zaddress, new_zpointer, is_native, is_atomic);
ZStoreBarrierStubC2Aarch64* ZStoreBarrierStubC2Aarch64::create(const MachNode* node, Address ref_addr, Register new_zaddress, Register new_zpointer, bool is_native, bool is_atomic, bool is_nokeepalive) {
ZStoreBarrierStubC2Aarch64* const stub = new (Compile::current()->comp_arena()) ZStoreBarrierStubC2Aarch64(node, ref_addr, new_zaddress, new_zpointer, is_native, is_atomic, is_nokeepalive);
register_stub(stub);
return stub;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -280,10 +280,10 @@ class ZStoreBarrierStubC2Aarch64 : public ZStoreBarrierStubC2 {
private:
bool _deferred_emit;

ZStoreBarrierStubC2Aarch64(const MachNode* node, Address ref_addr, Register new_zaddress, Register new_zpointer, bool is_native, bool is_atomic);
ZStoreBarrierStubC2Aarch64(const MachNode* node, Address ref_addr, Register new_zaddress, Register new_zpointer, bool is_native, bool is_atomic, bool is_nokeepalive);

public:
static ZStoreBarrierStubC2Aarch64* create(const MachNode* node, Address ref_addr, Register new_zaddress, Register new_zpointer, bool is_native, bool is_atomic);
static ZStoreBarrierStubC2Aarch64* create(const MachNode* node, Address ref_addr, Register new_zaddress, Register new_zpointer, bool is_native, bool is_atomic, bool is_nokeepalive);

virtual void emit_code(MacroAssembler& masm);
};
Expand Down
3 changes: 2 additions & 1 deletion src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ static void z_store_barrier(MacroAssembler* masm, const MachNode* node, Address
z_color(masm, node, rnew_zpointer, rnew_zaddress);
} else {
bool is_native = (node->barrier_data() & ZBarrierNative) != 0;
ZStoreBarrierStubC2Aarch64* const stub = ZStoreBarrierStubC2Aarch64::create(node, ref_addr, rnew_zaddress, rnew_zpointer, is_native, is_atomic);
bool is_nokeepalive = (node->barrier_data() & ZBarrierNoKeepalive) != 0;
ZStoreBarrierStubC2Aarch64* const stub = ZStoreBarrierStubC2Aarch64::create(node, ref_addr, rnew_zaddress, rnew_zpointer, is_native, is_atomic, is_nokeepalive);
ZBarrierSetAssembler* bs_asm = ZBarrierSet::assembler();
bs_asm->store_barrier_fast(masm, ref_addr, rnew_zaddress, rnew_zpointer, tmp, true /* in_nmethod */, is_atomic, *stub->entry(), *stub->continuation());
}
Expand Down
4 changes: 3 additions & 1 deletion src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5011,8 +5011,10 @@ void MacroAssembler::decode_heap_oop(Register d, Register s) {
verify_heapbase("MacroAssembler::decode_heap_oop: heap base corrupted?");
#endif
if (CompressedOops::base() == nullptr) {
if (CompressedOops::shift() != 0 || d != s) {
if (CompressedOops::shift() != 0) {
lsl(d, s, CompressedOops::shift());
} else if (d != s) {
mov(d, s);
}
} else {
Label done;
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ address NativeCall::destination() const {
//
// Used in the runtime linkage of calls; see class CompiledIC.
void NativeCall::set_destination_mt_safe(address dest) {
assert((Patching_lock->is_locked() || SafepointSynchronize::is_at_safepoint()) ||
assert((CodeCache_lock->is_locked() || SafepointSynchronize::is_at_safepoint()) ||
CompiledICLocker::is_safe(addr_at(0)),
"concurrent code patching");

Expand Down
16 changes: 0 additions & 16 deletions src/hotspot/cpu/arm/arm.ad
Original file line number Diff line number Diff line change
Expand Up @@ -1003,10 +1003,6 @@ const RegMask* Matcher::predicate_reg_mask(void) {
return nullptr;
}

const TypeVectMask* Matcher::predicate_reg_type(const Type* elemTy, int length) {
return nullptr;
}

// Vector calling convention not yet implemented.
bool Matcher::supports_vector_calling_convention(void) {
return false;
Expand Down Expand Up @@ -4226,18 +4222,6 @@ instruct storeB(memoryB mem, store_RegI src) %{
ins_pipe(istore_mem_reg);
%}

instruct storeCM(memoryB mem, store_RegI src) %{
match(Set mem (StoreCM mem src));
ins_cost(MEMORY_REF_COST);

size(4);
format %{ "STRB $src,$mem\t! CMS card-mark byte" %}
ins_encode %{
__ strb($src$$Register, $mem$$Address);
%}
ins_pipe(istore_mem_reg);
%}

// Store Char/Short


Expand Down
6 changes: 5 additions & 1 deletion src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,11 @@ int LIR_Assembler::emit_unwind_handler() {
if (method()->is_synchronized()) {
monitor_address(0, FrameMap::R4_opr);
stub = new MonitorExitStub(FrameMap::R4_opr, true, 0);
__ unlock_object(R5, R6, R4, *stub->entry());
if (LockingMode == LM_MONITOR) {
__ b(*stub->entry());
} else {
__ unlock_object(R5, R6, R4, *stub->entry());
}
__ bind(*stub->continuation());
}

Expand Down
4 changes: 4 additions & 0 deletions src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ void C1_MacroAssembler::lock_object(Register Rmark, Register Roop, Register Rbox
/*check without membar and ldarx first*/true);
// If compare/exchange succeeded we found an unlocked object and we now have locked it
// hence we are done.
} else {
assert(false, "Unhandled LockingMode:%d", LockingMode);
}
b(done);

Expand Down Expand Up @@ -168,6 +170,8 @@ void C1_MacroAssembler::unlock_object(Register Rmark, Register Roop, Register Rb
MacroAssembler::cmpxchgx_hint_release_lock(),
noreg,
&slow_int);
} else {
assert(false, "Unhandled LockingMode:%d", LockingMode);
}
b(done);
bind(slow_int);
Expand Down
2 changes: 2 additions & 0 deletions src/hotspot/cpu/ppc/gc/z/zBarrierSetAssembler_ppc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -943,6 +943,8 @@ void ZBarrierSetAssembler::generate_c2_store_barrier_stub(MacroAssembler* masm,
__ call_VM_leaf(ZBarrierSetRuntime::store_barrier_on_native_oop_field_without_healing_addr(), R3_ARG1);
} else if (stub->is_atomic()) {
__ call_VM_leaf(ZBarrierSetRuntime::store_barrier_on_oop_field_with_healing_addr(), R3_ARG1);
} else if (stub->is_nokeepalive()) {
__ call_VM_leaf(ZBarrierSetRuntime::no_keepalive_store_barrier_on_oop_field_without_healing_addr(), R3_ARG1);
} else {
__ call_VM_leaf(ZBarrierSetRuntime::store_barrier_on_oop_field_without_healing_addr(), R3_ARG1);
}
Expand Down
3 changes: 2 additions & 1 deletion src/hotspot/cpu/ppc/gc/z/z_ppc.ad
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ static void z_store_barrier(MacroAssembler* masm, const MachNode* node, Register
z_color(masm, rnew_zpointer, rnew_zaddress);
} else {
bool is_native = (node->barrier_data() & ZBarrierNative) != 0;
ZStoreBarrierStubC2* const stub = ZStoreBarrierStubC2::create(node, Address(ref_base, disp), rnew_zaddress, rnew_zpointer, is_native, is_atomic);
bool is_nokeepalive = (node->barrier_data() & ZBarrierNoKeepalive) != 0;
ZStoreBarrierStubC2* const stub = ZStoreBarrierStubC2::create(node, Address(ref_base, disp), rnew_zaddress, rnew_zpointer, is_native, is_atomic, is_nokeepalive);
ZBarrierSetAssembler* bs_asm = ZBarrierSet::assembler();
bs_asm->store_barrier_fast(masm, ref_base, disp, rnew_zaddress, rnew_zpointer, true /* in_nmethod */, is_atomic, *stub->entry(), *stub->continuation());
}
Expand Down
Loading