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 to tag jdk-23+8 #1599

Merged
merged 72 commits into from
Feb 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
7a798d3
8324598: use mem_unit when working with sysinfo memory and swap relat…
MBaesken Jan 25, 2024
e709842
8324636: Serial: Remove Generation::block_is_obj
albertnetymk Jan 25, 2024
ffe3bb6
8324657: Intermittent OOME on exception message create
Jan 25, 2024
746a086
8306767: Concurrent repacking of extra data in MethodData is potentia…
eme64 Jan 25, 2024
12b89cd
8323717: Introduce test keyword for tests that need external dependen…
shipilev Jan 25, 2024
39b756a
8324492: Remove Atomic support for OopHandle
Jan 25, 2024
95310ea
8223696: java/net/httpclient/MaxStreams.java failed with didn't finis…
djelinski Jan 25, 2024
b5995a7
8302019: Clarify Elements.overrides
jddarcy Jan 25, 2024
bde8789
8324123: aarch64: fix prfm literal encoding in assembler
Jan 26, 2024
10066cd
8324571: JDK 23 L10n resource files update
Jan 26, 2024
33324a5
8324637: [aix] Implement support for reporting swap space in jdk.mana…
MBaesken Jan 26, 2024
781f368
8324347: Enable "maybe-uninitialized" warning for FreeType 2.13.1
mrserb Jan 26, 2024
c313d45
8324659: GHA: Generic jtreg errors are not reported
shipilev Jan 26, 2024
32ddcf5
8324301: Obsolete MaxGCMinorPauseMillis
albertnetymk Jan 26, 2024
885e9b7
8324722: Serial: Inline block_is_obj of subclasses of Generation
albertnetymk Jan 26, 2024
62b3293
8324241: Always record evol_method deps to avoid excessive method flu…
simonis Jan 26, 2024
a65a895
8315923: pretouch_memory by atomic-add-0 fragments huge pages unexpec…
limingliu-ampere Jan 26, 2024
91d8ea7
8323835: Updating ASM to 9.6 for JDK 23
Jan 26, 2024
6d18562
8324785: ProblemList two tests on linux due to JDK-8315923
Jan 26, 2024
ed3272c
8042981: Strip type annotations in Types' utility methods
jddarcy Jan 26, 2024
70f4a4e
8324786: validate-source fails after JDK-8042981
Jan 26, 2024
2e748c9
8175386: Clarify exception behavior of Types utility methods
jddarcy Jan 26, 2024
525c0cd
8324752: C2 Superword: remove SuperWordRTDepCheck
eme64 Jan 29, 2024
65d6bc1
8324765: C2 SuperWord: remove dead code: SuperWord::insert_extracts
eme64 Jan 29, 2024
8950d68
8324753: [AIX] adjust os_posix after JDK-8318696
MBaesken Jan 29, 2024
af9cd97
8324800: gcc windows build broken after 8322757
TheShermanTanker Jan 29, 2024
0d5f5e1
8322484: 22-b26 Regression in J2dBench-bimg_misc-G1 (and more) on Win…
Jan 29, 2024
422020c
8210858: AArch64: remove Math.log intrinsic
tobiasholenstein Jan 29, 2024
6ad78ca
8324775: C2 SuperWord: refactor visited sets
eme64 Jan 29, 2024
f0bae79
8324750: C2: rename Matcher methods using "superword" -> "autovectori…
eme64 Jan 29, 2024
69586e7
8322996: BoxLockNode creation fails with assert(reg < CHUNK_SIZE) fai…
Jan 29, 2024
b39b876
8324304: RISC-V: add hw probe flags
Jan 29, 2024
72ba817
8324236: compiler/ciReplay/TestInliningProtectionDomain.java failed w…
chhagedorn Jan 29, 2024
628348d
8324186: Use "dmb.ishst+dmb.ishld" for release barrier
kuaiwei Jan 29, 2024
7a300b6
8324213: C1: There is no need for Canonicalizer to handle IfOp
D-D-H Jan 29, 2024
3066d49
8317572: C2 SuperWord: refactor/improve TraceSuperWord, replace Vecto…
eme64 Jan 29, 2024
4df04f0
8324769: Serial: Remove unused TenuredGeneration::unsafe_max_alloc_nogc
albertnetymk Jan 29, 2024
fe0eec7
8324840: windows-x64-slowdebug does not build anymore after JDK-8317572
Jan 29, 2024
951b5f8
8324723: GHA: Upgrade some actions to avoid deprecated Node 16
shipilev Jan 29, 2024
a6bdee4
8324681: Replace NULL with nullptr in HotSpot jtreg test native code …
coleenp Jan 29, 2024
c1281e6
8324678: Replace NULL with nullptr in HotSpot gtests
coleenp Jan 29, 2024
d1e6763
8324733: [macos14] Problem list tests which fail due to macOS bug des…
Jan 29, 2024
fb07bbe
8324717: Remove HotSpotJVMCICompilerFactory
Jan 29, 2024
84deeb6
8324667: fold Parse::seems_stable_comparison()
caojoshua Jan 29, 2024
e999dfc
8323503: x86: Shorter movptr(reg, imm) for 32-bit unsigned immediates
shipilev Jan 29, 2024
64c3642
8242564: javadoc crashes:: class cast exception com.sun.tools.javac.c…
Jan 29, 2024
b6d364a
8324865: windows-x64-slowdebug still does not build after JDK-8324840
Jan 30, 2024
a1d65eb
8324125: Improve class initialization barrier in TemplateTable::_new …
zifeihan Jan 30, 2024
fd8adf3
8324856: Serial: Move Generation::is_in to DefNewGeneration
albertnetymk Jan 30, 2024
f0024f5
8324734: Relax too-strict assert(VM_Version::supports_evex()) in Asse…
rkennke Jan 30, 2024
f57c722
8324880: Rename get_stack_trace.h
Jan 30, 2024
d51aaf6
8323950: Null CLD while loading shared lambda proxy class with javaag…
calvinccheung Jan 30, 2024
11e28bd
8324794: C2 SuperWord: do not ignore reductions in SuperWord::unrolli…
eme64 Jan 30, 2024
8892d45
8324582: Replace -Djava.util.concurrent.ForkJoinPool.common.paralleli…
lmesnik Jan 30, 2024
c3c1d5b
8324998: Add test cases for String.regionMatches comparing Turkic dot…
Jan 30, 2024
7d1a488
8324861: Exceptions::wrap_dynamic_exception() doesn't have ResourceMark
lmesnik Jan 30, 2024
83b3c9b
8322649: Improve class initialization barrier in TemplateTable::_new …
offamitkumar Jan 31, 2024
577de17
8259550: The content of the print out displayed incomplete with the N…
Jan 31, 2024
f7121de
8322648: Improve class initialization barrier in TemplateTable::_new …
Jan 31, 2024
ec56c72
8323601: Improve LayoutPath.PathElement::toString
minborg Jan 31, 2024
b5c267f
8324632: Update Zlib Data Compression Library to Version 1.3.1
Jan 31, 2024
ec6c35c
8324970: Serial: Refactor signature of maintain_old_to_young_invariant
albertnetymk Jan 31, 2024
725314f
8324771: Obsolete RAMFraction related flags
albertnetymk Jan 31, 2024
6697160
8320712: Rewrite BadFactoryTest in pure Java
Jan 31, 2024
1733d2e
8303374: Implement JEP 455: Primitive Types in Patterns, instanceof, …
biboudis Jan 31, 2024
2cd1ba6
8324981: Shenandoah: Move commit and soft max heap changed methods in…
Jan 31, 2024
1f2922a
8320342: Use PassFailJFrame for TruncatedPopupMenuTest.java
rajamah Jan 31, 2024
62c9530
8324238: [macOS] java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSomet…
Jan 31, 2024
f292053
8323621: JDK build should exclude snippet class in java.lang.foreign
minborg Jan 31, 2024
0cc8e5b
8325042: remove unused JVMDITools test files
Jan 31, 2024
5b9b176
8324174: assert(m->is_entered(current)) failed: invariant
Jan 31, 2024
0b099d1
Merge branch 'sapmachine' into pr-jdk-23+8
RealCLanger Feb 5, 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
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/actions/do-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ runs:
shell: bash

