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 #169

Closed
wants to merge 147 commits into from
Closed
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
02201d1
7131400: [macosx] Desktop.edit(a directory) should throw IOException
mrserb Jun 22, 2020
3c472b6
8198623: java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogBut…
Jun 22, 2020
2c868d6
Merge
prrace Jun 22, 2020
a1b5e01
8213535: Windows HiDPI html lightweight tooltips are truncated
mrserb Jun 24, 2020
921155d
8036604: Typo in BufferedBufImgOps.java in the exception message
turbanoff Jun 25, 2020
f23c983
8248468: java/awt/font/DefaultFontTest/DefaultFontTest.java fails in …
MBaesken Jun 29, 2020
5699024
8197560: test javax/swing/JTree/8003400/Test8003400.java fails
Jul 1, 2020
eb78035
8247741: Test test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOp…
Jul 1, 2020
03d47d5
8248359: Update JVMCI
Jul 1, 2020
292a3d5
Merge
JesperIRL Jul 1, 2020
32aa661
8247534: Update --release 15 symbol information for JDK 15 build 29
jddarcy Jul 1, 2020
4b85bd5
8248610: Clean up handling of Windows RC files
magicus Jul 1, 2020
dc74336
8243586: Optimize calls to SystemDictionaryShared::define_shared_pack…
calvinccheung Jul 1, 2020
bf04926
8005088: remove unused NativeInstruction::test methods
Jul 1, 2020
7e93e03
8248612: Back quotes and double quotes must not be escaped in: Cannot…
DamonFool Jul 1, 2020
637fdbc
Added tag jdk-16+4 for changeset 78c07dd72404
JesperIRL Jul 2, 2020
43a2010
Merge
JesperIRL Jul 2, 2020
c3ec97d
8248187: javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119…
prsadhuk Jul 2, 2020
911c553
8245921: Minor copy/paste issue in BasicScrollBarUI
prsadhuk Jul 2, 2020
5fbac4a
8244324: RTFEditorKit does not display some of Japanese characters co…
vyommani Jul 2, 2020
00e0a60
8248632: Shenandoah: build fails without both JVMTI and JFR
shipilev Jul 2, 2020
51937e1
8248634: Shenandoah: incorrect include in shenandoahInitLogger.cpp
shipilev Jul 2, 2020
dc63bf2
8248650: [BACKOUT] Backout JDK-8244603 because it generates too much …
Jul 2, 2020
3d9bad1
8218021: Have jarsigner preserve posix permission attributes
coffeys Jul 2, 2020
1356a0f
8248667: Need support for building native libraries located in the te…
magicus Jul 2, 2020
4e962f9
8248321: [JVMCI] improve libgraal logging and fatal error handling
Jul 2, 2020
1eaa411
Added tag jdk-16+4 for changeset e2622818f0bd
JesperIRL Jul 2, 2020
78b9de8
8248495: [macos] zerovm is broken due to libffi headers location
Jul 2, 2020
579ed70
8248417: some jdk/javadoc/doclet tests fail (JDK 16)
jonathan-gibbons Jul 2, 2020
ec25b42
8076985: Allocation path: biased locking + compressed oops code quality
Jul 2, 2020
8b7c959
8247922: Update Graal
dean-long Jul 2, 2020
4858141
8247533: SA stack walking sometimes fails with sun.jvm.hotspot.debugg…
plummercj Jul 2, 2020
6b8bf62
Merge
JesperIRL Jul 2, 2020
e0c26b3
8248348: Regression caused by the update to BCEL 6.0
JoeWang-Java Jul 3, 2020
af51a73
8244383: jhsdb/HeapDumpTestWithActiveProcess.java fails with "Asserti…
plummercj Jul 3, 2020
3961468
Merge
prsadhuk Jul 3, 2020
e2072bb
8245302: Upgrade LogRecord to support long thread ids and remove its …
Jul 3, 2020
4506975
8248398: Add diagnostic RepeatCompilation utility
Jul 3, 2020
20147c3
Merge
prsadhuk Jul 3, 2020
83fff05
8248306: gc/stress/gclocker/TestExcessGCLockerCollections.java does n…
Jul 3, 2020
4922a35
Merge
JesperIRL Jul 3, 2020
54c0178
8041705: Bugs in DefaultTreeCellRenderer.updateUI()
trebari Jul 9, 2020
13bcda4
8041701: Nimbus JTree renderer properties persist across L&F changes
trebari Jul 15, 2020
7a0914c
8248802: Add log helper methods to FontUtilities.java
MBaesken Jul 14, 2020
d11b007
8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.…
arapte Jul 15, 2020
39d4b22
8249619: Nimbus L&F Fix for 8041701 is causing some Nimbus tests to fail
trebari Jul 17, 2020
c9f9fde
8245785: javax.swing.JTabbedPane cannot be deserialized
prsadhuk Jul 18, 2020
df3c552
8042055: Nimbus DerivedColor incorrectly clamps hue
prsadhuk Jul 18, 2020
ca2df0e
8245159: Font.getStringBounds() throws IAE for empty string if the Fo…
prrace Jul 19, 2020
3ec5f6b
8249725: testbug: ZeroWithStringBoundsTest.java needs update to copyr…
prrace Jul 20, 2020
1ce6ec6
8199529: javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java…
prrace Jul 21, 2020
631085b
Merge
prrace Jul 21, 2020
3e641b7
8249588: libwindowsaccessbridge issues on 64bit Windows
MBaesken Jul 16, 2020
b1ff2bd
8249821: Separate libharfbuzz from libfontmanager
prrace Jul 22, 2020
33016a8
8249880: JVMCI calling register_nmethod without CodeCache lock
Jul 22, 2020
f8a06bc
8245311: [macos] misc package tests failed due to "execution error: F…
Jul 22, 2020
54ad4f9
Added tag jdk-15+33 for changeset 6b65f4e7a975
vidmik Jul 23, 2020
668acc7
Added tag jdk-16+7 for changeset c3a4a7ea7c30
vidmik Jul 23, 2020
9cf96bf
Merge
vidmik Jul 23, 2020
401d3ea
8249875: GCC 10 warnings -Wtype-limits with JFR code
YaSuenag Jul 23, 2020
1b1c1cd
8249940: Remove unnecessary includes of jni_util.h in native tests
Jul 23, 2020
2f8653f
8248666: AArch64: Use THREAD_LOCAL instead of __thread
lewurm Jul 22, 2020
993b1b0
8249612: Remove unused ISNANF and ISNAND from jdk_util_md.h
Jul 23, 2020
63d2421
8249888: failure to create a libgraal JavaVM should result in a VM crash
Jul 23, 2020
dc80e63
8249953: Shenandoah: gc/shenandoah/mxbeans tests should account for c…
shipilev Jul 23, 2020
a28f410
8249787: Make TestGCLocker more resilient with concurrent GCs
rkennke Jul 23, 2020
1f63603
8248655: Support supplementary characters in String case insensitive …
naotoj Jul 23, 2020
8b87402
8247592: refactor test/jdk/tools/launcher/Test7029048.java
bell-sw Jul 23, 2020
5088193
8249630: unused is_static_archive parameter in SystemDictionaryShared…
calvinccheung Jul 23, 2020
6e198fe
8249197: JShell: variable declaration with unicode type name gets gar…
Jul 23, 2020
8a9d2b0
8250216: The README need not mention retrieving source code
mbreinhold Jul 23, 2020
bb6647c
8250221: Address use of default constructors in java.logging
jddarcy Jul 23, 2020
6d665ed
8249192: MonitorInfo stores raw oops across safepoints
Jul 23, 2020
9f23c2c
8249812: java/net/DatagramSocket/PortUnreachable.java still fails int…
dfuch Jul 23, 2020
2abefad
8250236: ProblemList java/lang/invoke/lambda/LambdaFileEncodingSerial…
Jul 23, 2020
5c8a154
8250237: Address use of default constructors in the javax.script package
jddarcy Jul 23, 2020
e427697
8246373: AArch64: Refactor register spilling code in ZGC barriers
Jul 24, 2020
1f91e0e
8194309: JNI handle allocation failure not reported correctly
Jul 24, 2020
0ef8029
8250240: Address use of default constructors in the java.util.concurrent
jddarcy Jul 24, 2020
55b19e8
8247908: Replace IsRegisteredEnum with std::is_enum
Jul 24, 2020
df923ff
8249944: Move and improve the AllStatic class
Jul 24, 2020
22006dc
8249781: AArch64: AOT compiled code crashes if C2 allocates r27
nick-arm Jul 24, 2020
eaeb435
8249225: Move definition of PADDING_ELEM_NUM
Jul 24, 2020
26680f0
8248668: AArch64: Avoid MIN/MAX macros when using MSVC
mo-beck Jul 24, 2020
8b005fa
8249945: Improve ARRAY_SIZE()
Jul 24, 2020
778d8a4
8245306: Update sun.security.ssl.SSLLogger to use Immutable DateTimeF…
rhyadav Jul 24, 2020
c63911b
8249822: SymbolPropertyTable creates an extra OopHandle per entry
coleenp Jul 24, 2020
f79b7e6
Merge
Michael-Mc-Mahon Jul 24, 2020
4a1d4be
8248870: AARCH64: I2L/L2I conversions can be skipped for masked posit…
Jul 24, 2020
bd12e85
8249938: Move mirror oops from Universe into OopStorage
coleenp Jul 24, 2020
890ca6e
8222582: [TESTBUG] AbstractMethodErrorTest.java fails with "did not t…
Jul 24, 2020
77c4adb
8249189: AARCH64: more L2I conversions can be skipped
Jul 24, 2020
cbf6894
8250516: [BACKOUT] Move mirror oops from Universe into OopStorage
coleenp Jul 24, 2020
75d642a
8243057: compilation of annotated static record fields fails with NPE
Jul 24, 2020
e6875c9
Merge
coleenp Jul 24, 2020
a0149f5
8249217: Unexpected StackOverflowError in "process reaper" thread sti…
Jul 24, 2020
922ba8d
8240777: Update all nroff manpages for JDK 15 release
Jul 24, 2020
4b076cb
8249624: update appcds/sharedStrings/IncompatibleOptions test in view…
yminqi Jul 24, 2020
fcd5d41
8246094: [macos] Sound Recording and playback is not working
erikj79 Jul 24, 2020
9b73fb1
8250557: Rename vmTestbase/nsk shared timeout handler package to Term…
Jul 24, 2020
5db5834
8250246: Address reliance on default constructors in security libs
jddarcy Jul 24, 2020
bbddae5
8248248: [macos] EmptyFolderPackageTest.java fails EmptyFolderPackage…
Jul 24, 2020
41eaa00
8250548: libgraal can deadlock in -Xcomp mode
Jul 25, 2020
091b0c9
Merge
prsadhuk Jul 25, 2020
cce3929
8247960: jarsigner says "signer errors" for some normal warnings when…
Jul 25, 2020
ac4dc04
8250519: [REDO] Move mirror oops from Universe into OopStorage
coleenp Jul 25, 2020
0e54ce2
8250244: Address reliance on default constructors in java.net
jddarcy Jul 25, 2020
c0b9999
8250578: Address reliance on default constructors in javax.sql
jddarcy Jul 25, 2020
5a365e8
8248239: jpackage adds some arguments twice in case it is re-executed…
bell-sw Jul 24, 2020
dfd3080
8250583: Address reliance on default constructors in java.management
jddarcy Jul 25, 2020
831e983
Merge
prsadhuk Jul 26, 2020
112bbcb
8249087: Always initialize _body[0..1] in Symbol constructor
iklam Jul 24, 2020
3dba35d
8247296: Optimize JVM_GetDeclaringClass
Jul 27, 2020
f84b5d2
8248362: JVMTI frame operations should use Thread-Local Handshake
YaSuenag Jul 27, 2020
761a92d
8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too b…
Jul 27, 2020
417e8e4
8248552: C2 crashes with SIGFPE due to division by zero
chhagedorn Jul 27, 2020
af8c3b4
8242036: G1 HeapRegionRemSet::_n_coarse_entries could be a bool
albertnetymk Jul 27, 2020
6c2ff17
8249829: javac is issuing an incorrect static access error
Jul 27, 2020
31753ef
8250582: Revert Principal Name type to NT-UNKNOWN when requesting TGS…
martinuy Jul 25, 2020
ed7f796
8250213: Address use of default constructors in com.sun.source.util
jddarcy Jul 27, 2020
277ec3d
8216324: GetClassMethods is confused by the presence of default metho…
Jul 27, 2020
f2e6915
8250556: revert JVMCI part of JDK-8230395
Jul 27, 2020
2aa291a
8247630: Use two key share entries
Jul 28, 2020
188ad97
8247976: Update HotSpot Style Guide for C++14 adoption
Jul 28, 2020
e7289aa
Merge
vidmik Jul 28, 2020
5b99c6a
8250605: Linux x86_32 builds fail after JDK-8249821
shipilev Jul 28, 2020
0ebcf5c
8237483: AArch64 C1 OopMap inserted twice fatal error
nick-arm Jul 28, 2020
42ac8e1
8250042: Clean up methodOop and method_oop names from the code
coleenp Jul 28, 2020
aff80ee
8250589: Move Universe::_reference_pending_list into OopHandle
coleenp Jul 28, 2020
31368cd
8249602: C2: assert(cnt == _outcnt) failed: no insertions allowed
chhagedorn Jul 28, 2020
3a8a15b
8250588: Shenandoah: LRB needs to save/restore fp registers for runti…
zhengyu123 Jul 28, 2020
03cf1c3
8250688: missed open parenthesis for GTEST_FRAMEWORK_SRC var in Main.gmk
iignatev Jul 28, 2020
8a96756
8250640: Address reliance on default constructors in jdk.jdi
jddarcy Jul 28, 2020
1a5ef66
8249219: Update --release 15 symbol information for JDK 15 build 33
jddarcy Jul 28, 2020
ab729d7
8247515: OSX pc_to_symbol() lookup does not work with core files
plummercj Jul 28, 2020
816a706
8248882: SA PMap and PStack support on OSX works with core files. Ena…
plummercj Jul 28, 2020
99ae955
8250562: Clean up weird comment in vmTestbase class Terminator.java
Jul 28, 2020
f430153
8250738: C2Compiler::is_intrinsic_supported(methodHandle&, bool) shou…
iignatev Jul 28, 2020
0b42b1c
8250739: remove Compile::Generate_*_Graph methods declarations
iignatev Jul 28, 2020
77a10a1
8250580: Address reliance on default constructors in java.rmi
jddarcy Jul 28, 2020
64d130e
8249643: Clarify DOM documentation
JoeWang-Java Jul 28, 2020
76baa50
8250742: ProblemList serviceability/sa/ClhsdbPstack.java #id0 and #id…
plummercj Jul 28, 2020
25d1305
Merge
vidmik Jul 29, 2020
a72a898
8249719: MethodHandle performance suffers from bad ResolvedMethodTabl…
Jul 24, 2020
3349e10
8250612: jvmciCompilerToVM.cpp declares jio_printf with "void" return…
shipilev Jul 29, 2020
6af643e
8248657: Windows: strengthening in ThreadCritical regarding memory model
luhenry Jul 29, 2020
3eb9890
Merge tag 'jdk-16+8' into lworld_merge_jdk_16_8
MrSimms Sep 1, 2020
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
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .hgtags
Original file line number Diff line number Diff line change
@@ -656,3 +656,5 @@ a32f58c6b8be81877411767de7ba9c4cf087c1b5 jdk-15+31
143e258f64af490010eb7e0bacc1cfaeceff0993 jdk-16+5
2dad000726b8d5db9f3df647fb4949d88f269dd4 jdk-15+32
4a8fd81d64bafa523cddb45f82805536edace106 jdk-16+6
6b65f4e7a975628df51ef755b02642075390041d jdk-15+33
c3a4a7ea7c304cabdacdc31741eb94c51351668d jdk-16+7
8 changes: 4 additions & 4 deletions README
Original file line number Diff line number Diff line change
@@ -2,11 +2,11 @@
Welcome to the JDK!
===================

