Merge
This commit is contained in:
commit
833627bc3c
11
.hgtags
11
.hgtags
@ -526,3 +526,14 @@ dc1f9dec2018a37fedba47d8a2aedef99faaec64 jdk-12+19
|
||||
f8fb0c86f2b3d24294d39c5685a628e1beb14ba7 jdk-12+21
|
||||
732bec44c89e8b93a38296bf690f97b7230c5b6d jdk-12+22
|
||||
eef755718cb24813031a842bbfc716a6cea18e9a jdk-12+23
|
||||
cc4098b3bc10d1c390384289025fea7b0d4b9e93 jdk-13+0
|
||||
7d4397b43fa305806160785a4c7210600d59581a jdk-12+24
|
||||
11033c4ada542f9c9a873314b6ecf60af19e8256 jdk-13+1
|
||||
7496df94b3b79f3da53925d2d137317715f11d97 jdk-12+25
|
||||
50677f43ac3df9a8684222b8893543c60f3aa0bd jdk-13+2
|
||||
de9fd809bb475401aad188eab2264226788aad81 jdk-12+26
|
||||
642346a11059b9f283110dc301a24ed43b76a94e jdk-13+3
|
||||
f15d443f97318e9b40e6f451e327ff69ed4ec361 jdk-12+27
|
||||
a47b8125b7cc9ef59619745c163975fe935b57ed jdk-13+4
|
||||
659b004b6a1bd8c31e766cbdf328d8f8473fd4d7 jdk-12+28
|
||||
|
||||
|
@ -145,7 +145,7 @@
|
||||
<li><p>Do not check out the source code in a path which contains spaces. Chances are the build will not work. This is most likely to be an issue on Windows systems.</p></li>
|
||||
<li><p>Do not check out the source code in a path which has a very long name or is nested many levels deep. Chances are you will hit an OS limitation during the build.</p></li>
|
||||
<li><p>Put the source code on a local disk, not a network share. If possible, use an SSD. The build process is very disk intensive, and having slow disk access will significantly increase build times. If you need to use a network share for the source code, see below for suggestions on how to keep the build artifacts on a local disk.</p></li>
|
||||
<li><p>On Windows, extra care must be taken to make sure the <a href="#cygwin">Cygwin</a> environment is consistent. It is recommended that you follow this procedure:</p>
|
||||
<li><p>On Windows, if using <a href="#cygwin">Cygwin</a>, extra care must be taken to make sure the environment is consistent. It is recommended that you follow this procedure:</p>
|
||||
<ul>
|
||||
<li><p>Create the directory that is going to contain the top directory of the JDK clone by using the <code>mkdir</code> command in the Cygwin bash shell. That is, do <em>not</em> create it using Windows Explorer. This will ensure that it will have proper Cygwin attributes, and that it's children will inherit those attributes.</p></li>
|
||||
<li><p>Do not put the JDK clone in a path under your Cygwin home directory. This is especially important if your user name contains spaces and/or mixed upper and lower case letters.</p></li>
|
||||
@ -201,12 +201,12 @@
|
||||
<h3 id="windows">Windows</h3>
|
||||
<p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
|
||||
<p>On Windows, it is important that you pay attention to the instructions in the <a href="#special-considerations">Special Considerations</a>.</p>
|
||||
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layer is Cygwin. (Msys is no longer supported due to a too old bash; msys2 and the new Windows Subsystem for Linux (WSL) would likely be possible to support in a future version but that would require effort to implement.)</p>
|
||||
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layers are Cygwin and Windows Subsystem for Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would likely be possible to support in a future version but that would require effort to implement.)</p>
|
||||
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/hg/jdk9/Makefile</code> rather than <code>C:\hg\jdk9\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
|
||||
<h4 id="cygwin">Cygwin</h4>
|
||||
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is thus required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
|
||||
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
|
||||
<p><strong>Note:</strong> Cygwin has a model of continuously updating all packages without any easy way to install or revert to a specific version of a package. This means that whenever you add or update a package in Cygwin, you might (inadvertently) update tools that are used by the JDK build process, and that can cause unexpected build problems.</p>
|
||||
<p>The JDK requires GNU Make 4.0 or greater on Windows. This is usually not a problem, since Cygwin currently only distributes GNU Make at a version above 4.0.</p>
|
||||
<p>The JDK requires GNU Make 4.0 or greater in Cygwin. This is usually not a problem, since Cygwin currently only distributes GNU Make at a version above 4.0.</p>
|
||||
<p>Apart from the basic Cygwin installation, the following packages must also be installed:</p>
|
||||
<ul>
|
||||
<li><code>autoconf</code></li>
|
||||
@ -217,6 +217,11 @@
|
||||
<p>Often, you can install these packages using the following command line:</p>
|
||||
<pre><code><path to Cygwin setup>/setup-x86_64 -q -P autoconf -P make -P unzip -P zip</code></pre>
|
||||
<p>Unfortunately, Cygwin can be unreliable in certain circumstances. If you experience build tool crashes or strange issues when building on Windows, please check the Cygwin FAQ on the <a href="https://cygwin.com/faq/faq.html#faq.using.bloda">"BLODA" list</a> and the section on <a href="https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures">fork() failures</a>.</p>
|
||||
<h4 id="windows-subsystem-for-linux-wsl">Windows Subsystem for Linux (WSL)</h4>
|
||||
<p>Windows 10 1809 or newer is supported due to a dependency on the wslpath utility and support for environment variable sharing through WSLENV. Version 1803 can work but intermittent build failures have been observed.</p>
|
||||
<p>It's possible to build both Windows and Linux binaries from WSL. To build Windows binaries, you must use a Windows boot JDK (located in a Windows-accessible directory). To build Linux binaries, you must use a Linux boot JDK. The default behavior is to build for Windows. To build for Linux, pass <code>--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu</code> to <code>configure</code>.</p>
|
||||
<p>If building Windows binaries, the source code must be located in a Windows- accessible directory. This is because Windows executables (such as Visual Studio and the boot JDK) must be able to access the source code. Also, the drive where the source is stored must be mounted as case-insensitive by changing either /etc/fstab or /etc/wsl.conf in WSL. Individual directories may be corrected using the fsutil tool in case the source was cloned before changing the mount options.</p>
|
||||
<p>Note that while it's possible to build on WSL, testing is still not fully supported.</p>
|
||||
<h3 id="solaris">Solaris</h3>
|
||||
<p>See <code>make/devkit/solaris11.1-package-list.txt</code> for a list of recommended packages to install when building on Solaris. The versions specified in this list is the versions used by the daily builds at Oracle, and is likely to work properly.</p>
|
||||
<p>Older versions of Solaris shipped a broken version of <code>objcopy</code>. At least version 2.21.1 is needed, which is provided by Solaris 11 Update 1. Objcopy is needed if you want to have external debug symbols. Please make sure you are using at least version 2.21.1 of objcopy, or that you disable external debug symbols.</p>
|
||||
|
@ -75,8 +75,8 @@ on where and how to check out the source code.
|
||||
network share for the source code, see below for suggestions on how to keep
|
||||
the build artifacts on a local disk.
|
||||
|
||||
* On Windows, extra care must be taken to make sure the [Cygwin](#cygwin)
|
||||
environment is consistent. It is recommended that you follow this
|
||||
* On Windows, if using [Cygwin](#cygwin), extra care must be taken to make sure
|
||||
the environment is consistent. It is recommended that you follow this
|
||||
procedure:
|
||||
|
||||
* Create the directory that is going to contain the top directory of the
|
||||
@ -174,10 +174,10 @@ On Windows, it is important that you pay attention to the instructions in the
|
||||
|
||||
Windows is the only non-POSIX OS supported by the JDK, and as such, requires
|
||||
some extra care. A POSIX support layer is required to build on Windows.
|
||||
Currently, the only supported such layer is Cygwin. (Msys is no longer
|
||||
supported due to a too old bash; msys2 and the new Windows Subsystem for Linux
|
||||
(WSL) would likely be possible to support in a future version but that would
|
||||
require effort to implement.)
|
||||
Currently, the only supported such layers are Cygwin and Windows Subsystem for
|
||||
Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would
|
||||
likely be possible to support in a future version but that would require effort
|
||||
to implement.)
|
||||
|
||||
Internally in the build system, all paths are represented as Unix-style paths,
|
||||
e.g. `/cygdrive/c/hg/jdk9/Makefile` rather than `C:\hg\jdk9\Makefile`. This
|
||||
@ -188,7 +188,7 @@ on [Fixpath](#fixpath).
|
||||
|
||||
#### Cygwin
|
||||
|
||||
A functioning [Cygwin](http://www.cygwin.com/) environment is thus required for
|
||||
A functioning [Cygwin](http://www.cygwin.com/) environment is required for
|
||||
building the JDK on Windows. If you have a 64-bit OS, we strongly recommend
|
||||
using the 64-bit version of Cygwin.
|
||||
|
||||
@ -198,7 +198,7 @@ that whenever you add or update a package in Cygwin, you might (inadvertently)
|
||||
update tools that are used by the JDK build process, and that can cause
|
||||
unexpected build problems.
|
||||
|
||||
The JDK requires GNU Make 4.0 or greater on Windows. This is usually not a
|
||||
The JDK requires GNU Make 4.0 or greater in Cygwin. This is usually not a
|
||||
problem, since Cygwin currently only distributes GNU Make at a version above
|
||||
4.0.
|
||||
|
||||
@ -221,6 +221,30 @@ please check the Cygwin FAQ on the ["BLODA" list](
|
||||
https://cygwin.com/faq/faq.html#faq.using.bloda) and the section on [fork()
|
||||
failures](https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures).
|
||||
|
||||
#### Windows Subsystem for Linux (WSL)
|
||||
|
||||
Windows 10 1809 or newer is supported due to a dependency on the wslpath utility
|
||||
and support for environment variable sharing through WSLENV. Version 1803 can
|
||||
work but intermittent build failures have been observed.
|
||||
|
||||
It's possible to build both Windows and Linux binaries from WSL. To build
|
||||
Windows binaries, you must use a Windows boot JDK (located in a
|
||||
Windows-accessible directory). To build Linux binaries, you must use a Linux
|
||||
boot JDK. The default behavior is to build for Windows. To build for Linux, pass
|
||||
`--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu` to
|
||||
`configure`.
|
||||
|
||||
If building Windows binaries, the source code must be located in a Windows-
|
||||
accessible directory. This is because Windows executables (such as Visual Studio
|
||||
and the boot JDK) must be able to access the source code. Also, the drive where
|
||||
the source is stored must be mounted as case-insensitive by changing either
|
||||
/etc/fstab or /etc/wsl.conf in WSL. Individual directories may be corrected
|
||||
using the fsutil tool in case the source was cloned before changing the mount
|
||||
options.
|
||||
|
||||
Note that while it's possible to build on WSL, testing is still not fully
|
||||
supported.
|
||||
|
||||
### Solaris
|
||||
|
||||
See `make/devkit/solaris11.1-package-list.txt` for a list of recommended
|
||||
|
@ -517,7 +517,7 @@ $(foreach m, $(ALL_MODULES), \
|
||||
) \
|
||||
)
|
||||
|
||||
ifneq ($(PANDOC), )
|
||||
ifeq ($(ENABLE_PANDOC), true)
|
||||
# For all markdown files in $module/share/specs directories, convert them to
|
||||
# html, if we have pandoc (otherwise we'll just skip this).
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2019, 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
|
||||
@ -34,7 +34,7 @@ include $(TOPDIR)/make/ModuleTools.gmk
|
||||
################################################################################
|
||||
|
||||
PACKAGES_ATTRIBUTE_TARGET := $(JDK_OUTPUTDIR)/_packages_attribute.done
|
||||
ALL_MODULEINFO_CLASSES := $(wildcard $(JDK_OUTPUTDIR)/modules/*/module_info.class)
|
||||
ALL_MODULEINFO_CLASSES := $(wildcard $(JDK_OUTPUTDIR)/modules/*/module-info.class)
|
||||
|
||||
$(PACKAGES_ATTRIBUTE_TARGET): $(ALL_MODULEINFO_CLASSES) $(BUILD_JIGSAW_CLASSES)
|
||||
$(call LogInfo, Optimizing the exploded image)
|
||||
|
@ -99,7 +99,8 @@ $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
|
||||
)
|
||||
ifeq ($(BUILD_CDS_ARCHIVE), true)
|
||||
$(call LogWarn, Creating CDS archive for jdk image)
|
||||
$(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
|
||||
$(FIXPATH) $(JDK_IMAGE_DIR)/bin/java \
|
||||
-Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
|
||||
endif
|
||||
$(TOUCH) $@
|
||||
|
||||
@ -114,7 +115,8 @@ $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
|
||||
)
|
||||
ifeq ($(BUILD_CDS_ARCHIVE), true)
|
||||
$(call LogWarn, Creating CDS archive for jre image)
|
||||
$(JRE_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
|
||||
$(FIXPATH) $(JRE_IMAGE_DIR)/bin/java \
|
||||
-Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
|
||||
endif
|
||||
$(TOUCH) $@
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2019, 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
|
||||
@ -484,18 +484,27 @@ define DeclareRunTestRecipe
|
||||
exploded-test-$1:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
||||
TEST="$1" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
||||
|
||||
endef
|
||||
|
||||
# ALL_NAMED_TESTS is defined in FindTests.gmk
|
||||
$(foreach t, $(ALL_NAMED_TESTS), $(eval $(call DeclareRunTestRecipe,$t)))
|
||||
ALL_TEST_TARGETS := $(addprefix test-, $(ALL_NAMED_TESTS))
|
||||
|
||||
define DeclareRunJCovTestRecipe
|
||||
jcov-test-$1:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$1" TEST_OPTS_JCOV=true)
|
||||
endef
|
||||
|
||||
# jcov-test only makes sense for some of the tests
|
||||
$(foreach t, $(JCOV_NAMED_TESTS), $(eval $(call DeclareRunJCovTestRecipe,$t)))
|
||||
ALL_JCOV_TEST_TARGETS := $(addprefix jcov-test-, $(JCOV_NAMED_TESTS))
|
||||
|
||||
# We only support the "exploded-test-gtest" shortcut
|
||||
ALL_EXPLODED_TESTS := gtest
|
||||
ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-test-, $(ALL_EXPLODED_TESTS))
|
||||
|
||||
ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS)
|
||||
ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS) $(ALL_JCOV_TEST_TARGETS)
|
||||
|
||||
################################################################################
|
||||
# Build tests and microbenchmarks
|
||||
@ -568,7 +577,11 @@ exploded-test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
|
||||
TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
||||
|
||||
ALL_TARGETS += test exploded-test
|
||||
jcov-test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$(TEST)" TEST_OPTS_JCOV=true)
|
||||
|
||||
ALL_TARGETS += test exploded-test jcov-test
|
||||
|
||||
################################################################################
|
||||
# Bundles
|
||||
@ -869,6 +882,8 @@ else
|
||||
|
||||
exploded-test: exploded-image test-image
|
||||
|
||||
jcov-test: jcov-image test-image
|
||||
|
||||
test-make: clean-test-make compile-commands
|
||||
|
||||
test-make-compile-commands: compile-commands
|
||||
@ -876,6 +891,7 @@ else
|
||||
# Declare dependency for all generated test targets
|
||||
$(foreach t, $(filter-out test-make%, $(ALL_TEST_TARGETS)), $(eval $t: jdk-image test-image))
|
||||
$(foreach t, $(ALL_EXPLODED_TEST_TARGETS), $(eval $t: exploded-image test-image))
|
||||
$(ALL_JCOV_TEST_TARGETS): jcov-image test-image
|
||||
|
||||
create-buildjdk-copy: jdk.jlink-java java.base-gendata \
|
||||
$(addsuffix -java, $(INTERIM_IMAGE_MODULES))
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2019, 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
|
||||
@ -45,7 +45,7 @@ ifneq ($(TEST_VM_OPTS), )
|
||||
endif
|
||||
|
||||
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
|
||||
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR AOT_MODULES, \
|
||||
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR AOT_MODULES JCOV, \
|
||||
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
|
||||
))
|
||||
|
||||
@ -595,9 +595,7 @@ define SetupRunGtestTestBody
|
||||
$$(eval $1_TOTAL := 1) \
|
||||
)
|
||||
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
TARGETS += $1
|
||||
TARGETS += run-test-$1 parse-test-$1
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
@ -702,9 +700,7 @@ define SetupRunMicroTestBody
|
||||
$$(eval $1_TOTAL := 1) \
|
||||
)
|
||||
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
TARGETS += $1
|
||||
TARGETS += run-test-$1 parse-test-$1
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
@ -879,6 +875,7 @@ define SetupRunJtregTestBody
|
||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, \
|
||||
$$(JCOV_ENVIRONMENT) \
|
||||
$$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
|
||||
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
|
||||
$$($1_JTREG_BASIC_OPTIONS) \
|
||||
@ -888,6 +885,7 @@ define SetupRunJtregTestBody
|
||||
-workDir:$$($1_TEST_SUPPORT_DIR) \
|
||||
$$(JTREG_OPTIONS) \
|
||||
$$(JTREG_FAILURE_HANDLER_OPTIONS) \
|
||||
$$(JTREG_JCOV_OPTIONS) \
|
||||
$$($1_TEST_NAME) \
|
||||
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||
@ -921,9 +919,7 @@ define SetupRunJtregTestBody
|
||||
$$(eval $1_TOTAL := 1) \
|
||||
)
|
||||
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
TARGETS += $1
|
||||
TARGETS += run-test-$1 parse-test-$1
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
@ -985,9 +981,7 @@ define SetupRunSpecialTestBody
|
||||
$$(eval $1_ERROR := 0)
|
||||
$$(eval $1_TOTAL := 0)
|
||||
|
||||
$1: run-test-$1 parse-test-$1
|
||||
|
||||
TARGETS += $1
|
||||
TARGETS += run-test-$1 parse-test-$1
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
@ -1098,6 +1092,55 @@ run-test: $(TARGETS)
|
||||
$(CAT) $(TEST_SUMMARY)
|
||||
$(ECHO)
|
||||
|
||||
################################################################################
|
||||
# Setup JCov
|
||||
################################################################################
|
||||
|
||||
ifeq ($(TEST_OPTS_JCOV), true)
|
||||
|
||||
JCOV_OUTPUT_DIR := $(TEST_RESULTS_DIR)/jcov-output
|
||||
JCOV_GRABBER_LOG := $(JCOV_OUTPUT_DIR)/grabber.log
|
||||
JCOV_RESULT_FILE := $(JCOV_OUTPUT_DIR)/result.xml
|
||||
JCOV_REPORT := $(JCOV_OUTPUT_DIR)/report
|
||||
JCOV_MEM_OPTIONS := -Xms64m -Xmx4g
|
||||
|
||||
ifneq ($(JCOV_IMAGE_DIR), )
|
||||
JDK_IMAGE_DIR := $(JCOV_IMAGE_DIR)
|
||||
endif
|
||||
|
||||
JCOV_ENVIRONMENT := JAVA_TOOL_OPTIONS="$(JCOV_MEM_OPTIONS)" \
|
||||
_JAVA_OPTIONS="$(JCOV_MEM_OPTIONS)"
|
||||
JTREG_JCOV_OPTIONS := -e:JAVA_TOOL_OPTIONS='$(JCOV_MEM_OPTIONS)' \
|
||||
-e:_JAVA_OPTIONS='$(JCOV_MEM_OPTIONS)'
|
||||
|
||||
jcov-do-start-grabber:
|
||||
$(call MakeDir, $(JCOV_OUTPUT_DIR))
|
||||
if $(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -status 1>/dev/null 2>&1 ; then \
|
||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600 ; \
|
||||
fi
|
||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar Grabber -v -t \
|
||||
$(JCOV_IMAGE_DIR)/template.xml -o $(JCOV_RESULT_FILE) \
|
||||
1>$(JCOV_GRABBER_LOG) 2>&1 &
|
||||
|
||||
jcov-start-grabber: jcov-do-start-grabber
|
||||
$(call LogWarn, Starting JCov Grabber...)
|
||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -t 600 -wait
|
||||
|
||||
jcov-stop-grabber:
|
||||
$(call LogWarn, Stopping JCov Grabber...)
|
||||
$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600
|
||||
|
||||
jcov-gen-report: run-test jcov-stop-grabber
|
||||
$(call LogWarn, Generating JCov report ...)
|
||||
$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar RepGen -sourcepath \
|
||||
`$(ECHO) $(TOPDIR)/src/*/share/classes/ | $(TR) ' ' ':'` -fmt html \
|
||||
-o $(JCOV_REPORT) $(JCOV_RESULT_FILE)
|
||||
|
||||
$(TARGETS): jcov-start-grabber
|
||||
all: jcov-gen-report
|
||||
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
all: run-test
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2017, 2019, 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
|
||||
@ -237,7 +237,8 @@ else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
||||
MEMORY_SIZE := $(shell \
|
||||
$(EXPR) `wmic computersystem get totalphysicalmemory -value | $(GREP) = \
|
||||
$(EXPR) `wmic computersystem get totalphysicalmemory -value \
|
||||
| $(GREP) = | $(SED) 's/\\r//g' \
|
||||
| $(CUT) -d "=" -f 2-` / 1024 / 1024 \
|
||||
)
|
||||
endif
|
||||
|
@ -223,6 +223,8 @@ AC_DEFUN([BASIC_FIXUP_PATH],
|
||||
BASIC_FIXUP_PATH_CYGWIN($1)
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
BASIC_FIXUP_PATH_MSYS($1)
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
BASIC_FIXUP_PATH_WSL($1)
|
||||
else
|
||||
# We're on a unix platform. Hooray! :)
|
||||
path="[$]$1"
|
||||
@ -270,6 +272,8 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE],
|
||||
BASIC_FIXUP_EXECUTABLE_CYGWIN($1)
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
BASIC_FIXUP_EXECUTABLE_MSYS($1)
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
BASIC_FIXUP_EXECUTABLE_WSL($1)
|
||||
else
|
||||
# We're on a unix platform. Hooray! :)
|
||||
# First separate the path from the arguments. This will split at the first
|
||||
@ -607,10 +611,21 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
|
||||
|
||||
# These are not required on all platforms
|
||||
BASIC_PATH_PROGS(CYGPATH, cygpath)
|
||||
BASIC_PATH_PROGS(WSLPATH, wslpath)
|
||||
BASIC_PATH_PROGS(DF, df)
|
||||
BASIC_PATH_PROGS(CPIO, [cpio bsdcpio])
|
||||
BASIC_PATH_PROGS(NICE, nice)
|
||||
|
||||
BASIC_PATH_PROGS(PANDOC, pandoc)
|
||||
if test -n "$PANDOC"; then
|
||||
ENABLE_PANDOC="true"
|
||||
else
|
||||
ENABLE_PANDOC="false"
|
||||
fi
|
||||
AC_SUBST(ENABLE_PANDOC)
|
||||
|
||||
BASIC_PATH_PROGS(LSB_RELEASE, lsb_release)
|
||||
BASIC_PATH_PROGS(CMD, [cmd.exe /mnt/c/Windows/System32/cmd.exe])
|
||||
])
|
||||
|
||||
###############################################################################
|
||||
@ -631,11 +646,14 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
|
||||
PATH_SEP=";"
|
||||
EXE_SUFFIX=".exe"
|
||||
BASIC_CHECK_PATHS_WINDOWS
|
||||
else
|
||||
PATH_SEP=":"
|
||||
EXE_SUFFIX=""
|
||||
fi
|
||||
AC_SUBST(PATH_SEP)
|
||||
AC_SUBST(EXE_SUFFIX)
|
||||
|
||||
# We get the top-level directory from the supporting wrappers.
|
||||
AC_MSG_CHECKING([for top-level directory])
|
||||
@ -980,6 +998,8 @@ AC_DEFUN([BASIC_CHECK_MAKE_VERSION],
|
||||
MAKE_EXPECTED_ENV='cygwin'
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
MAKE_EXPECTED_ENV='msys'
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
MAKE_EXPECTED_ENV='x86_64-.*-linux-gnu'
|
||||
else
|
||||
AC_MSG_ERROR([Unknown Windows environment])
|
||||
fi
|
||||
@ -1267,7 +1287,18 @@ AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
|
||||
if $DF $DF_LOCAL_ONLY_OPTION $1 > /dev/null 2>&1; then
|
||||
$2
|
||||
else
|
||||
$3
|
||||
# In WSL, local Windows drives are considered remote by df, but we are
|
||||
# required to build into a directory accessible from windows, so consider
|
||||
# them local here.
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
if $DF $1 | $GREP -q "^[[A-Z]]:"; then
|
||||
$2
|
||||
else
|
||||
$3
|
||||
fi
|
||||
else
|
||||
$3
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
@ -32,6 +32,13 @@ AC_DEFUN([BASIC_WINDOWS_REWRITE_AS_UNIX_PATH],
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
|
||||
$1="$unix_path"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
# wslpath does not check the input, only call if an actual windows path was
|
||||
# given.
|
||||
if $ECHO "$windows_path" | $GREP -q ["^[a-zA-Z]:[\\\\/]"]; then
|
||||
unix_path=`$WSLPATH -u "$windows_path"`
|
||||
$1="$unix_path"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
@ -44,6 +51,9 @@ AC_DEFUN([BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH],
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
windows_path=`cmd //c echo $unix_path`
|
||||
$1="$windows_path"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
windows_path=`$WSLPATH -m "$unix_path"`
|
||||
$1="$windows_path"
|
||||
fi
|
||||
])
|
||||
|
||||
@ -100,6 +110,31 @@ AC_DEFUN([BASIC_MAKE_WINDOWS_SPACE_SAFE_MSYS],
|
||||
fi
|
||||
])
|
||||
|
||||
# Helper function which possibly converts a path using DOS-style short mode.
|
||||
# If so, the updated path is stored in $new_path.
|
||||
# $1: The path to check
|
||||
AC_DEFUN([BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL],
|
||||
[
|
||||
input_path="$1"
|
||||
# Check if we need to convert this using DOS-style short mode. If the path
|
||||
# contains just simple characters, use it. Otherwise (spaces, weird characters),
|
||||
# take no chances and rewrite it.
|
||||
# Note: m4 eats our [], so we need to use @<:@ and @:>@ instead.
|
||||
has_forbidden_chars=`$ECHO "$input_path" | $GREP [[^-_/:a-zA-Z0-9\\.]]`
|
||||
if test "x$has_forbidden_chars" != x; then
|
||||
# Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
|
||||
TOPDIR_windows="$TOPDIR"
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([TOPDIR_windows])
|
||||
# First convert to Windows path to make input valid for cmd
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([input_path])
|
||||
new_path=`$CMD /c $TOPDIR_windows/make/scripts/windowsShortName.bat "$input_path" \
|
||||
| $SED -e 's|\r||g' \
|
||||
| $TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
# Rewrite back to unix style
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||
fi
|
||||
])
|
||||
|
||||
# FIXME: The BASIC_FIXUP_*_CYGWIN/MSYS is most likely too convoluted
|
||||
# and could probably be heavily simplified. However, all changes in this
|
||||
# area tend to need lot of testing in different scenarios, and in lack of
|
||||
@ -157,6 +192,23 @@ AC_DEFUN([BASIC_FIXUP_PATH_MSYS],
|
||||
all_fixpath_prefixes=("${all_fixpath_prefixes@<:@@@:>@}" "${new_path:0:10}")
|
||||
])
|
||||
|
||||
AC_DEFUN([BASIC_FIXUP_PATH_WSL],
|
||||
[
|
||||
# Input might be given as Windows format, start by converting to
|
||||
# unix format.
|
||||
new_path="[$]$1"
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||
|
||||
# Call helper function which possibly converts this using DOS-style short mode.
|
||||
# If so, the updated path is stored in $new_path.
|
||||
BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL([$new_path])
|
||||
|
||||
if test "x$path" != "x$new_path"; then
|
||||
$1="$new_path"
|
||||
AC_MSG_NOTICE([Rewriting $1 to "$new_path"])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_CYGWIN],
|
||||
[
|
||||
# First separate the path from the arguments. This will split at the first
|
||||
@ -305,6 +357,79 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE_MSYS],
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_WSL],
|
||||
[
|
||||
# First separate the path from the arguments. This will split at the first
|
||||
# space.
|
||||
complete="[$]$1"
|
||||
path="${complete%% *}"
|
||||
tmp="$complete EOL"
|
||||
arguments="${tmp#* }"
|
||||
|
||||
# Input might be given as Windows format, start by converting to
|
||||
# unix format.
|
||||
new_path="$path"
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||
|
||||
# Now try to locate executable using which
|
||||
new_path_bak="$new_path"
|
||||
new_path=`$WHICH "$new_path" 2> /dev/null`
|
||||
# bat and cmd files are not considered executable in WSL
|
||||
if test "x$new_path" = x \
|
||||
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
|
||||
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
|
||||
new_path="$new_path_back"
|
||||
fi
|
||||
if test "x$new_path" = x; then
|
||||
# Oops. Which didn't find the executable.
|
||||
# The splitting of arguments from the executable at a space might have been incorrect,
|
||||
# since paths with space are more likely in Windows. Give it another try with the whole
|
||||
# argument.
|
||||
path="$complete"
|
||||
arguments="EOL"
|
||||
new_path="$path"
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([new_path])
|
||||
new_path_bak="$new_path"
|
||||
new_path=`$WHICH "$new_path" 2> /dev/null`
|
||||
# bat and cmd files are not considered executable in WSL
|
||||
if test "x$new_path" = x \
|
||||
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
|
||||
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
|
||||
new_path="$new_path_bak"
|
||||
fi
|
||||
if test "x$new_path" = x; then
|
||||
# It's still not found. Now this is an unrecoverable error.
|
||||
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
|
||||
has_space=`$ECHO "$complete" | $GREP " "`
|
||||
if test "x$has_space" != x; then
|
||||
AC_MSG_NOTICE([You might be mixing spaces in the path and extra arguments, which is not allowed.])
|
||||
fi
|
||||
AC_MSG_ERROR([Cannot locate the the path of $1])
|
||||
fi
|
||||
fi
|
||||
|
||||
# In WSL, suffixes must be present for Windows executables
|
||||
if test ! -f "$new_path"; then
|
||||
# Try adding .exe or .cmd
|
||||
if test -f "${new_path}.exe"; then
|
||||
input_to_shortpath="${new_path}.exe"
|
||||
elif test -f "${new_path}.cmd"; then
|
||||
input_to_shortpath="${new_path}.cmd"
|
||||
else
|
||||
AC_MSG_NOTICE([The path of $1, which resolves as "$new_path", is invalid.])
|
||||
AC_MSG_NOTICE([Neither "$new_path" nor "$new_path.exe/cmd" can be found])
|
||||
AC_MSG_ERROR([Cannot locate the the path of $1])
|
||||
fi
|
||||
else
|
||||
input_to_shortpath="$new_path"
|
||||
fi
|
||||
|
||||
# Call helper function which possibly converts this using DOS-style short mode.
|
||||
# If so, the updated path is stored in $new_path.
|
||||
new_path="$input_to_shortpath"
|
||||
BASIC_MAKE_WINDOWS_SPACE_SAFE_WSL([$input_to_shortpath])
|
||||
])
|
||||
|
||||
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
|
||||
AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
|
||||
[
|
||||
@ -353,8 +478,28 @@ AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(MSYS_ROOT_PATH)
|
||||
AC_MSG_RESULT([$MSYS_ROOT_PATH])
|
||||
WINDOWS_ENV_ROOT_PATH="$MSYS_ROOT_PATH"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
AC_MSG_CHECKING([Windows version])
|
||||
# m4 replaces [ and ] so we use @<:@ and @:>@ instead
|
||||
WINDOWS_VERSION=`$CMD /c ver.exe | $EGREP -o '(@<:@0-9@:>@+\.)+@<:@0-9@:>@+'`
|
||||
AC_MSG_RESULT([$WINDOWS_VERSION])
|
||||
|
||||
AC_MSG_CHECKING([WSL kernel version])
|
||||
WSL_KERNEL_VERSION=`$UNAME -v`
|
||||
AC_MSG_RESULT([$WSL_KERNEL_VERSION])
|
||||
|
||||
AC_MSG_CHECKING([WSL kernel release])
|
||||
WSL_KERNEL_RELEASE=`$UNAME -r`
|
||||
AC_MSG_RESULT([$WSL_KERNEL_RELEASE])
|
||||
|
||||
AC_MSG_CHECKING([WSL distribution])
|
||||
WSL_DISTRIBUTION=`$LSB_RELEASE -d | sed 's/Description:\t//'`
|
||||
AC_MSG_RESULT([$WSL_DISTRIBUTION])
|
||||
|
||||
WINDOWS_ENV_VENDOR='WSL'
|
||||
WINDOWS_ENV_VERSION="$WSL_DISTRIBUTION $WSL_KERNEL_VERSION $WSL_KERNEL_RELEASE (on Windows build $WINDOWS_VERSION)"
|
||||
else
|
||||
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin nor msys was detected.])
|
||||
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin, msys, nor wsl was detected.])
|
||||
fi
|
||||
|
||||
# Test if windows or unix (cygwin/msys) find is first in path.
|
||||
@ -395,6 +540,8 @@ AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
|
||||
| tr ' ' '\n' | $GREP '^/./' | $SORT | $UNIQ`
|
||||
fixpath_argument_list=`echo $all_unique_prefixes | tr ' ' '@'`
|
||||
FIXPATH="$FIXPATH_BIN -m$fixpath_argument_list"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = xwindows.wsl; then
|
||||
FIXPATH="$FIXPATH_BIN -w"
|
||||
fi
|
||||
FIXPATH_SRC_W="$FIXPATH_SRC"
|
||||
FIXPATH_BIN_W="$FIXPATH_BIN"
|
||||
@ -412,6 +559,17 @@ AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
|
||||
AC_MSG_ERROR([Could not create $FIXPATH_BIN])
|
||||
fi
|
||||
AC_MSG_RESULT([yes])
|
||||
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
OLD_WSLENV="$WSLENV"
|
||||
WSLENV=`$ECHO $WSLENV | $SED 's/PATH\/l://'`
|
||||
BASIC_APPEND_TO_PATH(WSLENV, "FIXPATH_PATH")
|
||||
export WSLENV
|
||||
export FIXPATH_PATH=$VS_PATH_WINDOWS
|
||||
AC_MSG_NOTICE([FIXPATH_PATH is $FIXPATH_PATH])
|
||||
AC_MSG_NOTICE([Rewriting WSLENV from $OLD_WSLENV to $WSLENV])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if fixpath.exe works])
|
||||
cd $FIXPATH_DIR
|
||||
$FIXPATH $CC $FIXPATH_SRC -Fe$FIXPATH_DIR/fixpath2.exe \
|
||||
|
@ -63,18 +63,18 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
|
||||
# If previous step claimed to have found a JDK, check it to see if it seems to be valid.
|
||||
if test "x$BOOT_JDK_FOUND" = xmaybe; then
|
||||
# Do we have a bin/java?
|
||||
if test ! -x "$BOOT_JDK/bin/java"; then
|
||||
if test ! -x "$BOOT_JDK/bin/java$EXE_SUFFIX"; then
|
||||
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring])
|
||||
BOOT_JDK_FOUND=no
|
||||
else
|
||||
# Do we have a bin/javac?
|
||||
if test ! -x "$BOOT_JDK/bin/javac"; then
|
||||
if test ! -x "$BOOT_JDK/bin/javac$EXE_SUFFIX"; then
|
||||
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring])
|
||||
AC_MSG_NOTICE([(This might be an JRE instead of an JDK)])
|
||||
BOOT_JDK_FOUND=no
|
||||
else
|
||||
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
|
||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
|
||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
|
||||
if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
|
||||
AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
|
||||
AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
|
||||
@ -101,7 +101,7 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
|
||||
AC_MSG_CHECKING([for Boot JDK])
|
||||
AC_MSG_RESULT([$BOOT_JDK])
|
||||
AC_MSG_CHECKING([Boot JDK version])
|
||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR '\n\r' ' '`
|
||||
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR '\n\r' ' '`
|
||||
AC_MSG_RESULT([$BOOT_JDK_VERSION])
|
||||
fi # end check jdk version
|
||||
fi # end check javac
|
||||
@ -335,11 +335,11 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
||||
AC_SUBST(BOOT_JDK)
|
||||
|
||||
# Setup tools from the Boot JDK.
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar$EXE_SUFFIX)
|
||||
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner$EXE_SUFFIX)
|
||||
|
||||
# Finally, set some other options...
|
||||
|
||||
|
9
make/autoconf/build-aux/config.guess
vendored
9
make/autoconf/build-aux/config.guess
vendored
@ -60,6 +60,15 @@ if test $? = 0; then
|
||||
esac
|
||||
fi
|
||||
|
||||
# Test and fix wsl
|
||||
echo $OUT | grep x86_64-unknown-linux-gnu > /dev/null 2> /dev/null
|
||||
if test $? = 0; then
|
||||
uname -r | grep Microsoft > /dev/null 2> /dev/null
|
||||
if test $? = 0; then
|
||||
OUT="x86_64-pc-wsl"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test and fix architecture string on AIX
|
||||
# On AIX 'config.guess' returns 'powerpc' as architecture but 'powerpc' is
|
||||
# implicitely handled as 32-bit architecture in 'platform.m4' so we check
|
||||
|
8
make/autoconf/build-aux/config.sub
vendored
8
make/autoconf/build-aux/config.sub
vendored
@ -29,7 +29,13 @@
|
||||
|
||||
DIR=`dirname $0`
|
||||
|
||||
# First, filter out everything that doesn't begin with "aarch64-"
|
||||
# Allow wsl
|
||||
if echo $* | grep x86_64-pc-wsl >/dev/null ; then
|
||||
echo $*
|
||||
exit
|
||||
fi
|
||||
|
||||
# Filter out everything that doesn't begin with "aarch64-"
|
||||
if ! echo $* | grep '^aarch64-' >/dev/null ; then
|
||||
. $DIR/autoconf-config.sub "$@"
|
||||
# autoconf-config.sub exits, so we never reach here, but just in
|
||||
|
@ -31,6 +31,7 @@
|
||||
|
||||
export LEGACY_BUILD_DIR=@OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU_LEGACY@
|
||||
|
||||
export OPENJDK_BUILD_OS_ENV="@OPENJDK_BUILD_OS_ENV@"
|
||||
export OPENJDK_TARGET_OS="@OPENJDK_TARGET_OS@"
|
||||
export OPENJDK_TARGET_CPU="@OPENJDK_TARGET_CPU@"
|
||||
export DEBUG_LEVEL="@DEBUG_LEVEL@"
|
||||
@ -73,18 +74,23 @@ export TOPDIR="@TOPDIR@"
|
||||
export OUTPUTDIR="@OUTPUTDIR@"
|
||||
|
||||
if [ "@COMPILE_TYPE@" != "cross" ]; then
|
||||
export JAVAP="@FIXPATH@ $OUTPUTDIR/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ $OUTPUTDIR/jdk/bin/jimage"
|
||||
export JAVAP="@FIXPATH@ $OUTPUTDIR/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ $OUTPUTDIR/jdk/bin/jimage"
|
||||
elif [ "@CREATE_BUILDJDK@" = "true" ]; then
|
||||
export JAVAP="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/jimage"
|
||||
export JAVAP="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ $OUTPUTDIR/buildjdk/jdk/bin/jimage"
|
||||
else
|
||||
export JAVAP="@FIXPATH@ @BUILD_JDK@/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ @BUILD_JDK@/bin/jimage"
|
||||
export JAVAP="@FIXPATH@ @BUILD_JDK@/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
|
||||
export JIMAGE="@FIXPATH@ @BUILD_JDK@/bin/jimage"
|
||||
fi
|
||||
|
||||
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
|
||||
export PATH="@VS_PATH@"
|
||||
if [ "$OPENJDK_BUILD_OS_ENV" = "windows.wsl" ]; then
|
||||
export FIXPATH_PATH="@VS_PATH_WINDOWS@"
|
||||
export WSLENV="$WSLENV:FIXPATH_PATH:DEBUG_FIXPATH"
|
||||
else
|
||||
export PATH="@VS_PATH@"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Now locate the main script and run it.
|
||||
|
@ -183,7 +183,8 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
|
||||
|
||||
# Additional warnings that are not activated by -Wall and -Wextra
|
||||
WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare \
|
||||
-Wunused-function -Wundef -Wunused-value -Wreturn-type"
|
||||
-Wunused-function -Wundef -Wunused-value -Wreturn-type \
|
||||
-Wtrampolines"
|
||||
WARNINGS_ENABLE_ADDITIONAL_CXX="-Woverloaded-virtual -Wreorder"
|
||||
WARNINGS_ENABLE_ALL_CFLAGS="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
|
||||
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
|
||||
@ -559,7 +560,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
TOOLCHAIN_CFLAGS="-errshort=tags"
|
||||
|
||||
TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
|
||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
|
||||
TOOLCHAIN_CFLAGS_JDK_CONLY="-xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
|
||||
TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
|
||||
TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
|
||||
-library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS"
|
||||
@ -571,10 +572,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
|
||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||
# Suggested additions: -qsrcmsg to get improved error reporting
|
||||
TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS
|
||||
TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt -qstackprotect" # add on both CFLAGS
|
||||
TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
|
||||
-qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
|
||||
-qlanglvl=noredefmac -qnortti -qnoeh -qignerrno"
|
||||
-qlanglvl=noredefmac -qnortti -qnoeh -qignerrno -qstackprotect"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
TOOLCHAIN_CFLAGS_JVM="-nologo -MD -MP"
|
||||
TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:wchar_t-"
|
||||
|
@ -188,6 +188,10 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_OS],
|
||||
VAR_OS=windows
|
||||
VAR_OS_ENV=windows.cygwin
|
||||
;;
|
||||
*wsl*)
|
||||
VAR_OS=windows
|
||||
VAR_OS_ENV=windows.wsl
|
||||
;;
|
||||
*mingw*)
|
||||
VAR_OS=windows
|
||||
VAR_OS_ENV=windows.msys
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2019, 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
|
||||
@ -122,7 +122,12 @@ ORIGINAL_PATH:=@ORIGINAL_PATH@
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# On Windows, the Visual Studio toolchain needs the PATH to be adjusted
|
||||
# to include Visual Studio tools (this needs to be in cygwin/msys style).
|
||||
export PATH:=@VS_PATH@
|
||||
ifeq ($(OPENJDK_TARGET_OS_ENV), windows.wsl)
|
||||
export FIXPATH_PATH:=@VS_PATH_WINDOWS@
|
||||
export WSLENV:=$(WSLENV):FIXPATH_PATH:DEBUG_FIXPATH
|
||||
else
|
||||
export PATH:=@VS_PATH@
|
||||
endif
|
||||
endif
|
||||
|
||||
SYSROOT_CFLAGS := @SYSROOT_CFLAGS@
|
||||
@ -724,6 +729,7 @@ MT:=@FIXPATH@ @MT@
|
||||
RC:=@FIXPATH@ @RC@
|
||||
DUMPBIN:=@FIXPATH@ @DUMPBIN@
|
||||
CYGPATH:=@CYGPATH@
|
||||
WSLPATH:=@WSLPATH@
|
||||
LDD:=@LDD@
|
||||
OTOOL:=@OTOOL@
|
||||
READELF:=@READELF@
|
||||
@ -761,6 +767,7 @@ MSVCR_DLL:=@MSVCR_DLL@
|
||||
MSVCP_DLL:=@MSVCP_DLL@
|
||||
UCRT_DLL_DIR:=@UCRT_DLL_DIR@
|
||||
STLPORT_LIB:=@STLPORT_LIB@
|
||||
ENABLE_PANDOC:=@ENABLE_PANDOC@
|
||||
|
||||
####################################################
|
||||
#
|
||||
|
@ -180,7 +180,6 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
|
||||
SHARED_LIBRARY='[$]1.dll'
|
||||
STATIC_LIBRARY='[$]1.lib'
|
||||
OBJ_SUFFIX='.obj'
|
||||
EXE_SUFFIX='.exe'
|
||||
else
|
||||
LIBRARY_PREFIX=lib
|
||||
SHARED_LIBRARY_SUFFIX='.so'
|
||||
@ -188,7 +187,6 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
|
||||
SHARED_LIBRARY='lib[$]1.so'
|
||||
STATIC_LIBRARY='lib[$]1.a'
|
||||
OBJ_SUFFIX='.o'
|
||||
EXE_SUFFIX=''
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# For full static builds, we're overloading the SHARED_LIBRARY
|
||||
# variables in order to limit the amount of changes required.
|
||||
@ -212,7 +210,6 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
|
||||
AC_SUBST(SHARED_LIBRARY)
|
||||
AC_SUBST(STATIC_LIBRARY)
|
||||
AC_SUBST(OBJ_SUFFIX)
|
||||
AC_SUBST(EXE_SUFFIX)
|
||||
])
|
||||
|
||||
# Determine which toolchain type to use, and make sure it is valid for this
|
||||
@ -281,13 +278,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
||||
|
||||
TOOLCHAIN_CC_BINARY_clang="clang"
|
||||
TOOLCHAIN_CC_BINARY_gcc="gcc"
|
||||
TOOLCHAIN_CC_BINARY_microsoft="cl"
|
||||
TOOLCHAIN_CC_BINARY_microsoft="cl$EXE_SUFFIX"
|
||||
TOOLCHAIN_CC_BINARY_solstudio="cc"
|
||||
TOOLCHAIN_CC_BINARY_xlc="xlc_r"
|
||||
|
||||
TOOLCHAIN_CXX_BINARY_clang="clang++"
|
||||
TOOLCHAIN_CXX_BINARY_gcc="g++"
|
||||
TOOLCHAIN_CXX_BINARY_microsoft="cl"
|
||||
TOOLCHAIN_CXX_BINARY_microsoft="cl$EXE_SUFFIX"
|
||||
TOOLCHAIN_CXX_BINARY_solstudio="CC"
|
||||
TOOLCHAIN_CXX_BINARY_xlc="xlC_r"
|
||||
|
||||
@ -333,9 +330,17 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
|
||||
if test "x$OPENJDK_BUILD_OS" = "xwindows" \
|
||||
&& test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
|
||||
TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV
|
||||
# Reset path to VS_PATH. It will include everything that was on PATH at the time we
|
||||
# ran TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV.
|
||||
PATH="$VS_PATH"
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
# Append VS_PATH. In WSL, VS_PATH will not contain the WSL env path needed
|
||||
# for using basic Unix tools, so need to keep the original PATH.
|
||||
BASIC_APPEND_TO_PATH(PATH, $VS_PATH)
|
||||
BASIC_APPEND_TO_PATH(WSLENV, "PATH/l:LIB:INCLUDE")
|
||||
export WSLENV
|
||||
else
|
||||
# Reset path to VS_PATH. It will include everything that was on PATH at the time we
|
||||
# ran TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV.
|
||||
PATH="$VS_PATH"
|
||||
fi
|
||||
# The microsoft toolchain also requires INCLUDE and LIB to be set.
|
||||
export INCLUDE="$VS_INCLUDE"
|
||||
export LIB="$VS_LIB"
|
||||
@ -430,7 +435,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
||||
# There is no specific version flag, but all output starts with a version string.
|
||||
# First line typically looks something like:
|
||||
# Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
|
||||
COMPILER_VERSION_OUTPUT=`$COMPILER 2>&1 | $HEAD -n 1 | $TR -d '\r'`
|
||||
COMPILER_VERSION_OUTPUT=`"$COMPILER" 2>&1 | $GREP -v 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
|
||||
# Check that this is likely to be Microsoft CL.EXE.
|
||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft.*Compiler" > /dev/null
|
||||
if test $? -ne 0; then
|
||||
@ -698,7 +703,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
||||
# In the Microsoft toolchain we have a separate LD command "link".
|
||||
# Make sure we reject /usr/bin/link (as determined in CYGWIN_LINK), which is
|
||||
# a cygwin program for something completely different.
|
||||
AC_CHECK_PROG([LD], [link],[link],,, [$CYGWIN_LINK])
|
||||
AC_CHECK_PROG([LD], [link$EXE_SUFFIX],[link$EXE_SUFFIX],,, [$CYGWIN_LINK])
|
||||
BASIC_FIXUP_EXECUTABLE(LD)
|
||||
# Verify that we indeed succeeded with this trick.
|
||||
AC_MSG_CHECKING([if the found link.exe is actually the Visual Studio linker])
|
||||
@ -750,7 +755,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
||||
#
|
||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
# The corresponding ar tool is lib.exe (used to create static libraries)
|
||||
AC_CHECK_PROG([AR], [lib],[lib],,,)
|
||||
AC_CHECK_PROG([AR], [lib$EXE_SUFFIX],[lib$EXE_SUFFIX],,,)
|
||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
BASIC_CHECK_TOOLS(AR, ar gcc-ar)
|
||||
else
|
||||
@ -774,12 +779,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
||||
fi
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
AC_CHECK_PROG([MT], [mt], [mt],,, [/usr/bin/mt])
|
||||
AC_CHECK_PROG([MT], [mt$EXE_SUFFIX], [mt$EXE_SUFFIX],,, [/usr/bin/mt])
|
||||
BASIC_FIXUP_EXECUTABLE(MT)
|
||||
# Setup the resource compiler (RC)
|
||||
AC_CHECK_PROG([RC], [rc], [rc],,, [/usr/bin/rc])
|
||||
AC_CHECK_PROG([RC], [rc$EXE_SUFFIX], [rc$EXE_SUFFIX],,, [/usr/bin/rc])
|
||||
BASIC_FIXUP_EXECUTABLE(RC)
|
||||
AC_CHECK_PROG([DUMPBIN], [dumpbin], [dumpbin],,,)
|
||||
AC_CHECK_PROG([DUMPBIN], [dumpbin$EXE_SUFFIX], [dumpbin$EXE_SUFFIX],,,)
|
||||
BASIC_FIXUP_EXECUTABLE(DUMPBIN)
|
||||
# We need to check for 'msbuild.exe' because at the place where we expect to
|
||||
# find 'msbuild.exe' there's also a directory called 'msbuild' and configure
|
||||
@ -788,7 +793,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
||||
# Notice that we intentionally don't fix up the path to MSBUILD because we
|
||||
# will call it in a DOS shell during freetype detection on Windows (see
|
||||
# 'LIB_SETUP_FREETYPE' in "libraries.m4"
|
||||
AC_CHECK_PROG([MSBUILD], [msbuild.exe], [msbuild.exe],,,)
|
||||
AC_CHECK_PROG([MSBUILD], [msbuild$EXE_SUFFIX], [msbuild$EXE_SUFFIX],,,)
|
||||
fi
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||
@ -999,7 +1004,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
||||
# Check for extra potential brokenness.
|
||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
# On Windows, double-check that we got the right compiler.
|
||||
CC_VERSION_OUTPUT=`$CC 2>&1 | $HEAD -n 1 | $TR -d '\r'`
|
||||
CC_VERSION_OUTPUT=`$CC 2>&1 | $GREP -v 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
|
||||
COMPILER_CPU_TEST=`$ECHO $CC_VERSION_OUTPUT | $SED -n "s/^.* \(.*\)$/\1/p"`
|
||||
if test "x$OPENJDK_TARGET_CPU" = "xx86"; then
|
||||
if test "x$COMPILER_CPU_TEST" != "x80x86" -a "x$COMPILER_CPU_TEST" != "xx86"; then
|
||||
|
@ -115,7 +115,7 @@ AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
|
||||
VCVARSFILES="vc/bin/vcvars32.bat vc/auxiliary/build/vcvars32.bat"
|
||||
else
|
||||
VCVARSFILES="vc/bin/amd64/vcvars64.bat vc/bin/x86_amd64/vcvarsx86_amd64.bat \
|
||||
vc/auxiliary/build/vcvarsx86_amd64.bat vc/auxiliary/build/vcvars64.bat"
|
||||
VC/Auxiliary/Build/vcvarsx86_amd64.bat VC/Auxiliary/Build/vcvars64.bat"
|
||||
fi
|
||||
|
||||
for VCVARSFILE in $VCVARSFILES; do
|
||||
@ -222,7 +222,6 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
|
||||
[C:/Program Files/$VS_INSTALL_DIR], [well-known name])
|
||||
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
|
||||
[C:/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([${VS_VERSION}],
|
||||
@ -273,7 +272,26 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO],
|
||||
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
|
||||
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
|
||||
eval PLATFORM_TOOLSET="\${VS_VS_PLATFORM_NAME_${VS_VERSION}}"
|
||||
VS_PATH="$TOOLCHAIN_PATH:$PATH"
|
||||
|
||||
# The TOOLCHAIN_PATH from a devkit is in Unix format. In WSL we need a
|
||||
# windows version of the complete VS_PATH as VS_PATH_WINDOWS
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
# Convert the toolchain path
|
||||
OLDIFS="$IFS"
|
||||
IFS=":"
|
||||
VS_PATH_WINDOWS=""
|
||||
for i in $TOOLCHAIN_PATH; do
|
||||
path=$i
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([path])
|
||||
VS_PATH_WINDOWS="$VS_PATH_WINDOWS;$path"
|
||||
done
|
||||
IFS="$OLDIFS"
|
||||
# Append the current path from Windows env
|
||||
WINDOWS_PATH="`$CMD /c echo %PATH%`"
|
||||
VS_PATH_WINDOWS="$VS_PATH_WINDOWS;$WINDOWS_PATH"
|
||||
else
|
||||
VS_PATH="$TOOLCHAIN_PATH:$PATH"
|
||||
fi
|
||||
|
||||
# Convert DEVKIT_VS_INCLUDE into windows style VS_INCLUDE so that it
|
||||
# can still be exported as INCLUDE for compiler invocations without
|
||||
@ -339,7 +357,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
||||
[
|
||||
# Store path to cygwin link.exe to help excluding it when searching for
|
||||
# VS linker. This must be done before changing the PATH when looking for VS.
|
||||
AC_PATH_PROG(CYGWIN_LINK, link)
|
||||
AC_PATH_PROG(CYGWIN_LINK, link.exe)
|
||||
if test "x$CYGWIN_LINK" != x; then
|
||||
AC_MSG_CHECKING([if the first found link.exe is actually the Cygwin link tool])
|
||||
"$CYGWIN_LINK" --version > /dev/null
|
||||
@ -372,8 +390,13 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
||||
# Instead create a shell script which will set the relevant variables when run.
|
||||
WINPATH_VS_ENV_CMD="$VS_ENV_CMD"
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_VS_ENV_CMD])
|
||||
WINPATH_BASH="$BASH"
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_BASH])
|
||||
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
WINPATH_BASH="bash"
|
||||
else
|
||||
WINPATH_BASH="$BASH"
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_BASH])
|
||||
fi
|
||||
|
||||
# Generate a DOS batch file which runs $VS_ENV_CMD, and then creates a shell
|
||||
# script (executable by bash) that will setup the important variables.
|
||||
@ -381,47 +404,99 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
||||
$ECHO "@echo off" > $EXTRACT_VC_ENV_BAT_FILE
|
||||
# This will end up something like:
|
||||
# call C:/progra~2/micros~2.0/vc/bin/amd64/vcvars64.bat
|
||||
$ECHO "call $WINPATH_VS_ENV_CMD $VS_ENV_ARGS" >> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "call \"$WINPATH_VS_ENV_CMD\" $VS_ENV_ARGS" >> $EXTRACT_VC_ENV_BAT_FILE
|
||||
# In some cases, the VS_ENV_CMD will change directory, change back so
|
||||
# the set-vs-env.sh ends up in the right place.
|
||||
$ECHO 'cd %~dp0' >> $EXTRACT_VC_ENV_BAT_FILE
|
||||
# These will end up something like:
|
||||
# C:/CygWin/bin/bash -c 'echo VS_PATH=\"$PATH\" > localdevenv.sh
|
||||
# The trailing space for everyone except PATH is no typo, but is needed due
|
||||
# to trailing \ in the Windows paths. These will be stripped later.
|
||||
$ECHO "$WINPATH_BASH -c 'echo VS_PATH="'\"$PATH\" > set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo VS_INCLUDE="'\"$INCLUDE\;$include \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo VS_LIB="'\"$LIB\;$lib \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo VCINSTALLDIR="'\"$VCINSTALLDIR \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo WindowsSdkDir="'\"$WindowsSdkDir \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
# These will end up something like:
|
||||
# echo VS_PATH=\"$PATH\" > set-vs-env.sh
|
||||
# The trailing space for everyone except PATH is no typo, but is needed due
|
||||
# to trailing \ in the Windows paths. These will be stripped later.
|
||||
# Trying pure CMD extract. This results in windows paths that need to
|
||||
# be converted post extraction, but a simpler script.
|
||||
$ECHO 'echo VS_PATH="%PATH%" > set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO 'echo VS_INCLUDE="%INCLUDE% " >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO 'echo VS_LIB="%LIB% " >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO 'echo VCINSTALLDIR="%VCINSTALLDIR% " >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO 'echo WindowsSdkDir="%WindowsSdkDir% " >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO 'echo WINDOWSSDKDIR="%WINDOWSSDKDIR% " >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
else
|
||||
# These will end up something like:
|
||||
# C:/CygWin/bin/bash -c 'echo VS_PATH=\"$PATH\" > localdevenv.sh
|
||||
# The trailing space for everyone except PATH is no typo, but is needed due
|
||||
# to trailing \ in the Windows paths. These will be stripped later.
|
||||
$ECHO "$WINPATH_BASH -c 'echo VS_PATH="'\"$PATH\" > set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo VS_INCLUDE="'\"$INCLUDE\;$include \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo VS_LIB="'\"$LIB\;$lib \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo VCINSTALLDIR="'\"$VCINSTALLDIR \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo WindowsSdkDir="'\"$WindowsSdkDir \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
$ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> set-vs-env.sh' \
|
||||
>> $EXTRACT_VC_ENV_BAT_FILE
|
||||
fi
|
||||
|
||||
# Now execute the newly created bat file.
|
||||
# The | cat is to stop SetEnv.Cmd to mess with system colors on msys.
|
||||
# Change directory so we don't need to mess with Windows paths in redirects.
|
||||
cd $VS_ENV_TMP_DIR
|
||||
cmd /c extract-vs-env.bat | $CAT
|
||||
$CMD /c extract-vs-env.bat | $CAT
|
||||
cd $CURDIR
|
||||
|
||||
if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
|
||||
AC_MSG_NOTICE([Could not succesfully extract the envionment variables needed for the VS setup.])
|
||||
AC_MSG_NOTICE([Could not succesfully extract the environment variables needed for the VS setup.])
|
||||
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation])
|
||||
AC_MSG_NOTICE([or run "bash.exe -l" from a VS command prompt and then run configure from there.])
|
||||
AC_MSG_ERROR([Cannot continue])
|
||||
fi
|
||||
|
||||
# Remove windows line endings
|
||||
$SED -i -e 's|\r||g' $VS_ENV_TMP_DIR/set-vs-env.sh
|
||||
|
||||
# Now set all paths and other env variables. This will allow the rest of
|
||||
# the configure script to find and run the compiler in the proper way.
|
||||
AC_MSG_NOTICE([Setting extracted environment variables])
|
||||
. $VS_ENV_TMP_DIR/set-vs-env.sh
|
||||
# Now we have VS_PATH, VS_INCLUDE, VS_LIB. For further checking, we
|
||||
# also define VCINSTALLDIR, WindowsSdkDir and WINDOWSSDKDIR.
|
||||
|
||||
# In WSL, the extracted VS_PATH is Windows style. This needs to be
|
||||
# rewritten as Unix style and the Windows style version is saved
|
||||
# in VS_PATH_WINDOWS.
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
OLDIFS="$IFS"
|
||||
IFS=";"
|
||||
# Convert VS_PATH to unix style
|
||||
VS_PATH_WINDOWS="$VS_PATH"
|
||||
VS_PATH=""
|
||||
for i in $VS_PATH_WINDOWS; do
|
||||
path=$i
|
||||
# Only process non-empty elements
|
||||
if test "x$path" != x; then
|
||||
IFS="$OLDIFS"
|
||||
# Check that directory exists before calling fixup_path
|
||||
testpath=$path
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([testpath])
|
||||
if test -d "$testpath"; then
|
||||
BASIC_FIXUP_PATH([path])
|
||||
BASIC_APPEND_TO_PATH(VS_PATH, $path)
|
||||
fi
|
||||
IFS=";"
|
||||
fi
|
||||
done
|
||||
IFS="$OLDIFS"
|
||||
fi
|
||||
|
||||
else
|
||||
# We did not find a vsvars bat file, let's hope we are run from a VS command prompt.
|
||||
AC_MSG_NOTICE([Cannot locate a valid Visual Studio installation, checking current environment])
|
||||
@ -490,6 +565,8 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
|
||||
fi
|
||||
done
|
||||
IFS="$OLDIFS"
|
||||
|
||||
AC_SUBST(VS_PATH_WINDOWS)
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([not found])
|
||||
@ -600,10 +677,10 @@ AC_DEFUN([TOOLCHAIN_SETUP_MSVC_DLL],
|
||||
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(CYGWIN_VS_TOOLS_DIR)
|
||||
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
|
||||
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VS_TOOLS_DIR" -name $DLL_NAME \
|
||||
| $GREP -i /x64/ | $HEAD --lines 1`
|
||||
| $GREP -i /x64/ | $HEAD --lines 1`
|
||||
else
|
||||
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VS_TOOLS_DIR" -name $DLL_NAME \
|
||||
| $GREP -i /x86/ | $HEAD --lines 1`
|
||||
| $GREP -i /x86/ | $HEAD --lines 1`
|
||||
fi
|
||||
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
|
||||
[search of VS100COMNTOOLS])
|
||||
@ -616,14 +693,14 @@ AC_DEFUN([TOOLCHAIN_SETUP_MSVC_DLL],
|
||||
if test "x$CYGWIN_VC_INSTALL_DIR" != x; then
|
||||
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
|
||||
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
|
||||
| $GREP x64 | $HEAD --lines 1`
|
||||
| $GREP x64 | $HEAD --lines 1`
|
||||
else
|
||||
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
|
||||
| $GREP x86 | $GREP -v ia64 | $GREP -v x64 | $HEAD --lines 1`
|
||||
| $GREP x86 | $GREP -v ia64 | $GREP -v x64 | $HEAD --lines 1`
|
||||
if test "x$POSSIBLE_MSVC_DLL" = x; then
|
||||
# We're grasping at straws now...
|
||||
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
|
||||
| $HEAD --lines 1`
|
||||
| $HEAD --lines 1`
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -693,7 +770,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
|
||||
if test "x$USE_UCRT" = "xtrue"; then
|
||||
AC_MSG_CHECKING([for UCRT DLL dir])
|
||||
if test "x$with_ucrt_dll_dir" != x; then
|
||||
if test -z "$(ls -d "$with_ucrt_dll_dir/*.dll" 2> /dev/null)"; then
|
||||
if test -z "$(ls -d $with_ucrt_dll_dir/*.dll 2> /dev/null)"; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([Could not find any dlls in $with_ucrt_dll_dir])
|
||||
else
|
||||
@ -713,8 +790,16 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
|
||||
fi
|
||||
UCRT_DLL_DIR="$CYGWIN_WINDOWSSDKDIR/Redist/ucrt/DLLs/$dll_subdir"
|
||||
if test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([Could not find any dlls in $UCRT_DLL_DIR])
|
||||
# Try with version subdir
|
||||
UCRT_DLL_DIR="`ls -d $CYGWIN_WINDOWSSDKDIR/Redist/*/ucrt/DLLs/$dll_subdir \
|
||||
2> /dev/null | $SORT -d | $HEAD -n1`"
|
||||
if test -z "$UCRT_DLL_DIR" \
|
||||
|| test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([Could not find any dlls in $UCRT_DLL_DIR])
|
||||
else
|
||||
AC_MSG_RESULT($UCRT_DLL_DIR)
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT($UCRT_DLL_DIR)
|
||||
fi
|
||||
|
@ -25,17 +25,17 @@
|
||||
|
||||
# Default version numbers to use unless overridden by configure
|
||||
|
||||
DEFAULT_VERSION_FEATURE=12
|
||||
DEFAULT_VERSION_FEATURE=13
|
||||
DEFAULT_VERSION_INTERIM=0
|
||||
DEFAULT_VERSION_UPDATE=0
|
||||
DEFAULT_VERSION_PATCH=0
|
||||
DEFAULT_VERSION_EXTRA1=0
|
||||
DEFAULT_VERSION_EXTRA2=0
|
||||
DEFAULT_VERSION_EXTRA3=0
|
||||
DEFAULT_VERSION_DATE=2019-03-19
|
||||
DEFAULT_VERSION_CLASSFILE_MAJOR=56 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||
DEFAULT_VERSION_DATE=2019-09-17
|
||||
DEFAULT_VERSION_CLASSFILE_MAJOR=57 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
||||
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="11 12"
|
||||
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="11 12 13"
|
||||
|
||||
LAUNCHER_NAME=openjdk
|
||||
PRODUCT_NAME=OpenJDK
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2017, 2019, 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
|
||||
@ -68,6 +68,7 @@ JTREG_TEST_GROUPS += $(sort $(foreach root, $(JTREG_TESTROOTS), \
|
||||
# Add Jtreg test groups to list of named tests (test groups, test list, etc)
|
||||
# ALL_NAMED_TESTS might have been set by a custom extension
|
||||
ALL_NAMED_TESTS += $(JTREG_TEST_GROUPS)
|
||||
JCOV_NAMED_TESTS += $(JTREG_TEST_GROUPS)
|
||||
|
||||
# Add Gtest
|
||||
ALL_NAMED_TESTS += gtest
|
||||
|
@ -72,7 +72,7 @@ $(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE, \
|
||||
$(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE, \
|
||||
JVM := $(JAVA_JAVAC), \
|
||||
JAVAC := $(NEW_JAVAC), \
|
||||
FLAGS := -source 12 -target 12 --doclint-format html5 \
|
||||
FLAGS := -source 13 -target 13 --doclint-format html5 \
|
||||
-encoding ascii -XDignore.symbol.file=true $(JAVAC_WARNINGS), \
|
||||
SERVER_DIR := $(SJAVAC_SERVER_DIR), \
|
||||
SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
|
||||
@ -82,7 +82,7 @@ $(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE, \
|
||||
$(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE_NOWARNINGS, \
|
||||
JVM := $(JAVA_JAVAC), \
|
||||
JAVAC := $(NEW_JAVAC), \
|
||||
FLAGS := -source 12 -target 12 \
|
||||
FLAGS := -source 13 -target 13 \
|
||||
-encoding ascii -XDignore.symbol.file=true $(DISABLE_WARNINGS), \
|
||||
SERVER_DIR := $(SJAVAC_SERVER_DIR), \
|
||||
SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
|
||||
|
@ -386,7 +386,9 @@ var getJibProfilesProfiles = function (input, common, data) {
|
||||
target_cpu: "x64",
|
||||
dependencies: ["devkit", "graphviz", "pandoc", "graalunit_lib"],
|
||||
configure_args: concat(common.configure_args_64bit,
|
||||
"--enable-full-docs", "--with-zlib=system"),
|
||||
"--enable-full-docs", "--with-zlib=system",
|
||||
(isWsl(input) ? [ "--host=x86_64-unknown-linux-gnu",
|
||||
"--build=x86_64-unknown-linux-gnu" ] : [])),
|
||||
default_make_targets: ["docs-bundles"],
|
||||
},
|
||||
|
||||
@ -833,6 +835,13 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
|
||||
var boot_jdk_platform = (input.build_os == "macosx" ? "osx" : input.build_os)
|
||||
+ "-" + input.build_cpu;
|
||||
var boot_jdk_ext = (input.build_os == "windows" ? ".zip" : ".tar.gz")
|
||||
// If running in WSL and building for Windows, it will look like Linux,
|
||||
// but we need a Windows boot JDK.
|
||||
if (isWsl(input) && input.target_os == "windows") {
|
||||
boot_jdk_platform = "windows-" + input.build_cpu;
|
||||
boot_jdk_ext = ".zip";
|
||||
}
|
||||
|
||||
var makeBinDir = (input.build_os == "windows"
|
||||
? input.get("gnumake", "install_path") + "/cygwin/bin"
|
||||
@ -846,8 +855,7 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
version: common.boot_jdk_version,
|
||||
build_number: "28",
|
||||
file: "bundles/" + boot_jdk_platform + "/jdk-" + common.boot_jdk_version + "_"
|
||||
+ boot_jdk_platform + "_bin"
|
||||
+ (input.build_os == "windows" ? ".zip" : ".tar.gz"),
|
||||
+ boot_jdk_platform + "_bin" + boot_jdk_ext,
|
||||
configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
|
||||
environment_path: common.boot_jdk_home + "/bin"
|
||||
},
|
||||
@ -941,7 +949,7 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
organization: common.organization,
|
||||
ext: "tar.gz",
|
||||
revision: "2.3.1+1.0",
|
||||
module: "pandoc-" + input.target_platform,
|
||||
module: "pandoc-" + input.build_platform,
|
||||
configure_args: "PANDOC=" + input.get("pandoc", "install_path") + "/pandoc/pandoc",
|
||||
environment_path: input.get("pandoc", "install_path") + "/pandoc"
|
||||
},
|
||||
@ -1181,3 +1189,13 @@ var getVersionNumbers = function () {
|
||||
}
|
||||
return version_numbers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if running in Windows Subsystem for Linux. Jib does not yet
|
||||
* detect wsl as osenv, so fall back on linux with version containing Microsoft.
|
||||
*/
|
||||
var isWsl = function (input) {
|
||||
return ( input.build_osenv == "wsl"
|
||||
|| (input.build_os == "linux"
|
||||
&& java.lang.System.getProperty("os.version").contains("Microsoft")));
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2019, 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
|
||||
@ -25,7 +25,7 @@
|
||||
#
|
||||
|
||||
# This script copies parts of a Visual Studio installation into a devkit
|
||||
# suitable for building OpenJDK and OracleJDK. Needs to run in Cygwin.
|
||||
# suitable for building OpenJDK and OracleJDK. Needs to run in Cygwin or WSL.
|
||||
# erik.joelsson@oracle.com
|
||||
|
||||
VS_VERSION="2017"
|
||||
@ -34,6 +34,8 @@ VS_DLL_VERSION="140"
|
||||
SDK_VERSION="10"
|
||||
SDK_FULL_VERSION="10.0.16299.0"
|
||||
MSVC_DIR="Microsoft.VC141.CRT"
|
||||
MSVC_FULL_VERSION="14.12.25827"
|
||||
REDIST_FULL_VERSION="14.12.25810"
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
|
||||
BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
|
||||
@ -41,22 +43,42 @@ BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
|
||||
################################################################################
|
||||
# Prepare settings
|
||||
|
||||
UNAME_SYSTEM=`uname -s`
|
||||
UNAME_RELEASE=`uname -r`
|
||||
|
||||
# Detect cygwin or WSL
|
||||
IS_CYGWIN=`echo $UNAME_SYSTEM | grep -i CYGWIN`
|
||||
IS_WSL=`echo $UNAME_RELEASE | grep Microsoft`
|
||||
if test "x$IS_CYGWIN" != "x"; then
|
||||
BUILD_ENV="cygwin"
|
||||
elif test "x$IS_WSL" != "x"; then
|
||||
BUILD_ENV="wsl"
|
||||
else
|
||||
echo "Unknown environment; only Cygwin and WSL are supported."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test "x$BUILD_ENV" = "xcygwin"; then
|
||||
WINDOWS_PATH_TO_UNIX_PATH="cygpath -u"
|
||||
elif test "x$BUILD_ENV" = "xwsl"; then
|
||||
WINDOWS_PATH_TO_UNIX_PATH="wslpath -u"
|
||||
fi
|
||||
|
||||
# Work around the insanely named ProgramFiles(x86) env variable
|
||||
PROGRAMFILES_X86="$(cygpath "$(env | sed -n 's/^ProgramFiles(x86)=//p')")"
|
||||
PROGRAMFILES_X86="$($WINDOWS_PATH_TO_UNIX_PATH "$(cmd.exe /c set | sed -n 's/^ProgramFiles(x86)=//p' | tr -d '\r')")"
|
||||
|
||||
# Find Visual Studio installation dir
|
||||
eval VSNNNCOMNTOOLS="\"\${VS${VS_VERSION_NUM_NODOT}COMNTOOLS}\""
|
||||
VSNNNCOMNTOOLS=`cmd.exe /c echo %VS${VS_VERSION_NUM_NODOT}COMNTOOLS% | tr -d '\r'`
|
||||
if [ -d "$VSNNNCOMNTOOLS" ]; then
|
||||
VS_INSTALL_DIR="$(cygpath "$VSNNNCOMNTOOLS/../..")"
|
||||
VS_INSTALL_DIR="$($WINDOWS_PATH_TO_UNIX_PATH "$VSNNNCOMNTOOLS/../..")"
|
||||
else
|
||||
VS_INSTALL_DIR="${PROGRAMFILES_X86}/Microsoft Visual Studio/2017"
|
||||
VS_INSTALL_DIR="$(ls -d "${VS_INSTALL_DIR}/"{Community,Professional} 2>/dev/null | head -n1)"
|
||||
VS_INSTALL_DIR="$(cygpath "$VS_INSTALL_DIR")"
|
||||
VS_INSTALL_DIR="$(ls -d "${VS_INSTALL_DIR}/"{Community,Professional,Enterprise} 2>/dev/null | head -n1)"
|
||||
fi
|
||||
echo "VS_INSTALL_DIR: $VS_INSTALL_DIR"
|
||||
|
||||
# Extract semantic version
|
||||
POTENTIAL_INI_FILES="Common7\IDE\wdexpress.isolation.ini Common7\IDE\devenv.isolation.ini"
|
||||
POTENTIAL_INI_FILES="Common7/IDE/wdexpress.isolation.ini Common7/IDE/devenv.isolation.ini"
|
||||
for f in $POTENTIAL_INI_FILES; do
|
||||
if [ -f "$VS_INSTALL_DIR/$f" ]; then
|
||||
VS_VERSION_SP="$(grep ^SemanticVersion= "$VS_INSTALL_DIR/$f")"
|
||||
@ -86,8 +108,8 @@ MSVCP_DLL=${MSVC_DIR}/msvcp${VS_DLL_VERSION}.dll
|
||||
# Copy Visual Studio files
|
||||
|
||||
if [ ! -d $DEVKIT_ROOT/VC ]; then
|
||||
VC_SUBDIR="VC/Tools/MSVC/14.12.25827"
|
||||
REDIST_SUBDIR="VC/Redist/MSVC/14.12.25810"
|
||||
VC_SUBDIR="VC/Tools/MSVC/$MSVC_FULL_VERSION"
|
||||
REDIST_SUBDIR="VC/Redist/MSVC/$REDIST_FULL_VERSION"
|
||||
echo "Copying VC..."
|
||||
mkdir -p $DEVKIT_ROOT/VC/bin
|
||||
cp -r "$VS_INSTALL_DIR/${VC_SUBDIR}/bin/Hostx64/x64" $DEVKIT_ROOT/VC/bin/
|
||||
@ -117,7 +139,7 @@ fi
|
||||
################################################################################
|
||||
# Copy SDK files
|
||||
|
||||
SDK_INSTALL_DIR="$(cygpath "$PROGRAMFILES_X86/Windows Kits/$SDK_VERSION")"
|
||||
SDK_INSTALL_DIR="$PROGRAMFILES_X86/Windows Kits/$SDK_VERSION"
|
||||
echo "SDK_INSTALL_DIR: $SDK_INSTALL_DIR"
|
||||
|
||||
if [ ! -d $DEVKIT_ROOT/$SDK_VERSION ]; then
|
||||
|
@ -55,7 +55,7 @@ GENDATA_CURDATA := $(JDK_OUTPUTDIR)/modules/java.base/java/util/currency.data
|
||||
$(GENDATA_CURDATA): $(TOPDIR)/make/data/currency/CurrencyData.properties $(BUILD_TOOLS_JDK)
|
||||
$(call MakeDir, $(@D))
|
||||
$(RM) $@
|
||||
$(TOOL_GENERATECURRENCYDATA) -o $@.tmp < $<
|
||||
$(TOOL_GENERATECURRENCYDATA) -o $@.tmp -i $<
|
||||
$(MV) $@.tmp $@
|
||||
$(CHMOD) 444 $@
|
||||
|
||||
|
@ -230,7 +230,8 @@ define SetupGenBuffer
|
||||
endif
|
||||
|
||||
$$($1_DST): $$($1_DEP) $(GENSRC_BUFFER_DST)/_the.buffer.dir
|
||||
$(TOOL_SPP) < $$($1_SRC) > $$($1_OUT).tmp \
|
||||
$(RM) $$($1_OUT).tmp
|
||||
$(TOOL_SPP) -i$$($1_SRC) -o$$($1_OUT).tmp \
|
||||
-K$$($1_type) \
|
||||
-K$$($1_category) \
|
||||
-K$$($1_streams) \
|
||||
@ -260,12 +261,12 @@ define SetupGenBuffer
|
||||
ifeq ($$($1_BIN), 1)
|
||||
$(SED) -e '/#BIN/,$$$$d' < $$($1_OUT) > $$($1_DST).tmp
|
||||
$(RM) $$($1_OUT)
|
||||
$$($1_char_CMD) < $$($1_SRC_BIN) >> $$($1_DST).tmp
|
||||
$$($1_short_CMD) < $$($1_SRC_BIN) >> $$($1_DST).tmp
|
||||
$$($1_int_CMD) < $$($1_SRC_BIN) >> $$($1_DST).tmp
|
||||
$$($1_long_CMD) < $$($1_SRC_BIN) >> $$($1_DST).tmp
|
||||
$$($1_float_CMD) < $$($1_SRC_BIN) >> $$($1_DST).tmp
|
||||
$$($1_double_CMD) < $$($1_SRC_BIN) >> $$($1_DST).tmp
|
||||
$$($1_char_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||
$$($1_short_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||
$$($1_int_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||
$$($1_long_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||
$$($1_float_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||
$$($1_double_CMD) -i$$($1_SRC_BIN) -o$$($1_DST).tmp
|
||||
$(PRINTF) "}\n" >> $$($1_DST).tmp
|
||||
mv $$($1_DST).tmp $$($1_DST)
|
||||
endif
|
||||
|
@ -36,7 +36,7 @@ GENSRC_CHARSETCODER_TEMPLATE := $(GENSRC_CHARSETCODER_SRC)/charset/Charset-X-Cod
|
||||
$(GENSRC_CHARSETCODER_DST)/CharsetDecoder.java: $(GENSRC_CHARSETCODER_TEMPLATE)
|
||||
$(call MakeTargetDir)
|
||||
$(RM) $@.tmp
|
||||
$(TOOL_SPP) < $< >$@.tmp \
|
||||
$(TOOL_SPP) -i$< -o$@.tmp \
|
||||
-Kdecoder \
|
||||
-DA='A' \
|
||||
-Da='a' \
|
||||
@ -71,7 +71,7 @@ GENSRC_CHARSETCODER += $(GENSRC_CHARSETCODER_DST)/CharsetDecoder.java
|
||||
$(GENSRC_CHARSETCODER_DST)/CharsetEncoder.java: $(GENSRC_CHARSETCODER_TEMPLATE)
|
||||
$(call MakeTargetDir)
|
||||
$(RM) $@.tmp
|
||||
$(TOOL_SPP) < $< >$@.tmp \
|
||||
$(TOOL_SPP) -i$< -o$@.tmp \
|
||||
-Kencoder \
|
||||
-DA='An' \
|
||||
-Da='an' \
|
||||
|
@ -59,8 +59,9 @@ define GenerateVarHandle
|
||||
$$(eval $1_type := $$$$(shell $(TR) '[:upper:]' '[:lower:]' <<< $$$$($1_Type)))
|
||||
endif
|
||||
$$(call MakeDir, $$(@D))
|
||||
$(RM) $$@
|
||||
$(TOOL_SPP) -nel -K$$($1_type) -Dtype=$$($1_type) -DType=$$($1_Type) \
|
||||
$$($1_ARGS) < $$< > $$@
|
||||
$$($1_ARGS) -i$$< -o$$@
|
||||
|
||||
GENSRC_VARHANDLES += $$($1_FILENAME)
|
||||
endef
|
||||
@ -147,10 +148,11 @@ define GenerateVarHandleByteArray
|
||||
|
||||
$$($1_FILENAME): $(VARHANDLES_SRC_DIR)/X-VarHandleByteArrayView.java.template $(BUILD_TOOLS_JDK)
|
||||
$$(call MakeDir, $$(@D))
|
||||
$(RM) $$@
|
||||
$(TOOL_SPP) -nel -K$$($1_type) \
|
||||
-Dtype=$$($1_type) -DType=$$($1_Type) -DBoxType=$$($1_BoxType) \
|
||||
-DrawType=$$($1_rawType) -DRawType=$$($1_RawType) -DRawBoxType=$$($1_RawBoxType) \
|
||||
$$($1_ARGS) < $$< > $$@
|
||||
$$($1_ARGS) -i$$< -o$$@
|
||||
|
||||
GENSRC_VARHANDLES += $$($1_FILENAME)
|
||||
endef
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2019, 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
|
||||
@ -46,8 +46,17 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
|
||||
# Helper macro to convert a unix path to a Windows path, suitable for
|
||||
# inclusion in a command line.
|
||||
FixPath = \
|
||||
$(strip $(subst \,\\,$(shell $(CYGPATH) -w $1)))
|
||||
ifeq ($(OPENJDK_BUILD_OS_ENV), windows.cygwin)
|
||||
FixPath = \
|
||||
$(strip $(subst \,\\,$(shell $(CYGPATH) -w $1)))
|
||||
FixLinuxExecutable = \
|
||||
$(call FixPath, $1)
|
||||
else ifeq ($(OPENJDK_BUILD_OS_ENV), windows.wsl)
|
||||
FixPath = \
|
||||
$(strip $(subst \,\\,$(shell $(WSLPATH) -w $1)))
|
||||
FixLinuxExecutable = \
|
||||
"%windir%\Sysnative\wsl.exe $1"
|
||||
endif
|
||||
|
||||
JVM_DEFINES_client := $(patsubst -D%,%, $(filter -D%, $(JVM_CFLAGS)))
|
||||
EXTRACTED_DEFINES_client := $(addprefix -define , $(JVM_DEFINES_client))
|
||||
@ -121,7 +130,7 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
-platformName x64 \
|
||||
-buildBase $(call FixPath, $(IDE_OUTPUTDIR)/vs-output) \
|
||||
-buildSpace $(call FixPath, $(IDE_OUTPUTDIR)) \
|
||||
-makeBinary $(call FixPath, $(MAKE)) \
|
||||
-makeBinary $(call FixLinuxExecutable, $(MAKE)) \
|
||||
-makeOutput $(call FixPath, $(JDK_OUTPUTDIR)/bin/server) \
|
||||
-absoluteInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \
|
||||
-absoluteSrcInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \
|
||||
|
@ -81,7 +81,6 @@ JVM_GetClassFieldsCount
|
||||
JVM_GetClassInterfaces
|
||||
JVM_GetClassMethodsCount
|
||||
JVM_GetClassModifiers
|
||||
JVM_GetClassName
|
||||
JVM_GetClassNameUTF
|
||||
JVM_GetClassSignature
|
||||
JVM_GetClassSigners
|
||||
@ -133,6 +132,7 @@ JVM_Halt
|
||||
JVM_HasReferencePendingList
|
||||
JVM_HoldsLock
|
||||
JVM_IHashCode
|
||||
JVM_InitClassName
|
||||
JVM_InitStackTraceElement
|
||||
JVM_InitStackTraceElementArray
|
||||
JVM_InitializeFromArchive
|
||||
|
@ -28,7 +28,9 @@ package build.tools.generatecurrencydata;
|
||||
import java.io.IOException;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -134,18 +136,43 @@ public class GenerateCurrencyData {
|
||||
private static String currenciesWithMinorUnitsUndefined;
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
InputStream in = System.in;
|
||||
// Look for "-o outputfilename" option
|
||||
if ( args.length == 2 && args[0].equals("-o") ) {
|
||||
try {
|
||||
out = new DataOutputStream(new FileOutputStream(args[1]));
|
||||
} catch ( FileNotFoundException e ) {
|
||||
System.err.println("Error: " + e.getMessage());
|
||||
e.printStackTrace(System.err);
|
||||
for (int n = 0; n < args.length; ++n) {
|
||||
if (args[n].equals("-o")) {
|
||||
++n;
|
||||
if (n >= args.length) {
|
||||
System.err.println("Error: Invalid argument format");
|
||||
System.exit(1);
|
||||
}
|
||||
try {
|
||||
out = new DataOutputStream(new FileOutputStream(args[n]));
|
||||
} catch ( FileNotFoundException e ) {
|
||||
System.err.println("Error: " + e.getMessage());
|
||||
e.printStackTrace(System.err);
|
||||
System.exit(1);
|
||||
}
|
||||
} else if (args[n].equals("-i")) {
|
||||
++n;
|
||||
if (n >= args.length) {
|
||||
System.err.println("Error: Invalid argument format");
|
||||
System.exit(1);
|
||||
}
|
||||
try {
|
||||
in = new FileInputStream(args[n]);
|
||||
} catch ( FileNotFoundException e ) {
|
||||
System.err.println("Error: " + e.getMessage());
|
||||
e.printStackTrace(System.err);
|
||||
System.exit(1);
|
||||
}
|
||||
} else {
|
||||
System.err.println("Error: Invalid argument " + args[n]);
|
||||
System.exit(1);
|
||||
}
|
||||
} else {
|
||||
System.err.println("Error: Illegal arg count");
|
||||
}
|
||||
|
||||
if (out == null) {
|
||||
System.err.println("Error: Invalid argument format");
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
@ -154,7 +181,7 @@ public class GenerateCurrencyData {
|
||||
format.setLenient(false);
|
||||
|
||||
try {
|
||||
readInput();
|
||||
readInput(in);
|
||||
buildMainAndSpecialCaseTables();
|
||||
buildOtherTables();
|
||||
writeOutput();
|
||||
@ -167,9 +194,9 @@ public class GenerateCurrencyData {
|
||||
}
|
||||
}
|
||||
|
||||
private static void readInput() throws IOException {
|
||||
private static void readInput(InputStream in) throws IOException {
|
||||
currencyData = new Properties();
|
||||
currencyData.load(System.in);
|
||||
currencyData.load(in);
|
||||
|
||||
// initialize other lookup strings
|
||||
formatVersion = (String) currencyData.get("formatVersion");
|
||||
|
@ -25,6 +25,8 @@
|
||||
|
||||
package build.tools.spp;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.util.*;
|
||||
import java.util.regex.*;
|
||||
|
||||
@ -69,6 +71,8 @@ public class Spp {
|
||||
Set<String> keys = new HashSet<>();
|
||||
boolean be = false;
|
||||
boolean el = true;
|
||||
String inputFile = null;
|
||||
String outputFile = null;
|
||||
|
||||
for (String arg:args) {
|
||||
if (arg.startsWith("-D")) {
|
||||
@ -76,6 +80,10 @@ public class Spp {
|
||||
vars.put(arg.substring(2, i),arg.substring(i+1));
|
||||
} else if (arg.startsWith("-K")) {
|
||||
keys.add(arg.substring(2));
|
||||
} else if (arg.startsWith("-i")) {
|
||||
inputFile = arg.substring(2);
|
||||
} else if (arg.startsWith("-o")) {
|
||||
outputFile = arg.substring(2);
|
||||
} else if ("-be".equals(arg)) {
|
||||
be = true;
|
||||
} else if ("-nel".equals(arg)) {
|
||||
@ -87,11 +95,11 @@ public class Spp {
|
||||
}
|
||||
|
||||
StringBuffer out = new StringBuffer();
|
||||
new Spp().spp(new Scanner(System.in),
|
||||
new Spp().spp(new Scanner(new FileInputStream(inputFile)),
|
||||
out, "",
|
||||
keys, vars, be, el,
|
||||
false);
|
||||
System.out.print(out.toString());
|
||||
new FileOutputStream(outputFile, true).write(out.toString().getBytes());
|
||||
}
|
||||
|
||||
static final String LNSEP = System.getProperty("line.separator");
|
||||
|
@ -203,7 +203,7 @@ ifeq ($(OPENJDK_TARGET_OS_TYPE), unix)
|
||||
|
||||
ifneq ($(MAN_FILES_MD), )
|
||||
# If we got markdown files, ignore the troff files
|
||||
ifeq ($(PANDOC), )
|
||||
ifeq ($(ENABLE_PANDOC), false)
|
||||
$(info Warning: pandoc not found. Not generating man pages)
|
||||
else
|
||||
# Create dynamic man pages from markdown using pandoc. We need
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2019, 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
|
||||
@ -519,7 +519,7 @@ else
|
||||
DISABLED_WARNINGS_solstudio := \
|
||||
E_STATEMENT_NOT_REACHED \
|
||||
E_END_OF_LOOP_CODE_NOT_REACHED, \
|
||||
DISABLED_WARNINGS_microsoft := 4267 4244 4312, \
|
||||
DISABLED_WARNINGS_microsoft := 4267 4244 4312 4819, \
|
||||
DISABLED_WARNINGS_gcc := implicit-fallthrough, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2019, 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
|
||||
@ -66,7 +66,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBSA, \
|
||||
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(SA_CFLAGS) $(SA_CXXFLAGS), \
|
||||
EXTRA_SRC := $(LIBSA_EXTRA_SRC), \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) $(SA_LDFLAGS), \
|
||||
LIBS_linux := -lthread_db $(LIBDL), \
|
||||
LIBS_linux := $(LIBDL), \
|
||||
LIBS_solaris := -ldl -ldemangle -lthread -lproc, \
|
||||
LIBS_macosx := -framework Foundation -framework JavaNativeFoundation \
|
||||
-framework JavaRuntimeSupport -framework Security -framework CoreFoundation, \
|
||||
|
@ -2538,7 +2538,6 @@
|
||||
<in>arguments.cpp</in>
|
||||
<in>arguments.hpp</in>
|
||||
<in>arguments_ext.cpp</in>
|
||||
<in>arguments_ext.hpp</in>
|
||||
<in>atomic.hpp</in>
|
||||
<in>basicLock.cpp</in>
|
||||
<in>basicLock.hpp</in>
|
||||
@ -2702,7 +2701,6 @@
|
||||
<in>diagnosticArgument.hpp</in>
|
||||
<in>diagnosticCommand.cpp</in>
|
||||
<in>diagnosticCommand.hpp</in>
|
||||
<in>diagnosticCommand_ext.hpp</in>
|
||||
<in>diagnosticFramework.cpp</in>
|
||||
<in>diagnosticFramework.hpp</in>
|
||||
<in>dtraceAttacher.cpp</in>
|
||||
@ -13687,11 +13685,6 @@
|
||||
tool="1"
|
||||
flavor2="0">
|
||||
</item>
|
||||
<item path="../../src/hotspot/share/runtime/arguments_ext.hpp"
|
||||
ex="false"
|
||||
tool="3"
|
||||
flavor2="0">
|
||||
</item>
|
||||
<item path="../../src/hotspot/share/runtime/atomic.hpp"
|
||||
ex="false"
|
||||
tool="3"
|
||||
@ -14497,11 +14490,6 @@
|
||||
tool="3"
|
||||
flavor2="0">
|
||||
</item>
|
||||
<item path="../../src/hotspot/share/services/diagnosticCommand_ext.hpp"
|
||||
ex="false"
|
||||
tool="3"
|
||||
flavor2="0">
|
||||
</item>
|
||||
<item path="../../src/hotspot/share/services/diagnosticFramework.cpp"
|
||||
ex="false"
|
||||
tool="1"
|
||||
@ -27454,11 +27442,6 @@
|
||||
tool="1"
|
||||
flavor2="0">
|
||||
</item>
|
||||
<item path="../../src/hotspot/share/runtime/arguments_ext.hpp"
|
||||
ex="false"
|
||||
tool="3"
|
||||
flavor2="0">
|
||||
</item>
|
||||
<item path="../../src/hotspot/share/runtime/atomic.hpp"
|
||||
ex="false"
|
||||
tool="3"
|
||||
@ -28264,11 +28247,6 @@
|
||||
tool="3"
|
||||
flavor2="0">
|
||||
</item>
|
||||
<item path="../../src/hotspot/share/services/diagnosticCommand_ext.hpp"
|
||||
ex="false"
|
||||
tool="3"
|
||||
flavor2="0">
|
||||
</item>
|
||||
<item path="../../src/hotspot/share/services/diagnosticFramework.cpp"
|
||||
ex="false"
|
||||
tool="1"
|
||||
|
@ -86,7 +86,7 @@ function MetaInlines(value) {
|
||||
function change_title(type, value) {
|
||||
if (type === 'MetaInlines') {
|
||||
if (value[0].t === 'Str') {
|
||||
var match = value[0].c.match(/^([A-Z]+)\([0-9]+\)$/);
|
||||
var match = value[0].c.match(/^([A-Z0-9]+)\([0-9]+\)$/);
|
||||
if (match) {
|
||||
return MetaInlines([
|
||||
Str("The"), Space(),
|
||||
|
24
make/scripts/windowsShortName.bat
Normal file
24
make/scripts/windowsShortName.bat
Normal file
@ -0,0 +1,24 @@
|
||||
@echo off
|
||||
REM
|
||||
REM Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
REM
|
||||
REM This code is free software; you can redistribute it and/or modify it
|
||||
REM under the terms of the GNU General Public License version 2 only, as
|
||||
REM published by the Free Software Foundation.
|
||||
REM
|
||||
REM This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
REM version 2 for more details (a copy is included in the LICENSE file that
|
||||
REM accompanied this code).
|
||||
REM
|
||||
REM You should have received a copy of the GNU General Public License version
|
||||
REM 2 along with this work; if not, write to the Free Software Foundation,
|
||||
REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
REM
|
||||
REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
REM or visit www.oracle.com if you need additional information or have any
|
||||
REM questions.
|
||||
REM
|
||||
if '%1' NEQ '' echo %~s1
|
@ -24,6 +24,7 @@
|
||||
*/
|
||||
|
||||
#include <Windows.h>
|
||||
#include <stdbool.h>
|
||||
#include <io.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
@ -53,25 +54,16 @@ void report_error(char const * msg)
|
||||
}
|
||||
|
||||
/*
|
||||
* Test if pos points to /cygdrive/_/ where _ can
|
||||
* Test if pos points to /prefix/_/ where _ can
|
||||
* be any character.
|
||||
*/
|
||||
int is_cygdrive_here(int pos, char const *in, int len)
|
||||
int is_prefix_here(int pos, char const *in, int len, const char* prefix)
|
||||
{
|
||||
// Length of /cygdrive/c/ is 12
|
||||
if (pos+12 > len) return 0;
|
||||
if (in[pos+11]=='/' &&
|
||||
in[pos+9]=='/' &&
|
||||
in[pos+8]=='e' &&
|
||||
in[pos+7]=='v' &&
|
||||
in[pos+6]=='i' &&
|
||||
in[pos+5]=='r' &&
|
||||
in[pos+4]=='d' &&
|
||||
in[pos+3]=='g' &&
|
||||
in[pos+2]=='y' &&
|
||||
in[pos+1]=='c' &&
|
||||
in[pos+0]=='/') {
|
||||
return 1;
|
||||
// Length of c/ is 2
|
||||
int prefix_size = strlen(prefix);
|
||||
if (pos+prefix_size+2 > len) return 0;
|
||||
if (in[pos+prefix_size+1]=='/') {
|
||||
return strncmp(in + pos, prefix, prefix_size) == 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -93,7 +85,7 @@ char *replace_cygdrive_cygwin(char const *in)
|
||||
}
|
||||
|
||||
for (i = 0, j = 0; i<len;) {
|
||||
if (is_cygdrive_here(i, in, len)) {
|
||||
if (is_prefix_here(i, in, len, "/cygdrive/")) {
|
||||
out[j++] = in[i+10];
|
||||
out[j++] = ':';
|
||||
i+=11;
|
||||
@ -196,7 +188,39 @@ char *replace_cygdrive_msys(char const *in)
|
||||
return str;
|
||||
}
|
||||
|
||||
/*
|
||||
* Replace /mnt/_/ with _:/
|
||||
* Works in place since drive letter is always
|
||||
* shorter than /mnt/
|
||||
*/
|
||||
char *replace_cygdrive_wsl(char const *in)
|
||||
{
|
||||
size_t len = strlen(in);
|
||||
char *out = (char*) malloc(len+1);
|
||||
int i,j;
|
||||
|
||||
if (len < 7) {
|
||||
memmove(out, in, len + 1);
|
||||
return out;
|
||||
}
|
||||
|
||||
for (i = 0, j = 0; i<len;) {
|
||||
if (is_prefix_here(i, in, len, "/mnt/")) {
|
||||
out[j++] = in[i+5];
|
||||
out[j++] = ':';
|
||||
i+=6;
|
||||
} else {
|
||||
out[j] = in[i];
|
||||
i++;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
out[j] = '\0';
|
||||
return out;
|
||||
}
|
||||
|
||||
char*(*replace_cygdrive)(char const *in) = NULL;
|
||||
bool debug_fixpath = false;
|
||||
|
||||
char *files_to_delete[1024];
|
||||
int num_files_to_delete = 0;
|
||||
@ -250,11 +274,11 @@ char *fix_at_file(char const *in)
|
||||
append(&buffer, &buflen, &used, block, blocklen);
|
||||
}
|
||||
buffer[used] = 0;
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath input from @-file %s: %s\n", &in[1], buffer);
|
||||
}
|
||||
fixed = replace_cygdrive(buffer);
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath converted to @-file %s is: %s\n", name, fixed);
|
||||
}
|
||||
fwrite(fixed, strlen(fixed), 1, atout);
|
||||
@ -362,28 +386,36 @@ int main(int argc, char const ** argv)
|
||||
DWORD processFlags = 0;
|
||||
BOOL processInheritHandles = TRUE;
|
||||
BOOL waitForChild = TRUE;
|
||||
char* fixpathPath;
|
||||
|
||||
if (argc<2 || argv[1][0] != '-' || (argv[1][1] != 'c' && argv[1][1] != 'm')) {
|
||||
fprintf(stderr, "Usage: fixpath -c|m<path@path@...> [--detach] /cygdrive/c/WINDOWS/notepad.exe [/cygdrive/c/x/test.txt|@/cygdrive/c/x/atfile]\n");
|
||||
debug_fixpath = (getenv("DEBUG_FIXPATH") != NULL);
|
||||
|
||||
if (argc<2 || argv[1][0] != '-' || (argv[1][1] != 'c' && argv[1][1] != 'm' && argv[1][1] != 'w')) {
|
||||
fprintf(stderr, "Usage: fixpath -c|m|w<path@path@...> [--detach] /cygdrive/c/WINDOWS/notepad.exe [/cygdrive/c/x/test.txt|@/cygdrive/c/x/atfile]\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
char const * cmdline = GetCommandLine();
|
||||
fprintf(stderr, "fixpath input line >%s<\n", strstr(cmdline, argv[1]));
|
||||
}
|
||||
|
||||
if (argv[1][1] == 'c' && argv[1][2] == '\0') {
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath using cygwin mode\n");
|
||||
}
|
||||
replace_cygdrive = replace_cygdrive_cygwin;
|
||||
} else if (argv[1][1] == 'm') {
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath using msys mode, with path list: %s\n", &argv[1][2]);
|
||||
}
|
||||
setup_msys_path_list(argv[1]);
|
||||
replace_cygdrive = replace_cygdrive_msys;
|
||||
} else if (argv[1][1] == 'w') {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath using wsl mode, with path list: %s\n", &argv[1][2]);
|
||||
}
|
||||
replace_cygdrive = replace_cygdrive_wsl;
|
||||
} else {
|
||||
fprintf(stderr, "fixpath Unknown mode: %s\n", argv[1]);
|
||||
exit(-1);
|
||||
@ -391,7 +423,7 @@ int main(int argc, char const ** argv)
|
||||
|
||||
if (argv[2][0] == '-') {
|
||||
if (strcmp(argv[2], "--detach") == 0) {
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath in detached mode\n");
|
||||
}
|
||||
processFlags |= DETACHED_PROCESS;
|
||||
@ -417,7 +449,7 @@ int main(int argc, char const ** argv)
|
||||
var[var_len - 1] = '\0';
|
||||
strupr(var);
|
||||
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath setting var >%s< to >%s<\n", var, val);
|
||||
}
|
||||
|
||||
@ -480,15 +512,15 @@ int main(int argc, char const ** argv)
|
||||
}
|
||||
*current = '\0';
|
||||
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath converted line >%s<\n", line);
|
||||
}
|
||||
|
||||
if (cmd == argc) {
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
fprintf(stderr, "fixpath no command provided!\n");
|
||||
}
|
||||
exit(0);
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath no command provided!\n");
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
@ -498,6 +530,23 @@ int main(int argc, char const ** argv)
|
||||
fflush(stderr);
|
||||
fflush(stdout);
|
||||
|
||||
fixpathPath = calloc(32767, sizeof(char));
|
||||
rc = GetEnvironmentVariable("FIXPATH_PATH", fixpathPath, 32767);
|
||||
if (rc) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "Setting Path to FIXPATH_PATH: %s\n", fixpathPath);
|
||||
}
|
||||
rc = SetEnvironmentVariable("Path", fixpathPath);
|
||||
if (!rc) {
|
||||
// Could not set Path for some reason. Try to report why.
|
||||
const int msg_len = 80 + strlen(fixpathPath);
|
||||
char * msg = (char *)alloca(msg_len);
|
||||
_snprintf_s(msg, msg_len, _TRUNCATE, "Could not set environment variable [Path=%s]", fixpathPath);
|
||||
report_error(msg);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
rc = CreateProcess(NULL,
|
||||
line,
|
||||
0,
|
||||
@ -518,7 +567,7 @@ int main(int argc, char const ** argv)
|
||||
WaitForSingleObject(pi.hProcess, INFINITE);
|
||||
GetExitCodeProcess(pi.hProcess, &exitCode);
|
||||
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
for (i=0; i<num_files_to_delete; ++i) {
|
||||
fprintf(stderr, "fixpath Not deleting temporary file %s\n",
|
||||
files_to_delete[i]);
|
||||
@ -530,13 +579,13 @@ int main(int argc, char const ** argv)
|
||||
}
|
||||
|
||||
if (exitCode != 0) {
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath exit code %d\n",
|
||||
exitCode);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (getenv("DEBUG_FIXPATH") != NULL) {
|
||||
if (debug_fixpath) {
|
||||
fprintf(stderr, "fixpath Not waiting for child process");
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2018, 2019, 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
|
||||
@ -78,7 +78,7 @@ $(eval $(call SetupJavaCompiler, MICROBENCHMARK_JAVA_COMPILER, \
|
||||
# Build microbenchmark suite for the current JDK
|
||||
$(eval $(call SetupJavaCompilation, BUILD_JDK_MICROBENCHMARK, \
|
||||
SETUP := MICROBENCHMARK_JAVA_COMPILER, \
|
||||
ADD_JAVAC_FLAGS := -cp $(MICROBENCHMARK_CLASSPATH) -Xlint -Werror, \
|
||||
ADD_JAVAC_FLAGS := -cp $(MICROBENCHMARK_CLASSPATH) -Xlint -Xlint:-processing -Werror, \
|
||||
SRC := $(MICROBENCHMARK_SRC), \
|
||||
BIN := $(MICROBENCHMARK_CLASSES), \
|
||||
))
|
||||
|
@ -1,6 +1,6 @@
|
||||
//
|
||||
// Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
// Copyright (c) 2014, 2018, Red Hat, Inc. All rights reserved.
|
||||
// Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
// Copyright (c) 2014, 2019, Red Hat, Inc. 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
|
||||
@ -2133,7 +2133,12 @@ const uint Matcher::vector_ideal_reg(int len) {
|
||||
}
|
||||
|
||||
const uint Matcher::vector_shift_count_ideal_reg(int size) {
|
||||
return Op_VecX;
|
||||
switch(size) {
|
||||
case 8: return Op_VecD;
|
||||
case 16: return Op_VecX;
|
||||
}
|
||||
ShouldNotReachHere();
|
||||
return 0;
|
||||
}
|
||||
|
||||
// AES support not yet implemented
|
||||
@ -3413,13 +3418,7 @@ encode %{
|
||||
}
|
||||
|
||||
// Handle existing monitor
|
||||
// we can use AArch64's bit test and branch here but
|
||||
// markoopDesc does not define a bit index just the bit value
|
||||
// so assert in case the bit pos changes
|
||||
# define __monitor_value_log2 1
|
||||
assert(markOopDesc::monitor_value == (1 << __monitor_value_log2), "incorrect bit position");
|
||||
__ tbnz(disp_hdr, __monitor_value_log2, object_has_monitor);
|
||||
# undef __monitor_value_log2
|
||||
__ tbnz(disp_hdr, exact_log2(markOopDesc::monitor_value), object_has_monitor);
|
||||
|
||||
// Set displaced_header to be (markOop of object | UNLOCK_VALUE).
|
||||
__ orr(disp_hdr, disp_hdr, markOopDesc::unlocked_value);
|
||||
@ -3450,14 +3449,6 @@ encode %{
|
||||
__ b(retry_load);
|
||||
}
|
||||
|
||||
// Formerly:
|
||||
// __ cmpxchgptr(/*oldv=*/disp_hdr,
|
||||
// /*newv=*/box,
|
||||
// /*addr=*/oop,
|
||||
// /*tmp=*/tmp,
|
||||
// cont,
|
||||
// /*fail*/NULL);
|
||||
|
||||
assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
|
||||
|
||||
// If the compare-and-exchange succeeded, then we found an unlocked
|
||||
@ -3506,42 +3497,18 @@ encode %{
|
||||
__ bind(fail);
|
||||
}
|
||||
|
||||
// Label next;
|
||||
// __ cmpxchgptr(/*oldv=*/disp_hdr,
|
||||
// /*newv=*/rthread,
|
||||
// /*addr=*/tmp,
|
||||
// /*tmp=*/rscratch1,
|
||||
// /*succeed*/next,
|
||||
// /*fail*/NULL);
|
||||
// __ bind(next);
|
||||
|
||||
// store a non-null value into the box.
|
||||
__ str(box, Address(box, BasicLock::displaced_header_offset_in_bytes()));
|
||||
|
||||
// PPC port checks the following invariants
|
||||
// #ifdef ASSERT
|
||||
// bne(flag, cont);
|
||||
// We have acquired the monitor, check some invariants.
|
||||
// addw(/*monitor=*/tmp, tmp, -ObjectMonitor::owner_offset_in_bytes());
|
||||
// Invariant 1: _recursions should be 0.
|
||||
// assert(ObjectMonitor::recursions_size_in_bytes() == 8, "unexpected size");
|
||||
// assert_mem8_is_zero(ObjectMonitor::recursions_offset_in_bytes(), tmp,
|
||||
// "monitor->_recursions should be 0", -1);
|
||||
// Invariant 2: OwnerIsThread shouldn't be 0.
|
||||
// assert(ObjectMonitor::OwnerIsThread_size_in_bytes() == 4, "unexpected size");
|
||||
//assert_mem4_isnot_zero(ObjectMonitor::OwnerIsThread_offset_in_bytes(), tmp,
|
||||
// "monitor->OwnerIsThread shouldn't be 0", -1);
|
||||
// #endif
|
||||
// Store a non-null value into the box to avoid looking like a re-entrant
|
||||
// lock. The fast-path monitor unlock code checks for
|
||||
// markOopDesc::monitor_value so use markOopDesc::unused_mark which has the
|
||||
// relevant bit set, and also matches ObjectSynchronizer::slow_enter.
|
||||
__ mov(tmp, (address)markOopDesc::unused_mark());
|
||||
__ str(tmp, Address(box, BasicLock::displaced_header_offset_in_bytes()));
|
||||
|
||||
__ bind(cont);
|
||||
// flag == EQ indicates success
|
||||
// flag == NE indicates failure
|
||||
|
||||
%}
|
||||
|
||||
// TODO
|
||||
// reimplement this with custom cmpxchgptr code
|
||||
// which avoids some of the unnecessary branching
|
||||
enc_class aarch64_enc_fast_unlock(iRegP object, iRegP box, iRegP tmp, iRegP tmp2) %{
|
||||
MacroAssembler _masm(&cbuf);
|
||||
Register oop = as_Register($object$$reg);
|
||||
@ -3550,7 +3517,6 @@ encode %{
|
||||
Register tmp = as_Register($tmp2$$reg);
|
||||
Label cont;
|
||||
Label object_has_monitor;
|
||||
Label cas_failed;
|
||||
|
||||
assert_different_registers(oop, box, tmp, disp_hdr);
|
||||
|
||||
@ -3565,7 +3531,6 @@ encode %{
|
||||
__ cmp(disp_hdr, zr);
|
||||
__ br(Assembler::EQ, cont);
|
||||
|
||||
|
||||
// Handle existing monitor.
|
||||
__ ldr(tmp, Address(oop, oopDesc::mark_offset_in_bytes()));
|
||||
__ tbnz(disp_hdr, exact_log2(markOopDesc::monitor_value), object_has_monitor);
|
||||
@ -3574,37 +3539,28 @@ encode %{
|
||||
// see the stack address of the basicLock in the markOop of the
|
||||
// object.
|
||||
|
||||
if (UseLSE) {
|
||||
__ mov(tmp, box);
|
||||
__ casl(Assembler::xword, tmp, disp_hdr, oop);
|
||||
__ cmp(tmp, box);
|
||||
} else {
|
||||
Label retry_load;
|
||||
if ((VM_Version::features() & VM_Version::CPU_STXR_PREFETCH))
|
||||
__ prfm(Address(oop), PSTL1STRM);
|
||||
__ bind(retry_load);
|
||||
__ ldxr(tmp, oop);
|
||||
__ cmp(box, tmp);
|
||||
__ br(Assembler::NE, cas_failed);
|
||||
// use stlxr to ensure update is immediately visible
|
||||
__ stlxr(tmp, disp_hdr, oop);
|
||||
__ cbzw(tmp, cont);
|
||||
__ b(retry_load);
|
||||
}
|
||||
if (UseLSE) {
|
||||
__ mov(tmp, box);
|
||||
__ casl(Assembler::xword, tmp, disp_hdr, oop);
|
||||
__ cmp(tmp, box);
|
||||
__ b(cont);
|
||||
} else {
|
||||
Label retry_load;
|
||||
if ((VM_Version::features() & VM_Version::CPU_STXR_PREFETCH))
|
||||
__ prfm(Address(oop), PSTL1STRM);
|
||||
__ bind(retry_load);
|
||||
__ ldxr(tmp, oop);
|
||||
__ cmp(box, tmp);
|
||||
__ br(Assembler::NE, cont);
|
||||
// use stlxr to ensure update is immediately visible
|
||||
__ stlxr(tmp, disp_hdr, oop);
|
||||
__ cbzw(tmp, cont);
|
||||
__ b(retry_load);
|
||||
}
|
||||
|
||||
// __ cmpxchgptr(/*compare_value=*/box,
|
||||
// /*exchange_value=*/disp_hdr,
|
||||
// /*where=*/oop,
|
||||
// /*result=*/tmp,
|
||||
// cont,
|
||||
// /*cas_failed*/NULL);
|
||||
assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
|
||||
|
||||
__ bind(cas_failed);
|
||||
|
||||
// Handle existing monitor.
|
||||
__ b(cont);
|
||||
|
||||
__ bind(object_has_monitor);
|
||||
__ add(tmp, tmp, -markOopDesc::monitor_value); // monitor
|
||||
__ ldr(rscratch1, Address(tmp, ObjectMonitor::owner_offset_in_bytes()));
|
||||
@ -3621,7 +3577,7 @@ encode %{
|
||||
__ cbnz(rscratch1, cont);
|
||||
// need a release store here
|
||||
__ lea(tmp, Address(tmp, ObjectMonitor::owner_offset_in_bytes()));
|
||||
__ stlr(rscratch1, tmp); // rscratch1 is zero
|
||||
__ stlr(zr, tmp); // set unowned
|
||||
|
||||
__ bind(cont);
|
||||
// flag == EQ indicates success
|
||||
@ -12601,6 +12557,63 @@ instruct mnsubD_reg_reg(vRegD dst, vRegD src1, vRegD src2, vRegD src3, immD0 zer
|
||||
%}
|
||||
|
||||
|
||||
// Math.max(FF)F
|
||||
instruct maxF_reg_reg(vRegF dst, vRegF src1, vRegF src2) %{
|
||||
match(Set dst (MaxF src1 src2));
|
||||
|
||||
format %{ "fmaxs $dst, $src1, $src2" %}
|
||||
ins_encode %{
|
||||
__ fmaxs(as_FloatRegister($dst$$reg),
|
||||
as_FloatRegister($src1$$reg),
|
||||
as_FloatRegister($src2$$reg));
|
||||
%}
|
||||
|
||||
ins_pipe(fp_dop_reg_reg_s);
|
||||
%}
|
||||
|
||||
// Math.min(FF)F
|
||||
instruct minF_reg_reg(vRegF dst, vRegF src1, vRegF src2) %{
|
||||
match(Set dst (MinF src1 src2));
|
||||
|
||||
format %{ "fmins $dst, $src1, $src2" %}
|
||||
ins_encode %{
|
||||
__ fmins(as_FloatRegister($dst$$reg),
|
||||
as_FloatRegister($src1$$reg),
|
||||
as_FloatRegister($src2$$reg));
|
||||
%}
|
||||
|
||||
ins_pipe(fp_dop_reg_reg_s);
|
||||
%}
|
||||
|
||||
// Math.max(DD)D
|
||||
instruct maxD_reg_reg(vRegD dst, vRegD src1, vRegD src2) %{
|
||||
match(Set dst (MaxD src1 src2));
|
||||
|
||||
format %{ "fmaxd $dst, $src1, $src2" %}
|
||||
ins_encode %{
|
||||
__ fmaxd(as_FloatRegister($dst$$reg),
|
||||
as_FloatRegister($src1$$reg),
|
||||
as_FloatRegister($src2$$reg));
|
||||
%}
|
||||
|
||||
ins_pipe(fp_dop_reg_reg_d);
|
||||
%}
|
||||
|
||||
// Math.min(DD)D
|
||||
instruct minD_reg_reg(vRegD dst, vRegD src1, vRegD src2) %{
|
||||
match(Set dst (MinD src1 src2));
|
||||
|
||||
format %{ "fmind $dst, $src1, $src2" %}
|
||||
ins_encode %{
|
||||
__ fmind(as_FloatRegister($dst$$reg),
|
||||
as_FloatRegister($src1$$reg),
|
||||
as_FloatRegister($src2$$reg));
|
||||
%}
|
||||
|
||||
ins_pipe(fp_dop_reg_reg_d);
|
||||
%}
|
||||
|
||||
|
||||
instruct divF_reg_reg(vRegF dst, vRegF src1, vRegF src2) %{
|
||||
match(Set dst (DivF src1 src2));
|
||||
|
||||
@ -16524,32 +16537,32 @@ instruct vxor16B(vecX dst, vecX src1, vecX src2)
|
||||
%}
|
||||
|
||||
// ------------------------------ Shift ---------------------------------------
|
||||
|
||||
instruct vshiftcntL(vecX dst, iRegIorL2I cnt) %{
|
||||
instruct vshiftcnt8B(vecD dst, iRegIorL2I cnt) %{
|
||||
predicate(n->as_Vector()->length_in_bytes() == 8);
|
||||
match(Set dst (LShiftCntV cnt));
|
||||
format %{ "dup $dst, $cnt\t# shift count (vecX)" %}
|
||||
ins_encode %{
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T16B, as_Register($cnt$$reg));
|
||||
%}
|
||||
ins_pipe(vdup_reg_reg128);
|
||||
%}
|
||||
|
||||
// Right shifts on aarch64 SIMD are implemented as left shift by -ve amount
|
||||
instruct vshiftcntR(vecX dst, iRegIorL2I cnt) %{
|
||||
match(Set dst (RShiftCntV cnt));
|
||||
format %{ "dup $dst, $cnt\t# shift count (vecX)\n\tneg $dst, $dst\t T16B" %}
|
||||
format %{ "dup $dst, $cnt\t# shift count vector (8B)" %}
|
||||
ins_encode %{
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T8B, as_Register($cnt$$reg));
|
||||
%}
|
||||
ins_pipe(vdup_reg_reg64);
|
||||
%}
|
||||
|
||||
instruct vshiftcnt16B(vecX dst, iRegIorL2I cnt) %{
|
||||
predicate(n->as_Vector()->length_in_bytes() == 16);
|
||||
match(Set dst (LShiftCntV cnt));
|
||||
match(Set dst (RShiftCntV cnt));
|
||||
format %{ "dup $dst, $cnt\t# shift count vector (16B)" %}
|
||||
ins_encode %{
|
||||
__ dup(as_FloatRegister($dst$$reg), __ T16B, as_Register($cnt$$reg));
|
||||
__ negr(as_FloatRegister($dst$$reg), __ T16B, as_FloatRegister($dst$$reg));
|
||||
%}
|
||||
ins_pipe(vdup_reg_reg128);
|
||||
%}
|
||||
|
||||
instruct vsll8B(vecD dst, vecD src, vecX shift) %{
|
||||
instruct vsll8B(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 ||
|
||||
n->as_Vector()->length() == 8);
|
||||
match(Set dst (LShiftVB src shift));
|
||||
match(Set dst (RShiftVB src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "sshl $dst,$src,$shift\t# vector (8B)" %}
|
||||
ins_encode %{
|
||||
@ -16563,7 +16576,6 @@ instruct vsll8B(vecD dst, vecD src, vecX shift) %{
|
||||
instruct vsll16B(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
match(Set dst (LShiftVB src shift));
|
||||
match(Set dst (RShiftVB src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "sshl $dst,$src,$shift\t# vector (16B)" %}
|
||||
ins_encode %{
|
||||
@ -16574,29 +16586,93 @@ instruct vsll16B(vecX dst, vecX src, vecX shift) %{
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
||||
instruct vsrl8B(vecD dst, vecD src, vecX shift) %{
|
||||
// Right shifts with vector shift count on aarch64 SIMD are implemented
|
||||
// as left shift by negative shift count.
|
||||
// There are two cases for vector shift count.
|
||||
//
|
||||
// Case 1: The vector shift count is from replication.
|
||||
// | |
|
||||
// LoadVector RShiftCntV
|
||||
// | /
|
||||
// RShiftVI
|
||||
// Note: In inner loop, multiple neg instructions are used, which can be
|
||||
// moved to outer loop and merge into one neg instruction.
|
||||
//
|
||||
// Case 2: The vector shift count is from loading.
|
||||
// This case isn't supported by middle-end now. But it's supported by
|
||||
// panama/vectorIntrinsics(JEP 338: Vector API).
|
||||
// | |
|
||||
// LoadVector LoadVector
|
||||
// | /
|
||||
// RShiftVI
|
||||
//
|
||||
|
||||
instruct vsra8B(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 4 ||
|
||||
n->as_Vector()->length() == 8);
|
||||
match(Set dst (URShiftVB src shift));
|
||||
match(Set dst (RShiftVB src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "ushl $dst,$src,$shift\t# vector (8B)" %}
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"sshl $dst,$src,$tmp\t# vector (8B)" %}
|
||||
ins_encode %{
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T8B,
|
||||
as_FloatRegister($src$$reg),
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T8B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ sshl(as_FloatRegister($dst$$reg), __ T8B,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift64);
|
||||
%}
|
||||
|
||||
instruct vsrl16B(vecX dst, vecX src, vecX shift) %{
|
||||
instruct vsra16B(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
match(Set dst (RShiftVB src shift));
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"sshl $dst,$src,$tmp\t# vector (16B)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T16B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ sshl(as_FloatRegister($dst$$reg), __ T16B,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
||||
instruct vsrl8B(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 4 ||
|
||||
n->as_Vector()->length() == 8);
|
||||
match(Set dst (URShiftVB src shift));
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"ushl $dst,$src,$tmp\t# vector (8B)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T8B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T8B,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift64);
|
||||
%}
|
||||
|
||||
instruct vsrl16B(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
match(Set dst (URShiftVB src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "ushl $dst,$src,$shift\t# vector (16B)" %}
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"ushl $dst,$src,$tmp\t# vector (16B)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T16B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T16B,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($shift$$reg));
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
@ -16708,11 +16784,10 @@ instruct vsrl16B_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsll4S(vecD dst, vecD src, vecX shift) %{
|
||||
instruct vsll4S(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 ||
|
||||
n->as_Vector()->length() == 4);
|
||||
match(Set dst (LShiftVS src shift));
|
||||
match(Set dst (RShiftVS src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "sshl $dst,$src,$shift\t# vector (4H)" %}
|
||||
ins_encode %{
|
||||
@ -16726,7 +16801,6 @@ instruct vsll4S(vecD dst, vecD src, vecX shift) %{
|
||||
instruct vsll8S(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (LShiftVS src shift));
|
||||
match(Set dst (RShiftVS src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "sshl $dst,$src,$shift\t# vector (8H)" %}
|
||||
ins_encode %{
|
||||
@ -16737,29 +16811,72 @@ instruct vsll8S(vecX dst, vecX src, vecX shift) %{
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
||||
instruct vsrl4S(vecD dst, vecD src, vecX shift) %{
|
||||
instruct vsra4S(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2 ||
|
||||
n->as_Vector()->length() == 4);
|
||||
match(Set dst (URShiftVS src shift));
|
||||
match(Set dst (RShiftVS src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "ushl $dst,$src,$shift\t# vector (4H)" %}
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"sshl $dst,$src,$tmp\t# vector (4H)" %}
|
||||
ins_encode %{
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T4H,
|
||||
as_FloatRegister($src$$reg),
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T8B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ sshl(as_FloatRegister($dst$$reg), __ T4H,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift64);
|
||||
%}
|
||||
|
||||
instruct vsrl8S(vecX dst, vecX src, vecX shift) %{
|
||||
instruct vsra8S(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (RShiftVS src shift));
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"sshl $dst,$src,$tmp\t# vector (8H)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T16B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ sshl(as_FloatRegister($dst$$reg), __ T8H,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
||||
instruct vsrl4S(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2 ||
|
||||
n->as_Vector()->length() == 4);
|
||||
match(Set dst (URShiftVS src shift));
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"ushl $dst,$src,$tmp\t# vector (4H)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T8B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T4H,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift64);
|
||||
%}
|
||||
|
||||
instruct vsrl8S(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (URShiftVS src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "ushl $dst,$src,$shift\t# vector (8H)" %}
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"ushl $dst,$src,$tmp\t# vector (8H)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T16B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T8H,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($shift$$reg));
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
@ -16871,10 +16988,9 @@ instruct vsrl8S_imm(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe(vshift128_imm);
|
||||
%}
|
||||
|
||||
instruct vsll2I(vecD dst, vecD src, vecX shift) %{
|
||||
instruct vsll2I(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (LShiftVI src shift));
|
||||
match(Set dst (RShiftVI src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "sshl $dst,$src,$shift\t# vector (2S)" %}
|
||||
ins_encode %{
|
||||
@ -16888,7 +17004,6 @@ instruct vsll2I(vecD dst, vecD src, vecX shift) %{
|
||||
instruct vsll4I(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (LShiftVI src shift));
|
||||
match(Set dst (RShiftVI src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "sshl $dst,$src,$shift\t# vector (4S)" %}
|
||||
ins_encode %{
|
||||
@ -16899,28 +17014,70 @@ instruct vsll4I(vecX dst, vecX src, vecX shift) %{
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
||||
instruct vsrl2I(vecD dst, vecD src, vecX shift) %{
|
||||
instruct vsra2I(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (URShiftVI src shift));
|
||||
match(Set dst (RShiftVI src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "ushl $dst,$src,$shift\t# vector (2S)" %}
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"sshl $dst,$src,$tmp\t# vector (2S)" %}
|
||||
ins_encode %{
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T2S,
|
||||
as_FloatRegister($src$$reg),
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T8B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ sshl(as_FloatRegister($dst$$reg), __ T2S,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift64);
|
||||
%}
|
||||
|
||||
instruct vsrl4I(vecX dst, vecX src, vecX shift) %{
|
||||
instruct vsra4I(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (RShiftVI src shift));
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"sshl $dst,$src,$tmp\t# vector (4S)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T16B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ sshl(as_FloatRegister($dst$$reg), __ T4S,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
||||
instruct vsrl2I(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (URShiftVI src shift));
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"ushl $dst,$src,$tmp\t# vector (2S)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T8B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T2S,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift64);
|
||||
%}
|
||||
|
||||
instruct vsrl4I(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (URShiftVI src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "ushl $dst,$src,$shift\t# vector (4S)" %}
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"ushl $dst,$src,$tmp\t# vector (4S)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T16B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T4S,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($shift$$reg));
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
@ -17006,7 +17163,6 @@ instruct vsrl4I_imm(vecX dst, vecX src, immI shift) %{
|
||||
instruct vsll2L(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (LShiftVL src shift));
|
||||
match(Set dst (RShiftVL src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "sshl $dst,$src,$shift\t# vector (2D)" %}
|
||||
ins_encode %{
|
||||
@ -17017,15 +17173,36 @@ instruct vsll2L(vecX dst, vecX src, vecX shift) %{
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
||||
instruct vsrl2L(vecX dst, vecX src, vecX shift) %{
|
||||
instruct vsra2L(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (RShiftVL src shift));
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"sshl $dst,$src,$tmp\t# vector (2D)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T16B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ sshl(as_FloatRegister($dst$$reg), __ T2D,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
||||
instruct vsrl2L(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (URShiftVL src shift));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "ushl $dst,$src,$shift\t# vector (2D)" %}
|
||||
effect(TEMP tmp);
|
||||
format %{ "negr $tmp,$shift\t"
|
||||
"ushl $dst,$src,$tmp\t# vector (2D)" %}
|
||||
ins_encode %{
|
||||
__ negr(as_FloatRegister($tmp$$reg), __ T16B,
|
||||
as_FloatRegister($shift$$reg));
|
||||
__ ushl(as_FloatRegister($dst$$reg), __ T2D,
|
||||
as_FloatRegister($src$$reg),
|
||||
as_FloatRegister($shift$$reg));
|
||||
as_FloatRegister($tmp$$reg));
|
||||
%}
|
||||
ins_pipe(vshift128);
|
||||
%}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_ASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_ASSEMBLER_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_ASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_ASSEMBLER_AARCH64_HPP
|
||||
|
||||
#include "asm/register.hpp"
|
||||
|
||||
@ -1118,7 +1118,7 @@ public:
|
||||
Register Rn, enum operand_size sz, int op, bool ordered) {
|
||||
starti;
|
||||
f(sz, 31, 30), f(0b001000, 29, 24), f(op, 23, 21);
|
||||
rf(Rs, 16), f(ordered, 15), rf(Rt2, 10), srf(Rn, 5), rf(Rt1, 0);
|
||||
rf(Rs, 16), f(ordered, 15), rf(Rt2, 10), srf(Rn, 5), zrf(Rt1, 0);
|
||||
}
|
||||
|
||||
void load_exclusive(Register dst, Register addr,
|
||||
@ -1826,12 +1826,16 @@ public:
|
||||
INSN(fdivs, 0b000, 0b00, 0b0001);
|
||||
INSN(fadds, 0b000, 0b00, 0b0010);
|
||||
INSN(fsubs, 0b000, 0b00, 0b0011);
|
||||
INSN(fmaxs, 0b000, 0b00, 0b0100);
|
||||
INSN(fmins, 0b000, 0b00, 0b0101);
|
||||
INSN(fnmuls, 0b000, 0b00, 0b1000);
|
||||
|
||||
INSN(fmuld, 0b000, 0b01, 0b0000);
|
||||
INSN(fdivd, 0b000, 0b01, 0b0001);
|
||||
INSN(faddd, 0b000, 0b01, 0b0010);
|
||||
INSN(fsubd, 0b000, 0b01, 0b0011);
|
||||
INSN(fmaxd, 0b000, 0b01, 0b0100);
|
||||
INSN(fmind, 0b000, 0b01, 0b0101);
|
||||
INSN(fnmuld, 0b000, 0b01, 0b1000);
|
||||
|
||||
#undef INSN
|
||||
@ -2750,4 +2754,4 @@ class BiasedLockingCounters;
|
||||
|
||||
extern "C" void das(uint64_t start, int len);
|
||||
|
||||
#endif // CPU_AARCH64_VM_ASSEMBLER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_ASSEMBLER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,11 +23,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_ASSEMBLER_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_VM_ASSEMBLER_AARCH64_INLINE_HPP
|
||||
#ifndef CPU_AARCH64_ASSEMBLER_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_ASSEMBLER_AARCH64_INLINE_HPP
|
||||
|
||||
#include "asm/assembler.inline.hpp"
|
||||
#include "asm/codeBuffer.hpp"
|
||||
#include "code/codeCache.hpp"
|
||||
|
||||
#endif // CPU_AARCH64_VM_ASSEMBLER_AARCH64_INLINE_HPP
|
||||
#endif // CPU_AARCH64_ASSEMBLER_AARCH64_INLINE_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2019, 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.
|
||||
*
|
||||
@ -23,9 +23,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_BYTECODES_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_BYTECODES_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_BYTECODES_AARCH64_HPP
|
||||
#define CPU_AARCH64_BYTECODES_AARCH64_HPP
|
||||
|
||||
// No aarch64 specific bytecodes
|
||||
|
||||
#endif // CPU_AARCH64_VM_BYTECODES_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_BYTECODES_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_BYTES_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_BYTES_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_BYTES_AARCH64_HPP
|
||||
#define CPU_AARCH64_BYTES_AARCH64_HPP
|
||||
|
||||
#include "memory/allocation.hpp"
|
||||
|
||||
@ -63,4 +63,4 @@ class Bytes: AllStatic {
|
||||
// The following header contains the implementations of swap_u2, swap_u4, and swap_u8[_base]
|
||||
#include OS_CPU_HEADER_INLINE(bytes)
|
||||
|
||||
#endif // CPU_AARCH64_VM_BYTES_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_BYTES_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_C1_DEFS_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_C1_DEFS_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_C1_DEFS_AARCH64_HPP
|
||||
#define CPU_AARCH64_C1_DEFS_AARCH64_HPP
|
||||
|
||||
// native word offsets from memory address (little endian)
|
||||
enum {
|
||||
@ -78,4 +78,4 @@ enum {
|
||||
pd_float_saved_as_double = false
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_C1_DEFS_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_C1_DEFS_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, 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.
|
||||
*
|
||||
@ -23,10 +23,10 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_C1_FPUSTACKSIM_HPP
|
||||
#define CPU_AARCH64_VM_C1_FPUSTACKSIM_HPP
|
||||
#ifndef CPU_AARCH64_C1_FPUSTACKSIM_AARCH64_HPP
|
||||
#define CPU_AARCH64_C1_FPUSTACKSIM_AARCH64_HPP
|
||||
|
||||
// No FPU stack on AARCH64
|
||||
class FpuStackSim;
|
||||
|
||||
#endif // CPU_AARCH64_VM_C1_FPUSTACKSIM_HPP
|
||||
#endif // CPU_AARCH64_C1_FPUSTACKSIM_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_C1_FRAMEMAP_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_C1_FRAMEMAP_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_C1_FRAMEMAP_AARCH64_HPP
|
||||
#define CPU_AARCH64_C1_FRAMEMAP_AARCH64_HPP
|
||||
|
||||
// On AArch64 the frame looks as follows:
|
||||
//
|
||||
@ -144,5 +144,4 @@
|
||||
static int last_cpu_reg() { return pd_last_cpu_reg; }
|
||||
static int last_byte_reg() { return pd_last_byte_reg; }
|
||||
|
||||
#endif // CPU_AARCH64_VM_C1_FRAMEMAP_AARCH64_HPP
|
||||
|
||||
#endif // CPU_AARCH64_C1_FRAMEMAP_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_C1_LIRASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_C1_LIRASSEMBLER_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_C1_LIRASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_C1_LIRASSEMBLER_AARCH64_HPP
|
||||
|
||||
// ArrayCopyStub needs access to bailout
|
||||
friend class ArrayCopyStub;
|
||||
@ -81,4 +81,4 @@ public:
|
||||
void store_parameter(jint c, int offset_from_esp_in_words);
|
||||
void store_parameter(jobject c, int offset_from_esp_in_words);
|
||||
|
||||
#endif // CPU_AARCH64_VM_C1_LIRASSEMBLER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_C1_LIRASSEMBLER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_C1_LINEARSCAN_HPP
|
||||
#define CPU_AARCH64_VM_C1_LINEARSCAN_HPP
|
||||
#ifndef CPU_AARCH64_C1_LINEARSCAN_AARCH64_HPP
|
||||
#define CPU_AARCH64_C1_LINEARSCAN_AARCH64_HPP
|
||||
|
||||
inline bool LinearScan::is_processed_reg_num(int reg_num) {
|
||||
return reg_num <= FrameMap::last_cpu_reg() || reg_num >= pd_nof_cpu_regs_frame_map;
|
||||
@ -73,4 +73,4 @@ inline bool LinearScanWalker::pd_init_regs_for_alloc(Interval* cur) {
|
||||
}
|
||||
|
||||
|
||||
#endif // CPU_AARCH64_VM_C1_LINEARSCAN_HPP
|
||||
#endif // CPU_AARCH64_C1_LINEARSCAN_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_C1_MACROASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_C1_MACROASSEMBLER_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_C1_MACROASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_C1_MACROASSEMBLER_AARCH64_HPP
|
||||
|
||||
using MacroAssembler::build_frame;
|
||||
using MacroAssembler::null_check;
|
||||
@ -111,4 +111,4 @@ using MacroAssembler::null_check;
|
||||
|
||||
void load_parameter(int offset_in_words, Register reg);
|
||||
|
||||
#endif // CPU_AARCH64_VM_C1_MACROASSEMBLER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_C1_MACROASSEMBLER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_C1_GLOBALS_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_C1_GLOBALS_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_C1_GLOBALS_AARCH64_HPP
|
||||
#define CPU_AARCH64_C1_GLOBALS_AARCH64_HPP
|
||||
|
||||
#include "utilities/globalDefinitions.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
@ -74,4 +74,4 @@ define_pd_global(bool, OptimizeSinglePrecision, true );
|
||||
define_pd_global(bool, CSEArrayLength, false);
|
||||
define_pd_global(bool, TwoOperandLIRForm, false );
|
||||
|
||||
#endif // CPU_AARCH64_VM_C1_GLOBALS_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_C1_GLOBALS_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_C2_GLOBALS_AARCH64_HPP
|
||||
#define CPU_AARCH64_C2_GLOBALS_AARCH64_HPP
|
||||
|
||||
#include "utilities/globalDefinitions.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
@ -87,4 +87,4 @@ define_pd_global(bool, NeverActAsServerClassMachine, false);
|
||||
|
||||
define_pd_global(bool, TrapBasedRangeChecks, false); // Not needed.
|
||||
|
||||
#endif // CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_C2_GLOBALS_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_CODEBUFFER_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_CODEBUFFER_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_CODEBUFFER_AARCH64_HPP
|
||||
#define CPU_AARCH64_CODEBUFFER_AARCH64_HPP
|
||||
|
||||
private:
|
||||
void pd_initialize() {}
|
||||
@ -32,4 +32,4 @@ private:
|
||||
public:
|
||||
void flush_bundle(bool start_new_bundle) {}
|
||||
|
||||
#endif // CPU_AARCH64_VM_CODEBUFFER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_CODEBUFFER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_COPY_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_COPY_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_COPY_AARCH64_HPP
|
||||
#define CPU_AARCH64_COPY_AARCH64_HPP
|
||||
|
||||
// Inline functions for memory copy and fill.
|
||||
|
||||
@ -56,4 +56,4 @@ static void pd_zero_to_bytes(void* to, size_t count) {
|
||||
(void)memset(to, 0, count);
|
||||
}
|
||||
|
||||
#endif // CPU_AARCH64_VM_COPY_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_COPY_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, 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.
|
||||
*
|
||||
@ -23,9 +23,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_DEPCHECKER_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_DEPCHECKER_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_DEPCHECKER_AARCH64_HPP
|
||||
#define CPU_AARCH64_DEPCHECKER_AARCH64_HPP
|
||||
|
||||
// Nothing to do on aarch64
|
||||
|
||||
#endif // CPU_AARCH64_VM_DEPCHECKER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_DEPCHECKER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_DISASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_DISASSEMBLER_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_DISASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_DISASSEMBLER_AARCH64_HPP
|
||||
|
||||
static int pd_instruction_alignment() {
|
||||
return 1;
|
||||
@ -34,4 +34,4 @@
|
||||
return "";
|
||||
}
|
||||
|
||||
#endif // CPU_AARCH64_VM_DISASSEMBLER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_DISASSEMBLER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_FRAME_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_FRAME_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_FRAME_AARCH64_HPP
|
||||
#define CPU_AARCH64_FRAME_AARCH64_HPP
|
||||
|
||||
#include "runtime/synchronizer.hpp"
|
||||
|
||||
@ -160,4 +160,4 @@
|
||||
|
||||
static jint interpreter_frame_expression_stack_direction() { return -1; }
|
||||
|
||||
#endif // CPU_AARCH64_VM_FRAME_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_FRAME_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_FRAME_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_VM_FRAME_AARCH64_INLINE_HPP
|
||||
#ifndef CPU_AARCH64_FRAME_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_FRAME_AARCH64_INLINE_HPP
|
||||
|
||||
#include "code/codeCache.hpp"
|
||||
#include "code/vmreg.inline.hpp"
|
||||
@ -250,4 +250,4 @@ inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) {
|
||||
*result_adr = obj;
|
||||
}
|
||||
|
||||
#endif // CPU_AARCH64_VM_FRAME_AARCH64_INLINE_HPP
|
||||
#endif // CPU_AARCH64_FRAME_AARCH64_INLINE_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2019, 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
|
||||
@ -39,4 +39,4 @@ protected:
|
||||
|
||||
};
|
||||
|
||||
#endif // #ifndef CPU_AARCH64_GC_SHARED_CARDTABLEBARRIERSETASSEMBLER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_GC_SHARED_CARDTABLEBARRIERSETASSEMBLER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_GLOBALDEFINITIONS_AARCH64_HPP
|
||||
#define CPU_AARCH64_GLOBALDEFINITIONS_AARCH64_HPP
|
||||
|
||||
const int StackAlignmentInBytes = 16;
|
||||
|
||||
@ -53,4 +53,4 @@ const bool CCallingConventionRequiresIntsAsLongs = false;
|
||||
|
||||
#define THREAD_LOCAL_POLL
|
||||
|
||||
#endif // CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_GLOBALDEFINITIONS_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_GLOBALS_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_GLOBALS_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_GLOBALS_AARCH64_HPP
|
||||
#define CPU_AARCH64_GLOBALS_AARCH64_HPP
|
||||
|
||||
#include "utilities/globalDefinitions.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
@ -166,4 +166,4 @@ define_pd_global(intx, InlineSmallCode, 1000);
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CPU_AARCH64_VM_GLOBALS_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_GLOBALS_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_ICACHE_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_ICACHE_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_ICACHE_AARCH64_HPP
|
||||
#define CPU_AARCH64_ICACHE_AARCH64_HPP
|
||||
|
||||
// Interface for updating the instruction cache. Whenever the VM
|
||||
// modifies code, part of the processor instruction cache potentially
|
||||
@ -41,4 +41,4 @@ class ICache : public AbstractICache {
|
||||
}
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_ICACHE_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_ICACHE_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_INTERP_MASM_AARCH64_64_HPP
|
||||
#define CPU_AARCH64_VM_INTERP_MASM_AARCH64_64_HPP
|
||||
#ifndef CPU_AARCH64_INTERP_MASM_AARCH64_HPP
|
||||
#define CPU_AARCH64_INTERP_MASM_AARCH64_HPP
|
||||
|
||||
#include "asm/macroAssembler.hpp"
|
||||
#include "interpreter/invocationCounter.hpp"
|
||||
@ -295,4 +295,4 @@ class InterpreterMacroAssembler: public MacroAssembler {
|
||||
}
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_INTERP_MASM_AARCH64_64_HPP
|
||||
#endif // CPU_AARCH64_INTERP_MASM_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_INTERPRETERRT_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_INTERPRETERRT_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_INTERPRETERRT_AARCH64_HPP
|
||||
#define CPU_AARCH64_INTERPRETERRT_AARCH64_HPP
|
||||
|
||||
// This is included in the middle of class Interpreter.
|
||||
// Do not include files here.
|
||||
@ -58,4 +58,4 @@ class SignatureHandlerGenerator: public NativeSignatureIterator {
|
||||
static Register temp();
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_INTERPRETERRT_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_INTERPRETERRT_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_JAVAFRAMEANCHOR_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_JAVAFRAMEANCHOR_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_JAVAFRAMEANCHOR_AARCH64_HPP
|
||||
#define CPU_AARCH64_JAVAFRAMEANCHOR_AARCH64_HPP
|
||||
|
||||
private:
|
||||
|
||||
@ -84,4 +84,4 @@ public:
|
||||
// Assert (last_Java_sp == NULL || fp == NULL)
|
||||
void set_last_Java_fp(intptr_t* fp) { OrderAccess::release(); _last_Java_fp = fp; }
|
||||
|
||||
#endif // CPU_AARCH64_VM_JAVAFRAMEANCHOR_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_JAVAFRAMEANCHOR_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_JNITYPES_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_JNITYPES_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_JNITYPES_AARCH64_HPP
|
||||
#define CPU_AARCH64_JNITYPES_AARCH64_HPP
|
||||
|
||||
#include "jni.h"
|
||||
#include "memory/allocation.hpp"
|
||||
@ -104,4 +104,4 @@ public:
|
||||
#undef _JNI_SLOT_OFFSET
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_JNITYPES_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_JNITYPES_AARCH64_HPP
|
||||
|
@ -4896,7 +4896,7 @@ void MacroAssembler::string_compare(Register str1, Register str2,
|
||||
|
||||
// A very short string
|
||||
cmpw(cnt2, minCharsInWord);
|
||||
br(Assembler::LT, SHORT_STRING);
|
||||
br(Assembler::LE, SHORT_STRING);
|
||||
|
||||
// Compare longwords
|
||||
// load first parts of strings and finish initialization while loading
|
||||
@ -4920,8 +4920,7 @@ void MacroAssembler::string_compare(Register str1, Register str2,
|
||||
ldr(tmp2, Address(str2));
|
||||
cmp(cnt2, STUB_THRESHOLD);
|
||||
br(GE, STUB);
|
||||
subsw(cnt2, cnt2, 4);
|
||||
br(EQ, TAIL_CHECK);
|
||||
subw(cnt2, cnt2, 4);
|
||||
eor(vtmpZ, T16B, vtmpZ, vtmpZ);
|
||||
lea(str1, Address(str1, cnt2, Address::uxtw(str1_chr_shift)));
|
||||
lea(str2, Address(str2, cnt2, Address::uxtw(str2_chr_shift)));
|
||||
@ -4937,8 +4936,7 @@ void MacroAssembler::string_compare(Register str1, Register str2,
|
||||
ldrs(vtmp, Address(str2));
|
||||
cmp(cnt2, STUB_THRESHOLD);
|
||||
br(GE, STUB);
|
||||
subsw(cnt2, cnt2, 4);
|
||||
br(EQ, TAIL_CHECK);
|
||||
subw(cnt2, cnt2, 4);
|
||||
lea(str1, Address(str1, cnt2, Address::uxtw(str1_chr_shift)));
|
||||
eor(vtmpZ, T16B, vtmpZ, vtmpZ);
|
||||
lea(str2, Address(str2, cnt2, Address::uxtw(str2_chr_shift)));
|
||||
@ -5650,12 +5648,12 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
|
||||
orr(v5, T16B, Vtmp3, Vtmp4);
|
||||
uzp1(Vtmp1, T16B, Vtmp1, Vtmp2);
|
||||
uzp1(Vtmp3, T16B, Vtmp3, Vtmp4);
|
||||
stpq(Vtmp1, Vtmp3, dst);
|
||||
uzp2(v5, T16B, v4, v5); // high bytes
|
||||
umov(tmp2, v5, D, 1);
|
||||
fmovd(tmp1, v5);
|
||||
orr(tmp1, tmp1, tmp2);
|
||||
cbnz(tmp1, LOOP_8);
|
||||
stpq(Vtmp1, Vtmp3, dst);
|
||||
sub(len, len, 32);
|
||||
add(dst, dst, 32);
|
||||
add(src, src, 64);
|
||||
@ -5673,7 +5671,6 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
|
||||
prfm(Address(src, SoftwarePrefetchHintDistance));
|
||||
uzp1(v4, T16B, Vtmp1, Vtmp2);
|
||||
uzp1(v5, T16B, Vtmp3, Vtmp4);
|
||||
stpq(v4, v5, dst);
|
||||
orr(Vtmp1, T16B, Vtmp1, Vtmp2);
|
||||
orr(Vtmp3, T16B, Vtmp3, Vtmp4);
|
||||
uzp2(Vtmp1, T16B, Vtmp1, Vtmp3); // high bytes
|
||||
@ -5681,6 +5678,7 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
|
||||
fmovd(tmp1, Vtmp1);
|
||||
orr(tmp1, tmp1, tmp2);
|
||||
cbnz(tmp1, LOOP_8);
|
||||
stpq(v4, v5, dst);
|
||||
sub(len, len, 32);
|
||||
add(dst, dst, 32);
|
||||
add(src, src, 64);
|
||||
@ -5695,9 +5693,9 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
|
||||
ld1(Vtmp1, T8H, src);
|
||||
uzp1(Vtmp2, T16B, Vtmp1, Vtmp1); // low bytes
|
||||
uzp2(Vtmp3, T16B, Vtmp1, Vtmp1); // high bytes
|
||||
strd(Vtmp2, dst);
|
||||
fmovd(tmp1, Vtmp3);
|
||||
cbnz(tmp1, NEXT_1);
|
||||
strd(Vtmp2, dst);
|
||||
|
||||
sub(len, len, 8);
|
||||
add(dst, dst, 8);
|
||||
@ -5710,9 +5708,9 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
|
||||
cbz(len, DONE);
|
||||
BIND(NEXT_1);
|
||||
ldrh(tmp1, Address(post(src, 2)));
|
||||
strb(tmp1, Address(post(dst, 1)));
|
||||
tst(tmp1, 0xff00);
|
||||
br(NE, SET_RESULT);
|
||||
strb(tmp1, Address(post(dst, 1)));
|
||||
subs(len, len, 1);
|
||||
br(GT, NEXT_1);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_MACROASSEMBLER_AARCH64_HPP
|
||||
#define CPU_AARCH64_MACROASSEMBLER_AARCH64_HPP
|
||||
|
||||
#include "asm/assembler.hpp"
|
||||
|
||||
@ -1391,4 +1391,4 @@ struct tableswitch {
|
||||
Label _branches;
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_MACROASSEMBLER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_INLINE_HPP
|
||||
#ifndef CPU_AARCH64_MACROASSEMBLER_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_MACROASSEMBLER_AARCH64_INLINE_HPP
|
||||
|
||||
#include "asm/assembler.hpp"
|
||||
|
||||
@ -32,4 +32,4 @@
|
||||
|
||||
#endif // ndef PRODUCT
|
||||
|
||||
#endif // CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_INLINE_HPP
|
||||
#endif // CPU_AARCH64_MACROASSEMBLER_AARCH64_INLINE_HPP
|
||||
|
@ -105,8 +105,8 @@ void MethodHandles::jump_from_method_handle(MacroAssembler* _masm, Register meth
|
||||
// compiled code in threads for which the event is enabled. Check here for
|
||||
// interp_only_mode if these events CAN be enabled.
|
||||
|
||||
__ ldrb(rscratch1, Address(rthread, JavaThread::interp_only_mode_offset()));
|
||||
__ cbnz(rscratch1, run_compiled_code);
|
||||
__ ldrw(rscratch1, Address(rthread, JavaThread::interp_only_mode_offset()));
|
||||
__ cbzw(rscratch1, run_compiled_code);
|
||||
__ ldr(rscratch1, Address(method, Method::interpreter_entry_offset()));
|
||||
__ br(rscratch1);
|
||||
__ BIND(run_compiled_code);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2108, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_NATIVEINST_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_NATIVEINST_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_NATIVEINST_AARCH64_HPP
|
||||
#define CPU_AARCH64_NATIVEINST_AARCH64_HPP
|
||||
|
||||
#include "asm/assembler.hpp"
|
||||
#include "runtime/icache.hpp"
|
||||
@ -48,6 +48,8 @@
|
||||
// The base class for different kinds of native instruction abstractions.
|
||||
// Provides the primitive operations to manipulate code relative to this.
|
||||
|
||||
class NativeCall;
|
||||
|
||||
class NativeInstruction {
|
||||
friend class Relocation;
|
||||
friend bool is_NativeCallTrampolineStub_at(address);
|
||||
@ -701,4 +703,4 @@ inline NativeLdSt *NativeLdSt_at(address addr) {
|
||||
assert(nativeInstruction_at(addr)->is_Imm_LdSt(), "no immediate load/store found");
|
||||
return (NativeLdSt*)addr;
|
||||
}
|
||||
#endif // CPU_AARCH64_VM_NATIVEINST_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_NATIVEINST_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_REGISTERMAP_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_REGISTERMAP_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_REGISTERMAP_AARCH64_HPP
|
||||
#define CPU_AARCH64_REGISTERMAP_AARCH64_HPP
|
||||
|
||||
// machine-dependent implemention for register maps
|
||||
friend class frame;
|
||||
@ -42,4 +42,4 @@
|
||||
void pd_initialize() {}
|
||||
void pd_initialize_from(const RegisterMap* map) {}
|
||||
|
||||
#endif // CPU_AARCH64_VM_REGISTERMAP_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_REGISTERMAP_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_REGISTER_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_REGISTER_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_REGISTER_AARCH64_HPP
|
||||
#define CPU_AARCH64_REGISTER_AARCH64_HPP
|
||||
|
||||
#include "asm/register.hpp"
|
||||
|
||||
@ -258,4 +258,4 @@ public:
|
||||
uint32_t bits() const { return _bitset; }
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_REGISTER_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_REGISTER_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_RELOCINFO_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_RELOCINFO_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_RELOCINFO_AARCH64_HPP
|
||||
#define CPU_AARCH64_RELOCINFO_AARCH64_HPP
|
||||
|
||||
// machine-dependent parts of class relocInfo
|
||||
private:
|
||||
@ -41,4 +41,4 @@
|
||||
// listed in the oop section.
|
||||
static bool mustIterateImmediateOopsInCode() { return false; }
|
||||
|
||||
#endif // CPU_AARCH64_VM_RELOCINFO_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_RELOCINFO_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_STUBROUTINES_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_STUBROUTINES_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_STUBROUTINES_AARCH64_HPP
|
||||
#define CPU_AARCH64_STUBROUTINES_AARCH64_HPP
|
||||
|
||||
// This file holds the platform specific parts of the StubRoutines
|
||||
// definition. See stubRoutines.hpp for a description on how to
|
||||
@ -195,4 +195,4 @@ private:
|
||||
// end trigonometric tables block
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_STUBROUTINES_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_STUBROUTINES_AARCH64_HPP
|
||||
|
@ -1886,6 +1886,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
|
||||
__ restore_locals();
|
||||
__ restore_constant_pool_cache();
|
||||
__ get_method(rmethod);
|
||||
__ get_dispatch();
|
||||
|
||||
// The method data pointer was incremented already during
|
||||
// call profiling. We have to restore the mdp for the current bcp.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_TEMPLATETABLE_AARCH64_64_HPP
|
||||
#define CPU_AARCH64_VM_TEMPLATETABLE_AARCH64_64_HPP
|
||||
#ifndef CPU_AARCH64_TEMPLATETABLE_AARCH64_HPP
|
||||
#define CPU_AARCH64_TEMPLATETABLE_AARCH64_HPP
|
||||
|
||||
static void prepare_invoke(int byte_no,
|
||||
Register method, // linked method (or i-klass)
|
||||
@ -39,4 +39,4 @@ static void prepare_invoke(int byte_no,
|
||||
static void index_check(Register array, Register index);
|
||||
static void index_check_without_pop(Register array, Register index);
|
||||
|
||||
#endif // CPU_AARCH64_VM_TEMPLATETABLE_AARCH64_64_HPP
|
||||
#endif // CPU_AARCH64_TEMPLATETABLE_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_VMSTRUCTS_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_VMSTRUCTS_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_VMSTRUCTS_AARCH64_HPP
|
||||
#define CPU_AARCH64_VMSTRUCTS_AARCH64_HPP
|
||||
|
||||
// These are the CPU-specific fields, types and integer
|
||||
// constants required by the Serviceability Agent. This file is
|
||||
@ -39,4 +39,4 @@
|
||||
|
||||
#define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
|
||||
|
||||
#endif // CPU_AARCH64_VM_VMSTRUCTS_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_VMSTRUCTS_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_VM_VERSION_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_VERSION_AARCH64_HPP
|
||||
|
||||
#include "runtime/globals_extension.hpp"
|
||||
#include "runtime/vm_version.hpp"
|
||||
@ -121,4 +121,4 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_VM_VERSION_AARCH64_HPP
|
||||
|
@ -50,7 +50,7 @@ void VM_Version_Ext::initialize_cpu_information(void) {
|
||||
_no_of_threads = _no_of_cores;
|
||||
_no_of_sockets = _no_of_cores;
|
||||
snprintf(_cpu_name, CPU_TYPE_DESC_BUF_SIZE - 1, "AArch64");
|
||||
snprintf(_cpu_desc, CPU_DETAILED_DESC_BUF_SIZE, "%s", _features_string);
|
||||
snprintf(_cpu_desc, CPU_DETAILED_DESC_BUF_SIZE, "AArch64 %s", _features_string);
|
||||
_initialized = true;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_VM_VERSION_EXT_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_VM_VERSION_EXT_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_VM_VERSION_EXT_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_VERSION_EXT_AARCH64_HPP
|
||||
|
||||
#include "utilities/macros.hpp"
|
||||
#include "vm_version_aarch64.hpp"
|
||||
@ -51,4 +51,4 @@ class VM_Version_Ext : public VM_Version {
|
||||
|
||||
};
|
||||
|
||||
#endif // CPU_AARCH64_VM_VM_VERSION_EXT_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_VM_VERSION_EXT_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2006, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_VMREG_AARCH64_HPP
|
||||
#define CPU_AARCH64_VM_VMREG_AARCH64_HPP
|
||||
#ifndef CPU_AARCH64_VMREG_AARCH64_HPP
|
||||
#define CPU_AARCH64_VMREG_AARCH64_HPP
|
||||
|
||||
inline bool is_Register() {
|
||||
return (unsigned int) value() < (unsigned int) ConcreteRegisterImpl::max_gpr;
|
||||
@ -52,4 +52,4 @@ inline bool is_concrete() {
|
||||
return is_even(value());
|
||||
}
|
||||
|
||||
#endif // CPU_AARCH64_VM_VMREG_AARCH64_HPP
|
||||
#endif // CPU_AARCH64_VMREG_AARCH64_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2006, 2019, 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.
|
||||
*
|
||||
@ -23,8 +23,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_AARCH64_VM_VMREG_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_VM_VMREG_AARCH64_INLINE_HPP
|
||||
#ifndef CPU_AARCH64_VMREG_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_VMREG_AARCH64_INLINE_HPP
|
||||
|
||||
inline VMReg RegisterImpl::as_VMReg() {
|
||||
if( this==noreg ) return VMRegImpl::Bad();
|
||||
@ -35,4 +35,4 @@ inline VMReg FloatRegisterImpl::as_VMReg() {
|
||||
return VMRegImpl::as_VMReg((encoding() << 1) + ConcreteRegisterImpl::max_gpr);
|
||||
}
|
||||
|
||||
#endif // CPU_AARCH64_VM_VMREG_AARCH64_INLINE_HPP
|
||||
#endif // CPU_AARCH64_VMREG_AARCH64_INLINE_HPP
|
||||
|
@ -8945,9 +8945,10 @@ instruct partialSubtypeCheck( R0RegP index, R1RegP sub, R2RegP super, flagsRegP
|
||||
instruct cmpFastLock(flagsRegP pcc, iRegP object, iRegP box, iRegP scratch2, iRegP scratch )
|
||||
%{
|
||||
match(Set pcc (FastLock object box));
|
||||
predicate(!(UseBiasedLocking && !UseOptoBiasInlining));
|
||||
|
||||
effect(TEMP scratch, TEMP scratch2);
|
||||
ins_cost(100);
|
||||
ins_cost(DEFAULT_COST*3);
|
||||
|
||||
format %{ "FASTLOCK $object, $box; KILL $scratch, $scratch2" %}
|
||||
ins_encode %{
|
||||
@ -8956,6 +8957,21 @@ instruct cmpFastLock(flagsRegP pcc, iRegP object, iRegP box, iRegP scratch2, iRe
|
||||
ins_pipe(long_memory_op);
|
||||
%}
|
||||
|
||||
instruct cmpFastLock_noBiasInline(flagsRegP pcc, iRegP object, iRegP box, iRegP scratch2,
|
||||
iRegP scratch, iRegP scratch3) %{
|
||||
match(Set pcc (FastLock object box));
|
||||
predicate(UseBiasedLocking && !UseOptoBiasInlining);
|
||||
|
||||
effect(TEMP scratch, TEMP scratch2, TEMP scratch3);
|
||||
ins_cost(DEFAULT_COST*5);
|
||||
|
||||
format %{ "FASTLOCK $object, $box; KILL $scratch, $scratch2, $scratch3" %}
|
||||
ins_encode %{
|
||||
__ fast_lock($object$$Register, $box$$Register, $scratch$$Register, $scratch2$$Register, $scratch3$$Register);
|
||||
%}
|
||||
ins_pipe(long_memory_op);
|
||||
%}
|
||||
|
||||
|
||||
instruct cmpFastUnlock(flagsRegP pcc, iRegP object, iRegP box, iRegP scratch2, iRegP scratch ) %{
|
||||
match(Set pcc (FastUnlock object box));
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_ASSEMBLER_ARM_HPP
|
||||
#define CPU_ARM_VM_ASSEMBLER_ARM_HPP
|
||||
#ifndef CPU_ARM_ASSEMBLER_ARM_HPP
|
||||
#define CPU_ARM_ASSEMBLER_ARM_HPP
|
||||
|
||||
#include "utilities/macros.hpp"
|
||||
|
||||
@ -326,4 +326,4 @@ class VFP {
|
||||
#include "assembler_arm_32.hpp"
|
||||
|
||||
|
||||
#endif // CPU_ARM_VM_ASSEMBLER_ARM_HPP
|
||||
#endif // CPU_ARM_ASSEMBLER_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_ASSEMBLER_ARM_INLINE_HPP
|
||||
#define CPU_ARM_VM_ASSEMBLER_ARM_INLINE_HPP
|
||||
#ifndef CPU_ARM_ASSEMBLER_ARM_INLINE_HPP
|
||||
#define CPU_ARM_ASSEMBLER_ARM_INLINE_HPP
|
||||
|
||||
|
||||
#endif // CPU_ARM_VM_ASSEMBLER_ARM_INLINE_HPP
|
||||
#endif // CPU_ARM_ASSEMBLER_ARM_INLINE_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_ASSEMBLER_ARM_32_HPP
|
||||
#define CPU_ARM_VM_ASSEMBLER_ARM_32_HPP
|
||||
#ifndef CPU_ARM_ASSEMBLER_ARM_32_HPP
|
||||
#define CPU_ARM_ASSEMBLER_ARM_32_HPP
|
||||
|
||||
// ARM Addressing Mode 1 - Data processing operands
|
||||
class AsmOperand {
|
||||
@ -1250,4 +1250,4 @@ extern double __aeabi_dsub_glibc(double, double);
|
||||
#endif // __SOFTFP__
|
||||
|
||||
|
||||
#endif // CPU_ARM_VM_ASSEMBLER_ARM_32_HPP
|
||||
#endif // CPU_ARM_ASSEMBLER_ARM_32_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_BYTES_ARM_HPP
|
||||
#define CPU_ARM_VM_BYTES_ARM_HPP
|
||||
#ifndef CPU_ARM_BYTES_ARM_HPP
|
||||
#define CPU_ARM_BYTES_ARM_HPP
|
||||
|
||||
#include "memory/allocation.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
@ -186,4 +186,4 @@ class Bytes: AllStatic {
|
||||
// The following header contains the implementations of swap_u2, swap_u4, and swap_u8
|
||||
#include OS_CPU_HEADER_INLINE(bytes)
|
||||
|
||||
#endif // CPU_ARM_VM_BYTES_ARM_HPP
|
||||
#endif // CPU_ARM_BYTES_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_C1_DEFS_ARM_HPP
|
||||
#define CPU_ARM_VM_C1_DEFS_ARM_HPP
|
||||
#ifndef CPU_ARM_C1_DEFS_ARM_HPP
|
||||
#define CPU_ARM_C1_DEFS_ARM_HPP
|
||||
|
||||
// native word offsets from memory address (little endian)
|
||||
enum {
|
||||
@ -78,4 +78,4 @@ enum {
|
||||
#define CARDTABLEBARRIERSET_POST_BARRIER_HELPER
|
||||
#define GENERATE_ADDRESS_IS_PREFERRED
|
||||
|
||||
#endif // CPU_ARM_VM_C1_DEFS_ARM_HPP
|
||||
#endif // CPU_ARM_C1_DEFS_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,9 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_C1_FPUSTACKSIM_ARM_HPP
|
||||
#define CPU_ARM_VM_C1_FPUSTACKSIM_ARM_HPP
|
||||
#ifndef CPU_ARM_C1_FPUSTACKSIM_ARM_HPP
|
||||
#define CPU_ARM_C1_FPUSTACKSIM_ARM_HPP
|
||||
|
||||
// Nothing needed here
|
||||
|
||||
#endif // CPU_ARM_VM_C1_FPUSTACKSIM_ARM_HPP
|
||||
#endif // CPU_ARM_C1_FPUSTACKSIM_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_C1_FRAMEMAP_ARM_HPP
|
||||
#define CPU_ARM_VM_C1_FRAMEMAP_ARM_HPP
|
||||
#ifndef CPU_ARM_C1_FRAMEMAP_ARM_HPP
|
||||
#define CPU_ARM_C1_FRAMEMAP_ARM_HPP
|
||||
|
||||
public:
|
||||
|
||||
@ -108,4 +108,4 @@
|
||||
return pd_last_cpu_reg;
|
||||
}
|
||||
|
||||
#endif // CPU_ARM_VM_C1_FRAMEMAP_ARM_HPP
|
||||
#endif // CPU_ARM_C1_FRAMEMAP_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_C1_LIRASSEMBLER_ARM_HPP
|
||||
#define CPU_ARM_VM_C1_LIRASSEMBLER_ARM_HPP
|
||||
#ifndef CPU_ARM_C1_LIRASSEMBLER_ARM_HPP
|
||||
#define CPU_ARM_C1_LIRASSEMBLER_ARM_HPP
|
||||
|
||||
private:
|
||||
|
||||
@ -65,4 +65,4 @@
|
||||
void store_parameter(jint c, int offset_from_sp_in_words);
|
||||
void store_parameter(Metadata* m, int offset_from_sp_in_words);
|
||||
|
||||
#endif // CPU_ARM_VM_C1_LIRASSEMBLER_ARM_HPP
|
||||
#endif // CPU_ARM_C1_LIRASSEMBLER_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_C1_LINEARSCAN_ARM_HPP
|
||||
#define CPU_ARM_VM_C1_LINEARSCAN_ARM_HPP
|
||||
#ifndef CPU_ARM_C1_LINEARSCAN_ARM_HPP
|
||||
#define CPU_ARM_C1_LINEARSCAN_ARM_HPP
|
||||
|
||||
inline bool LinearScan::is_processed_reg_num(int reg_num) {
|
||||
return reg_num < pd_nof_cpu_regs_processed_in_linearscan ||
|
||||
@ -68,4 +68,4 @@ inline bool LinearScanWalker::pd_init_regs_for_alloc(Interval* cur) {
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // CPU_ARM_VM_C1_LINEARSCAN_ARM_HPP
|
||||
#endif // CPU_ARM_C1_LINEARSCAN_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_C1_MACROASSEMBLER_ARM_HPP
|
||||
#define CPU_ARM_VM_C1_MACROASSEMBLER_ARM_HPP
|
||||
#ifndef CPU_ARM_C1_MACROASSEMBLER_ARM_HPP
|
||||
#define CPU_ARM_C1_MACROASSEMBLER_ARM_HPP
|
||||
|
||||
private:
|
||||
|
||||
@ -66,4 +66,4 @@
|
||||
// This platform only uses signal-based null checks. The Label is not needed.
|
||||
void null_check(Register r, Label *Lnull = NULL) { MacroAssembler::null_check(r); }
|
||||
|
||||
#endif // CPU_ARM_VM_C1_MACROASSEMBLER_ARM_HPP
|
||||
#endif // CPU_ARM_C1_MACROASSEMBLER_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_C1_GLOBALS_ARM_HPP
|
||||
#define CPU_ARM_VM_C1_GLOBALS_ARM_HPP
|
||||
#ifndef CPU_ARM_C1_GLOBALS_ARM_HPP
|
||||
#define CPU_ARM_C1_GLOBALS_ARM_HPP
|
||||
|
||||
#include "utilities/globalDefinitions.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
@ -70,4 +70,4 @@ define_pd_global(bool, OptimizeSinglePrecision, true);
|
||||
define_pd_global(bool, CSEArrayLength, true);
|
||||
define_pd_global(bool, TwoOperandLIRForm, false);
|
||||
|
||||
#endif // CPU_ARM_VM_C1_GLOBALS_ARM_HPP
|
||||
#endif // CPU_ARM_C1_GLOBALS_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_C2_GLOBALS_ARM_HPP
|
||||
#define CPU_ARM_VM_C2_GLOBALS_ARM_HPP
|
||||
#ifndef CPU_ARM_C2_GLOBALS_ARM_HPP
|
||||
#define CPU_ARM_C2_GLOBALS_ARM_HPP
|
||||
|
||||
#include "utilities/globalDefinitions.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
@ -108,4 +108,4 @@ define_pd_global(size_t, MetaspaceSize, ScaleForWordSize(16*M));
|
||||
// Ergonomics related flags
|
||||
define_pd_global(bool, NeverActAsServerClassMachine, false);
|
||||
|
||||
#endif // CPU_ARM_VM_C2_GLOBALS_ARM_HPP
|
||||
#endif // CPU_ARM_C2_GLOBALS_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_CODEBUFFER_ARM_HPP
|
||||
#define CPU_ARM_VM_CODEBUFFER_ARM_HPP
|
||||
#ifndef CPU_ARM_CODEBUFFER_ARM_HPP
|
||||
#define CPU_ARM_CODEBUFFER_ARM_HPP
|
||||
|
||||
private:
|
||||
void pd_initialize() {}
|
||||
@ -31,4 +31,4 @@ private:
|
||||
public:
|
||||
void flush_bundle(bool start_new_bundle) {}
|
||||
|
||||
#endif // CPU_ARM_VM_CODEBUFFER_ARM_HPP
|
||||
#endif // CPU_ARM_CODEBUFFER_ARM_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
@ -22,8 +22,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_ARM_VM_COPY_ARM_HPP
|
||||
#define CPU_ARM_VM_COPY_ARM_HPP
|
||||
#ifndef CPU_ARM_COPY_ARM_HPP
|
||||
#define CPU_ARM_COPY_ARM_HPP
|
||||
|
||||
#include "utilities/macros.hpp"
|
||||
|
||||
@ -56,4 +56,4 @@ static void pd_zero_to_bytes(void* to, size_t count) {
|
||||
memset(to, 0, count);
|
||||
}
|
||||
|
||||
#endif // CPU_ARM_VM_COPY_ARM_HPP
|
||||
#endif // CPU_ARM_COPY_ARM_HPP
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user