- name: 'Upload build logs'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: failure-logs-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: failure-logs
if: steps.check.outputs.failure == 'true'

# This is the best way I found to abort the job with an error message
- name: 'Notify about build failures'
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: core.setFailed('Build failed. See summary for details.')
if: steps.check.outputs.failure == 'true'
2 changes: 1 addition & 1 deletion .github/actions/get-bootjdk/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ runs:

- name: 'Check cache for BootJDK'
id: get-cached-bootjdk
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: bootjdk/jdk
key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }}
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/get-bundles/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,14 @@ runs:
steps:
- name: 'Download bundles artifact'
id: download-bundles
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
continue-on-error: true

- name: 'Download bundles artifact (retry)'
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/get-jtreg/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ runs:

- name: 'Check cache for JTReg'
id: get-cached-jtreg
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: jtreg/installed
key: jtreg-${{ steps.version.outputs.value }}
Expand Down
3 changes: 1 addition & 2 deletions .github/actions/get-msys2/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ runs:
using: composite
steps:
- name: 'Install MSYS2'
# use a specific release of msys2/setup-msys2 to prevent jtreg build failures on newer release
uses: msys2/setup-msys2@7efe20baefed56359985e327d329042cde2434ff
uses: msys2/[email protected]
with:
install: 'autoconf tar unzip zip make'
path-type: minimal
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/upload-bundles/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ runs:
shell: bash