For information about building the JDK, including how to retrieve all
of the source code, please see either of these files:
For build instructions, please see either of these files:

* doc/building.html (html version)
* doc/building.md (markdown version)

See http://openjdk.java.net/ for more information about the OpenJDK
Community and the JDK.
See https://openjdk.java.net/ for more information about
the OpenJDK Community and the JDK.

319 changes: 319 additions & 0 deletions doc/hotspot-style.html

Large diffs are not rendered by default.

810 changes: 810 additions & 0 deletions doc/hotspot-style.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion make/Main.gmk
Original file line number Diff line number Diff line change
@@ -678,7 +678,7 @@ $(eval $(call SetupTarget, test-image-hotspot-jtreg-graal, \
DEPS := build-test-hotspot-jtreg-graal, \
))

ifneq ($GTEST_FRAMEWORK_SRC), )
ifneq ($(GTEST_FRAMEWORK_SRC), )
$(eval $(call SetupTarget, test-image-hotspot-gtest, \
MAKEFILE := hotspot/test/GtestImage, \
DEPS := hotspot, \
18 changes: 15 additions & 3 deletions make/common/modules/LauncherCommon.gmk
Original file line number Diff line number Diff line change
@@ -102,12 +102,22 @@ define SetupBuildLauncherBody

ifeq ($(call isTargetOs, macosx), true)
ifeq ($$($1_MACOSX_PRIVILEGED), true)
$1_PLIST_FILE := Info-privileged.plist
$1_PLIST_SRC_FILE := Info-privileged.plist
else
$1_PLIST_FILE := Info-cmdline.plist
$1_PLIST_SRC_FILE := Info-cmdline.plist
endif

$1_LDFLAGS += -sectcreate __TEXT __info_plist $(MACOSX_PLIST_DIR)/$$($1_PLIST_FILE)
$1_PLIST_FILE := $$(SUPPORT_OUTPUTDIR)/native/$$(MODULE)/$1/Info.plist

$$(eval $$(call SetupTextFileProcessing, BUILD_PLIST_$1, \
SOURCE_FILES := $$(TOPDIR)/src/java.base/macosx/native/launcher/$$($1_PLIST_SRC_FILE), \
OUTPUT_FILE := $$($1_PLIST_FILE), \
REPLACEMENTS := \
@@ID@@ => $(MACOSX_BUNDLE_ID_BASE).$(VERSION_SHORT).$1 ; \
@@VERSION@@ => $(VERSION_NUMBER) ; \
))

$1_LDFLAGS += -sectcreate __TEXT __info_plist $$($1_PLIST_FILE)

ifeq ($(STATIC_BUILD), true)
$1_LDFLAGS += -exported_symbols_list \
@@ -167,6 +177,8 @@ define SetupBuildLauncherBody
$1 += $$(BUILD_LAUNCHER_$1)
TARGETS += $$($1)

$$(BUILD_LAUNCHER_$1): $$(BUILD_PLIST_$1)

ifeq ($(call isTargetOs, aix), true)
$$(BUILD_LAUNCHER_$1): $(call FindStaticLib, java.base, jli_static)
endif
2 changes: 2 additions & 0 deletions make/data/bundle/JDK-Info.plist
Original file line number Diff line number Diff line change
@@ -22,6 +22,8 @@
<string>????</string>
<key>CFBundleVersion</key>
<string>@@VERSION@@</string>
<key>NSMicrophoneUsageDescription</key>
<string>The application is requesting access to the microphone.</string>
<key>JavaVM</key>
<dict>
<key>JVMCapabilities</key>
2 changes: 2 additions & 0 deletions make/data/bundle/JRE-Info.plist
Original file line number Diff line number Diff line change
@@ -22,6 +22,8 @@
<string>????</string>
<key>CFBundleVersion</key>
<string>@@VERSION@@</string>
<key>NSMicrophoneUsageDescription</key>
<string>The application is requesting access to the microphone.</string>
<key>JavaVM</key>
<dict>
<key>JVMMinimumFrameworkVersion</key>
3 changes: 3 additions & 0 deletions make/data/symbols/java.base-F.sym.txt
Original file line number Diff line number Diff line change
@@ -69,6 +69,9 @@ class name java/lang/Math
method name absExact descriptor (I)I flags 9
method name absExact descriptor (J)J flags 9

class name java/lang/NullPointerException
method name fillInStackTrace descriptor ()Ljava/lang/Throwable; flags 21

class name java/lang/Short
header extends java/lang/Number implements java/lang/Comparable,java/lang/constant/Constable flags 31 signature Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Short;>;Ljava/lang/constant/Constable;
method name describeConstable descriptor ()Ljava/util/Optional; flags 1 signature ()Ljava/util/Optional<Ljava/lang/constant/DynamicConstantDesc<Ljava/lang/Short;>;>;
3 changes: 2 additions & 1 deletion make/hotspot/lib/CompileJvm.gmk
Original file line number Diff line number Diff line change
@@ -95,7 +95,8 @@ DISABLED_WARNINGS_clang := tautological-compare \

DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value

DISABLED_WARNINGS_microsoft := 4100 4127 4201 4244 4291 4351 4511 4512 4514 4996
DISABLED_WARNINGS_microsoft := 4100 4127 4201 4244 4291 4351 \
4511 4512 4514 4624 4996

################################################################################
# Platform specific setup
89 changes: 67 additions & 22 deletions make/modules/java.desktop/lib/Awt2dLibraries.gmk
Original file line number Diff line number Diff line change
@@ -432,10 +432,15 @@ endif

###########################################################################

#### Begin harfbuzz configuration

HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND

# This is better than adding EXPORT_ALL_SYMBOLS
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
else ifeq ($(TOOLCHAIN_TYPE), microsoft)
HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
endif

ifeq ($(call isTargetOs, windows), false)
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
@@ -448,27 +453,74 @@ ifeq ($(call isTargetOs, macosx), true)
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
endif
ifeq ($(call isTargetOs, macosx), false)
LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
endif
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc

LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)

# For use by libfontmanager:
ifeq ($(call isTargetOs, windows), true)
LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
else
LIBHARFBUZZ_LIBS := -lharfbuzz
endif

LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
libharfbuzz/hb-ucdn \
#

#### End harfbuzz configuration
LIBHARFBUZZ_OPTIMIZATION := HIGH

LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS

$(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
NAME := harfbuzz, \
EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
CFLAGS_windows = -DCC_NOEX, \
EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
WARNINGS_AS_ERRORS_xlc := false, \
DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
maybe-uninitialized class-memaccess, \
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
tautological-constant-out-of-range-compare int-to-pointer-cast \
undef missing-field-initializers, \
DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
LDFLAGS_aix := -Wl$(COMMA)-berok, \
LIBS := $(BUILD_LIBHARFBUZZ), \
LIBS_unix := $(LIBM) $(LIBCXX), \
LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
LIBS_windows := user32.lib, \
))