- name: 'Upload bundles artifact'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
Expand Down
1 change: 1 addition & 0 deletions .github/scripts/gen-test-summary.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ error_count=$(echo $errors | wc -w || true)

if [[ "$failures" = "" && "$errors" = "" ]]; then
# We know something went wrong, but not what
echo 'failure=true' >> $GITHUB_OUTPUT
echo 'error-message=Unspecified test suite failure. Please see log for job for details.' >> $GITHUB_OUTPUT
exit 0
fi
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-cross-compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ jobs:

- name: 'Check cache for sysroot'
id: get-cached-sysroot
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: sysroot
key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('./.github/workflows/build-cross-compile.yml') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ jobs:
# Hack to get hold of the api environment variables that are only defined for actions
- name: 'Get API configuration'
id: api
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }'

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,15 +206,15 @@ jobs:
if: always()

- name: 'Upload test results'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
path: results
name: ${{ steps.package.outputs.artifact-name }}
if: always()

# This is the best way I found to abort the job with an error message
- name: 'Notify about test failures'
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: core.setFailed('${{ steps.run-tests.outputs.error-message }}')
if: steps.run-tests.outputs.failure == 'true'
12 changes: 6 additions & 6 deletions make/conf/github-actions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@ GTEST_VERSION=1.14.0
JTREG_VERSION=7.3.1+1

LINUX_X64_BOOT_JDK_EXT=tar.gz
LINUX_X64_BOOT_JDK_URL=https://github.com/SAP/SapMachine/releases/download/sapmachine-21.0.1/sapmachine-jdk-21.0.1_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=450426abc41695696c49c02df437882e6763344522c70a46ae6b0b682ba370ff
LINUX_X64_BOOT_JDK_URL=https://github.com/SAP/SapMachine/releases/download/sapmachine-21.0.2/sapmachine-jdk-21.0.2_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=3123189ec5b99eed78de0328e2fd49d7c13cc7d4524c341f1fe8fbd5165be31f

MACOS_X64_BOOT_JDK_EXT=tar.gz
MACOS_X64_BOOT_JDK_URL=https://github.com/SAP/SapMachine/releases/download/sapmachine-21.0.1/sapmachine-jdk-21.0.1_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=498bdb5635be4b784ccfe12f83dc4c83f6a5fb2f37666a4fec408a2fd4083afa
MACOS_X64_BOOT_JDK_URL=https://github.com/SAP/SapMachine/releases/download/sapmachine-21.0.2/sapmachine-jdk-21.0.2_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=826fb6c8c5b4c24a1150ad3e393114a8be9072b9f9a65bc10ec8343971eb48fc

WINDOWS_X64_BOOT_JDK_EXT=zip
WINDOWS_X64_BOOT_JDK_URL=https://github.com/SAP/SapMachine/releases/download/sapmachine-21.0.1/sapmachine-jdk-21.0.1_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=d200fc7b4e5c13293caf992aef3207dd627917353c3f189901e4d95fe23bdea5
WINDOWS_X64_BOOT_JDK_URL=https://github.com/SAP/SapMachine/releases/download/sapmachine-21.0.2/sapmachine-jdk-21.0.2_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=8b2bc8007381240728ca50a23f020a3603ca84314308df707d4b3eff5b3bcfd5
3 changes: 2 additions & 1 deletion make/modules/java.base/Java.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ EXCLUDE_FILES += \

EXCLUDES += java/lang/doc-files \
java/lang/classfile/snippet-files \
java/lang/classfile/components/snippet-files
java/lang/classfile/components/snippet-files \
java/lang/foreign/snippet-files

# Exclude BreakIterator classes that are just used in compile process to generate
# data files and shouldn't go in the product
Expand Down
2 changes: 0 additions & 2 deletions make/modules/java.desktop/lib/Awt2dLibraries.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,6 @@ else
LIBFREETYPE_LIBS := -lfreetype
endif

# gcc_ftobjs.c := maybe-uninitialized required for GCC 7 builds.
$(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
NAME := freetype, \
OPTIMIZATION := HIGHEST, \
Expand All @@ -458,7 +457,6 @@ else
EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
DISABLED_WARNINGS_microsoft := 4267 4244 4996, \
DISABLED_WARNINGS_gcc := dangling-pointer stringop-overflow, \
DISABLED_WARNINGS_gcc_ftobjs.c := maybe-uninitialized, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
))
Expand Down
9 changes: 5 additions & 4 deletions src/hotspot/cpu/aarch64/aarch64.ad
Original file line number Diff line number Diff line change
Expand Up @@ -2377,7 +2377,7 @@ int Matcher::min_vector_size(const BasicType bt) {
return MIN2(size, max_size);
}

int Matcher::superword_max_vector_size(const BasicType bt) {
int Matcher::max_vector_size_auto_vectorization(const BasicType bt) {
return Matcher::max_vector_size(bt);
}

Expand Down Expand Up @@ -8289,7 +8289,7 @@ instruct membar_acquire() %{
ins_cost(VOLATILE_REF_COST);

format %{ "membar_acquire\n\t"
"dmb ish" %}
"dmb ishld" %}

ins_encode %{
__ block_comment("membar_acquire");
Expand Down Expand Up @@ -8343,11 +8343,12 @@ instruct membar_release() %{
ins_cost(VOLATILE_REF_COST);

format %{ "membar_release\n\t"
"dmb ish" %}
"dmb ishst\n\tdmb ishld" %}

ins_encode %{
__ block_comment("membar_release");
__ membar(Assembler::LoadStore|Assembler::StoreStore);
__ membar(Assembler::StoreStore);
__ membar(Assembler::LoadStore);
%}
ins_pipe(pipe_serial);
%}
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/aarch64_vector.ad
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2023, Arm Limited. All rights reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
Expand Down Expand Up @@ -126,7 +126,7 @@ source %{
}
}