ifeq ($(FREETYPE_TO_USE), bundled)
$(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
endif

TARGETS += $(BUILD_LIBHARFBUZZ)

###########################################################################

LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
libfontmanager/harfbuzz \
libfontmanager/harfbuzz/hb-ucdn \
libharfbuzz \
common/awt \
common/font \
libawt/java2d \
libawt/java2d/pipe \
libawt/java2d/loops \
#

LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)

LIBFONTMANAGER_OPTIMIZATION := HIGH

@@ -509,29 +561,22 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
CFLAGS_windows = -DCC_NOEX, \
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
WARNINGS_AS_ERRORS_xlc := false, \
DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
type-limits missing-field-initializers implicit-fallthrough \
strict-aliasing undef unused-function, \
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
maybe-uninitialized class-memaccess, \
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
tautological-constant-out-of-range-compare int-to-pointer-cast \
sign-compare undef missing-field-initializers, \
DISABLED_WARNINGS_microsoft := 4267 4244 4018 4090 4996 4146 4334 4819 4101 4068 4805 4138, \
DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast, \
DISABLED_WARNINGS_clang := sign-compare, \
DISABLED_WARNINGS_microsoft := 4018 4146 4244 4996, \
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
LDFLAGS_aix := -Wl$(COMMA)-berok, \
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation \
-framework CoreGraphics, \
LIBS_macosx := -lawt_lwawt, \
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
$(WIN_AWT_LIB), \
))