bool Matcher::match_rule_supported_superword(int opcode, int vlen, BasicType bt) {
bool Matcher::match_rule_supported_auto_vectorization(int opcode, int vlen, BasicType bt) {
if (UseSVE == 0) {
// These operations are not profitable to be vectorized on NEON, because no direct
// NEON instructions support them. But the match rule support for them is profitable for
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/aarch64_vector_ad.m4
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2023, Arm Limited. All rights reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
Expand Down Expand Up @@ -116,7 +116,7 @@ source %{
}
}

bool Matcher::match_rule_supported_superword(int opcode, int vlen, BasicType bt) {
bool Matcher::match_rule_supported_auto_vectorization(int opcode, int vlen, BasicType bt) {
if (UseSVE == 0) {
// These operations are not profitable to be vectorized on NEON, because no direct
// NEON instructions support them. But the match rule support for them is profitable for
Expand Down
20 changes: 20 additions & 0 deletions src/hotspot/cpu/aarch64/assembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,26 @@ void Address::lea(MacroAssembler *as, Register r) const {
zrf(Rd, 0);
}

// This encoding is similar (but not quite identical) to the encoding used
// by literal ld/st. see JDK-8324123.
// PRFM does not support writeback or pre/post index.
void Assembler::prfm(const Address &adr, prfop pfop) {
Address::mode mode = adr.getMode();
// PRFM does not support pre/post index
guarantee((mode != Address::pre) && (mode != Address::post), "prfm does not support pre/post indexing");
if (mode == Address::literal) {
starti;
f(0b11, 31, 30), f(0b011, 29, 27), f(0b000, 26, 24);
f(pfop, 4, 0);
int64_t offset = (adr.target() - pc()) >> 2;
sf(offset, 23, 5);
} else {
assert((mode == Address::base_plus_offset)
|| (mode == Address::base_plus_offset_reg), "must be base_plus_offset/base_plus_offset_reg");
ld_st2(as_Register(pfop), adr, 0b11, 0b10);
}
}

// An "all-purpose" add/subtract immediate, per ARM documentation:
// A "programmer-friendly" assembler may accept a negative immediate
// between -(2^24 -1) and -1 inclusive, causing it to convert a
Expand Down
13 changes: 2 additions & 11 deletions src/hotspot/cpu/aarch64/assembler_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -797,6 +797,8 @@ class Assembler : public AbstractAssembler {

void adrp(Register Rd, const Address &dest, uint64_t &offset) = delete;

void prfm(const Address &adr, prfop pfop = PLDL1KEEP);

#undef INSN

void add_sub_immediate(Instruction_aarch64 &current_insn, Register Rd, Register Rn,
Expand Down Expand Up @@ -1574,17 +1576,6 @@ class Assembler : public AbstractAssembler {

#undef INSN

#define INSN(NAME, size, op) \
void NAME(const Address &adr, prfop pfop = PLDL1KEEP) { \
ld_st2(as_Register(pfop), adr, size, op); \
}

INSN(prfm, 0b11, 0b10); // FIXME: PRFM should not be used with
// writeback modes, but the assembler
// doesn't enfore that.

#undef INSN

#define INSN(NAME, size, op) \
void NAME(FloatRegister Rt, const Address &adr) { \
ld_st2(as_Register(Rt), adr, size, op, 1); \
Expand Down
16 changes: 5 additions & 11 deletions src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
Expand Down Expand Up @@ -831,18 +831,12 @@ void LIRGenerator::do_LibmIntrinsic(Intrinsic* x) {
}
break;
case vmIntrinsics::_dlog:
if (StubRoutines::dlog() != nullptr) {
__ call_runtime_leaf(StubRoutines::dlog(), getThreadTemp(), result_reg, cc->args());
} else {
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dlog), getThreadTemp(), result_reg, cc->args());
}
// Math.log intrinsic is not implemented on AArch64 (see JDK-8210858),
// but we can still call the shared runtime.
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dlog), getThreadTemp(), result_reg, cc->args());
break;
case vmIntrinsics::_dlog10:
if (StubRoutines::dlog10() != nullptr) {
__ call_runtime_leaf(StubRoutines::dlog10(), getThreadTemp(), result_reg, cc->args());
} else {
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dlog10), getThreadTemp(), result_reg, cc->args());
}
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dlog10), getThreadTemp(), result_reg, cc->args());
break;
case vmIntrinsics::_dpow:
if (StubRoutines::dpow() != nullptr) {
Expand Down
2 changes: 2 additions & 0 deletions src/hotspot/cpu/aarch64/globals_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ define_pd_global(intx, InlineSmallCode, 1000);
range(1, 99) \
product(ccstr, UseBranchProtection, "none", \
"Branch Protection to use: none, standard, pac-ret") \
product(bool, AlwaysMergeDMB, false, DIAGNOSTIC, \
"Always merge DMB instructions in code emission") \

// end of ARCH_FLAGS

Expand Down
21 changes: 14 additions & 7 deletions src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2066,14 +2066,21 @@ void MacroAssembler::membar(Membar_mask_bits order_constraint) {
address last = code()->last_insn();
if (last != nullptr && nativeInstruction_at(last)->is_Membar() && prev == last) {
NativeMembar *bar = NativeMembar_at(prev);
// We are merging two memory barrier instructions. On AArch64 we
// can do this simply by ORing them together.
bar->set_kind(bar->get_kind() | order_constraint);
BLOCK_COMMENT("merged membar");
} else {
code()->set_last_insn(pc());
dmb(Assembler::barrier(order_constraint));
// Don't promote DMB ST|DMB LD to DMB (a full barrier) because
// doing so would introduce a StoreLoad which the caller did not
// intend
if (AlwaysMergeDMB || bar->get_kind() == order_constraint
|| bar->get_kind() == AnyAny
|| order_constraint == AnyAny) {
// We are merging two memory barrier instructions. On AArch64 we
// can do this simply by ORing them together.
bar->set_kind(bar->get_kind() | order_constraint);
BLOCK_COMMENT("merged membar");
return;
}
}
code()->set_last_insn(pc());
dmb(Assembler::barrier(order_constraint));
}

bool MacroAssembler::try_merge_ldst(Register rt, const Address &adr, size_t size_in_bytes, bool is_store) {
Expand Down
5 changes: 0 additions & 5 deletions src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1425,11 +1425,6 @@ class MacroAssembler: public Assembler {
FloatRegister vtmp2, FloatRegister vtmp3,
FloatRegister vtmp4, FloatRegister vtmp5);

void fast_log(FloatRegister vtmp0, FloatRegister vtmp1, FloatRegister vtmp2,
FloatRegister vtmp3, FloatRegister vtmp4, FloatRegister vtmp5,
FloatRegister tmpC1, FloatRegister tmpC2, FloatRegister tmpC3,
FloatRegister tmpC4, Register tmp1, Register tmp2,
Register tmp3, Register tmp4, Register tmp5);
void generate_dsin_dcos(bool isCos, address npio2_hw, address two_over_pi,
address pio2, address dsin_coef, address dcos_coef);
private:
Expand Down
Loading