$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) $(BUILD_LIBHARFBUZZ)

ifeq ($(call isTargetOs, macosx), true)
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
104 changes: 98 additions & 6 deletions src/hotspot/cpu/aarch64/aarch64.ad
Original file line number Diff line number Diff line change
@@ -1099,7 +1099,7 @@ source %{

// r27 is not allocatable when compressed oops is on and heapbase is not
// zero, compressed klass pointers doesn't use r27 after JDK-8234794
if (UseCompressedOops && CompressedOops::ptrs_base() != NULL) {
if (UseCompressedOops && (CompressedOops::ptrs_base() != NULL || UseAOT)) {
_NO_SPECIAL_REG32_mask.Remove(OptoReg::as_OptoReg(r27->as_VMReg()));
_NO_SPECIAL_REG_mask.SUBTRACT(_HEAPBASE_REG_mask);
_NO_SPECIAL_PTR_REG_mask.SUBTRACT(_HEAPBASE_REG_mask);
@@ -3743,7 +3743,7 @@ frame %{
// These three registers define part of the calling convention
// between compiled code and the interpreter.

// Inline Cache Register or methodOop for I2C.
// Inline Cache Register or Method for I2C.
inline_cache_reg(R12);

// Method Oop Register when calling interpreter.
@@ -4094,6 +4094,18 @@ operand immI_bitmask()
interface(CONST_INTER);
%}

operand immL_positive_bitmaskI()
%{
predicate((n->get_long() != 0)
&& ((julong)n->get_long() < 0x80000000ULL)
&& is_power_of_2(n->get_long() + 1));
match(ConL);

op_cost(0);
format %{ %}
interface(CONST_INTER);
%}

// Scale values for scaled offset addressing modes (up to long but not quad)
operand immIScale()
%{
@@ -10237,7 +10249,7 @@ instruct lshift_ext(iRegLNoSp dst, iRegIorL2I src, immI scale, rFlagsReg cr) %{
ins_encode %{
__ sbfiz(as_Register($dst$$reg),
as_Register($src$$reg),
$scale$$constant & 63, MIN(32, (-$scale$$constant) & 63));
$scale$$constant & 63, MIN2(32, (int)((-$scale$$constant) & 63)));
%}

ins_pipe(ialu_reg_shift);
@@ -12236,6 +12248,50 @@ instruct ubfizL(iRegLNoSp dst, iRegL src, immI lshift, immL_bitmask mask)
ins_pipe(ialu_reg_shift);
%}

// This pattern is automatically generated from aarch64_ad.m4
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE

// We can use ubfiz when masking by a positive number and then left shifting the result.
// We know that the mask is positive because immI_bitmask guarantees it.
instruct ubfizwIConvI2L(iRegLNoSp dst, iRegIorL2I src, immI lshift, immI_bitmask mask)
%{
match(Set dst (ConvI2L (LShiftI (AndI src mask) lshift)));
predicate((exact_log2(n->in(1)->in(1)->in(2)->get_int() + 1) + (n->in(1)->in(2)->get_int() & 31)) <= 31);

ins_cost(INSN_COST);
format %{ "ubfizw $dst, $src, $lshift, $mask" %}
ins_encode %{
int lshift = $lshift$$constant & 31;
intptr_t mask = $mask$$constant;
int width = exact_log2(mask+1);
__ ubfizw(as_Register($dst$$reg),
as_Register($src$$reg), lshift, width);
%}
ins_pipe(ialu_reg_shift);
%}

// This pattern is automatically generated from aarch64_ad.m4
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE

// We can use ubfiz when masking by a positive number and then left shifting the result.
// We know that the mask is positive because immL_bitmask guarantees it.
instruct ubfizLConvL2I(iRegINoSp dst, iRegL src, immI lshift, immL_positive_bitmaskI mask)
%{
match(Set dst (ConvL2I (LShiftL (AndL src mask) lshift)));
predicate((exact_log2_long(n->in(1)->in(1)->in(2)->get_long() + 1) + (n->in(1)->in(2)->get_int() & 63)) <= 31);

ins_cost(INSN_COST);
format %{ "ubfiz $dst, $src, $lshift, $mask" %}
ins_encode %{
int lshift = $lshift$$constant & 63;
intptr_t mask = $mask$$constant;
int width = exact_log2_long(mask+1);
__ ubfiz(as_Register($dst$$reg),
as_Register($src$$reg), lshift, width);
%}
ins_pipe(ialu_reg_shift);
%}


// This pattern is automatically generated from aarch64_ad.m4
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE
@@ -12258,6 +12314,42 @@ instruct ubfizIConvI2L(iRegLNoSp dst, iRegIorL2I src, immI lshift, immI_bitmask
ins_pipe(ialu_reg_shift);
%}

// This pattern is automatically generated from aarch64_ad.m4
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE

// If there is a convert L to I block between and AndL and a LShiftI, we can also match ubfiz
instruct ubfizLConvL2Ix(iRegINoSp dst, iRegL src, immI lshift, immL_positive_bitmaskI mask)
%{
match(Set dst (LShiftI (ConvL2I (AndL src mask)) lshift));
predicate((exact_log2_long(n->in(1)->in(1)->in(2)->get_long() + 1) + (n->in(2)->get_int() & 31)) <= 31);

ins_cost(INSN_COST);
format %{ "ubfiz $dst, $src, $lshift, $mask" %}
ins_encode %{
int lshift = $lshift$$constant & 31;
intptr_t mask = $mask$$constant;
int width = exact_log2(mask+1);
__ ubfiz(as_Register($dst$$reg),
as_Register($src$$reg), lshift, width);
%}
ins_pipe(ialu_reg_shift);
%}

// This pattern is automatically generated from aarch64_ad.m4
// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE

// Can skip int2long conversions after AND with small bitmask
instruct ubfizIConvI2LAndI(iRegLNoSp dst, iRegI src, immI_bitmask msk)
%{
match(Set dst (ConvI2L (AndI src msk)));
ins_cost(INSN_COST);
format %{ "ubfiz $dst, $src, 0, exact_log2($msk + 1) " %}
ins_encode %{
__ ubfiz(as_Register($dst$$reg), as_Register($src$$reg), 0, exact_log2($msk$$constant + 1));
%}
ins_pipe(ialu_reg_shift);
%}


// Rotations
// This pattern is automatically generated from aarch64_ad.m4
@@ -15565,13 +15657,13 @@ instruct CallLeafNoFPDirect(method meth)
// Also known as an 'interprocedural jump'.
// Target of jump will eventually return to caller.
// TailJump below removes the return address.
instruct TailCalljmpInd(iRegPNoSp jump_target, inline_cache_RegP method_oop)
instruct TailCalljmpInd(iRegPNoSp jump_target, inline_cache_RegP method_ptr)
%{
match(TailCall jump_target method_oop);
match(TailCall jump_target method_ptr);

ins_cost(CALL_COST);

format %{ "br $jump_target\t# $method_oop holds method oop" %}
format %{ "br $jump_target\t# $method_ptr holds method" %}

ins_encode(aarch64_enc_tail_call(jump_target));

Loading