diff --git a/.hgignore b/.hgignore
index 0092bd4ff5a..2d339f9988c 100644
--- a/.hgignore
+++ b/.hgignore
@@ -1,3 +1,4 @@
^build/
^dist/
/nbproject/private/
+^webrev
diff --git a/.hgtags b/.hgtags
index c3213062fb5..966c17a5710 100644
--- a/.hgtags
+++ b/.hgtags
@@ -88,3 +88,15 @@ a6442d6bc38a44152e0662688213ce4d2701f42a jdk7-b110
69f3edf083477955b5bd2f754252c7504167d8e1 jdk7-b111
f960f117f1623629f64203e2b09a92a8f6f14ff5 jdk7-b112
1fee41c7ed2b3388970a756a85aa693c0de8407a jdk7-b113
+750c1ccb2f2d1ddfa95ab6c7f897fdab2f87f7e9 jdk7-b114
+9cb24917216bc68997154f6e9566c3de62acb2f4 jdk7-b115
+a4e6aa1f45ad23a6f083ed98d970b5006ea4d292 jdk7-b116
+228e73f288c543a8c34e2a54227103ae5649e6af jdk7-b117
+2e876e59938a853934aa738c811b26c452bd9fe8 jdk7-b118
+4951967a61b4dbbf514828879f57bd1a0d4b420b jdk7-b119
+8c840d3ab24f8d0f422b991638acb44b6ab1d98c jdk7-b120
+0ce0a2c3a6926677dc507839a820ab6625541e5a jdk7-b121
+6f09ea1c034f087916d2a8cf0d22be768400118f jdk7-b122
+142129d8599d1f56b29387e7f9a5fad53b6d61df jdk7-b123
+aa894c225b1a517b665ac2a58295217ea2245134 jdk7-b124
+f658ec2730fa29323c36d23c27e54c7219ef5e16 jdk7-b125
diff --git a/.hgtags-top-repo b/.hgtags-top-repo
index 91c72f80940..5bdac4ada74 100644
--- a/.hgtags-top-repo
+++ b/.hgtags-top-repo
@@ -88,3 +88,15 @@ f8be576feefce0c6695f188ef97ec16b73ad9cfd jdk7-b104
9702d6fef68e17533ee7fcf5923b11ead3e912ce jdk7-b111
b852103caf73da70068473777ae867a457bb3ae1 jdk7-b112
c1df968c4527bfab5f97662a89245f15d12d378b jdk7-b113
+27985a5c6e5268014d25d55886e0ecb96af4763d jdk7-b114
+e8ebdf41b9c01a26642848f4134f5504e8fb3233 jdk7-b115
+94e9a1bfba8b8d1fe0bfd43b88629b1f27b02a76 jdk7-b116
+7220e60b097fa027e922f1aeecdd330f3e37409f jdk7-b117
+a12a9e78df8a9d534da0b4a244ed68f0de0bd58e jdk7-b118
+661360bef6ccad6c119f067f5829b207de80c936 jdk7-b119
+366ff0b6d2151595629806b033e2e1497e3a55d4 jdk7-b120
+2c2d4f88637b488014c37e1a2eb401f68bca8838 jdk7-b121
+f1591eed71f64f6eba79fb7426f5616cc4dfea73 jdk7-b122
+ed6950da30cf1e8904b4bdb034d471647942271f jdk7-b123
+024a6755895bf91b5a3c98984c89ee018efbf538 jdk7-b124
+5c4df7e992775c102f08e9f1c0a124b324641b70 jdk7-b125
diff --git a/Makefile b/Makefile
index d42650e58ce..7c5b2db01c0 100644
--- a/Makefile
+++ b/Makefile
@@ -156,12 +156,6 @@ ifeq ($(BUILD_DEPLOY), true)
clobber:: deploy-clobber
endif
-ifeq ($(BUILD_JDK), true)
- ifeq ($(BUNDLE_RULES_AVAILABLE), true)
- generic_build_repo_series:: openjdk-binary-plugs-bundles
- endif
-endif
-
# The debug build, fastdebug or debug. Needs special handling.
# Note that debug builds do NOT do INSTALL steps, but must be done
# after the product build and before the INSTALL step of the product build.
@@ -301,7 +295,6 @@ ifneq ($(SKIP_OPENJDK_BUILD), true)
ifeq ($(BUILD_JDK), true)
ifeq ($(BUNDLE_RULES_AVAILABLE), true)
-OPENJDK_PLUGS=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME)
OPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/open-output
OPENJDK_BUILD_NAME \
= openjdk-$(JDK_MINOR_VERSION)-$(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE)
@@ -330,7 +323,6 @@ openjdk_build:
GENERATE_DOCS=false \
ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR) \
ALT_OUTPUTDIR=$(OPENJDK_OUTPUTDIR) \
- ALT_BINARY_PLUGS_PATH=$(OPENJDK_PLUGS) \
ALT_BOOTDIR=$(OPENJDK_BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(OPENJDK_IMPORTJDK) \
product_build )
@@ -456,7 +448,6 @@ CACERTS_FILE.desc = Location of certificates file
DEVTOOLS_PATH.desc = Directory containing zip and gnumake
CUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
DXSDK_PATH.desc = Root directory of DirectX SDK
-MSDEVTOOLS_PATH.desc = Root directory of VC++ tools (e.g. rc.exe)
MSVCRT_DLL_PATH.desc = Directory containing mscvrt.dll
# Make variables to print out (description and value)
@@ -487,12 +478,10 @@ ifeq ($(PLATFORM), windows)
VARIABLE_PRINTVAL_LIST += \
DXSDK_PATH \
- MSDEVTOOLS_PATH \
MSVCRT_DLL_PATH
VARIABLE_CHECKDIR_LIST += \
DXSDK_PATH \
- MSDEVTOOLS_PATH \
MSVCRT_DLL_PATH
endif
@@ -548,7 +537,7 @@ examples_help:
"
################################################################
-# Source and binary plug bundling
+# Source bundling
################################################################
ifeq ($(BUNDLE_RULES_AVAILABLE), true)
include $(BUNDLE_RULES)
diff --git a/README b/README
index 5dd05f46abe..722131d683f 100644
--- a/README
+++ b/README
@@ -1,31 +1,41 @@
README:
- This file should be located at the top of the OpenJDK Mercurial repository
- forest. This top or enclosing repository will include a "make" directory,
- and a Makefile at the very top of the repository.
- It should also include the 6 repositories: "jdk", "hotspot", "langtools",
- "corba", "jaxws" and "jaxp".
+ This file should be located at the top of the OpenJDK Mercurial root
+ repository. This root repository will include a "make" directory,
+ and a Makefile for building the entire OpenJDK.
+ A full OpenJDK repository set (forest) should also include the following
+ 6 nested repositories:
+ "jdk", "hotspot", "langtools", "corba", "jaxws" and "jaxp".
+ There are also several source downloads for the jax* repositories that
+ will be needed.
+
+ This one root repository can be obtained with something like:
+ hg clone http://hg.openjdk.java.net/jdk7/jdk7 openjdk7
+ To make sure you have all the nested repositories, you can run:
+ cd openjdk7 && sh ./get_source.sh
+ (This is identical to using the Mercurial Forest Extension command
+ 'hg fclone http://hg.openjdk.java.net/jdk7/jdk7 openjdk7').
+ People unfamiliar with Mercurial should read the first few chapters of
+ the Mercurial book: http://hgbook.red-bean.com/read/
See http://openjdk.java.net/ for more information about the OpenJDK.
Simple Build Instructions:
+
+ 0. Get the necessary system software/packages installed on your system, see
+ http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html
- 1. Download and install a JDK 6 from
+ 1. If you don't have a jdk6 installed, download and install a JDK 6 from
http://java.sun.com/javase/downloads/index.jsp
- Set the environment variable ALT_BOOTDIR to the location of this JDK 6.
+ Set the environment variable ALT_BOOTDIR to the location of JDK 6.
- 2. Download and install the Binary Plugs for the most recent JDK7 from
- http://download.java.net/openjdk/jdk7/
- Set the environment variable ALT_BINARY_PLUGS_PATH to the location of
- these binary plugs.
-
- 3. Check the sanity of doing a build with the current machine:
+ 2. Check the sanity of doing a build with your current system:
gnumake sanity
See README-builds.html if you run into problems.
- 4. Do a complete build of the jdk:
+ 3. Do a complete build of the OpenJDK:
gnumake all
The resulting JDK image should be found in build/*/j2sdk-image
-where gnumake is GNU make 3.78.1 or newer, /usr/bin/make on Linux and
+where gnumake is GNU make 3.81 or newer, /usr/bin/make on Linux and
/usr/sfw/bin/gmake or /opt/sfw/bin/gmake on Solaris.
diff --git a/README-builds.html b/README-builds.html
index 81ada58e303..e48aaff3612 100644
--- a/README-builds.html
+++ b/README-builds.html
@@ -24,12 +24,12 @@
- This README file contains build instructions for the
- OpenJDK.
- Building the source code for the
- OpenJDK
- requires
- a certain degree of technical expertise.
+ This README file contains build instructions for the
+ OpenJDK.
+ Building the source code for the
+ OpenJDK
+ requires
+ a certain degree of technical expertise.
@@ -37,18 +37,23 @@
+
+
+
+
+
+ The OpenJDK sources are maintained with the revision control system
+ Mercurial.
+ If you are new to Mercurial, please see the
+ Beginner Guides
+ or refer to the Mercurial Book.
+ The first few chapters of the book provide an excellent overview of
+ Mercurial, what it is and how it works.
+
+ For using Mercurial with the OpenJDK refer to the
+
+ Developer Guide: Installing and Configuring Mercurial
+ section for more information.
+ The Forest Extension is not part of the Mercurial install,
+ and is optional,
+ but can be obtained with the following commands:
+
+
+ hg clone https://bitbucket.org/pmezard/hgforest-crew/overview/ YourHgForest
+
+
+ Once you have the file forest.py, you need to add these
+ lines to your ${HOME}/.hgrc file:
+
+
+ [extensions]
+
forest = YourHgForest/forest.py
+
+
+
+
+
+
+ To get the entire set of OpenJDK Mercurial repositories
+ using the Forest Extension:
+
+
+ hg fclone http://openjdk.java.net/jdk7/jdk7 YourOpenJDK
+
+
+ To get the entire set of OpenJDK Mercurial repositories
+ without using the Forest Extension:
+
+
+ hg clone http://openjdk.java.net/jdk7/jdk7 YourOpenJDK
+
cd YourOpenJDK
+
sh ./get_source.sh
+
+
+ Once you have all the repositories, the
+ script make/scripts/hgforest.sh
+ can be used to repeat the same hg
+ command on every repository in the forest, e.g.
+
+
+ cd YourOpenJDK
+
sh ./make/scripts/hgforest.sh pull -u
+
+
+ You may find this script make/scripts/hgforest.sh faster
+ than the hg forest commands provided by the
+ Forest Extension.
+
+
+
+
@@ -116,8 +191,8 @@
specific platforms, and in fact creating these specific platforms
may be difficult due to the age of some of this software.
- The minimum OS and C/C++ compiler versions needed for building the
- OpenJDK:
+ The minimum OS and C/C++ compiler versions needed for building the
+ OpenJDK:
@@ -146,7 +221,7 @@
Solaris 10u2 + patches
See
- SunSolve for patch downloads.
+ SunSolve for patch downloads.
|
Sun Studio 12 Update 1 + patches |
JDK 6u14 FCS |
@@ -156,7 +231,7 @@
Solaris 10u2 + patches
See
- SunSolve for patch downloads.
+ SunSolve for patch downloads.
|
Sun Studio 12 Update 1 + patches |
JDK 6u14 FCS |
@@ -166,7 +241,7 @@
Solaris 10u2 + patches
See
- SunSolve for patch downloads.
+ SunSolve for patch downloads.
|
Sun Studio 12 Update 1 + patches |
JDK 6u14 FCS |
@@ -176,7 +251,7 @@
Solaris 10u2 + patches
See
- SunSolve for patch downloads.
+ SunSolve for patch downloads.
|
Sun Studio 12 Update 1 + patches |
JDK 6u14 FCS |
@@ -195,14 +270,14 @@
-
+
These same sources do indeed build on many more systems than the
above older generation systems, again the above is just a minimum.
-
+
Compilation problems with newer or different C/C++ compilers is a
common problem.
Similarly, compilation problems related to changes to the
- /usr/include or system header files is also a
+ /usr/include or system header files is also a
common problem with newer or unreleased OS versions.
Please report these types of problems as bugs so that they
can be dealt with accordingly.
@@ -217,57 +292,57 @@
- Fedora 9
-
-
- After installing Fedora 9
+ Fedora 9
+
+
+ After installing Fedora 9
you need to install several build dependencies. The simplest
way to do it is to execute the following commands as user
- root:
-
- yum-builddep java-openjdk
-
- yum install gcc gcc-c++
-
+ root:
+
+ yum-builddep java-openjdk
+
+ yum install gcc gcc-c++
+
In addition, it's necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk
- Fedora 10
-
-
- After installing Fedora 10
+ Fedora 10
+
+
+ After installing Fedora 10
you need to install several build dependencies. The simplest
way to do it is to execute the following commands as user
- root:
-
- yum-builddep java-1.6.0-openjdk
-
- yum install gcc gcc-c++
-
+ root:
+
+ yum-builddep java-1.6.0-openjdk
+
+ yum install gcc gcc-c++
+
In addition, it's necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk
- Fedora 11
-
-
- After installing Fedora 11
+ Fedora 11
+
+
+ After installing Fedora 11
you need to install several build dependencies. The simplest
way to do it is to execute the following commands as user
- root:
-
- yum-builddep java-1.6.0-openjdk
-
- yum install gcc gcc-c++
-
+ root:
+
+ yum-builddep java-1.6.0-openjdk
+
+ yum install gcc gcc-c++
+
In addition, it's necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk
-
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk
+
@@ -285,7 +360,7 @@
- Plus the following packages:
+ Plus the following packages:
- cups devel: Cups Development Package
@@ -295,188 +370,188 @@
- The freetype 2.3 packages don't seem to be available,
- but the freetype 2.3 sources can be downloaded, built,
- and installed easily enough from
-
- the freetype site.
- Build and install with something like:
+ The freetype 2.3 packages don't seem to be available,
+ but the freetype 2.3 sources can be downloaded, built,
+ and installed easily enough from
+
+ the freetype site.
+ Build and install with something like:
./configure && make && sudo -u root make install
- Mercurial packages could not be found easily, but a Google
- search should find ones, and they usually include Python if
- it's needed.
+ Mercurial packages could not be found easily, but a Google
+ search should find ones, and they usually include Python if
+ it's needed.
Debian 5.0 (Lenny)
-
+
After installing Debian 5
you need to install several build dependencies.
The simplest way to install the build dependencies is to
execute the following commands as user root:
-
- aptitude build-dep openjdk-6
-
- aptitude install openjdk-6-jdk libmotif-dev
-
+
+ aptitude build-dep openjdk-6
+
+ aptitude install openjdk-6-jdk libmotif-dev
+
In addition, it's necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk
-
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk
+
-
+
Ubuntu 8.04
-
+
After installing Ubuntu 8.04
you need to install several build dependencies.
-
+
First, you need to enable the universe repository in the
Software Sources application and reload the repository
information. The Software Sources application is available
under the System/Administration menu.
-
+
The simplest way to install the build dependencies is to
execute the following commands:
-
- sudo aptitude build-dep openjdk-6
-
- sudo aptitude install openjdk-6-jdk
-
+
+ sudo aptitude build-dep openjdk-6
+
+ sudo aptitude install openjdk-6-jdk
+
In addition, it's necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk
-
- Ubuntu 8.10
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk
+
+ Ubuntu 8.10
-
+
After installing Ubuntu 8.10
you need to install several build dependencies. The simplest
way to do it is to execute the following commands:
-
- sudo aptitude build-dep openjdk-6
-
- sudo aptitude install openjdk-6-jdk
-
+
+ sudo aptitude build-dep openjdk-6
+
+ sudo aptitude install openjdk-6-jdk
+
In addition, it's necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk
-
- Ubuntu 9.04
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk
+
+ Ubuntu 9.04
-
+
After installing Ubuntu 9.04
you need to install several build dependencies. The simplest
way to do it is to execute the following commands:
-
- sudo aptitude build-dep openjdk-6
-
- sudo aptitude install openjdk-6-jdk
-
+
+ sudo aptitude build-dep openjdk-6
+
+ sudo aptitude install openjdk-6-jdk
+
In addition, it's necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk
-
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk
+
OpenSUSE 11.1
-
+
After installing OpenSUSE 11.1
you need to install several build dependencies.
The simplest way to install the build dependencies is to
execute the following commands:
-
- sudo zypper source-install -d java-1_6_0-openjdk
-
- sudo zypper install make
-
+
+ sudo zypper source-install -d java-1_6_0-openjdk
+
+ sudo zypper install make
+
In addition, it is necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk
-
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk
+
Finally, you need to unset the JAVA_HOME
environment variable:
-
- export -n JAVA_HOME
-
-
+
+ export -n JAVA_HOME
+
+
Mandriva Linux One 2009 Spring
-
+
After installing Mandriva Linux One 2009 Spring
you need to install several build dependencies.
The simplest way to install the build dependencies is to
execute the following commands as user root:
-
- urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel
+
+ urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel
In addition, it is necessary to set a few environment variables for the build:
-
- export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk
-
+
+ export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk
+
OpenSolaris 2009.06
-
+
After installing OpenSolaris 2009.06
you need to install several build dependencies.
The simplest way to install the build dependencies is to
execute the following commands:
-
- pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2
+
+ pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2
In addition, it is necessary to set a few environment variables for the build:
-
- export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/
-
+
+ export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/
+
Finally, you need to make sure that the build process can find the Sun Studio compilers:
-
- export PATH=$PATH:/opt/SunStudioExpress/bin/
-
+
+ export PATH=$PATH:/opt/SunStudioExpress/bin/
+
- The source code for the OpenJDK is delivered in a set of
- directories:
- hotspot,
- langtools,
- corba,
- jaxws,
- jaxp,
- and
- jdk.
- The hotspot directory contains the source code and make
- files for building the OpenJDK Hotspot Virtual Machine.
- The langtools directory contains the source code and make
- files for building the OpenJDK javac and language tools.
- The corba directory contains the source code and make
- files for building the OpenJDK Corba files.
- The jaxws directory contains the source code and make
- files for building the OpenJDK JAXWS files.
- The jaxp directory contains the source code and make
- files for building the OpenJDK JAXP files.
- The jdk directory contains the source code and make files for
- building the OpenJDK runtime libraries and misc files.
- The top level Makefile
- is used to build the entire OpenJDK.
+ The source code for the OpenJDK is delivered in a set of
+ directories:
+ hotspot,
+ langtools,
+ corba,
+ jaxws,
+ jaxp,
+ and
+ jdk.
+ The hotspot directory contains the source code and make
+ files for building the OpenJDK Hotspot Virtual Machine.
+ The langtools directory contains the source code and make
+ files for building the OpenJDK javac and language tools.
+ The corba directory contains the source code and make
+ files for building the OpenJDK Corba files.
+ The jaxws directory contains the source code and make
+ files for building the OpenJDK JAXWS files.
+ The jaxp directory contains the source code and make
+ files for building the OpenJDK JAXP files.
+ The jdk directory contains the source code and make files for
+ building the OpenJDK runtime libraries and misc files.
+ The top level Makefile
+ is used to build the entire OpenJDK.
@@ -495,10 +570,10 @@
ALT_* variables (alternates)
can be used to help the makefiles locate components.
- Refer to the bash/sh/ksh setup file
- jdk/make/jdk_generic_profile.sh
- if you need help in setting up your environment variables.
- A build could be as simple as:
+ Refer to the bash/sh/ksh setup file
+ jdk/make/jdk_generic_profile.sh
+ if you need help in setting up your environment variables.
+ A build could be as simple as:
bash
@@ -507,12 +582,12 @@
- Of course ksh or sh would work too.
- But some customization will probably be necessary.
- The sanity rule will make some basic checks on build
- dependencies and generate appropriate warning messages
- regarding missing, out of date, or newer than expected components
- found on your system.
+ Of course ksh or sh would work too.
+ But some customization will probably be necessary.
+ The sanity rule will make some basic checks on build
+ dependencies and generate appropriate warning messages
+ regarding missing, out of date, or newer than expected components
+ found on your system.
@@ -524,7 +599,7 @@
A few notes about using GNU make:
-
- In general, you need GNU make version 3.78.1 or newer.
+ In general, you need GNU make version 3.81 or newer.
-
Place the location of the GNU make binary in the PATH.
@@ -559,14 +634,14 @@
version that has this problem fixed.
The older 3.80 version of make.exe can be downloaded with this
- link.
+ link.
Use of this older 3.80 make.exe may require that you install the
libintl2.dll library or libintl2 cygwin package which is
no longer installed by default by the cygwin installer.
Also see the
- mozilla developer center
+ mozilla developer center
on this topic.
It's hoped that when make 3.82 starts shipping in a future cygwin
@@ -574,19 +649,19 @@
In addition to the above 3.80 make.exe you can download
this
- www.cmake.org make.exe which will not have a libintl2.dll
+ www.cmake.org make.exe which will not have a libintl2.dll
dependency.
- Information on GNU make, and access to ftp download sites, are
- available on the
-
- GNU make web site
- .
- The latest source to GNU make is available at
-
- ftp.gnu.org/pub/gnu/make/.
+ Information on GNU make, and access to ftp download sites, are
+ available on the
+
+ GNU make web site
+ .
+ The latest source to GNU make is available at
+
+ ftp.gnu.org/pub/gnu/make/.
@@ -597,27 +672,27 @@
is a Pentium class processor or better, at least 256 MB of RAM, and
approximately 1.5 GB of free disk space.
- X64 only:
- The minimum recommended hardware for building the Linux
- version is an AMD Opteron class processor, at least 512 MB of RAM, and
- approximately 4 GB of free disk space.
+ X64 only:
+ The minimum recommended hardware for building the Linux
+ version is an AMD Opteron class processor, at least 512 MB of RAM, and
+ approximately 4 GB of free disk space.
- The build will use the tools contained in
- /bin and
- /usr/bin
- of a standard installation of the Linux operating environment.
- You should ensure that these directories are in your
- PATH.
+ The build will use the tools contained in
+ /bin and
+ /usr/bin
+ of a standard installation of the Linux operating environment.
+ You should ensure that these directories are in your
+ PATH.
- Note that some Linux systems have a habit of pre-populating
- your environment variables for you, for example JAVA_HOME
- might get pre-defined for you to refer to the JDK installed on
- your Linux system.
- You will need to unset JAVA_HOME.
- It's a good idea to run env and verify the
- environment variables you are getting from the default system
- settings make sense for building the
- OpenJDK.
+ Note that some Linux systems have a habit of pre-populating
+ your environment variables for you, for example JAVA_HOME
+ might get pre-defined for you to refer to the JDK installed on
+ your Linux system.
+ You will need to unset JAVA_HOME.
+ It's a good idea to run env and verify the
+ environment variables you are getting from the default system
+ settings make sense for building the
+ OpenJDK.
@@ -628,18 +703,13 @@
Bootstrap JDK, set
ALT_BOOTDIR.
-
- Install the
- Binary Plugs, set
- ALT_BINARY_PLUGS_PATH.
-
Optional Import JDK, set
ALT_JDK_IMPORT_PATH.
Install or upgrade the FreeType development
- package.
+ package.
Install
@@ -660,23 +730,23 @@
Approximately 1.4 GB of free disk
space is needed for a 32-bit build.
- If you are building the 64-bit version, you should
- run the command "isainfo -v" to verify that you have a
- 64-bit installation, it should say sparcv9 or
- amd64.
- An additional 7 GB of free disk space is needed
- for a 64-bit build.
+ If you are building the 64-bit version, you should
+ run the command "isainfo -v" to verify that you have a
+ 64-bit installation, it should say sparcv9 or
+ amd64.
+ An additional 7 GB of free disk space is needed
+ for a 64-bit build.
- The build uses the tools contained in /usr/ccs/bin
- and /usr/bin of a standard developer or full installation of
- the Solaris operating environment.
+ The build uses the tools contained in /usr/ccs/bin
+ and /usr/bin of a standard developer or full installation of
+ the Solaris operating environment.
- Solaris patches specific to the JDK can be downloaded from the
-
- SunSolve JDK Solaris patches download page.
- You should ensure that the latest patch cluster for
- your version of the Solaris operating environment has also
- been installed.
+ Solaris patches specific to the JDK can be downloaded from the
+
+ SunSolve JDK Solaris patches download page.
+ You should ensure that the latest patch cluster for
+ your version of the Solaris operating environment has also
+ been installed.
@@ -687,11 +757,6 @@
Bootstrap JDK, set
ALT_BOOTDIR.
-
- Install the
- Binary Plugs, set
- ALT_BINARY_PLUGS_PATH.
-
Optional Import JDK, set
ALT_JDK_IMPORT_PATH.
@@ -731,10 +796,10 @@
because FAT32 doesn't support case-sensitivity in file names.
- X64 only:
- The minimum recommended hardware for building
- the Windows X64 version is an AMD Opteron class processor, at least 1
- GB of RAM, and approximately 10 GB of free disk space.
+ X64 only:
+ The minimum recommended hardware for building
+ the Windows X64 version is an AMD Opteron class processor, at least 1
+ GB of RAM, and approximately 10 GB of free disk space.
@@ -753,18 +818,18 @@
(called 'mixed'), e.g.
cygpath -s -m "path".
- The makefiles will try to translate any pathnames supplied
- to it into the C:/ style automatically.
+ The makefiles will try to translate any pathnames supplied
+ to it into the C:/ style automatically.
- Note that use of CYGWIN creates a unique problem with regards to
- setting PATH. Normally on Windows
- the PATH variable contains directories
- separated with the ";" character (Solaris and Linux uses ":").
- With CYGWIN, it uses ":", but that means that paths like "C:/path"
- cannot be placed in the CYGWIN version of PATH and
- instead CYGWIN uses something like /cygdrive/c/path
- which CYGWIN understands, but only CYGWIN understands.
- So be careful with paths on Windows.
+ Note that use of CYGWIN creates a unique problem with regards to
+ setting PATH. Normally on Windows
+ the PATH variable contains directories
+ separated with the ";" character (Solaris and Linux uses ":").
+ With CYGWIN, it uses ":", but that means that paths like "C:/path"
+ cannot be placed in the CYGWIN version of PATH and
+ instead CYGWIN uses something like /cygdrive/c/path
+ which CYGWIN understands, but only CYGWIN understands.
+ So be careful with paths on Windows.
@@ -779,11 +844,6 @@
Bootstrap JDK, set
ALT_BOOTDIR.
-
- Install the
- Binary Plugs, set
- ALT_BINARY_PLUGS_PATH..
-
Optional Import JDK, set
ALT_JDK_IMPORT_PATH.
@@ -828,7 +888,7 @@
JDK 6, this is often called a bootstrap JDK.
The JDK 6 binaries can be downloaded from Sun's
JDK 6 download site.
+ target="_blank">JDK 6 download site.
For build performance reasons
is very important that this bootstrap JDK be made available on the
local disk of the machine doing the build.
@@ -841,44 +901,12 @@
in the PATH environment variable, although it's
not required.
- Solaris:
- Some pre-installed JDK images may be available to you in the
- directory /usr/jdk/instances.
- If you don't set
- ALT_BOOTDIR
- the makefiles will look in that location for a JDK it can use.
-
-
-
-
- Not all of the source code that makes up the JDK is available
- under an open-source license.
- This is a temporary situation and these binary plugs will be
- replaced with fully open source replacements as soon as possible.
- So currently, in order to build a complete OpenJDK image,
- you must first download and install the appropriate
- binary plug bundles for the OpenJDK, go to the
- OpenJDK site and select
- the
- "Bundles(7)"
- link and download the binaryplugs for
- your particular platform.
- The file downloaded is a jar file that must be extracted by running
- the jar file with:
-
-
- java -jar jdk-7-ea-plug-bnn-os-arch-dd_month_year.jar
-
-
- A prompt will be issued for acceptance of these binary plug files.
- During the OpenJDK build process these "binary plugs"
- for the encumbered components will be copied into your
- resulting OpenJDK binary build image.
- These binary plug files are only for the purpose of
- building an OpenJDK binary.
- Make sure you set
- ALT_BINARY_PLUGS_PATH
- to the root of this installation.
+ Solaris:
+ Some pre-installed JDK images may be available to you in the
+ directory /usr/jdk/instances.
+ If you don't set
+ ALT_BOOTDIR
+ the makefiles will look in that location for a JDK it can use.
@@ -896,7 +924,7 @@
All OpenJDK builds require access to least Ant 1.6.5.
The Ant tool is available from the
- Ant download site.
+ Ant download site.
You should always make sure ant is in your PATH, and
on Windows you may also need to set
ANT_HOME
@@ -908,7 +936,7 @@
See
- http://en.wikipedia.org/wiki/Certificate_Authority
+ http://en.wikipedia.org/wiki/Certificate_Authority
for a better understanding of the Certificate Authority (CA).
A certificates file named "cacerts"
represents a system-wide keystore with CA certificates.
@@ -942,121 +970,121 @@
At a minimum, the
- Sun Studio 12 Update 1 Compilers
+ Sun Studio 12 Update 1 Compilers
(containing version 5.10 of the C and C++ compilers) is required,
including specific patches.
-
+
The Solaris SPARC patch list is:
-
- -
- 118683-05: SunOS 5.10: Patch for profiling libraries and assembler
-
- -
- 119963-21: SunOS 5.10: Shared library patch for C++
-
- -
- 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
-
- -
- 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
-
- -
- 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
-
- -
- 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
-
- -
- 142371-01: Sun Studio 12.1 Update 1: Patch for dbx
-
- -
- 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
-
- -
- 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
-
- -
- 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
-
+
+ -
+ 118683-05: SunOS 5.10: Patch for profiling libraries and assembler
+
+ -
+ 119963-21: SunOS 5.10: Shared library patch for C++
+
+ -
+ 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
+
+ -
+ 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
+
+ -
+ 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
+
+ -
+ 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
+
+ -
+ 142371-01: Sun Studio 12.1 Update 1: Patch for dbx
+
+ -
+ 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
+
+ -
+ 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
+
+ -
+ 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
+
- The Solaris X86 patch list is:
+ The Solaris X86 patch list is:
- -
- 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
-
- -
- 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
-
- -
- 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
-
- -
- 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
-
- -
- 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
-
- -
- 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
-
- -
- 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
-
+ -
+ 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
+
+ -
+ 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
+
+ -
+ 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
+
+ -
+ 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
+
+ -
+ 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
+
+ -
+ 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
+
+ -
+ 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
+
- Set
- ALT_COMPILER_PATH
- to point to the location of
- the compiler binaries, and place this location in the PATH.
+ Set
+ ALT_COMPILER_PATH
+ to point to the location of
+ the compiler binaries, and place this location in the PATH.
- The Oracle Solaris Studio Express compilers at:
-
- Oracle Solaris Studio Express Download site
- are also an option, although these compilers have not
- been extensively used yet.
+ The Oracle Solaris Studio Express compilers at:
+
+ Oracle Solaris Studio Express Download site
+ are also an option, although these compilers have not
+ been extensively used yet.
Windows i586: Microsoft Visual Studio 2010 Compilers
-
-BEGIN WARNING: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
-use the newest VS2010 Microsoft compilers. These build instructions are updated
-to show where we are going. We have a QA process to go through before
-official builds actually use VS2010. So for now, official builds are
-still using VS2003. No other compilers are known to build the entire JDK,
-including non-open portions.
-So for now you should be able to build with either VS2003 or VS2010.
-We do not guarantee that VS2008 will work, although there is sufficient
-makefile support to make at least basic JDK builds plausible.
-Visual Studio 2010 Express compilers are now able to build all the
-open source repositories, but this is 32 bit only. To build 64 bit
-Windows binaries use the the 7.1 Windows SDK.END WARNING.
-
- The 32-bit OpenJDK Windows build
- requires
- Microsoft Visual Studio C++ 2010 (VS2010) Professional
- Edition or Express compiler.
- The compiler and other tools are expected to reside
- in the location defined by the variable
- VS100COMNTOOLS which
- is set by the Microsoft Visual Studio installer.
-
- Once the compiler is installed,
- it is recommended that you run VCVARS32.BAT
- to set the compiler environment variables
- INCLUDE,
- LIB, and
- PATH
- prior to building the
- OpenJDK.
- The above environment variables MUST be set.
- This compiler also contains the Windows SDK v 7.0a,
- which is an update to the Windows 7 SDK.
- WARNING: Make sure you check out the
- CYGWIN link.exe WARNING.
- The path /usr/bin must be after the path to the
- Visual Studio product.
+ BEGIN WARNING: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
+ use the newest VS2010 Microsoft compilers. These build instructions are updated
+ to show where we are going. We have a QA process to go through before
+ official builds actually use VS2010. So for now, official builds are
+ still using VS2003. No other compilers are known to build the entire JDK,
+ including non-open portions.
+ So for now you should be able to build with either VS2003 or VS2010.
+ We do not guarantee that VS2008 will work, although there is sufficient
+ makefile support to make at least basic JDK builds plausible.
+ Visual Studio 2010 Express compilers are now able to build all the
+ open source repositories, but this is 32 bit only. To build 64 bit
+ Windows binaries use the the 7.1 Windows SDK.END WARNING.
+
+ The 32-bit OpenJDK Windows build
+ requires
+ Microsoft Visual Studio C++ 2010 (VS2010) Professional
+ Edition or Express compiler.
+ The compiler and other tools are expected to reside
+ in the location defined by the variable
+ VS100COMNTOOLS which
+ is set by the Microsoft Visual Studio installer.
+
+ Once the compiler is installed,
+ it is recommended that you run VCVARS32.BAT
+ to set the compiler environment variables
+ INCLUDE,
+ LIB, and
+ PATH
+ prior to building the
+ OpenJDK.
+ The above environment variables MUST be set.
+ This compiler also contains the Windows SDK v 7.0a,
+ which is an update to the Windows 7 SDK.
+
+ WARNING: Make sure you check out the
+ CYGWIN link.exe WARNING.
+ The path /usr/bin must be after the path to the
+ Visual Studio product.
Windows x64: Microsoft Visual Studio 2010 Professional Compiler
@@ -1069,22 +1097,22 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
you have VS2010 Professional.
Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.
- For a free alternative for 64 bit builds, use the 7.1 SDK.
- Microsoft say that to set up your paths for this run
-
+ For a free alternative for 64 bit builds, use the 7.1 SDK.
+ Microsoft say that to set up your paths for this run
+
c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64.
-
- What was tested is just directly setting up LIB, INCLUDE,
- PATH and based on the installation directories using the
- DOS short name appropriate for the system, (you will
- need to set them for yours, not just blindly copy this) eg :
-
+
+ What was tested is just directly setting up LIB, INCLUDE,
+ PATH and based on the installation directories using the
+ DOS short name appropriate for the system, (you will
+ need to set them for yours, not just blindly copy this) eg :
+
set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0
set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1
set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH%
set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include
set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64
-
+
@@ -1110,41 +1138,41 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
Companion CD/DVD, these often will be installed into
/opt/sfw/cups.
- Linux:
- CUPS header files are required for building the
- OpenJDK on Linux.
- The Linux header files are usually available from a "cups"
- development package, it's recommended that you try and use
- the package provided by the particular version of Linux that
- you are using.
+ Linux:
+ CUPS header files are required for building the
+ OpenJDK on Linux.
+ The Linux header files are usually available from a "cups"
+ development package, it's recommended that you try and use
+ the package provided by the particular version of Linux that
+ you are using.
- The CUPS header files can always be downloaded from
- www.cups.org.
- The variable
- ALT_CUPS_HEADERS_PATH
- can be used to override the default location of the
- CUPS Header files.
+ The CUPS header files can always be downloaded from
+ www.cups.org.
+ The variable
+ ALT_CUPS_HEADERS_PATH
+ can be used to override the default location of the
+ CUPS Header files.
- Solaris:
- XRender header files are required for building the
- OpenJDK on Solaris.
- The XRender header file is included with the other X11 header files
- in the package SFWxwinc on new enough versions of
- Solaris and will be installed in
- /usr/X11/include/X11/extensions/Xrender.h
+ Solaris:
+ XRender header files are required for building the
+ OpenJDK on Solaris.
+ The XRender header file is included with the other X11 header files
+ in the package SFWxwinc on new enough versions of
+ Solaris and will be installed in
+ /usr/X11/include/X11/extensions/Xrender.h
- Linux:
- XRender header files are required for building the
- OpenJDK on Linux.
- The Linux header files are usually available from a "Xrender"
- development package, it's recommended that you try and use
- the package provided by the particular distribution of Linux that
- you are using.
-
+ Linux:
+ XRender header files are required for building the
+ OpenJDK on Linux.
+ The Linux header files are usually available from a "Xrender"
+ development package, it's recommended that you try and use
+ the package provided by the particular distribution of Linux that
+ you are using.
+
@@ -1155,31 +1183,31 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
Note that you need development version of package that
includes both FreeType library and header files.
- You can always download latest FreeType version from the
- FreeType website.
+ You can always download latest FreeType version from the
+ FreeType website.
- Makefiles will try to pick FreeType from /usr/lib and /usr/include.
- In case it is installed elsewhere you will need to set environment
- variables
- ALT_FREETYPE_LIB_PATH
- and
- ALT_FREETYPE_HEADERS_PATH
- to refer to place where library and header files are installed.
+ Makefiles will try to pick FreeType from /usr/lib and /usr/include.
+ In case it is installed elsewhere you will need to set environment
+ variables
+ ALT_FREETYPE_LIB_PATH
+ and
+ ALT_FREETYPE_HEADERS_PATH
+ to refer to place where library and header files are installed.
- Building the freetype 2 libraries from scratch is also possible,
- however on Windows refer to the
-
- Windows FreeType DLL build instructions.
+ Building the freetype 2 libraries from scratch is also possible,
+ however on Windows refer to the
+
+ Windows FreeType DLL build instructions.
- Note that by default FreeType is built with byte code hinting
- support disabled due to licensing restrictions.
- In this case, text appearance and metrics are expected to
- differ from Sun's official JDK build.
- See
-
- the SourceForge FreeType2 Home Page
-
- for more information.
+ Note that by default FreeType is built with byte code hinting
+ support disabled due to licensing restrictions.
+ In this case, text appearance and metrics are expected to
+ differ from Sun's official JDK build.
+ See
+
+ the SourceForge FreeType2 Home Page
+
+ for more information.
@@ -1195,25 +1223,25 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
The makefiles will check this emit a sanity error if it is
missing or the wrong version.
- In particular, older Linux systems will likely not have the
- right version of ALSA installed, for example
- Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently
- recent ALSA distribution.
- On rpm-based systems, you can see if ALSA is installed by
- running this command:
+ In particular, older Linux systems will likely not have the
+ right version of ALSA installed, for example
+ Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently
+ recent ALSA distribution.
+ On rpm-based systems, you can see if ALSA is installed by
+ running this command:
rpm -qa | grep alsa
Both alsa and alsa-devel packages are needed.
- If your distribution does not come with ALSA, and you can't
- find ALSA packages built for your particular system,
- you can try to install the pre-built ALSA rpm packages from
-
- www.freshrpms.net.
- Note that installing a newer ALSA could
- break sound output if an older version of ALSA was previously
- installed on the system, but it will enable JDK compilation.
+ If your distribution does not come with ALSA, and you can't
+ find ALSA packages built for your particular system,
+ you can try to install the pre-built ALSA rpm packages from
+
+ www.freshrpms.net.
+ Note that installing a newer ALSA could
+ break sound output if an older version of ALSA was previously
+ installed on the system, but it will enable JDK compilation.
Installation: execute as root
[i586]: rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm
@@ -1228,7 +1256,7 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
As a last resort you can go to the
- Advanced Linux Sound Architecture Site and build it from
+ Advanced Linux Sound Architecture Site and build it from
source.
Download driver and library
@@ -1256,9 +1284,9 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
building the JDK platform. To actually use ALSA sound drivers, more
steps are necessary as outlined in the documentation on ALSA's homepage.
- ALSA can be uninstalled by executing make uninstall first in
- the alsa-lib-0.9.1 directory and then in
- alsa-driver-0.9.1.
+ ALSA can be uninstalled by executing make uninstall first in
+ the alsa-lib-0.9.1 directory and then in
+ alsa-driver-0.9.1.
There are no ALT* variables to change the assumed locations of ALSA,
the makefiles will expect to find the ALSA include files and library at:
@@ -1273,15 +1301,15 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
on Windows which can be supplied by
CYGWIN.
- The OpenJDK build requires CYGWIN version 1.5.12 or newer.
- Information about CYGWIN can
- be obtained from the CYGWIN website at
- www.cygwin.com.
+ The OpenJDK build requires CYGWIN version 1.5.12 or newer.
+ Information about CYGWIN can
+ be obtained from the CYGWIN website at
+ www.cygwin.com.
- By default CYGWIN doesn't install all the tools required for building
- the OpenJDK.
- Along with the default installation, you need to install
- the following tools.
+ By default CYGWIN doesn't install all the tools required for building
+ the OpenJDK.
+ Along with the default installation, you need to install
+ the following tools.
@@ -1298,21 +1326,21 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
Devel |
binutils |
The GNU assembler, linker and binary
- utilities |
+ utilities
make.exe |
Devel |
make |
The GNU version of the 'make' utility built for CYGWIN.
- NOTE: See the GNU make section |
+ NOTE: See the GNU make section
m4.exe |
Interpreters |
m4 |
GNU implementation of the traditional Unix macro
- processor |
+ processor
cpio.exe |
@@ -1354,21 +1382,21 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
- Note that the CYGWIN software can conflict with other non-CYGWIN
- software on your Windows system.
- CYGWIN provides a
- FAQ for
- known issues and problems, of particular interest is the
- section on
-
- BLODA (applications that interfere with CYGWIN).
+ Note that the CYGWIN software can conflict with other non-CYGWIN
+ software on your Windows system.
+ CYGWIN provides a
+ FAQ for
+ known issues and problems, of particular interest is the
+ section on
+
+ BLODA (applications that interfere with CYGWIN).
- WARNING:
- Be very careful with link.exe, it will conflict
- with the Visual Studio version. You need the Visual Studio
- version of link.exe, not the CYGWIN one.
- So it's important that the Visual Studio paths in PATH preceed
- the CYGWIN path /usr/bin.
+ WARNING:
+ Be very careful with link.exe, it will conflict
+ with the Visual Studio version. You need the Visual Studio
+ version of link.exe, not the CYGWIN one.
+ So it's important that the Visual Studio paths in PATH preceed
+ the CYGWIN path /usr/bin.
Microsoft DirectX 9.0 SDK header files and libraries
@@ -1377,7 +1405,7 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
OpenJDK.
This SDK can be downloaded from
- Microsoft DirectX 9.0 SDK (Summer 2004).
+ Microsoft DirectX 9.0 SDK (Summer 2004).
If the link above becomes obsolete, the SDK can be found from
the Microsoft Download Site
(search with "DirectX 9.0 SDK Update Summer 2004").
@@ -1431,14 +1459,14 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
- Solaris:
- Note that ARCH_DATA_MODEL is really only needed on Solaris to
- indicate you want to built the 64-bit version.
- And before the Solaris 64-bit binaries can be used, they
- must be merged with the binaries from a separate 32-bit build.
- The merged binaries may then be used in either 32-bit or 64-bit mode, with
- the selection occurring at runtime
- with the -d32 or -d64 options.
+ Solaris:
+ Note that ARCH_DATA_MODEL is really only needed on Solaris to
+ indicate you want to built the 64-bit version.
+ And before the Solaris 64-bit binaries can be used, they
+ must be merged with the binaries from a separate 32-bit build.
+ The merged binaries may then be used in either 32-bit or 64-bit mode, with
+ the selection occurring at runtime
+ with the -d32 or -d64 options.
@@ -1450,37 +1478,39 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
The default output directory is
build/platform,
where platform is one of
-
- - solaris-sparc
- - solaris-sparcv9
- - solaris-i586
- - solaris-amd64
- - linux-i586
- - linux-amd64
- - windows-i586
- - windows-amd64
-
+
+
+ - solaris-sparc
+ - solaris-sparcv9
+ - solaris-i586
+ - solaris-amd64
+ - linux-i586
+ - linux-amd64
+ - windows-i586
+ - windows-amd64
+
+
In particular, the
build/platform/j2sdk-image/bin
directory should contain executables for the
OpenJDK tools and utilities.
- You can test that the build completed properly by using the build
- to run the various demos that you will find in the
- build/platform/j2sdk-image/demo
- directory.
+ You can test that the build completed properly by using the build
+ to run the various demos that you will find in the
+ build/platform/j2sdk-image/demo
+ directory.
- The provided regression tests can be run with the jtreg
- utility from
- the jtreg site.
+ The provided regression tests can be run with the jtreg
+ utility from
+ the jtreg site.
- Some of the
- environment or make variables (just called variables in this
- document) that can impact the build are:
+ Some of the
+ environment or make variables (just called variables in this
+ document) that can impact the build are:
- PATH
@@ -1488,11 +1518,11 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
- The location of the GNU make binary
- The location of the Bootstrap JDK java
- (see Bootstrap JDK)
+ (see Bootstrap JDK)
- The location of the C/C++ compilers
- (see compilers)
+ (see compilers)
- The location or locations for the Unix command utilities
- (e.g. /usr/bin)
+ (e.g. /usr/bin)
- MILESTONE
@@ -1523,14 +1553,6 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
You should always install your own local Bootstrap JDK and
always set ALT_BOOTDIR explicitly.
- - ALT_BINARY_PLUGS_PATH
- -
- The location of the binary plugs installation.
- See Binary Plugs for more information.
- You should always have a local copy of a
- recent Binary Plugs install image
- and set this variable to that location.
-
- ALT_JDK_IMPORT_PATH
-
The location of a previously built JDK installation.
@@ -1627,36 +1649,19 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
Where each of these directories contain the import JDK image
for that platform.
- - ALT_BUILD_BINARY_PLUGS_PATH
- -
- These are useful in managing builds on multiple platforms.
- The default network location for all of the binary plug images
- for all platforms.
- If ALT_BINARY_PLUGS_PATH
- is not set, this directory will be used and should contain
- the following directories:
- solaris-sparc,
- solaris-i586,
- solaris-sparcv9,
- solaris-amd64,
- linux-i586,
- linux-amd64,
- windows-i586,
- and
- windows-amd64.
- Where each of these directories contain the binary plugs image
- for that platform.
-
- Windows specific:
-
- - ALT_MSDEVTOOLS_PATH
+ - ALT_WINDOWSSDKDIR
-
The location of the
- Microsoft Visual Studio
- tools 'bin' directory.
- The default is usually derived from
- ALT_COMPILER_PATH.
+ Microsoft Windows SDK where some tools will be
+ located.
+ The default is whatever WINDOWSSDKDIR is set to
+ (or WindowsSdkDir) or the path
+
+ c:\Program Files\Microsoft SDKs\Windows\v6.1a
+
- ALT_DXSDK_PATH
-
@@ -1694,17 +1699,17 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
Look for the check list of the platform you are building on in the
Table of Contents.
- You can validate your build environment by using the sanity
- target.
- Any errors listed
- will stop the build from starting, and any warnings may result in
- a flawed product build.
- We strongly encourage you to evaluate every
- sanity check warning and fix it if required, before you proceed
- further with your build.
+ You can validate your build environment by using the sanity
+ target.
+ Any errors listed
+ will stop the build from starting, and any warnings may result in
+ a flawed product build.
+ We strongly encourage you to evaluate every
+ sanity check warning and fix it if required, before you proceed
+ further with your build.
- Some of the more common problems with builds are briefly described
- below, with suggestions for remedies.
+ Some of the more common problems with builds are briefly described
+ below, with suggestions for remedies.
-
Slow Builds:
@@ -1715,15 +1720,15 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
machine, setting it to more than the the number of CPUs is probably
not a good idea).
- Creating the javadocs can be very slow, if you are running
- javadoc, consider skipping that step.
+ Creating the javadocs can be very slow, if you are running
+ javadoc, consider skipping that step.
- Faster hardware and more RAM always helps too.
- The VM build tends to be CPU intensive (many C++ compiles),
- and the rest of the JDK will often be disk intensive.
+ Faster hardware and more RAM always helps too.
+ The VM build tends to be CPU intensive (many C++ compiles),
+ and the rest of the JDK will often be disk intensive.
- Faster compiles are possible using a tool called
- ccache.
+ Faster compiles are possible using a tool called
+ ccache.
@@ -1732,10 +1737,10 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
If you see warnings that refer to file time stamps, e.g.
Warning message: File `xxx' has modification time in
- the future.
+ the future.
Warning message: Clock skew detected. Your build may
- be incomplete.
+ be incomplete.
These warnings can occur when the clock on the build machine is out of
sync with the timestamps on the source files. Other errors, apparently
@@ -1747,9 +1752,9 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
when the pre-1.4 compiler ran across the new assert keyword
in the 1.4 source code.
- If you see these warnings, reset the clock on the build
- machine, run "gmake clobber" or delete the directory
- containing the build output, and restart the build from the beginning.
+ If you see these warnings, reset the clock on the build
+ machine, run "gmake clobber" or delete the directory
+ containing the build output, and restart the build from the beginning.
@@ -1776,32 +1781,28 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
This is probably an issue with SELinux (See
- http://en.wikipedia.org/wiki/SELinux).
+ http://en.wikipedia.org/wiki/SELinux).
Parts of the VM is built without the -fPIC for
performance reasons.
- To completely disable SELinux:
-
-
- - $ su root
- - # system-config-securitylevel
- - In the window that appears, select the SELinux tab
- - Disable SELinux
-
-
+ To completely disable SELinux:
+
+ - $ su root
+ - # system-config-securitylevel
+ - In the window that appears, select the SELinux tab
+ - Disable SELinux
+
- Alternatively, instead of completely disabling it you could
- disable just this one check.
-
-
- - Select System->Administration->SELinux Management
- - In the SELinux Management Tool which appears,
+ Alternatively, instead of completely disabling it you could
+ disable just this one check.
+
+ - Select System->Administration->SELinux Management
+ - In the SELinux Management Tool which appears,
select "Boolean" from the menu on the left
- - Expand the "Memory Protection" group
- - Check the first item, labeled
+
- Expand the "Memory Protection" group
+ - Check the first item, labeled
"Allow all unconfined executables to use libraries requiring text relocation ..."
-
-
+
@@ -1810,7 +1811,7 @@ Windows binaries use the the 7.1 Windows SDK.END WARNING.
The CYGWIN software can conflict with other non-CYGWIN
software. See the CYGWIN FAQ section on
- BLODA (applications that interfere with CYGWIN).
+ BLODA (applications that interfere with CYGWIN).
diff --git a/corba/.hgtags b/corba/.hgtags
index 03eadfbbb1b..88d03298a46 100644
--- a/corba/.hgtags
+++ b/corba/.hgtags
@@ -88,3 +88,15 @@ c3dd858e09b20206459d9e7b0ead99d27ab00eab jdk7-b109
640fa4d4e2ad4c2d7e4815c955026740d8c52b7a jdk7-b111
cc67fdc4fee9a5b25caee4e71b51a8ff24ae7d1a jdk7-b112
a89a6c5be9d1a754868d3d359cbf7ad36aa95631 jdk7-b113
+88fddb73c5c4a4b50c319cbae9380caf5172ab45 jdk7-b114
+da7561d479e0ddaa4650d8023ac0fc7294e014e3 jdk7-b115
+98c028de4301106f2285ac0e128a1bb9b4c24f5c jdk7-b116
+fa502e4834dac2176499cc1f44794d5dc32a11b9 jdk7-b117
+42e77836fded7c2a3080d27316b96634ea9e33c6 jdk7-b118
+39829414ae31a0080578a49b751899edd518cd7d jdk7-b119
+cff5a173ec1e89013359e804a3e31736ef6fb462 jdk7-b120
+2cc9f32992101732b23730b737740e64ebc5fa89 jdk7-b121
+1523a060032c8a5b7840198da8911abeff88118f jdk7-b122
+a230c142628cea22475ab9dc5cd544266ddf2466 jdk7-b123
+f90b3e014e831eb4f32ef035a1dad2b8ba87949f jdk7-b124
+1ce58c72b7892cb813eb920276c7e7f17a1b79fe jdk7-b125
diff --git a/corba/make/Makefile b/corba/make/Makefile
index b8a71915079..aef5c1b4bd4 100644
--- a/corba/make/Makefile
+++ b/corba/make/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2010, 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
diff --git a/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_io.jmk b/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_io.jmk
index cc3cbb69cc5..b8de62d6f2a 100644
--- a/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_io.jmk
+++ b/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_io.jmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2010, 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 @@ com_sun_corba_se_impl_io_java = \
com/sun/corba/se/impl/io/ObjectStreamField.java \
com/sun/corba/se/impl/io/OptionalDataException.java \
com/sun/corba/se/impl/io/ValueHandlerImpl.java \
- com/sun/corba/se/impl/io/IIOPInputStream.java \
+ com/sun/corba/se/impl/io/IIOPInputStream.java \
com/sun/corba/se/impl/io/IIOPOutputStream.java \
com/sun/corba/se/impl/io/TypeMismatchException.java \
com/sun/corba/se/impl/io/InputStreamHook.java \
diff --git a/corba/make/common/Defs-linux.gmk b/corba/make/common/Defs-linux.gmk
index a5ef1d36b29..f65cfe8e535 100644
--- a/corba/make/common/Defs-linux.gmk
+++ b/corba/make/common/Defs-linux.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
diff --git a/corba/make/common/Defs-solaris.gmk b/corba/make/common/Defs-solaris.gmk
index eb38771dfab..3237978a01a 100644
--- a/corba/make/common/Defs-solaris.gmk
+++ b/corba/make/common/Defs-solaris.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 2010, 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
diff --git a/corba/make/common/Defs-windows.gmk b/corba/make/common/Defs-windows.gmk
index cef6c6c60b8..75823af9dd9 100644
--- a/corba/make/common/Defs-windows.gmk
+++ b/corba/make/common/Defs-windows.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
diff --git a/corba/make/common/Defs.gmk b/corba/make/common/Defs.gmk
index 2d5c83db6e0..6d78ecb580e 100644
--- a/corba/make/common/Defs.gmk
+++ b/corba/make/common/Defs.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 2010, 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
diff --git a/corba/make/common/Rules.gmk b/corba/make/common/Rules.gmk
index a18978697b4..7080e5bc53b 100644
--- a/corba/make/common/Rules.gmk
+++ b/corba/make/common/Rules.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 2010, 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
diff --git a/corba/make/common/shared/Defs-java.gmk b/corba/make/common/shared/Defs-java.gmk
index 8d7531fe3e4..f45a7a1bc73 100644
--- a/corba/make/common/shared/Defs-java.gmk
+++ b/corba/make/common/shared/Defs-java.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 2010, 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
diff --git a/corba/make/common/shared/Defs-linux.gmk b/corba/make/common/shared/Defs-linux.gmk
index 9db85a39ba7..c8a3e359543 100644
--- a/corba/make/common/shared/Defs-linux.gmk
+++ b/corba/make/common/shared/Defs-linux.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
diff --git a/corba/make/common/shared/Defs-solaris.gmk b/corba/make/common/shared/Defs-solaris.gmk
index 7f0abf6a790..416e868dc1d 100644
--- a/corba/make/common/shared/Defs-solaris.gmk
+++ b/corba/make/common/shared/Defs-solaris.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
diff --git a/corba/make/common/shared/Defs-windows.gmk b/corba/make/common/shared/Defs-windows.gmk
index 559317a744e..1521d9461c3 100644
--- a/corba/make/common/shared/Defs-windows.gmk
+++ b/corba/make/common/shared/Defs-windows.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
diff --git a/corba/make/common/shared/Defs.gmk b/corba/make/common/shared/Defs.gmk
index af1456bab97..1619dcba1c2 100644
--- a/corba/make/common/shared/Defs.gmk
+++ b/corba/make/common/shared/Defs.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
diff --git a/corba/make/common/shared/Platform.gmk b/corba/make/common/shared/Platform.gmk
index e1bb4466531..07d0b505d27 100644
--- a/corba/make/common/shared/Platform.gmk
+++ b/corba/make/common/shared/Platform.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2010, 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
@@ -383,7 +383,7 @@ endif
REQUIRED_ZIP_VER = 2.2
REQUIRED_UNZIP_VER = 5.12
-REQUIRED_MAKE_VER = 3.78
+REQUIRED_MAKE_VER = 3.81
# Unix type settings (same for all unix platforms)
ifneq ($(PLATFORM), windows)
diff --git a/corba/make/org/omg/idl/Makefile b/corba/make/org/omg/idl/Makefile
index 87ad9db55a9..3687eb0b08c 100644
--- a/corba/make/org/omg/idl/Makefile
+++ b/corba/make/org/omg/idl/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
diff --git a/corba/make/sun/corba/Makefile b/corba/make/sun/corba/Makefile
index f590de2d1a5..5b7dfd05b56 100644
--- a/corba/make/sun/corba/Makefile
+++ b/corba/make/sun/corba/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2010, 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
diff --git a/corba/make/sun/corba/core/Makefile b/corba/make/sun/corba/core/Makefile
index 861aed047c9..7075e865cd2 100644
--- a/corba/make/sun/corba/core/Makefile
+++ b/corba/make/sun/corba/core/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2010, 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
diff --git a/corba/make/sun/rmi/rmic/FILES.gmk b/corba/make/sun/rmi/rmic/FILES.gmk
index ca8f409b20e..9ad7901d54a 100644
--- a/corba/make/sun/rmi/rmic/FILES.gmk
+++ b/corba/make/sun/rmi/rmic/FILES.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2010, 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
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteStream.java b/corba/src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteStream.java
index da369f9c365..e03c71c5a95 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteStream.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteStream.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
@@ -30,12 +30,14 @@ import com.sun.corba.se.impl.orbutil.ORBConstants;
import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;
import com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase;
import com.sun.corba.se.impl.protocol.giopmsgheaders.FragmentMessage;
+import com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage;
import com.sun.corba.se.impl.encoding.BufferManagerWrite;
import com.sun.corba.se.impl.encoding.ByteBufferWithInfo;
import com.sun.corba.se.impl.encoding.CDROutputObject;
import com.sun.corba.se.spi.orb.ORB;
import com.sun.corba.se.pept.transport.Connection;
import com.sun.corba.se.pept.encoding.OutputObject;
+import org.omg.CORBA.SystemException;
/**
* Streaming buffer manager.
@@ -66,7 +68,13 @@ public class BufferManagerWriteStream extends BufferManagerWrite
// Set the fragment's moreFragments field to true
MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT);
- sendFragment(false);
+ try {
+ sendFragment(false);
+ } catch(SystemException se){
+ orb.getPIHandler().invokeClientPIEndingPoint(
+ ReplyMessage.SYSTEM_EXCEPTION, se);
+ throw se;
+ }
// Reuse the old buffer
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java
index df9f4d7a418..d24fa030725 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
@@ -74,6 +74,7 @@ import com.sun.corba.se.spi.ior.iiop.IIOPProfileTemplate;
import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
import com.sun.corba.se.spi.orb.ORB;
import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
+import com.sun.corba.se.spi.protocol.RetryType;
import com.sun.corba.se.spi.transport.CorbaContactInfo;
import com.sun.corba.se.spi.transport.CorbaContactInfoList;
import com.sun.corba.se.spi.transport.CorbaContactInfoListIterator;
@@ -110,7 +111,7 @@ public final class ClientRequestInfoImpl
// The current retry request status. True if this request is being
// retried and this info object is to be reused, or false otherwise.
- private boolean retryRequest;
+ private RetryType retryRequest;
// The number of times this info object has been (re)used. This is
// incremented every time a request is retried, and decremented every
@@ -163,7 +164,8 @@ public final class ClientRequestInfoImpl
// Please keep these in the same order that they're declared above.
- retryRequest = false;
+ // 6763340
+ retryRequest = RetryType.NONE;
// Do not reset entryCount because we need to know when to pop this
// from the stack.
@@ -824,14 +826,15 @@ public final class ClientRequestInfoImpl
/**
* Set or reset the retry request flag.
*/
- void setRetryRequest( boolean retryRequest ) {
+ void setRetryRequest( RetryType retryRequest ) {
this.retryRequest = retryRequest;
}
/**
* Retrieve the current retry request status.
*/
- boolean getRetryRequest() {
+ RetryType getRetryRequest() {
+ // 6763340
return this.retryRequest;
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java
index 68782b1f356..e8c6d1560fc 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -70,6 +70,7 @@ import com.sun.corba.se.spi.orbutil.closure.ClosureFactory;
import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
import com.sun.corba.se.spi.protocol.ForwardException;
import com.sun.corba.se.spi.protocol.PIHandler;
+import com.sun.corba.se.spi.protocol.RetryType;
import com.sun.corba.se.spi.logging.CORBALogDomains;
import com.sun.corba.se.impl.logging.InterceptorsSystemException;
@@ -372,9 +373,24 @@ public class PIHandlerImpl implements PIHandler
}
}
- public Exception invokeClientPIEndingPoint(
- int replyStatus, Exception exception )
- {
+ // Needed when an error forces a retry AFTER initiateClientPIRequest
+ // but BEFORE invokeClientPIStartingPoint.
+ public Exception makeCompletedClientRequest( int replyStatus,
+ Exception exception ) {
+
+ // 6763340
+ return handleClientPIEndingPoint( replyStatus, exception, false ) ;
+ }
+
+ public Exception invokeClientPIEndingPoint( int replyStatus,
+ Exception exception ) {
+
+ // 6763340
+ return handleClientPIEndingPoint( replyStatus, exception, true ) ;
+ }
+
+ public Exception handleClientPIEndingPoint(
+ int replyStatus, Exception exception, boolean invokeEndingPoint ) {
if( !hasClientInterceptors ) return exception;
if( !isClientPIEnabledForThisThread() ) return exception;
@@ -388,24 +404,31 @@ public class PIHandlerImpl implements PIHandler
ClientRequestInfoImpl info = peekClientRequestInfoImplStack();
info.setReplyStatus( piReplyStatus );
info.setException( exception );
- interceptorInvoker.invokeClientInterceptorEndingPoint( info );
- piReplyStatus = info.getReplyStatus();
+
+ if (invokeEndingPoint) {
+ // 6763340
+ interceptorInvoker.invokeClientInterceptorEndingPoint( info );
+ piReplyStatus = info.getReplyStatus();
+ }
// Check reply status:
if( (piReplyStatus == LOCATION_FORWARD.value) ||
- (piReplyStatus == TRANSPORT_RETRY.value) )
- {
+ (piReplyStatus == TRANSPORT_RETRY.value) ) {
// If this is a forward or a retry, reset and reuse
// info object:
info.reset();
- info.setRetryRequest( true );
+
+ // fix for 6763340:
+ if (invokeEndingPoint) {
+ info.setRetryRequest( RetryType.AFTER_RESPONSE ) ;
+ } else {
+ info.setRetryRequest( RetryType.BEFORE_RESPONSE ) ;
+ }
// ... and return a RemarshalException so the orb internals know
exception = new RemarshalException();
- }
- else if( (piReplyStatus == SYSTEM_EXCEPTION.value) ||
- (piReplyStatus == USER_EXCEPTION.value) )
- {
+ } else if( (piReplyStatus == SYSTEM_EXCEPTION.value) ||
+ (piReplyStatus == USER_EXCEPTION.value) ) {
exception = info.getException();
}
@@ -421,18 +444,21 @@ public class PIHandlerImpl implements PIHandler
RequestInfoStack infoStack =
(RequestInfoStack)threadLocalClientRequestInfoStack.get();
ClientRequestInfoImpl info = null;
- if( !infoStack.empty() ) info =
- (ClientRequestInfoImpl)infoStack.peek();
- if( !diiRequest && (info != null) && info.isDIIInitiate() ) {
+ if (!infoStack.empty() ) {
+ info = (ClientRequestInfoImpl)infoStack.peek();
+ }
+
+ if (!diiRequest && (info != null) && info.isDIIInitiate() ) {
// In RequestImpl.doInvocation we already called
// initiateClientPIRequest( true ), so ignore this initiate.
info.setDIIInitiate( false );
- }
- else {
+ } else {
// If there is no info object or if we are not retrying a request,
// push a new ClientRequestInfoImpl on the stack:
- if( (info == null) || !info.getRetryRequest() ) {
+
+ // 6763340: don't push unless this is not a retry
+ if( (info == null) || !info.getRetryRequest().isRetry() ) {
info = new ClientRequestInfoImpl( orb );
infoStack.push( info );
printPush();
@@ -442,9 +468,15 @@ public class PIHandlerImpl implements PIHandler
// Reset the retry request flag so that recursive calls will
// push a new info object, and bump up entry count so we know
// when to pop this info object:
- info.setRetryRequest( false );
+ info.setRetryRequest( RetryType.NONE );
info.incrementEntryCount();
+ // KMC 6763340: I don't know why this wasn't set earlier,
+ // but we do not want a retry to pick up the previous
+ // reply status, so clear it here. Most likely a new
+ // info was pushed before, so that this was not a problem.
+ info.setReplyStatus( RequestInfoImpl.UNINITIALIZED ) ;
+
// If this is a DII request, make sure we ignore the next initiate.
if( diiRequest ) {
info.setDIIInitiate( true );
@@ -457,25 +489,34 @@ public class PIHandlerImpl implements PIHandler
if( !isClientPIEnabledForThisThread() ) return;
ClientRequestInfoImpl info = peekClientRequestInfoImplStack();
+ RetryType rt = info.getRetryRequest() ;
- // If the replyStatus has not yet been set, this is an indication
- // that the ORB threw an exception before we had a chance to
- // invoke the client interceptor ending points.
- //
- // _REVISIT_ We cannot handle any exceptions or ForwardRequests
- // flagged by the ending points here because there is no way
- // to gracefully handle this in any of the calling code.
- // This is a rare corner case, so we will ignore this for now.
- short replyStatus = info.getReplyStatus();
- if( replyStatus == info.UNINITIALIZED ) {
- invokeClientPIEndingPoint( ReplyMessage.SYSTEM_EXCEPTION,
- wrapper.unknownRequestInvoke(
- CompletionStatus.COMPLETED_MAYBE ) ) ;
+ // fix for 6763340
+ if (!rt.equals( RetryType.BEFORE_RESPONSE )) {
+
+ // If the replyStatus has not yet been set, this is an indication
+ // that the ORB threw an exception before we had a chance to
+ // invoke the client interceptor ending points.
+ //
+ // _REVISIT_ We cannot handle any exceptions or ForwardRequests
+ // flagged by the ending points here because there is no way
+ // to gracefully handle this in any of the calling code.
+ // This is a rare corner case, so we will ignore this for now.
+ short replyStatus = info.getReplyStatus();
+ if (replyStatus == info.UNINITIALIZED ) {
+ invokeClientPIEndingPoint( ReplyMessage.SYSTEM_EXCEPTION,
+ wrapper.unknownRequestInvoke(
+ CompletionStatus.COMPLETED_MAYBE ) ) ;
+ }
}
// Decrement entry count, and if it is zero, pop it from the stack.
info.decrementEntryCount();
- if( info.getEntryCount() == 0 ) {
+
+ // fix for 6763340, and probably other cases (non-recursive retry)
+ if (info.getEntryCount() == 0 && !info.getRetryRequest().isRetry()) {
+ // RequestInfoStack infoStack =
+ // threadLocalClientRequestInfoStack.get();
RequestInfoStack infoStack =
(RequestInfoStack)threadLocalClientRequestInfoStack.get();
infoStack.pop();
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java
index 98b1572cac7..e6d9e53609f 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
@@ -107,6 +107,11 @@ public class PINoOpHandlerImpl implements PIHandler
return null;
}
+ public Exception makeCompletedClientRequest(
+ int replyStatus, Exception exception ) {
+ return null;
+ }
+
public void initiateClientPIRequest( boolean diiRequest ) {
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java
index 072d123d779..a20de7a3af0 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
@@ -187,7 +187,8 @@ public abstract class RequestInfoImpl
startingPointCall = 0;
intermediatePointCall = 0;
endingPointCall = 0;
- replyStatus = UNINITIALIZED;
+ // 6763340
+ setReplyStatus( UNINITIALIZED ) ;
currentExecutionPoint = EXECUTION_POINT_STARTING;
alreadyExecuted = false;
connection = null;
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
index 73ef8386006..1992c25a3c1 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
@@ -1012,7 +1012,11 @@ public class IIOPInputStream
* else,
* Handle it as a serializable class.
*/
- if (currentClassDesc.isExternalizable()) {
+ if (Enum.class.isAssignableFrom( clz )) {
+ int ordinal = orbStream.read_long() ;
+ String value = (String)orbStream.read_value( String.class ) ;
+ return Enum.valueOf( clz, value ) ;
+ } else if (currentClassDesc.isExternalizable()) {
try {
currentObject = (currentClass == null) ?
null : currentClassDesc.newInstance();
@@ -2553,8 +2557,8 @@ public class IIOPInputStream
bridge.putObject( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetObjectField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
- ObjectUtility.compactObjectToString( v )) ;
+ o.toString(),
+ v.toString() ) ;
}
}
@@ -2566,7 +2570,7 @@ public class IIOPInputStream
bridge.putBoolean( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetBooleanField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
+ o.toString(),
new Boolean(v) ) ;
}
}
@@ -2579,7 +2583,7 @@ public class IIOPInputStream
bridge.putByte( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetByteField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
+ o.toString(),
new Byte(v) ) ;
}
}
@@ -2592,7 +2596,7 @@ public class IIOPInputStream
bridge.putChar( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetCharField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
+ o.toString(),
new Character(v) ) ;
}
}
@@ -2605,7 +2609,7 @@ public class IIOPInputStream
bridge.putShort( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetShortField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
+ o.toString(),
new Short(v) ) ;
}
}
@@ -2618,7 +2622,7 @@ public class IIOPInputStream
bridge.putInt( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetIntField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
+ o.toString(),
new Integer(v) ) ;
}
}
@@ -2631,7 +2635,7 @@ public class IIOPInputStream
bridge.putLong( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetLongField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
+ o.toString(),
new Long(v) ) ;
}
}
@@ -2644,7 +2648,7 @@ public class IIOPInputStream
bridge.putFloat( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetFloatField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
+ o.toString(),
new Float(v) ) ;
}
}
@@ -2657,7 +2661,7 @@ public class IIOPInputStream
bridge.putDouble( o, key, v ) ;
} catch (Exception e) {
throw utilWrapper.errorSetDoubleField( e, fieldName,
- ObjectUtility.compactObjectToString( o ),
+ o.toString(),
new Double(v) ) ;
}
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java b/corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java
index 09eb3d2ea2e..bb4aca2d58c 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
@@ -85,6 +85,9 @@ public class ObjectStreamClass implements java.io.Serializable {
private static Hashtable translatedFields;
+ /** true if represents enum type */
+ private boolean isEnum;
+
private static final Bridge bridge =
(Bridge)AccessController.doPrivileged(
new PrivilegedAction() {
@@ -359,6 +362,7 @@ public class ObjectStreamClass implements java.io.Serializable {
}
name = cl.getName();
+ isEnum = Enum.class.isAssignableFrom(cl);
superclass = superdesc;
serializable = serial;
if (!forProxyClass) {
@@ -401,7 +405,8 @@ public class ObjectStreamClass implements java.io.Serializable {
if (!serializable ||
externalizable ||
forProxyClass ||
- name.equals("java.lang.String")) {
+ name.equals("java.lang.String") ||
+ isEnum) {
fields = NO_FIELDS;
} else if (serializable) {
/* Ask for permission to override field access checks.
@@ -502,7 +507,7 @@ public class ObjectStreamClass implements java.io.Serializable {
*
* NonSerializable classes have a serialVerisonUID of 0L.
*/
- if (isNonSerializable()) {
+ if (isNonSerializable() || isEnum) {
suid = 0L;
} else {
// Lookup special Serializable members using reflection.
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/io/ValueHandlerImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/io/ValueHandlerImpl.java
index 38e749c79fa..e1c82cf9bfc 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/io/ValueHandlerImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/io/ValueHandlerImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
@@ -32,32 +32,22 @@
package com.sun.corba.se.impl.io;
import javax.rmi.CORBA.Util;
-import javax.rmi.PortableRemoteObject;
import java.util.Hashtable;
-import java.util.Stack;
import java.io.IOException;
-import java.util.EmptyStackException;
-import com.sun.corba.se.impl.util.Utility;
-import com.sun.corba.se.impl.io.IIOPInputStream;
-import com.sun.corba.se.impl.io.IIOPOutputStream;
import com.sun.corba.se.impl.util.RepositoryId;
import com.sun.corba.se.impl.util.Utility;
import org.omg.CORBA.TCKind;
-import org.omg.CORBA.MARSHAL;
-import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.CompletionStatus;
import org.omg.CORBA.portable.IndirectionException;
import com.sun.org.omg.SendingContext.CodeBase;
import com.sun.org.omg.SendingContext.CodeBaseHelper;
import java.security.AccessController;
import java.security.PrivilegedAction;
-
-import com.sun.corba.se.impl.io.IIOPInputStream.ActiveRecursionManager;
+import java.security.PrivilegedExceptionAction;
import com.sun.corba.se.spi.logging.CORBALogDomains;
import com.sun.corba.se.impl.logging.OMGSystemException;
@@ -809,65 +799,163 @@ public class ValueHandlerImpl implements javax.rmi.CORBA.ValueHandlerMultiFormat
return "com.sun.corba.se.impl.io.IIOPOutputStream";
}
- private com.sun.corba.se.impl.io.IIOPOutputStream createOutputStream() {
- return (com.sun.corba.se.impl.io.IIOPOutputStream)AccessController.doPrivileged(
- new StreamFactory(getOutputStreamClassName()));
+ private IIOPOutputStream createOutputStream() {
+ final String name = getOutputStreamClassName();
+ try {
+ IIOPOutputStream stream = createOutputStreamBuiltIn(name);
+ if (stream != null) {
+ return stream;
+ }
+ return createCustom(IIOPOutputStream.class, name);
+ } catch (Throwable t) {
+ // Throw exception under the carpet.
+ InternalError ie = new InternalError(
+ "Error loading " + name
+ );
+ ie.initCause(t);
+ throw ie;
+ }
+ }
+
+ /**
+ * Construct a built in implementation with priveleges.
+ * Returning null indicates a non-built is specified.
+ */
+ private IIOPOutputStream createOutputStreamBuiltIn(
+ final String name
+ ) throws Throwable {
+ try {
+ return AccessController.doPrivileged(
+ new PrivilegedExceptionAction() {
+ public IIOPOutputStream run() throws IOException {
+ return createOutputStreamBuiltInNoPriv(name);
+ }
+ }
+ );
+ } catch (java.security.PrivilegedActionException exc) {
+ throw exc.getCause();
+ }
+ }
+
+ /**
+ * Returning null indicates a non-built is specified.
+ */
+ private IIOPOutputStream createOutputStreamBuiltInNoPriv(
+ final String name
+ ) throws IOException {
+ return
+ name.equals(
+ IIOPOutputStream
+ .class.getName()
+ ) ?
+ new IIOPOutputStream() :
+
+ name.equals(
+ com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3
+ .class.getName()
+ ) ?
+ new com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3() :
+
+ name.equals(
+ com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3_1
+ .class.getName()
+ ) ?
+ new com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3_1() :
+
+ null;
}
protected String getInputStreamClassName() {
return "com.sun.corba.se.impl.io.IIOPInputStream";
}
- private com.sun.corba.se.impl.io.IIOPInputStream createInputStream() {
- return (com.sun.corba.se.impl.io.IIOPInputStream)AccessController.doPrivileged(
- new StreamFactory(getInputStreamClassName()));
+ private IIOPInputStream createInputStream() {
+ final String name = getInputStreamClassName();
+ try {
+ IIOPInputStream stream = createInputStreamBuiltIn(name);
+ if (stream != null) {
+ return stream;
+ }
+ return createCustom(IIOPInputStream.class, name);
+ } catch (Throwable t) {
+ // Throw exception under the carpet.
+ InternalError ie = new InternalError(
+ "Error loading " + name
+ );
+ ie.initCause(t);
+ throw ie;
+ }
}
/**
- * Instantiates a class of the given name using the system ClassLoader
- * as part of a PrivilegedAction.
- *
- * It's private final so hopefully people can't grab it outside of
- * this class.
- *
- * If you're worried that someone could subclass ValueHandlerImpl,
- * install his own streams, and snoop what's on the wire:
- * Someone can do that only if he's allowed to use the feature
- * of installing his own javax.rmi.CORBA.Util delegate (via a
- * JVM property or orb.properties file, read the first time the
- * Util class is used). If he can do that, he can snoop
- * anything on the wire, anyway, without abusing the
- * StreamFactory class.
+ * Construct a built in implementation with priveleges.
+ * Returning null indicates a non-built is specified.
*/
- private static final class StreamFactory implements PrivilegedAction {
- private String className;
+ private IIOPInputStream createInputStreamBuiltIn(
+ final String name
+ ) throws Throwable {
+ try {
+ return AccessController.doPrivileged(
+ new PrivilegedExceptionAction() {
+ public IIOPInputStream run() throws IOException {
+ return createInputStreamBuiltInNoPriv(name);
+ }
+ }
+ );
+ } catch (java.security.PrivilegedActionException exc) {
+ throw exc.getCause();
+ }
+ }
- public StreamFactory (String _className) {
- className = _className;
- }
+ /**
+ * Returning null indicates a non-built is specified.
+ */
+ private IIOPInputStream createInputStreamBuiltInNoPriv(
+ final String name
+ ) throws IOException {
+ return
+ name.equals(
+ IIOPInputStream
+ .class.getName()
+ ) ?
+ new IIOPInputStream() :
- public Object run() {
- try {
- // Note: We must use the system ClassLoader here
- // since we want to load classes outside of the
- // core JDK when running J2EE Pure ORB and
- // talking to Kestrel.
+ name.equals(
+ com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3
+ .class.getName()
+ ) ?
+ new com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3() :
+
+ name.equals(
+ com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3_1
+ .class.getName()
+ ) ?
+ new com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3_1() :
+
+ null;
+ }
+
+ /**
+ * Create a custom implementation without privileges.
+ */
+ private T createCustom(
+ final Class type, final String className
+ ) throws Throwable {
+ // Note: We use the thread context or system ClassLoader here
+ // since we want to load classes outside of the
+ // core JDK when running J2EE Pure ORB and
+ // talking to Kestrel.
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (cl == null)
cl = ClassLoader.getSystemClassLoader();
- Class streamClass = cl.loadClass(className);
+ Class> clazz = cl.loadClass(className);
+ Class extends T> streamClass = clazz.asSubclass(type);
// Since the ClassLoader should cache the class, this isn't
// as expensive as it looks.
return streamClass.newInstance();
- } catch(Throwable t) {
- InternalError ie = new InternalError( "Error loading " + className ) ;
- ie.initCause( t ) ;
- throw ie ;
- }
- }
}
/**
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java b/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java
index b7564e716e4..d906afef923 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +45,10 @@ import com.sun.corba.se.spi.orbutil.fsm.StateEngineFactory ;
import com.sun.corba.se.impl.orbutil.concurrent.Mutex ;
import com.sun.corba.se.impl.orbutil.concurrent.CondVar ;
+import org.omg.CORBA.SystemException ;
+
+import org.omg.PortableServer.POAPackage.ObjectAlreadyActive ;
+
/** AOMEntry represents a Servant or potential Servant in the ActiveObjectMap.
* It may be in several states to allow for long incarnate or etherealize operations.
* The methods on this class mostly represent input symbols to the state machine
@@ -121,6 +125,12 @@ public class AOMEntry extends FSMImpl {
}
} ;
+ private static Action oaaAction = new ActionBase( "throwObjectAlreadyActive" ) {
+ public void doIt( FSM fsm, Input in ) {
+ throw new RuntimeException( new ObjectAlreadyActive() ) ;
+ }
+ } ;
+
private static Guard waitGuard = new GuardBase( "wait" ) {
public Guard.Result evaluate( FSM fsm, Input in ) {
AOMEntry entry = (AOMEntry)fsm ;
@@ -173,19 +183,23 @@ public class AOMEntry extends FSMImpl {
engine.add( INCARN, START_ETH, waitGuard, null, INCARN ) ;
engine.add( INCARN, INC_DONE, null, VALID ) ;
engine.add( INCARN, INC_FAIL, decrementAction, INVALID ) ;
+ engine.add( INCARN, ACTIVATE, oaaAction, INCARN ) ;
engine.add( VALID, ENTER, incrementAction, VALID ) ;
engine.add( VALID, EXIT, decrementAction, VALID ) ;
engine.add( VALID, START_ETH, greaterZeroGuard, null, ETHP ) ;
engine.add( VALID, START_ETH, zeroGuard, null, ETH ) ;
+ engine.add( VALID, ACTIVATE, oaaAction, VALID ) ;
engine.add( ETHP, ENTER, waitGuard, null, ETHP ) ;
engine.add( ETHP, START_ETH, null, ETHP ) ;
engine.add( ETHP, EXIT, greaterOneGuard, decrementAction, ETHP ) ;
engine.add( ETHP, EXIT, oneGuard, decrementAction, ETH ) ;
+ engine.add( ETHP, ACTIVATE, oaaAction, ETHP ) ;
engine.add( ETH, START_ETH, null, ETH ) ;
engine.add( ETH, ETH_DONE, null, DESTROYED ) ;
+ engine.add( ETH, ACTIVATE, oaaAction, ETH ) ;
engine.add( ETH, ENTER, waitGuard, null, ETH ) ;
engine.setDefault( DESTROYED, throwIllegalStateExceptionAction, DESTROYED ) ;
@@ -217,7 +231,17 @@ public class AOMEntry extends FSMImpl {
public void etherealizeComplete() { doIt( ETH_DONE ) ; }
public void incarnateComplete() { doIt( INC_DONE ) ; }
public void incarnateFailure() { doIt( INC_FAIL ) ; }
- public void activateObject() { doIt( ACTIVATE ) ; }
+ public void activateObject() throws ObjectAlreadyActive {
+ try {
+ doIt( ACTIVATE ) ;
+ } catch (RuntimeException exc) {
+ Throwable thr = exc.getCause() ;
+ if (thr instanceof ObjectAlreadyActive)
+ throw (ObjectAlreadyActive)thr ;
+ else
+ throw exc ;
+ }
+ }
public void enter() { doIt( ENTER ) ; }
public void exit() { doIt( EXIT ) ; }
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java b/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java
index b396ac5227d..1bc9130e109 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -107,13 +107,9 @@ public abstract class POAPolicyMediatorBase_R extends POAPolicyMediatorBase {
throw new ServantAlreadyActive();
ActiveObjectMap.Key key = new ActiveObjectMap.Key( id ) ;
- // Note that this can't happen for system assigned IDs since the
- // POA never hands out the same ID. However, we make this redundant
- // check here to share the code.
- if (activeObjectMap.containsKey(key))
- throw new ObjectAlreadyActive() ;
-
AOMEntry entry = activeObjectMap.get( key ) ;
+
+ // Check for an ObjectAlreadyActive error
entry.activateObject() ;
activateServant( key, entry, servant ) ;
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
index e8aac1da709..65d8246f7ad 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -245,7 +245,14 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
// All access to resolver, localResolver, and urlOperation must be protected using
// resolverLock. Do not hold the ORBImpl lock while accessing
// resolver, or deadlocks may occur.
- private Object resolverLock ;
+ // Note that we now have separate locks for each resolver type. This is due
+ // to bug 6980681 and 6238477, which was caused by a deadlock while resolving a
+ // corbaname: URL that contained a reference to the same ORB as the
+ // ORB making the call to string_to_object. This caused a deadlock between the
+ // client thread holding the single lock for access to the urlOperation,
+ // and the server thread handling the client is_a request waiting on the
+ // same lock to access the localResolver.
+
// Used for resolver_initial_references and list_initial_services
private Resolver resolver ;
@@ -255,8 +262,14 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
// Converts strings to object references for resolvers and string_to_object
private Operation urlOperation ;
+ private final Object urlOperationLock = new java.lang.Object() ;
private CorbaServerRequestDispatcher insNamingDelegate ;
+ // resolverLock must be used for all access to either resolver or
+ // localResolver, since it is possible for the resolver to indirectly
+ // refer to the localResolver. Also used to protect access to
+ // insNamingDelegate.
+ private final Object resolverLock = new Object() ;
private TaggedComponentFactoryFinder taggedComponentFactoryFinder ;
@@ -396,7 +409,6 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
}
};
- resolverLock = new java.lang.Object() ;
requestDispatcherRegistry = new RequestDispatcherRegistryImpl(
this, ORBConstants.DEFAULT_SCID);
@@ -832,7 +844,7 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
if (str == null)
throw wrapper.nullParam() ;
- synchronized (resolverLock) {
+ synchronized (urlOperationLock) {
org.omg.CORBA.Object obj = (org.omg.CORBA.Object)op.operate( str ) ;
return obj ;
}
@@ -1672,6 +1684,7 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
{
StackImpl invocationInfoStack =
(StackImpl)clientInvocationInfoStack.get();
+ int entryCount = -1;
ClientInvocationInfo clientInvocationInfo = null;
if (!invocationInfoStack.empty()) {
clientInvocationInfo =
@@ -1680,8 +1693,12 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
throw wrapper.invocationInfoStackEmpty() ;
}
clientInvocationInfo.decrementEntryCount();
+ entryCount = clientInvocationInfo.getEntryCount();
if (clientInvocationInfo.getEntryCount() == 0) {
- invocationInfoStack.pop();
+ // 6763340: don't pop if this is a retry!
+ if (!clientInvocationInfo.isRetryInvocation()) {
+ invocationInfoStack.pop();
+ }
finishedDispatch();
}
}
@@ -1773,7 +1790,7 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
*/
public void setURLOperation( Operation stringToObject )
{
- synchronized (resolverLock) {
+ synchronized (urlOperationLock) {
urlOperation = stringToObject ;
}
}
@@ -1783,7 +1800,7 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
*/
public Operation getURLOperation()
{
- synchronized (resolverLock) {
+ synchronized (urlOperationLock) {
return urlOperation ;
}
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/orb/PrefixParserAction.java b/corba/src/share/classes/com/sun/corba/se/impl/orb/PrefixParserAction.java
index 891628dd24e..ace0d795d15 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/orb/PrefixParserAction.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/orb/PrefixParserAction.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -110,7 +110,7 @@ public class PrefixParserAction extends ParserActionBase {
throw wrapper.couldNotSetArray( thr,
getPropertyName(), new Integer(ctr),
componentType, new Integer(size),
- ObjectUtility.compactObjectToString( obj )) ;
+ obj.toString() ) ;
}
ctr++ ;
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/CorbaResourceUtil.java b/corba/src/share/classes/com/sun/corba/se/impl/orbutil/CorbaResourceUtil.java
index 9f23ebf76ac..5f141201392 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/CorbaResourceUtil.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/orbutil/CorbaResourceUtil.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectUtility.java b/corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectUtility.java
index aca7676b9c2..237ef2258c8 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectUtility.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectUtility.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -50,103 +50,8 @@ import java.math.BigInteger ;
import java.math.BigDecimal ;
public final class ObjectUtility {
- private boolean useToString ;
- private boolean isIndenting ;
- private int initialLevel ;
- private int increment ;
- private ClassMap classToPrinter = new ClassMap() ;
+ private ObjectUtility() {}
- private static ObjectUtility standard = new ObjectUtility( false, true,
- 0, 4 ) ;
- private static ObjectUtility compact = new ObjectUtility( true, false,
- 0, 4 ) ;
-
- private ObjectUtility( boolean useToString, boolean isIndenting,
- int initialLevel, int increment )
- {
- this.useToString = useToString ;
- this.isIndenting = isIndenting ;
- this.initialLevel = initialLevel ;
- this.increment = increment ;
- classToPrinter.put( Properties.class, propertiesPrinter ) ;
- classToPrinter.put( Collection.class, collectionPrinter ) ;
- classToPrinter.put( Map.class, mapPrinter ) ;
- }
-
- /** Construct an Utility instance with the desired objectToString
- * behavior.
- */
- public static ObjectUtility make( boolean useToString, boolean isIndenting,
- int initialLevel, int increment )
- {
- return new ObjectUtility( useToString, isIndenting, initialLevel,
- increment ) ;
- }
-
- /** Construct an Utility instance with the desired objectToString
- * behavior.
- */
- public static ObjectUtility make( boolean useToString, boolean isIndenting )
- {
- return new ObjectUtility( useToString, isIndenting, 0, 4 ) ;
- }
-
- /** Get the standard Utility object that supports objectToString with
- * indented display and no use of toString() methods.
- */
- public static ObjectUtility make()
- {
- return standard ;
- }
-
- /** A convenience method that gives the default behavior: use indenting
- * to display the object's structure and do not use built-in toString
- * methods.
- */
- public static String defaultObjectToString( java.lang.Object object )
- {
- return standard.objectToString( object ) ;
- }
-
- public static String compactObjectToString( java.lang.Object object )
- {
- return compact.objectToString( object ) ;
- }
-
- /** objectToString handles display of arbitrary objects. It correctly
- * handles objects whose elements form an arbitrary graph. It uses
- * reflection to display the contents of any kind of object.
- * An object's toString() method may optionally be used, but the default
- * is to ignore all toString() methods except for those defined for
- * primitive types, primitive type wrappers, and strings.
- */
- public String objectToString(java.lang.Object obj)
- {
- IdentityHashMap printed = new IdentityHashMap() ;
- ObjectWriter result = ObjectWriter.make( isIndenting, initialLevel,
- increment ) ;
- objectToStringHelper( printed, result, obj ) ;
- return result.toString() ;
- }
-
- // Perform a deep structural equality comparison of the two objects.
- // This handles all arrays, maps, and sets specially, otherwise
- // it just calls the object's equals() method.
- public static boolean equals( java.lang.Object obj1, java.lang.Object obj2 )
- {
- // Set of pairs of objects that have been (or are being) considered for
- // equality. Such pairs are presumed to be equals. If they are not,
- // this will be detected eventually and the equals method will return
- // false.
- Set considered = new HashSet() ;
-
- // Map that gives the corresponding component of obj2 for a component
- // of obj1. This is used to check for the same aliasing and use of
- // equal objects in both objects.
- Map counterpart = new IdentityHashMap() ;
-
- return equalsHelper( counterpart, considered, obj1, obj2 ) ;
- }
/** If arr1 and arr2 are both arrays of the same component type,
* return an array of that component type that consists of the
@@ -179,544 +84,4 @@ public final class ObjectUtility {
return result ;
}
-//===========================================================================
-// Implementation
-//===========================================================================
-
- private void objectToStringHelper( IdentityHashMap printed,
- ObjectWriter result, java.lang.Object obj)
- {
- if (obj==null) {
- result.append( "null" ) ;
- result.endElement() ;
- } else {
- Class cls = obj.getClass() ;
- result.startObject( obj ) ;
-
- if (printed.keySet().contains( obj )) {
- result.endObject( "*VISITED*" ) ;
- } else {
- printed.put( obj, null ) ;
-
- if (mustUseToString(cls)) {
- result.endObject( obj.toString() ) ;
- } else {
- // First, handle any classes that have special printer
- // methods defined. This is useful when the class
- // overrides toString with something that
- // is not sufficiently detailed.
- ObjectPrinter printer = (ObjectPrinter)(classToPrinter.get(
- cls )) ;
- if (printer != null) {
- printer.print( printed, result, obj ) ;
- result.endObject() ;
- } else {
- Class compClass = cls.getComponentType() ;
-
- if (compClass == null)
- // handleObject always calls endObject
- handleObject( printed, result, obj ) ;
- else {
- handleArray( printed, result, obj ) ;
- result.endObject() ;
- }
- }
- }
- }
- }
- }
-
- private static interface ObjectPrinter {
- void print( IdentityHashMap printed, ObjectWriter buff,
- java.lang.Object obj ) ;
- }
-
- private ObjectPrinter propertiesPrinter = new ObjectPrinter() {
- public void print( IdentityHashMap printed, ObjectWriter buff,
- java.lang.Object obj )
- {
- if (!(obj instanceof Properties))
- throw new Error() ;
-
- Properties props = (Properties)obj ;
- Enumeration keys = props.propertyNames() ;
- while (keys.hasMoreElements()) {
- String key = (String)(keys.nextElement()) ;
- String value = props.getProperty( key ) ;
- buff.startElement() ;
- buff.append( key ) ;
- buff.append( "=" ) ;
- buff.append( value ) ;
- buff.endElement() ;
- }
- }
- } ;
-
- private ObjectPrinter collectionPrinter = new ObjectPrinter() {
- public void print( IdentityHashMap printed, ObjectWriter buff,
- java.lang.Object obj )
- {
- if (!(obj instanceof Collection))
- throw new Error() ;
-
- Collection coll = (Collection)obj ;
- Iterator iter = coll.iterator() ;
- while (iter.hasNext()) {
- java.lang.Object element = iter.next() ;
- buff.startElement() ;
- objectToStringHelper( printed, buff, element ) ;
- buff.endElement() ;
- }
- }
- } ;
-
- private ObjectPrinter mapPrinter = new ObjectPrinter() {
- public void print( IdentityHashMap printed, ObjectWriter buff,
- java.lang.Object obj )
- {
- if (!(obj instanceof Map))
- throw new Error() ;
-
- Map map = (Map)obj ;
- Iterator iter = map.entrySet().iterator() ;
- while (iter.hasNext()) {
- Entry entry = (Entry)(iter.next()) ;
- buff.startElement() ;
- objectToStringHelper( printed, buff, entry.getKey() ) ;
- buff.append( "=>" ) ;
- objectToStringHelper( printed, buff, entry.getValue() ) ;
- buff.endElement() ;
- }
- }
- } ;
-
- private static class ClassMap {
- ArrayList data ;
-
- public ClassMap()
- {
- data = new ArrayList() ;
- }
-
- /** Return the first element of the ClassMap that is assignable to cls.
- * The order is determined by the order in which the put method was
- * called. Returns null if there is no match.
- */
- public java.lang.Object get( Class cls )
- {
- Iterator iter = data.iterator() ;
- while (iter.hasNext()) {
- java.lang.Object[] arr = (java.lang.Object[])(iter.next()) ;
- Class key = (Class)(arr[0]) ;
- if (key.isAssignableFrom( cls ))
- return arr[1] ;
- }
-
- return null ;
- }
-
- /** Add obj to the map with key cls. Note that order matters,
- * as the first match is returned.
- */
- public void put( Class cls, java.lang.Object obj )
- {
- java.lang.Object[] pair = { cls, obj } ;
- data.add( pair ) ;
- }
- }
-
- private boolean mustUseToString( Class cls )
- {
- // These probably never occur
- if (cls.isPrimitive())
- return true ;
-
- // We must use toString for all primitive wrappers, since
- // otherwise the code recurses endlessly (access value field
- // inside Integer, returns another Integer through reflection).
- if ((cls == Integer.class) ||
- (cls == BigInteger.class) ||
- (cls == BigDecimal.class) ||
- (cls == String.class) ||
- (cls == StringBuffer.class) ||
- (cls == Long.class) ||
- (cls == Short.class) ||
- (cls == Byte.class) ||
- (cls == Character.class) ||
- (cls == Float.class) ||
- (cls == Double.class) ||
- (cls == Boolean.class))
- return true ;
-
- if (useToString) {
- try {
- cls.getDeclaredMethod( "toString", (Class[])null ) ;
- return true ;
- } catch (Exception exc) {
- return false ;
- }
- }
-
- return false ;
- }
-
- private void handleObject( IdentityHashMap printed, ObjectWriter result,
- java.lang.Object obj )
- {
- Class cls = obj.getClass() ;
-
- try {
- Field[] fields;
- SecurityManager security = System.getSecurityManager();
- if (security != null && !Modifier.isPublic(cls.getModifiers())) {
- fields = new Field[0];
- } else {
- fields = cls.getDeclaredFields();
- }
-
- for (int ctr=0; ctr \n\nem que inclui:\n -port porta de ativa\u00e7\u00e3o na qual o ORBD deve ser iniciado, padr\u00e3o 1049 (opcional)\n -defaultdb diret\u00f3rio dos arquivos ORBD, padr\u00e3o "./orb.db" (opcional)\n -serverid id do servidor para ORBD, padr\u00e3o 1 (opcional)\n -ORBInitialPort porta inicial (necess\u00e1rio)\n -ORBInitialHost nome de host inicial (necess\u00e1rio)\n
+
+servertool.usage=Uso: {0} \n\nem que inclui:\n -ORBInitialPort porta inicial (necess\u00e1rio)\n -ORBInitialHost nome de host inicial (necess\u00e1rio)\n
+servertool.banner=\n\nBem-vindo a ferramenta de servidor IDL Java \ninsira os comandos no prompt \n
+servertool.shorthelp=\n\n\tComandos dispon\u00edveis: \n\t------------------- \n
+servertool.baddef=Servidor mal definido: {0}
+servertool.nosuchserver=\tservidor n\u00e3o encontrado.
+servertool.helddown=\to servidor est\u00e1 em espera.
+servertool.nosuchorb=\tORB inv\u00e1lido.
+servertool.serverup=\to servidor j\u00e1 est\u00e1 ativo.
+servertool.appname=\tapplicationName - {0}
+servertool.name=\tname - {0}
+servertool.classpath=\tclasspath - {0}
+servertool.args=\targs - {0}
+servertool.vmargs=\tvmargs - {0}
+servertool.serverid=\tserver id - {0}
+servertool.servernotrunning=\to servidor n\u00e3o est\u00e1 em execu\u00e7\u00e3o.
+servertool.register=\n\n\tregister -server \n\t -applicationName \n\t -classpath \n\t -args \n\t -vmargs \n
+servertool.register1=registra um servidor ativ\u00e1vel
+servertool.register2=\tservidor registrado (serverid = {0}).
+servertool.register3=\tservidor registrado, mas em espera (serverid = {0}).
+servertool.register4=\tservidor j\u00e1 registrado (serverid = {0}).
+
+servertool.unregister=\n\tunregister [ -serverid | -applicationName ] \n
+servertool.unregister1=cancela o registro de um servidor registrado
+servertool.unregister2=\tservidor n\u00e3o registrado.
+
+servertool.locate=\n\tlocate [ -serverid | -applicationName ] [ <-endpointType ] \n
+servertool.locate1=localiza portas de tipo espec\u00edfico para um servidor registrado
+servertool.locate2=\n\n\tNome do host {0} \n\n\t\tPorta\t\tTipo de porta\t\tId do ORB\n\t\t----\t\t---------\t\t------\n
+servertool.locateorb=\n\tlocateperorb [ -serverid | -applicationName ] [ -orbid ]\n
+servertool.locateorb1=localiza portas para um orb espec\u00edfico de servidor registrado
+servertool.locateorb2=\n\n\tNome do host {0} \n\n\t\tPorta\t\tTipo de porta\t\tId do ORB\n\t\t----\t\t--------\t\t------\n
+servertool.getserverid=\n\tgetserverid [ -applicationName ] \n
+servertool.getserverid1=retorna o id do servidor de um applicationName
+servertool.getserverid2=\tID do servidor de applicationName {0} \u00e9 {1}
+
+servertool.list=\n\tlist\n
+servertool.list1=lista todos os servidores registrados
+servertool.list2=\n\tId do servidor\tNome de classe do servidor\t\tAplicativo do servidor\n\t---------\t-----------------\t\t------------------\n
+servertool.listactive=\n\tlistactive
+servertool.listactive1=lista os servidores atualmente ativos
+servertool.listappnames=\tlistappnames\n
+servertool.listappnames1=lista os applicationNames atualmente definidos
+servertool.listappnames2=applicationNames do servidor atualmente definidos:
+
+servertool.shutdown=\n\tshutdown [ -serverid | -applicationName ]\n
+servertool.shutdown1=desliga um servidor registrado
+servertool.shutdown2=\tservidor desligado com \u00eaxito.
+servertool.startserver=\n\tstartup [ -serverid | -applicationName ]\n
+servertool.startserver1=inicia um servidor registrado
+servertool.startserver2=\tservidor iniciado com \u00eaxito.
+
+servertool.quit=\n\tquit\n
+servertool.quit1=sai desta ferramenta
+
+servertool.help=\thelp\n\tOR\n\thelp \n
+servertool.help1=obt\u00e9m ajuda
+
+servertool.orbidmap=\tUso: orblist [ -serverid | -applicationName ]\n
+servertool.orbidmap1=lista de nomes de orb e seus mapeamentos
+servertool.orbidmap2=\n\tId de ORB\t\tNome de ORB\n\t------\t\t--------\n
+pnameserv.success=NameServer persistente iniciado com \u00eaxito
+
+
+bootstrap.usage=Uso: {0} \n\nem que inclui:\n -ORBInitialPort porta inicial (necess\u00e1rio)\n -InitialServicesFile arquivo que cont\u00e9m a lista de servi\u00e7os iniciais (necess\u00e1rio)\n
+bootstrap.success=configurando porta para {0} e lendo servi\u00e7os de {1}
+bootstrap.filenotreadable=o arquivo {0} n\u00e3o \u00e9 leg\u00edvel
+bootstrap.filenotfound=arquivo {0} n\u00e3o encontrado
+bootstrap.exception=exce\u00e7\u00e3o capturada ao salvar as propriedades no arquivo {0}: Exce\u00e7\u00e3o {1}
+
+tnameserv.exception=uma exce\u00e7\u00e3o capturada ao iniciar o servi\u00e7o de inicializa\u00e7\u00e3o na porta {0}
+tnameserv.usage=tente usar outra porta com os argumentos de linha de comando -ORBInitialPort
+tnameserv.invalidhostoption=ORBInitialHost n\u00e3o \u00e9 uma op\u00e7\u00e3o v\u00e1lida para NameService
+tnameserv.orbinitialport0=ORBInitialPort 0 n\u00e3o \u00e9 uma op\u00e7\u00e3o v\u00e1lida para NameService
+tnameserv.hs1=Contexto de nomea\u00e7\u00e3o inicial:\n{0}
+tnameserv.hs2=TransientNameServer: definindo porta para as refer\u00eancias de objeto iniciais: {0}
+tnameserv.hs3=Pronto.
+
+orbd.commfailure=\nFalha ao iniciar ORBD porque ORBinitialPort j\u00e1 est\u00e1 em uso
+orbd.internalexception=\nFalha ao iniciar ORBD devido a uma exce\u00e7\u00e3o interna. \nPoss\u00edveis causas: \n1. ORBInitialPort especificado ou ORBActivationPort j\u00e1 em uso \n2. Sem permiss\u00e3o de grava\u00e7\u00e3o para gravar orb.db
+
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/ExceptionHandlerImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/ExceptionHandlerImpl.java
index 6b9452e2766..f6b08eab1a5 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/ExceptionHandlerImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/ExceptionHandlerImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
index 9bde8981c13..7728a677ecd 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,9 +122,6 @@ public class CorbaClientRequestDispatcherImpl
implements
ClientRequestDispatcher
{
- // Used for locking
- private Object lock = new Object();
-
public OutputObject beginRequest(Object self, String opName,
boolean isOneWay, ContactInfo contactInfo)
{
@@ -151,7 +148,8 @@ public class CorbaClientRequestDispatcherImpl
// This locking is done so that multiple connections are not created
// for the same endpoint
- synchronized (lock) {
+ //6929137 - Synchronized on contactInfo to avoid blocking across multiple endpoints
+ synchronized (contactInfo) {
if (contactInfo.isConnectionBased()) {
if (contactInfo.shouldCacheConnection()) {
connection = (CorbaConnection)
@@ -185,6 +183,7 @@ public class CorbaClientRequestDispatcherImpl
if(getContactInfoListIterator(orb).hasNext()) {
contactInfo = (ContactInfo)
getContactInfoListIterator(orb).next();
+ unregisterWaiter(orb);
return beginRequest(self, opName,
isOneWay, contactInfo);
} else {
@@ -255,7 +254,7 @@ public class CorbaClientRequestDispatcherImpl
registerWaiter(messageMediator);
// Do connection reclaim now
- synchronized (lock) {
+ synchronized (contactInfo) {
if (contactInfo.isConnectionBased()) {
if (contactInfo.shouldCacheConnection()) {
OutboundConnectionCache connectionCache =
@@ -292,10 +291,22 @@ public class CorbaClientRequestDispatcherImpl
// ContactInfoList outside of subcontract.
// Want to move that update to here.
if (getContactInfoListIterator(orb).hasNext()) {
- contactInfo = (ContactInfo)
- getContactInfoListIterator(orb).next();
+ contactInfo = (ContactInfo)getContactInfoListIterator(orb).next();
+ if (orb.subcontractDebugFlag) {
+ dprint( "RemarshalException: hasNext true\ncontact info " + contactInfo );
+ }
+
+ // Fix for 6763340: Complete the first attempt before starting another.
+ orb.getPIHandler().makeCompletedClientRequest(
+ ReplyMessage.LOCATION_FORWARD, null ) ;
+ unregisterWaiter(orb);
+ orb.getPIHandler().cleanupClientPIRequest() ;
+
return beginRequest(self, opName, isOneWay, contactInfo);
} else {
+ if (orb.subcontractDebugFlag) {
+ dprint( "RemarshalException: hasNext false" );
+ }
ORBUtilSystemException wrapper =
ORBUtilSystemException.get(orb,
CORBALogDomains.RPC_PROTOCOL);
@@ -374,11 +385,15 @@ public class CorbaClientRequestDispatcherImpl
boolean retry =
getContactInfoListIterator(orb)
.reportException(messageMediator.getContactInfo(), e);
- if (retry) {
- // Must run interceptor end point before retrying.
- Exception newException =
+
+ //Bug 6382377: must not lose exception in PI
+
+ // Must run interceptor end point before retrying.
+ Exception newException =
orb.getPIHandler().invokeClientPIEndingPoint(
- ReplyMessage.SYSTEM_EXCEPTION, e);
+ ReplyMessage.SYSTEM_EXCEPTION, e);
+
+ if (retry) {
if (newException == e) {
continueOrThrowSystemOrRemarshal(messageMediator,
new RemarshalException());
@@ -387,6 +402,14 @@ public class CorbaClientRequestDispatcherImpl
newException);
}
} else {
+ if (newException instanceof RuntimeException){
+ throw (RuntimeException)newException;
+ }
+ else if (newException instanceof RemarshalException)
+ {
+ throw (RemarshalException)newException;
+ }
+
// NOTE: Interceptor ending point will run in releaseReply.
throw e;
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java
index d8608f21ab5..0cbce53ffc1 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,6 +34,7 @@ import com.sun.corba.se.pept.transport.ConnectionCache;
import com.sun.corba.se.spi.logging.CORBALogDomains;
import com.sun.corba.se.spi.orb.ORB;
+import com.sun.corba.se.spi.transport.CorbaConnection;
import com.sun.corba.se.spi.transport.CorbaConnectionCache;
import com.sun.corba.se.impl.logging.ORBUtilSystemException;
@@ -87,6 +88,14 @@ public abstract class CorbaConnectionCacheBase
}
}
+ public void close() {
+ synchronized (backingStore()) {
+ for (Object obj : values()) {
+ ((CorbaConnection)obj).closeConnectionResources() ;
+ }
+ }
+ }
+
public long numberOfIdleConnections()
{
long count = 0;
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java
index 5f56b560a95..fae2d157969 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010 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
@@ -38,6 +38,7 @@ import org.omg.CORBA.INTERNAL;
import org.omg.CORBA.CompletionStatus;
import com.sun.corba.se.pept.transport.Acceptor;
+import com.sun.corba.se.pept.transport.ConnectionCache;
import com.sun.corba.se.pept.transport.ByteBufferPool;
import com.sun.corba.se.pept.transport.ContactInfo;
import com.sun.corba.se.pept.transport.InboundConnectionCache;
@@ -49,6 +50,8 @@ import com.sun.corba.se.spi.ior.ObjectAdapterId;
import com.sun.corba.se.spi.orb.ORB;
import com.sun.corba.se.spi.transport.CorbaAcceptor;
import com.sun.corba.se.spi.transport.CorbaTransportManager;
+import com.sun.corba.se.pept.transport.Connection;
+import com.sun.corba.se.pept.transport.ConnectionCache;
// REVISIT - impl/poa specific:
import com.sun.corba.se.impl.oa.poa.Policies;
@@ -182,6 +185,12 @@ public class CorbaTransportManagerImpl
if (orb.transportDebugFlag) {
dprint(".close->");
}
+ for (Object cc : outboundConnectionCaches.values()) {
+ ((ConnectionCache)cc).close() ;
+ }
+ for (Object cc : inboundConnectionCaches.values()) {
+ ((ConnectionCache)cc).close() ;
+ }
getSelector(0).close();
} finally {
if (orb.transportDebugFlag) {
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java
index 8686439b84f..1c60088a7a3 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
@@ -32,6 +32,7 @@ import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
import java.util.Iterator;
import java.util.List;
@@ -66,7 +67,7 @@ public class SelectorImpl
private List deferredRegistrations;
private List interestOpsList;
private HashMap listenerThreads;
- private HashMap readerThreads;
+ private Map readerThreads;
private boolean selectorStarted;
private boolean closed;
private ORBUtilSystemException wrapper ;
@@ -81,7 +82,7 @@ public class SelectorImpl
deferredRegistrations = new ArrayList();
interestOpsList = new ArrayList();
listenerThreads = new HashMap();
- readerThreads = new HashMap();
+ readerThreads = java.util.Collections.synchronizedMap(new HashMap());
closed = false;
wrapper = ORBUtilSystemException.get(orb,CORBALogDomains.RPC_TRANSPORT);
}
@@ -178,8 +179,13 @@ public class SelectorImpl
}
if (eventHandler.shouldUseSelectThreadToWait()) {
- SelectionKey selectionKey = eventHandler.getSelectionKey();
- selectionKey.cancel();
+ SelectionKey selectionKey ;
+ synchronized(deferredRegistrations) {
+ selectionKey = eventHandler.getSelectionKey();
+ }
+ if (selectionKey != null) {
+ selectionKey.cancel();
+ }
selector.wakeup();
return;
}
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java
index 47e07b899fc..01d344b8c7f 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
@@ -33,14 +33,7 @@ import java.nio.channels.SelectableChannel;
import java.nio.channels.SelectionKey;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.Collection;
import java.util.Iterator;
-import java.util.LinkedList;
-
-import org.omg.CORBA.CompletionStatus;
-import org.omg.CORBA.INTERNAL;
import com.sun.corba.se.pept.broker.Broker;
import com.sun.corba.se.pept.encoding.InputObject;
@@ -61,18 +54,12 @@ import com.sun.corba.se.spi.ior.iiop.IIOPFactories;
import com.sun.corba.se.spi.ior.iiop.IIOPProfileTemplate ;
import com.sun.corba.se.spi.ior.iiop.GIOPVersion ;
import com.sun.corba.se.spi.ior.iiop.AlternateIIOPAddressComponent;
-import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketEndPointInfo;
import com.sun.corba.se.spi.logging.CORBALogDomains;
-import com.sun.corba.se.spi.monitoring.LongMonitoredAttributeBase;
-import com.sun.corba.se.spi.monitoring.MonitoringConstants;
-import com.sun.corba.se.spi.monitoring.MonitoringFactories;
-import com.sun.corba.se.spi.monitoring.MonitoredObject;
import com.sun.corba.se.spi.orb.ORB;
import com.sun.corba.se.spi.orbutil.threadpool.Work;
import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
import com.sun.corba.se.spi.transport.CorbaAcceptor;
import com.sun.corba.se.spi.transport.CorbaConnection;
-import com.sun.corba.se.spi.transport.CorbaContactInfo;
import com.sun.corba.se.spi.transport.SocketInfo;
import com.sun.corba.se.spi.transport.SocketOrChannelAcceptor;
@@ -82,7 +69,6 @@ import com.sun.corba.se.impl.logging.ORBUtilSystemException;
import com.sun.corba.se.impl.oa.poa.Policies; // REVISIT impl/poa specific
import com.sun.corba.se.impl.orbutil.ORBConstants;
import com.sun.corba.se.impl.orbutil.ORBUtility;
-import com.sun.corba.se.impl.ior.iiop.JavaSerializationComponent;
// BEGIN Legacy support.
import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketEndPointInfo;
@@ -442,12 +428,7 @@ public class SocketOrChannelAcceptorImpl
dprint(".doWork->: " + this);
}
if (selectionKey.isAcceptable()) {
- AccessController.doPrivileged(new PrivilegedAction() {
- public java.lang.Object run() {
accept();
- return null;
- }
- });
} else {
if (orb.transportDebugFlag) {
dprint(".doWork: ! selectionKey.isAcceptable: " + this);
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java
index e294067184e..277657e7586 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
@@ -811,6 +811,7 @@ public class SocketOrChannelConnectionImpl
dprint(".close: " + this, e);
}
}
+ closeConnectionResources();
} finally {
if (orb.transportDebugFlag) {
dprint(".close<-: " + this);
@@ -818,6 +819,28 @@ public class SocketOrChannelConnectionImpl
}
}
+ public void closeConnectionResources() {
+ if (orb.transportDebugFlag) {
+ dprint(".closeConnectionResources->: " + this);
+ }
+ Selector selector = orb.getTransportManager().getSelector(0);
+ selector.unregisterForEvent(this);
+ try {
+ if (socketChannel != null)
+ socketChannel.close() ;
+ if (socket != null && !socket.isClosed())
+ socket.close() ;
+ } catch (IOException e) {
+ if (orb.transportDebugFlag) {
+ dprint( ".closeConnectionResources: " + this, e ) ;
+ }
+ }
+ if (orb.transportDebugFlag) {
+ dprint(".closeConnectionResources<-: " + this);
+ }
+ }
+
+
public Acceptor getAcceptor()
{
return acceptor;
diff --git a/corba/src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java b/corba/src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java
index d5bee7d927f..7d32050a909 100644
--- a/corba/src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java
+++ b/corba/src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
@@ -41,6 +41,12 @@ public interface ConnectionCache
public long numberOfBusyConnections();
public boolean reclaim();
+
+ /** Close all connections in the connection cache.
+ * This is used as a final cleanup, and will result
+ * in abrupt termination of any pending communications.
+ */
+ public void close();
}
// End of file.
diff --git a/corba/src/share/classes/com/sun/corba/se/spi/orb/OperationFactory.java b/corba/src/share/classes/com/sun/corba/se/spi/orb/OperationFactory.java
index 1b9460bde79..eb81eb56be0 100644
--- a/corba/src/share/classes/com/sun/corba/se/spi/orb/OperationFactory.java
+++ b/corba/src/share/classes/com/sun/corba/se/spi/orb/OperationFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +25,7 @@
package com.sun.corba.se.spi.orb ;
import java.util.StringTokenizer ;
+import java.util.Arrays ;
import java.lang.reflect.Array ;
@@ -446,7 +447,7 @@ public abstract class OperationFactory {
public String toString() {
return "sequenceAction(separator=\"" + sep +
"\",actions=" +
- ObjectUtility.compactObjectToString(actions) + ")" ;
+ Arrays.toString(actions) + ")" ;
}
}
@@ -533,7 +534,7 @@ public abstract class OperationFactory {
public String toString() {
return "mapSequenceAction(" +
- ObjectUtility.compactObjectToString(op) + ")" ;
+ Arrays.toString(op) + ")" ;
}
}
diff --git a/corba/src/share/classes/com/sun/corba/se/spi/orb/ParserImplBase.java b/corba/src/share/classes/com/sun/corba/se/spi/orb/ParserImplBase.java
index 374e585ec40..50e5760dd64 100644
--- a/corba/src/share/classes/com/sun/corba/se/spi/orb/ParserImplBase.java
+++ b/corba/src/share/classes/com/sun/corba/se/spi/orb/ParserImplBase.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -125,7 +125,7 @@ public abstract class ParserImplBase {
// Since exc wraps the actual exception, use exc.getCause()
// instead of exc.
throw wrapper.errorSettingField( exc.getCause(), name,
- ObjectUtility.compactObjectToString(value) ) ;
+ value.toString() ) ;
}
}
diff --git a/corba/src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java b/corba/src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java
index f5ff9df590d..b59062a43be 100644
--- a/corba/src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java
+++ b/corba/src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -141,6 +141,27 @@ public interface PIHandler {
Exception invokeClientPIEndingPoint(
int replyStatus, Exception exception ) ;
+ /**
+ * Called when a retry is needed after initiateClientPIRequest but
+ * before invokeClientPIRequest. In this case, we need to properly
+ * balance initiateClientPIRequest/cleanupClientPIRequest calls,
+ * but WITHOUT extraneous calls to invokeClientPIEndingPoint
+ * (see bug 6763340).
+ *
+ * @param replyStatus One of the constants in iiop.messages.ReplyMessage
+ * indicating which reply status to set.
+ * @param exception The exception before ending interception points have
+ * been invoked, or null if no exception at the moment.
+ * @return The exception to be thrown, after having gone through
+ * all ending points, or null if there is no exception to be
+ * thrown. Note that this exception can be either the same or
+ * different from the exception set using setClientPIException.
+ * There are four possible return types: null (no exception),
+ * SystemException, UserException, or RemarshalException.
+ */
+ Exception makeCompletedClientRequest(
+ int replyStatus, Exception exception ) ;
+
/**
* Invoked when a request is about to be created. Must be called before
* any of the setClientPI* methods so that a new info object can be
diff --git a/jdk/src/solaris/hpi/include/hpi_init.h b/corba/src/share/classes/com/sun/corba/se/spi/protocol/RetryType.java
similarity index 55%
rename from jdk/src/solaris/hpi/include/hpi_init.h
rename to corba/src/share/classes/com/sun/corba/se/spi/protocol/RetryType.java
index b657a86ccf4..6035011d3e9 100644
--- a/jdk/src/solaris/hpi/include/hpi_init.h
+++ b/corba/src/share/classes/com/sun/corba/se/spi/protocol/RetryType.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -23,15 +23,30 @@
* questions.
*/
-#ifndef _JAVASOFT_SOLARIS_HPI_INIT_H_
-#define _JAVASOFT_SOLARIS_HPI_INIT_H_
+package com.sun.corba.se.spi.protocol ;
-#ifndef NATIVE
-extern void InitializeSbrk(void);
-extern void InitializeAsyncIO(void);
-extern void InitializeHelperThreads(void);
-#endif /* NATIVE */
+// Introduce more information about WHY we are re-trying a request
+// so we can properly handle the two cases:
+// - BEFORE_RESPONSE means that the retry is caused by
+// something that happened BEFORE the message was sent: either
+// an exception from the SocketFactory, or one from the
+// Client side send_request interceptor point.
+// - AFTER_RESPONSE means that the retry is a result either of the
+// request sent to the server (from the response), or from the
+// Client side receive_xxx interceptor point.
+public enum RetryType {
+ NONE( false ),
+ BEFORE_RESPONSE( true ),
+ AFTER_RESPONSE( true ) ;
-extern void InitializeMem(void);
+ private final boolean isRetry ;
+
+ RetryType( boolean isRetry ) {
+ this.isRetry = isRetry ;
+ }
+
+ public boolean isRetry() {
+ return this.isRetry ;
+ }
+} ;
-#endif /* _JAVASOFT_SOLARIS_HPI_INIT_H_ */
diff --git a/corba/src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java b/corba/src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java
index b0e3f6f04dc..59bbd514076 100644
--- a/corba/src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java
+++ b/corba/src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -163,6 +163,10 @@ public interface CorbaConnection
// REVISIT - MessageMediator parameter?
public void serverRequestProcessingBegins();
public void serverRequestProcessingEnds();
+
+ /** Clean up all connection resources. Used when shutting down an ORB.
+ */
+ public void closeConnectionResources();
}
// End of file.
diff --git a/corba/src/share/classes/com/sun/tools/corba/se/idl/constExpr/Expression.java b/corba/src/share/classes/com/sun/tools/corba/se/idl/constExpr/Expression.java
index d30696cdaf3..84a1873609d 100644
--- a/corba/src/share/classes/com/sun/tools/corba/se/idl/constExpr/Expression.java
+++ b/corba/src/share/classes/com/sun/tools/corba/se/idl/constExpr/Expression.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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
diff --git a/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java b/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java
index 3efe5609535..c305ada5b24 100644
--- a/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java
+++ b/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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
@@ -344,17 +344,27 @@ public class Stub implements AuxGen
stream.println (" String str = s.readUTF ();");
stream.println (" String[] args = null;");
stream.println (" java.util.Properties props = null;");
- stream.println (" org.omg.CORBA.Object obj = org.omg.CORBA.ORB.init (args, props).string_to_object (str);");
+ stream.println (" org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);");
+ stream.println (" try {");
+ stream.println (" org.omg.CORBA.Object obj = orb.string_to_object (str);");
stream.println (" org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate ();");
stream.println (" _set_delegate (delegate);");
+ stream.println (" } finally {");
+ stream.println (" orb.destroy() ;");
+ stream.println (" }");
stream.println (" }");
stream.println ();
stream.println (" private void writeObject (java.io.ObjectOutputStream s) throws java.io.IOException");
stream.println (" {");
stream.println (" String[] args = null;");
stream.println (" java.util.Properties props = null;");
- stream.println (" String str = org.omg.CORBA.ORB.init (args, props).object_to_string (this);");
+ stream.println (" org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);");
+ stream.println (" try {");
+ stream.println (" String str = orb.object_to_string (this);");
stream.println (" s.writeUTF (str);");
+ stream.println (" } finally {");
+ stream.println (" orb.destroy() ;");
+ stream.println (" }");
stream.println (" }");
}
diff --git a/corba/src/share/classes/javax/rmi/PortableRemoteObject.java b/corba/src/share/classes/javax/rmi/PortableRemoteObject.java
index fef8d40b0b2..cbd6df25510 100644
--- a/corba/src/share/classes/javax/rmi/PortableRemoteObject.java
+++ b/corba/src/share/classes/javax/rmi/PortableRemoteObject.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
diff --git a/corba/src/share/classes/org/omg/CORBA/ORB.java b/corba/src/share/classes/org/omg/CORBA/ORB.java
index 4c1737a94c8..42fe7bc0090 100644
--- a/corba/src/share/classes/org/omg/CORBA/ORB.java
+++ b/corba/src/share/classes/org/omg/CORBA/ORB.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2010, 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
diff --git a/corba/src/share/classes/org/omg/CORBA/SetOverrideType.java b/corba/src/share/classes/org/omg/CORBA/SetOverrideType.java
index 32c0243db84..82818974d2a 100644
--- a/corba/src/share/classes/org/omg/CORBA/SetOverrideType.java
+++ b/corba/src/share/classes/org/omg/CORBA/SetOverrideType.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
diff --git a/corba/src/share/classes/org/omg/CORBA/TCKind.java b/corba/src/share/classes/org/omg/CORBA/TCKind.java
index 6bea0fd2212..bfacebf18d9 100644
--- a/corba/src/share/classes/org/omg/CORBA/TCKind.java
+++ b/corba/src/share/classes/org/omg/CORBA/TCKind.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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
diff --git a/corba/src/share/classes/org/omg/CORBA/UnknownUserException.java b/corba/src/share/classes/org/omg/CORBA/UnknownUserException.java
index 38b0b711679..f9c8550927d 100644
--- a/corba/src/share/classes/org/omg/CORBA/UnknownUserException.java
+++ b/corba/src/share/classes/org/omg/CORBA/UnknownUserException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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
diff --git a/corba/src/share/classes/org/omg/CORBA/portable/ServantObject.java b/corba/src/share/classes/org/omg/CORBA/portable/ServantObject.java
index feddaa3cdf6..2735927f789 100644
--- a/corba/src/share/classes/org/omg/CORBA/portable/ServantObject.java
+++ b/corba/src/share/classes/org/omg/CORBA/portable/ServantObject.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
diff --git a/corba/src/share/classes/org/omg/CosNaming/nameservice.idl b/corba/src/share/classes/org/omg/CosNaming/nameservice.idl
index dbdf6a74050..9e5ec9b439f 100644
--- a/corba/src/share/classes/org/omg/CosNaming/nameservice.idl
+++ b/corba/src/share/classes/org/omg/CosNaming/nameservice.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, 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
diff --git a/corba/src/share/classes/org/omg/PortableInterceptor/Interceptors.idl b/corba/src/share/classes/org/omg/PortableInterceptor/Interceptors.idl
index 2a3077d5743..e55408d704b 100644
--- a/corba/src/share/classes/org/omg/PortableInterceptor/Interceptors.idl
+++ b/corba/src/share/classes/org/omg/PortableInterceptor/Interceptors.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
diff --git a/corba/src/share/classes/sun/corba/Bridge.java b/corba/src/share/classes/sun/corba/Bridge.java
index e7ab067422c..987ee097376 100644
--- a/corba/src/share/classes/sun/corba/Bridge.java
+++ b/corba/src/share/classes/sun/corba/Bridge.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2010, 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
diff --git a/jdk/make/java/hpi/native/mapfile-vers b/get_source.sh
similarity index 81%
rename from jdk/make/java/hpi/native/mapfile-vers
rename to get_source.sh
index c7b9e6d9ead..bc609b3ee8d 100644
--- a/jdk/make/java/hpi/native/mapfile-vers
+++ b/get_source.sh
@@ -1,5 +1,7 @@
+#!/bin/sh
+
#
-# Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 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
@@ -23,10 +25,9 @@
# questions.
#
-SUNWprivate_1.1 {
- global:
- DLL_Initialize;
+# Get clones of all nested repositories
+sh ./make/scripts/hgforest.sh clone
+
+# Update all existing repositories to the latest sources
+sh ./make/scripts/hgforest.sh pull -u
- local:
- *;
-};
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index da1bccd72ad..6b879a83409 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -123,3 +123,21 @@ cc4bb3022b3144dc5db0805b9ef6c7eff2aa3b81 jdk7-b109
07b042e13dde4f3479ba9ec55120fcd5e8623323 jdk7-b111
5511edd5d719f3fc9fdd04879482026a3d2c8652 jdk7-b112
beef35b96b81129c375d572357fb9548d9020db1 jdk7-b113
+68d6141ea19de3a9ba98ef753f0da41a61f736a0 jdk7-b114
+5511edd5d719f3fc9fdd04879482026a3d2c8652 hs20-b01
+bdbc48857210a509b3c50a3291ecb9dd6a72e016 jdk7-b115
+96b3f2a7add0b445b8aa421f6823cff5a2e2fe03 jdk7-b116
+52f19c724d9634af79044a2e0defbe4a5f1adbda hs20-b02
+806d0c037e6bbb88dac0699673f4ba55ee8c02da jdk7-b117
+698b7b727e12de44139d8cca6ab9a494ead13253 jdk7-b118
+3ef7426b4deac5dcfd4afb35cabe9ab3d666df91 hs20-b02
+5484e7c53fa7da5e869902437ee08a9ae10c1c69 jdk7-b119
+f5603a6e50422046ebc0d2f1671d55cb8f1bf1e9 jdk7-b120
+3f3653ab7af8dc1ddb9fa75dad56bf94f89e81a8 jdk7-b121
+3a548dc9cb456110ca8fc1514441a8c3bda0014d jdk7-b122
+5484e7c53fa7da5e869902437ee08a9ae10c1c69 hs20-b03
+9669f9b284108a9ee0a0ccbe215c37a130c9dcf5 jdk7-b123
+9669f9b284108a9ee0a0ccbe215c37a130c9dcf5 hs20-b04
+0a8e0d4345b37b71ec49dda08ee03b68c4f1b592 jdk7-b124
+0a8e0d4345b37b71ec49dda08ee03b68c4f1b592 hs20-b05
+e24ab3fa6aafad3efabbe7dba9918c5f461a20b1 jdk7-b125
diff --git a/hotspot/agent/src/os/linux/libproc_impl.c b/hotspot/agent/src/os/linux/libproc_impl.c
index ade0638da66..971a8283519 100644
--- a/hotspot/agent/src/os/linux/libproc_impl.c
+++ b/hotspot/agent/src/os/linux/libproc_impl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
diff --git a/hotspot/agent/src/os/linux/ps_core.c b/hotspot/agent/src/os/linux/ps_core.c
index 21dfd05cd7e..9739e161471 100644
--- a/hotspot/agent/src/os/linux/ps_core.c
+++ b/hotspot/agent/src/os/linux/ps_core.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
diff --git a/hotspot/agent/src/os/linux/ps_proc.c b/hotspot/agent/src/os/linux/ps_proc.c
index 5ad3ff7f367..676e88a44bc 100644
--- a/hotspot/agent/src/os/linux/ps_proc.c
+++ b/hotspot/agent/src/os/linux/ps_proc.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
@@ -121,15 +121,13 @@ static bool process_get_lwp_regs(struct ps_prochandle* ph, pid_t pid, struct use
#define ptrace_getregs(request, pid, addr, data) ptrace(request, pid, data, addr)
#endif
-#ifdef _LP64
-#ifdef PTRACE_GETREGS64
+#if defined(_LP64) && defined(PTRACE_GETREGS64)
#define PTRACE_GETREGS_REQ PTRACE_GETREGS64
-#endif
-#else
-#if defined(PTRACE_GETREGS) || defined(PT_GETREGS)
+#elif defined(PTRACE_GETREGS)
#define PTRACE_GETREGS_REQ PTRACE_GETREGS
+#elif defined(PT_GETREGS)
+#define PTRACE_GETREGS_REQ PT_GETREGS
#endif
-#endif /* _LP64 */
#ifdef PTRACE_GETREGS_REQ
if (ptrace_getregs(PTRACE_GETREGS_REQ, pid, user, NULL) < 0) {
diff --git a/hotspot/agent/src/os/linux/symtab.c b/hotspot/agent/src/os/linux/symtab.c
index 70ecf82e5aa..bea59e37823 100644
--- a/hotspot/agent/src/os/linux/symtab.c
+++ b/hotspot/agent/src/os/linux/symtab.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
diff --git a/hotspot/agent/src/os/linux/symtab.h b/hotspot/agent/src/os/linux/symtab.h
index 534e33d7588..b2b9a3b9a27 100644
--- a/hotspot/agent/src/os/linux/symtab.h
+++ b/hotspot/agent/src/os/linux/symtab.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java
index 967f8a4f100..9cf6122c761 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
@@ -99,15 +99,8 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
long typeEntrySizeOffset;
long typeEntryArrayStride;
- typeEntryTypeNameOffset = getLongValueFromProcess("gHotSpotVMTypeEntryTypeNameOffset");
- typeEntrySuperclassNameOffset = getLongValueFromProcess("gHotSpotVMTypeEntrySuperclassNameOffset");
- typeEntryIsOopTypeOffset = getLongValueFromProcess("gHotSpotVMTypeEntryIsOopTypeOffset");
- typeEntryIsIntegerTypeOffset = getLongValueFromProcess("gHotSpotVMTypeEntryIsIntegerTypeOffset");
- typeEntryIsUnsignedOffset = getLongValueFromProcess("gHotSpotVMTypeEntryIsUnsignedOffset");
- typeEntrySizeOffset = getLongValueFromProcess("gHotSpotVMTypeEntrySizeOffset");
- typeEntryArrayStride = getLongValueFromProcess("gHotSpotVMTypeEntryArrayStride");
-
- // Fetch the address of the VMTypeEntry*
+ // Fetch the address of the VMTypeEntry*. We get this symbol first
+ // and try to use it to make sure that symbol lookup is working.
Address entryAddr = lookupInProcess("gHotSpotVMTypes");
// System.err.println("gHotSpotVMTypes address = " + entryAddr);
// Dereference this once to get the pointer to the first VMTypeEntry
@@ -118,6 +111,14 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
throw new RuntimeException("gHotSpotVMTypes was not initialized properly in the remote process; can not continue");
}
+ typeEntryTypeNameOffset = getLongValueFromProcess("gHotSpotVMTypeEntryTypeNameOffset");
+ typeEntrySuperclassNameOffset = getLongValueFromProcess("gHotSpotVMTypeEntrySuperclassNameOffset");
+ typeEntryIsOopTypeOffset = getLongValueFromProcess("gHotSpotVMTypeEntryIsOopTypeOffset");
+ typeEntryIsIntegerTypeOffset = getLongValueFromProcess("gHotSpotVMTypeEntryIsIntegerTypeOffset");
+ typeEntryIsUnsignedOffset = getLongValueFromProcess("gHotSpotVMTypeEntryIsUnsignedOffset");
+ typeEntrySizeOffset = getLongValueFromProcess("gHotSpotVMTypeEntrySizeOffset");
+ typeEntryArrayStride = getLongValueFromProcess("gHotSpotVMTypeEntryArrayStride");
+
// Start iterating down it until we find an entry with no name
Address typeNameAddr = null;
do {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFFileParser.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFFileParser.java
index b2c988224fd..d29a626598b 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFFileParser.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFFileParser.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,10 +122,14 @@ public class COFFFileParser {
private MemoizedObject[] sectionHeaders;
private MemoizedObject[] symbols;
+ // Init stringTable at decl time since other fields init'ed in the
+ // constructor need the String Table.
private MemoizedObject stringTable = new MemoizedObject() {
public Object computeValue() {
+ // the String Table follows the Symbol Table
int ptr = getPointerToSymbolTable();
if (ptr == 0) {
+ // no Symbol Table so no String Table
return new StringTable(0);
} else {
return new StringTable(ptr + SYMBOL_SIZE * getNumberOfSymbols());
@@ -140,6 +144,8 @@ public class COFFFileParser {
timeDateStamp = readInt();
pointerToSymbolTable = readInt();
numberOfSymbols = readInt();
+ // String Table can be accessed at this point because
+ // pointerToSymbolTable and numberOfSymbols fields are set.
sizeOfOptionalHeader = readShort();
characteristics = readShort();
@@ -222,6 +228,8 @@ public class COFFFileParser {
private MemoizedObject windowsSpecificFields;
private MemoizedObject dataDirectories;
+ // We use an offset of 2 because OptionalHeaderStandardFieldsImpl doesn't
+ // include the 'magic' field.
private static final int STANDARD_FIELDS_OFFSET = 2;
private static final int PE32_WINDOWS_SPECIFIC_FIELDS_OFFSET = 28;
private static final int PE32_DATA_DIRECTORIES_OFFSET = 96;
@@ -288,7 +296,7 @@ public class COFFFileParser {
private int sizeOfUninitializedData;
private int addressOfEntryPoint;
private int baseOfCode;
- private int baseOfData;
+ private int baseOfData; // only set in PE32
OptionalHeaderStandardFieldsImpl(int offset,
boolean isPE32Plus) {
@@ -301,7 +309,8 @@ public class COFFFileParser {
sizeOfUninitializedData = readInt();
addressOfEntryPoint = readInt();
baseOfCode = readInt();
- if (isPE32Plus) {
+ if (!isPE32Plus) {
+ // only available in PE32
baseOfData = readInt();
}
}
@@ -433,7 +442,10 @@ public class COFFFileParser {
if (dir.getRVA() == 0 || dir.getSize() == 0) {
return null;
}
- return new ExportDirectoryTableImpl(rvaToFileOffset(dir.getRVA()), dir.getSize());
+ // ExportDirectoryTableImpl needs both the RVA and the
+ // RVA converted to a file offset.
+ return new
+ ExportDirectoryTableImpl(dir.getRVA(), dir.getSize());
}
};
@@ -526,6 +538,7 @@ public class COFFFileParser {
}
class ExportDirectoryTableImpl implements ExportDirectoryTable {
+ private int exportDataDirRVA;
private int offset;
private int size;
@@ -548,8 +561,9 @@ public class COFFFileParser {
private MemoizedObject exportOrdinalTable;
private MemoizedObject exportAddressTable;
- ExportDirectoryTableImpl(int offset, int size) {
- this.offset = offset;
+ ExportDirectoryTableImpl(int exportDataDirRVA, int size) {
+ this.exportDataDirRVA = exportDataDirRVA;
+ offset = rvaToFileOffset(exportDataDirRVA);
this.size = size;
seek(offset);
exportFlags = readInt();
@@ -595,6 +609,7 @@ public class COFFFileParser {
exportOrdinalTable = new MemoizedObject() {
public Object computeValue() {
+ // number of ordinals is same as the number of name pointers
short[] ordinals = new short[getNumberOfNamePointers()];
seek(rvaToFileOffset(getOrdinalTableRVA()));
for (int i = 0; i < ordinals.length; i++) {
@@ -608,14 +623,18 @@ public class COFFFileParser {
public Object computeValue() {
int[] addresses = new int[getNumberOfAddressTableEntries()];
seek(rvaToFileOffset(getExportAddressTableRVA()));
- // Must make two passes to avoid rvaToFileOffset
- // destroying seek() position
+ // The Export Address Table values are a union of two
+ // possible values:
+ // Export RVA - The address of the exported symbol when
+ // loaded into memory, relative to the image base.
+ // This value doesn't get converted into a file offset.
+ // Forwarder RVA - The pointer to a null-terminated ASCII
+ // string in the export section. This value gets
+ // converted into a file offset because we have to
+ // fetch the string.
for (int i = 0; i < addresses.length; i++) {
addresses[i] = readInt();
}
- for (int i = 0; i < addresses.length; i++) {
- addresses[i] = rvaToFileOffset(addresses[i]);
- }
return addresses;
}
};
@@ -648,11 +667,12 @@ public class COFFFileParser {
public boolean isExportAddressForwarder(short ordinal) {
int addr = getExportAddress(ordinal);
- return ((offset <= addr) && (addr < (offset + size)));
+ return ((exportDataDirRVA <= addr) &&
+ (addr < (exportDataDirRVA + size)));
}
public String getExportAddressForwarder(short ordinal) {
- seek(getExportAddress(ordinal));
+ seek(rvaToFileOffset(getExportAddress(ordinal)));
return readCString();
}
@@ -3371,10 +3391,17 @@ public class COFFFileParser {
throw new COFFException(e);
}
// Look up in string table
+ // FIXME: this index value is assumed to be in the valid range
name = getStringTable().get(index);
} else {
try {
- name = new String(tmpName, US_ASCII);
+ int length = 0;
+ // find last non-NULL
+ for (; length < tmpName.length && tmpName[length] != '\0';) {
+ length++;
+ }
+ // don't include NULL chars in returned name String
+ name = new String(tmpName, 0, length, US_ASCII);
} catch (UnsupportedEncodingException e) {
throw new COFFException(e);
}
@@ -3487,6 +3514,7 @@ public class COFFFileParser {
tmpName[5] << 16 |
tmpName[6] << 8 |
tmpName[7]);
+ // FIXME: stringOffset is assumed to be in the valid range
name = getStringTable().getAtOffset(stringOffset);
}
@@ -3698,12 +3726,13 @@ public class COFFFileParser {
StringTable(int offset) {
if (offset == 0) {
+ // no String Table
strings = new COFFString[0];
return;
}
seek(offset);
- int length = readInt();
+ int length = readInt(); // length includes itself
byte[] data = new byte[length - 4];
int numBytesRead = readBytes(data);
if (numBytesRead != data.length) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DumpExports.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DumpExports.java
index ec563f1d626..fd9d39aa5c5 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DumpExports.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DumpExports.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
@@ -37,35 +37,48 @@ public class DumpExports {
String filename = args[0];
COFFFile file = COFFFileParser.getParser().parse(filename);
- ExportDirectoryTable exports =
- file.getHeader().
- getOptionalHeader().
- getDataDirectories().
- getExportDirectoryTable();
+
+ // get common point for both things we want to dump
+ OptionalHeaderDataDirectories dataDirs = file.getHeader().getOptionalHeader().
+ getDataDirectories();
+
+ // dump the header data directory for the Export Table:
+ DataDirectory dir = dataDirs.getExportTable();
+ System.out.println("Export table: RVA = " + dir.getRVA() + "/0x" +
+ Integer.toHexString(dir.getRVA()) + ", size = " + dir.getSize() + "/0x" +
+ Integer.toHexString(dir.getSize()));
+
+ System.out.println(file.getHeader().getNumberOfSections() + " sections in file");
+ for (int i = 1; i <= file.getHeader().getNumberOfSections(); i++) {
+ SectionHeader sec = file.getHeader().getSectionHeader(i);
+ System.out.println(" Section " + i + ":");
+ System.out.println(" Name = '" + sec.getName() + "'");
+ System.out.println(" VirtualSize = " + sec.getSize() + "/0x" +
+ Integer.toHexString(sec.getSize()));
+ System.out.println(" VirtualAddress = " + sec.getVirtualAddress() + "/0x" +
+ Integer.toHexString(sec.getVirtualAddress()));
+ System.out.println(" SizeOfRawData = " + sec.getSizeOfRawData() + "/0x" +
+ Integer.toHexString(sec.getSizeOfRawData()));
+ System.out.println(" PointerToRawData = " + sec.getPointerToRawData() + "/0x" +
+ Integer.toHexString(sec.getPointerToRawData()));
+ }
+
+ ExportDirectoryTable exports = dataDirs.getExportDirectoryTable();
if (exports == null) {
System.out.println("No exports found.");
} else {
- System.out.println(file.getHeader().getNumberOfSections() + " sections in file");
- for (int i = 0; i < file.getHeader().getNumberOfSections(); i++) {
- System.out.println(" Section " + i + ": " + file.getHeader().getSectionHeader(1 + i).getName());
- }
-
- DataDirectory dir = file.getHeader().getOptionalHeader().getDataDirectories().getExportTable();
- System.out.println("Export table: RVA = 0x" + Integer.toHexString(dir.getRVA()) +
- ", size = 0x" + Integer.toHexString(dir.getSize()));
-
System.out.println("DLL name: " + exports.getDLLName());
System.out.println("Time/date stamp 0x" + Integer.toHexString(exports.getTimeDateStamp()));
System.out.println("Major version 0x" + Integer.toHexString(exports.getMajorVersion() & 0xFFFF));
System.out.println("Minor version 0x" + Integer.toHexString(exports.getMinorVersion() & 0xFFFF));
- System.out.println(exports.getNumberOfNamePointers() + " functions found");
+ System.out.println(exports.getNumberOfNamePointers() + " exports found");
for (int i = 0; i < exports.getNumberOfNamePointers(); i++) {
- System.out.println(" 0x" +
- Integer.toHexString(exports.getExportAddress(exports.getExportOrdinal(i))) +
- " " +
- (exports.isExportAddressForwarder(exports.getExportOrdinal(i)) ?
- ("Forwarded to " + exports.getExportAddressForwarder(exports.getExportOrdinal(i))) :
- exports.getExportName(i)));
+ short ordinal = exports.getExportOrdinal(i);
+ System.out.print("[" + i + "] '" + exports.getExportName(i) + "': [" +
+ ordinal + "] = 0x" + Integer.toHexString(exports.getExportAddress(ordinal)));
+ System.out.println(exports.isExportAddressForwarder(ordinal)
+ ? " Forwarded to '" + exports.getExportAddressForwarder(ordinal) + "'"
+ : "");
}
}
}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TestParser.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TestParser.java
index 6f026838d58..e6f42df3ac9 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TestParser.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TestParser.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
@@ -42,8 +42,8 @@ public class TestParser {
COFFHeader header = file.getHeader();
int numSections = header.getNumberOfSections();
System.out.println(numSections + " sections detected.");
- for (int i = 0; i < numSections; i++) {
- SectionHeader secHeader = header.getSectionHeader(1 + i);
+ for (int i = 1; i <= numSections; i++) {
+ SectionHeader secHeader = header.getSectionHeader(i);
System.out.println(secHeader.getName());
}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java
index 53141a6d2d1..3e5a6aa96b6 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -506,7 +506,6 @@ public class WindbgDebuggerLocal extends DebuggerBase implements WindbgDebugger
throw new DebuggerException("Unimplemented");
}
- private static String DTFWHome;
private static String imagePath;
private static String symbolPath;
private static boolean useNativeLookup;
@@ -514,81 +513,143 @@ public class WindbgDebuggerLocal extends DebuggerBase implements WindbgDebugger
static {
/*
- * sawindbg.dll depends on dbgeng.dll which
- * itself depends on dbghelp.dll. dbgeng.dll and dbghelp.dll.
- * On systems newer than Windows 2000, these two .dlls are
- * in the standard system directory so we will find them there.
- * On Windows 2000 and earlier, these files do not exist.
- * The user must download Debugging Tools For Windows (DTFW)
- * and install it in order to use SA.
+ * sawindbg.dll depends on dbgeng.dll which itself depends on
+ * dbghelp.dll. We have to make sure that the dbgeng.dll and
+ * dbghelp.dll that we load are compatible with each other. We
+ * load both of those libraries from the same directory based
+ * on the theory that co-located libraries are compatible.
*
- * We have to make sure we use the two files from the same directory
- * in case there are more than one copy on the system because
- * one version of dbgeng.dll might not be compatible with a
- * different version of dbghelp.dll.
- * We first look for them in the directory pointed at by
- * env. var. DEBUGGINGTOOLSFORWINDOWS, next in the default
- * installation dir for DTFW, and lastly in the standard
- * system directory. We expect that that we will find
- * them in the standard system directory on all systems
- * newer than Windows 2000.
+ * On Windows 2000 and earlier, dbgeng.dll and dbghelp.dll were
+ * not included as part of the standard system directory. On
+ * systems newer than Windows 2000, dbgeng.dll and dbghelp.dll
+ * are included in the standard system directory. However, the
+ * versions included in the standard system directory may not
+ * be able to handle symbol information for the newer compilers.
+ *
+ * We search for and explicitly load the libraries using the
+ * following directory search order:
+ *
+ * - java.home/bin (same as $JAVA_HOME/jre/bin)
+ * - dir named by DEBUGGINGTOOLSFORWINDOWS environment variable
+ * - various "Debugging Tools For Windows" program directories
+ * - the system directory ($SYSROOT/system32)
+ *
+ * If SA is invoked with -Dsun.jvm.hotspot.loadLibrary.DEBUG=1,
+ * then debug messages about library loading are printed to
+ * System.err.
*/
- String dirName = null;
- DTFWHome = System.getenv("DEBUGGINGTOOLSFORWINDOWS");
- if (DTFWHome == null) {
- // See if we have the files in the default location.
- String sysRoot = System.getenv("SYSTEMROOT");
- DTFWHome = sysRoot + File.separator +
- ".." + File.separator + "Program Files" +
- File.separator + "Debugging Tools For Windows";
- }
+ String dbgengPath = null;
+ String dbghelpPath = null;
+ String sawindbgPath = null;
+ List searchList = new ArrayList();
+
+ boolean loadLibraryDEBUG =
+ System.getProperty("sun.jvm.hotspot.loadLibrary.DEBUG") != null;
{
- String dbghelp = DTFWHome + File.separator + "dbghelp.dll";
- String dbgeng = DTFWHome + File.separator + "dbgeng.dll";
- File fhelp = new File(dbghelp);
- File feng = new File(dbgeng);
- if (fhelp.exists() && feng.exists()) {
- // found both, we are happy.
- // NOTE: The order of loads is important! If we load dbgeng.dll
- // first, then the dependency - dbghelp.dll - will be loaded
- // from usual DLL search thereby defeating the purpose!
- System.load(dbghelp);
- System.load(dbgeng);
- } else if (! fhelp.exists() && ! feng.exists()) {
- // neither exist. We will ignore this dir and assume
- // they are in the system dir.
- DTFWHome = null;
- } else {
- // one exists but not the other
- //System.err.println("Error: Both files dbghelp.dll and dbgeng.dll "
- // "must exist in directory " + DTFWHome);
- throw new UnsatisfiedLinkError("Both files dbghelp.dll and " +
- "dbgeng.dll must exist in " +
- "directory " + DTFWHome);
- }
- }
- if (DTFWHome == null) {
- // The files better be in the system dir.
- String sysDir = System.getenv("SYSTEMROOT") +
- File.separator + "system32";
+ // First place to search is co-located with sawindbg.dll in
+ // $JAVA_HOME/jre/bin (java.home property is set to $JAVA_HOME/jre):
+ searchList.add(System.getProperty("java.home") + File.separator + "bin");
+ sawindbgPath = (String) searchList.get(0) + File.separator +
+ "sawindbg.dll";
- File feng = new File(sysDir + File.separator + "dbgeng.dll");
- if (!feng.exists()) {
- throw new UnsatisfiedLinkError("File dbgeng.dll does not exist in " +
- sysDir + ". Please search microsoft.com " +
- "for Debugging Tools For Windows, and " +
- "either download it to the default " +
- "location, or download it to a custom " +
- "location and set environment variable " +
- " DEBUGGINGTOOLSFORWINDOWS " +
- "to the pathname of that location.");
+ // second place to search is specified by an environment variable:
+ String DTFWHome = System.getenv("DEBUGGINGTOOLSFORWINDOWS");
+ if (DTFWHome != null) {
+ searchList.add(DTFWHome);
}
+
+ // The third place to search is the install directory for the
+ // "Debugging Tools For Windows" package; so far there are three
+ // name variations that we know of:
+ String sysRoot = System.getenv("SYSTEMROOT");
+ DTFWHome = sysRoot + File.separator + ".." + File.separator +
+ "Program Files" + File.separator + "Debugging Tools For Windows";
+ searchList.add(DTFWHome);
+ searchList.add(DTFWHome + " (x86)");
+ searchList.add(DTFWHome + " (x64)");
+
+ // The last place to search is the system directory:
+ searchList.add(sysRoot + File.separator + "system32");
}
+ for (int i = 0; i < searchList.size(); i++) {
+ File dir = new File((String) searchList.get(i));
+ if (!dir.exists()) {
+ if (loadLibraryDEBUG) {
+ System.err.println("DEBUG: '" + searchList.get(i) +
+ "': directory does not exist.");
+ }
+ // this search directory doesn't exist so skip it
+ continue;
+ }
+
+ dbgengPath = (String) searchList.get(i) + File.separator + "dbgeng.dll";
+ dbghelpPath = (String) searchList.get(i) + File.separator + "dbghelp.dll";
+
+ File feng = new File(dbgengPath);
+ File fhelp = new File(dbghelpPath);
+ if (feng.exists() && fhelp.exists()) {
+ // both files exist so we have a match
+ break;
+ }
+
+ // At least one of the files does not exist; no warning if both
+ // don't exist. If just one doesn't exist then we don't check
+ // loadLibraryDEBUG because we have a mis-configured system.
+ if (feng.exists()) {
+ System.err.println("WARNING: found '" + dbgengPath +
+ "' but did not find '" + dbghelpPath + "'; ignoring '" +
+ dbgengPath + "'.");
+ } else if (fhelp.exists()) {
+ System.err.println("WARNING: found '" + dbghelpPath +
+ "' but did not find '" + dbgengPath + "'; ignoring '" +
+ dbghelpPath + "'.");
+ } else if (loadLibraryDEBUG) {
+ System.err.println("DEBUG: searched '" + searchList.get(i) +
+ "': dbgeng.dll and dbghelp.dll were not found.");
+ }
+ dbgengPath = null;
+ dbghelpPath = null;
+ }
+
+ if (dbgengPath == null || dbghelpPath == null) {
+ // at least one of the files wasn't found anywhere we searched
+ String mesg = null;
+
+ if (dbgengPath == null && dbghelpPath == null) {
+ mesg = "dbgeng.dll and dbghelp.dll cannot be found. ";
+ } else if (dbgengPath == null) {
+ mesg = "dbgeng.dll cannot be found (dbghelp.dll was found). ";
+ } else {
+ mesg = "dbghelp.dll cannot be found (dbgeng.dll was found). ";
+ }
+ throw new UnsatisfiedLinkError(mesg +
+ "Please search microsoft.com for 'Debugging Tools For Windows', " +
+ "and either download it to the default location, or download it " +
+ "to a custom location and set environment variable " +
+ "'DEBUGGINGTOOLSFORWINDOWS' to the pathname of that location.");
+ }
+
+ // NOTE: The order of loads is important! If we load dbgeng.dll
+ // first, then the dependency - dbghelp.dll - will be loaded
+ // from usual DLL search thereby defeating the purpose!
+ if (loadLibraryDEBUG) {
+ System.err.println("DEBUG: loading '" + dbghelpPath + "'.");
+ }
+ System.load(dbghelpPath);
+ if (loadLibraryDEBUG) {
+ System.err.println("DEBUG: loading '" + dbgengPath + "'.");
+ }
+ System.load(dbgengPath);
+
// Now, load sawindbg.dll
- System.loadLibrary("sawindbg");
+ if (loadLibraryDEBUG) {
+ System.err.println("DEBUG: loading '" + sawindbgPath + "'.");
+ }
+ System.load(sawindbgPath);
+
// where do I find '.exe', '.dll' files?
imagePath = System.getProperty("sun.jvm.hotspot.debugger.windbg.imagePath");
if (imagePath == null) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInvoke.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInvoke.java
index aaf216676d9..15b49869cf7 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInvoke.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInvoke.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java
index f08c03128d3..1633888108a 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
@@ -188,7 +188,7 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
} else {
throw new RuntimeException("should not reach here");
}
- } else if (ctag.isMethodHandle() || ctag.isMethodType()) {
+ } else if (ctag.isMethodHandle()) {
Oop x = getCachedConstant();
int refidx = cpool.getMethodHandleIndexAt(cpIndex);
int refkind = cpool.getMethodHandleRefKindAt(cpIndex);
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java
index 55aba177058..fc0730feb14 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java
index 16e35562f74..1306dc419db 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java
index 2733af50aa1..06f149156ce 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java
index 92cd92b9115..f8bb01adb96 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
index 27872450487..31cc2a956e1 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
@@ -53,11 +53,16 @@ public class ConstantPool extends Oop implements ClassConstants {
private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
Type type = db.lookupType("constantPoolOopDesc");
tags = new OopField(type.getOopField("_tags"), 0);
+ operands = new OopField(type.getOopField("_operands"), 0);
cache = new OopField(type.getOopField("_cache"), 0);
poolHolder = new OopField(type.getOopField("_pool_holder"), 0);
length = new CIntField(type.getCIntegerField("_length"), 0);
headerSize = type.getSize();
elementSize = 0;
+ // fetch constants:
+ INDY_BSM_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_indy_bsm_offset").intValue();
+ INDY_ARGC_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_indy_argc_offset").intValue();
+ INDY_ARGV_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_indy_argv_offset").intValue();
}
ConstantPool(OopHandle handle, ObjectHeap heap) {
@@ -67,6 +72,7 @@ public class ConstantPool extends Oop implements ClassConstants {
public boolean isConstantPool() { return true; }
private static OopField tags;
+ private static OopField operands;
private static OopField cache;
private static OopField poolHolder;
private static CIntField length; // number of elements in oop
@@ -74,7 +80,12 @@ public class ConstantPool extends Oop implements ClassConstants {
private static long headerSize;
private static long elementSize;
+ private static int INDY_BSM_OFFSET;
+ private static int INDY_ARGC_OFFSET;
+ private static int INDY_ARGV_OFFSET;
+
public TypeArray getTags() { return (TypeArray) tags.getValue(this); }
+ public TypeArray getOperands() { return (TypeArray) operands.getValue(this); }
public ConstantPoolCache getCache() { return (ConstantPoolCache) cache.getValue(this); }
public Klass getPoolHolder() { return (Klass) poolHolder.getValue(this); }
public int getLength() { return (int)length.getValue(this); }
@@ -278,6 +289,28 @@ public class ConstantPool extends Oop implements ClassConstants {
return res;
}
+ /** Lookup for multi-operand (InvokeDynamic) entries. */
+ public short[] getBootstrapSpecifierAt(int i) {
+ if (Assert.ASSERTS_ENABLED) {
+ Assert.that(getTagAt(i).isInvokeDynamic(), "Corrupted constant pool");
+ }
+ if (getTagAt(i).value() == JVM_CONSTANT_InvokeDynamicTrans)
+ return null;
+ int bsmSpec = extractLowShortFromInt(this.getIntAt(i));
+ TypeArray operands = getOperands();
+ if (operands == null) return null; // safety first
+ int basePos = VM.getVM().buildIntFromShorts(operands.getShortAt(bsmSpec * 2 + 0),
+ operands.getShortAt(bsmSpec * 2 + 1));
+ int argv = basePos + INDY_ARGV_OFFSET;
+ int argc = operands.getShortAt(basePos + INDY_ARGC_OFFSET);
+ int endPos = argv + argc;
+ short[] values = new short[endPos - basePos];
+ for (int j = 0; j < values.length; j++) {
+ values[j] = operands.getShortAt(basePos+j);
+ }
+ return values;
+ }
+
final private static String[] nameForTag = new String[] {
};
@@ -298,6 +331,7 @@ public class ConstantPool extends Oop implements ClassConstants {
case JVM_CONSTANT_MethodHandle: return "JVM_CONSTANT_MethodHandle";
case JVM_CONSTANT_MethodType: return "JVM_CONSTANT_MethodType";
case JVM_CONSTANT_InvokeDynamic: return "JVM_CONSTANT_InvokeDynamic";
+ case JVM_CONSTANT_InvokeDynamicTrans: return "JVM_CONSTANT_InvokeDynamic/transitional";
case JVM_CONSTANT_Invalid: return "JVM_CONSTANT_Invalid";
case JVM_CONSTANT_UnresolvedClass: return "JVM_CONSTANT_UnresolvedClass";
case JVM_CONSTANT_UnresolvedClassInError: return "JVM_CONSTANT_UnresolvedClassInError";
@@ -357,6 +391,7 @@ public class ConstantPool extends Oop implements ClassConstants {
case JVM_CONSTANT_MethodHandle:
case JVM_CONSTANT_MethodType:
case JVM_CONSTANT_InvokeDynamic:
+ case JVM_CONSTANT_InvokeDynamicTrans:
visitor.doInt(new IntField(new NamedFieldIdentifier(nameForTag(ctag)), indexOffset(index), true), true);
break;
}
@@ -520,17 +555,19 @@ public class ConstantPool extends Oop implements ClassConstants {
break;
}
+ case JVM_CONSTANT_InvokeDynamicTrans:
case JVM_CONSTANT_InvokeDynamic: {
dos.writeByte(cpConstType);
int value = getIntAt(ci);
- short bootstrapMethodIndex = (short) extractLowShortFromInt(value);
+ short bsmIndex = (short) extractLowShortFromInt(value);
short nameAndTypeIndex = (short) extractHighShortFromInt(value);
- dos.writeShort(bootstrapMethodIndex);
+ dos.writeShort(bsmIndex);
dos.writeShort(nameAndTypeIndex);
- if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " + bootstrapMethodIndex
+ if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " + bsmIndex
+ ", N&T = " + nameAndTypeIndex);
break;
}
+
default:
throw new InternalError("unknown tag: " + cpConstType);
} // switch
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java
index 0b162a438af..47a3facedfa 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheEntry.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheEntry.java
index c3982615ccc..48bee4b9ed1 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheEntry.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheEntry.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java
index 82a20a5c96b..04d64086740 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java
index 02ba1eaff90..0e7e6fcce01 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java
index ff7db309fe9..3a008c0b059 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java
@@ -42,7 +42,8 @@ public interface ClassConstants
public static final int JVM_CONSTANT_NameAndType = 12;
public static final int JVM_CONSTANT_MethodHandle = 15;
public static final int JVM_CONSTANT_MethodType = 16;
- public static final int JVM_CONSTANT_InvokeDynamic = 17;
+ public static final int JVM_CONSTANT_InvokeDynamicTrans = 17; // only occurs in old class files
+ public static final int JVM_CONSTANT_InvokeDynamic = 18;
// JVM_CONSTANT_MethodHandle subtypes
public static final int JVM_REF_getField = 1;
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
index 3d2afd9d754..c0b31065b72 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java
index 508357f82f9..737bbc630ea 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java
index 31f37a5df46..494f1765f13 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java
@@ -303,12 +303,12 @@ public class ClassWriter implements /* imports */ ClassConstants
case JVM_CONSTANT_MethodHandle: {
dos.writeByte(cpConstType);
int value = cpool.getIntAt(ci);
- short bootstrapMethodIndex = (short) extractLowShortFromInt(value);
- short nameAndTypeIndex = (short) extractHighShortFromInt(value);
- dos.writeShort(bootstrapMethodIndex);
- dos.writeShort(nameAndTypeIndex);
- if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " +
- bootstrapMethodIndex + ", N&T = " + nameAndTypeIndex);
+ byte refKind = (byte) extractLowShortFromInt(value);
+ short memberIndex = (short) extractHighShortFromInt(value);
+ dos.writeByte(refKind);
+ dos.writeShort(memberIndex);
+ if (DEBUG) debugMessage("CP[" + ci + "] = MH kind = " +
+ refKind + ", mem = " + memberIndex);
break;
}
@@ -321,12 +321,16 @@ public class ClassWriter implements /* imports */ ClassConstants
break;
}
+ case JVM_CONSTANT_InvokeDynamicTrans:
case JVM_CONSTANT_InvokeDynamic: {
dos.writeByte(cpConstType);
int value = cpool.getIntAt(ci);
- short refIndex = (short) value;
- dos.writeShort(refIndex);
- if (DEBUG) debugMessage("CP[" + ci + "] = MT index = " + refIndex);
+ short bsmIndex = (short) extractLowShortFromInt(value);
+ short nameAndTypeIndex = (short) extractHighShortFromInt(value);
+ dos.writeShort(bsmIndex);
+ dos.writeShort(nameAndTypeIndex);
+ if (DEBUG) debugMessage("CP[" + ci + "] = INDY bsm = " +
+ bsmIndex + ", N&T = " + nameAndTypeIndex);
break;
}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java
index e70ba946110..979d80b3062 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java
@@ -30,6 +30,7 @@ import sun.jvm.hotspot.asm.*;
import sun.jvm.hotspot.asm.sparc.*;
import sun.jvm.hotspot.asm.x86.*;
import sun.jvm.hotspot.asm.ia64.*;
+import sun.jvm.hotspot.asm.amd64.*;
import sun.jvm.hotspot.code.*;
import sun.jvm.hotspot.compiler.*;
import sun.jvm.hotspot.debugger.*;
@@ -198,6 +199,8 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
cpuHelper = new SPARCHelper();
} else if (cpu.equals("x86")) {
cpuHelper = new X86Helper();
+ } else if (cpu.equals("amd64")) {
+ cpuHelper = new AMD64Helper();
} else if (cpu.equals("ia64")) {
cpuHelper = new IA64Helper();
} else {
@@ -460,6 +463,19 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
return buf.toString();
}
+ private String genListOfShort(short[] values) {
+ if (values == null || values.length == 0) return "";
+ Formatter buf = new Formatter(genHTML);
+ buf.append('[');
+ for (int i = 0; i < values.length; i++) {
+ if (i > 0) buf.append(' ');
+ buf.append('#');
+ buf.append(Integer.toString(values[i]));
+ }
+ buf.append(']');
+ return buf.toString();
+ }
+
protected String genHTMLTableForConstantPool(ConstantPool cpool) {
Formatter buf = new Formatter(genHTML);
buf.beginTable(1);
@@ -582,9 +598,11 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
buf.cell(Integer.toString(cpool.getIntAt(index)));
break;
+ case JVM_CONSTANT_InvokeDynamicTrans:
case JVM_CONSTANT_InvokeDynamic:
buf.cell("JVM_CONSTANT_InvokeDynamic");
- buf.cell(genLowHighShort(cpool.getIntAt(index)));
+ buf.cell(genLowHighShort(cpool.getIntAt(index)) +
+ genListOfShort(cpool.getBootstrapSpecifierAt(index)));
break;
default:
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java
index 3f2baf3d9cc..1ee547be39c 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
@@ -40,7 +40,8 @@ public class ConstantTag {
private static int JVM_CONSTANT_NameAndType = 12;
private static int JVM_CONSTANT_MethodHandle = 15; // JSR 292
private static int JVM_CONSTANT_MethodType = 16; // JSR 292
- private static int JVM_CONSTANT_InvokeDynamic = 17; // JSR 292
+ private static int JVM_CONSTANT_InvokeDynamicTrans = 17; // JSR 292, only occurs in old class files
+ private static int JVM_CONSTANT_InvokeDynamic = 18; // JSR 292
private static int JVM_CONSTANT_Invalid = 0; // For bad value initialization
private static int JVM_CONSTANT_UnresolvedClass = 100; // Temporary tag until actual use
private static int JVM_CONSTANT_ClassIndex = 101; // Temporary tag while constructing constant pool
@@ -66,6 +67,8 @@ public class ConstantTag {
this.tag = tag;
}
+ public int value() { return tag; }
+
public boolean isKlass() { return tag == JVM_CONSTANT_Class; }
public boolean isField () { return tag == JVM_CONSTANT_Fieldref; }
public boolean isMethod() { return tag == JVM_CONSTANT_Methodref; }
@@ -80,6 +83,7 @@ public class ConstantTag {
public boolean isMethodHandle() { return tag == JVM_CONSTANT_MethodHandle; }
public boolean isMethodType() { return tag == JVM_CONSTANT_MethodType; }
public boolean isInvokeDynamic() { return tag == JVM_CONSTANT_InvokeDynamic; }
+ public boolean isInvokeDynamicTrans() { return tag == JVM_CONSTANT_InvokeDynamicTrans; }
public boolean isInvalid() { return tag == JVM_CONSTANT_Invalid; }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js
index f181bd6262a..246dbc6772b 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2010, 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
diff --git a/hotspot/make/defs.make b/hotspot/make/defs.make
index 528d9405bf8..48b91684ba7 100644
--- a/hotspot/make/defs.make
+++ b/hotspot/make/defs.make
@@ -101,15 +101,14 @@ ifndef HOTSPOT_RELEASE_VERSION
endif
ifdef HOTSPOT_BUILD_VERSION
-# specified in command line (PRT build)
+# specified in command line
else
- ifdef JPRT_BUILD_VERSION
-# JPR build
- HOTSPOT_BUILD_VERSION=$(JPRT_BUILD_VERSION)
- else
- ifdef COOKED_BUILD_NUMBER
+ ifdef COOKED_BUILD_NUMBER
# JRE build
- HOTSPOT_BUILD_VERSION=
+ HOTSPOT_BUILD_VERSION=
+ else
+ ifdef USER_RELEASE_SUFFIX
+ HOTSPOT_BUILD_VERSION=internal-$(USER_RELEASE_SUFFIX)
else
HOTSPOT_BUILD_VERSION=internal
endif
diff --git a/hotspot/make/hotspot_distro b/hotspot/make/hotspot_distro
index fb960646c19..059f4d1f547 100644
--- a/hotspot/make/hotspot_distro
+++ b/hotspot/make/hotspot_distro
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2010, 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
diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version
index dfc53081cb3..8fe599f75e4 100644
--- a/hotspot/make/hotspot_version
+++ b/hotspot/make/hotspot_version
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2011, 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
@@ -31,11 +31,11 @@
#
# Don't put quotes (fail windows build).
-HOTSPOT_VM_COPYRIGHT=Copyright 2010
+HOTSPOT_VM_COPYRIGHT=Copyright 2011
HS_MAJOR_VER=20
HS_MINOR_VER=0
-HS_BUILD_NUMBER=01
+HS_BUILD_NUMBER=06
JDK_MAJOR_VER=1
JDK_MINOR_VER=7
diff --git a/hotspot/make/jprt.gmk b/hotspot/make/jprt.gmk
index b7f5292a1b5..8da610d7433 100644
--- a/hotspot/make/jprt.gmk
+++ b/hotspot/make/jprt.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2010, 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,9 +25,6 @@
# JPRT rule to build this workspace
JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
-ifdef JPRT_BUILD_VERSION
- MILESTONE=$(JPRT_BUILD_VERSION)
-endif
ifeq ($(OSNAME),windows)
ZIPFLAGS=-q
diff --git a/hotspot/make/jprt.properties b/hotspot/make/jprt.properties
index 04554aabe92..c8bbb3c6c14 100644
--- a/hotspot/make/jprt.properties
+++ b/hotspot/make/jprt.properties
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2010, 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
@@ -150,6 +150,7 @@ jprt.build.targets= \
jprt.my.solaris.sparc.test.targets= \
${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jvm98, \
+ ${jprt.my.solaris.sparc}-{product|fastdebug}-c2-jvm98_tiered, \
${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-scimark, \
${jprt.my.solaris.sparc}-product-{c1|c2}-runThese, \
${jprt.my.solaris.sparc}-fastdebug-c1-runThese_Xshare, \
@@ -168,6 +169,7 @@ jprt.my.solaris.sparc.test.targets= \
${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCOld_G1, \
${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCOld_ParOldGC, \
${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jbb_default, \
+ ${jprt.my.solaris.sparc}-{product|fastdebug}-c2-jbb_default_tiered, \
${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jbb_SerialGC, \
${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jbb_ParallelGC, \
${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jbb_CMS, \
@@ -176,6 +178,7 @@ jprt.my.solaris.sparc.test.targets= \
jprt.my.solaris.sparcv9.test.targets= \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jvm98, \
+ ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jvm98_tiered, \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-scimark, \
${jprt.my.solaris.sparcv9}-product-c2-runThese, \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_default, \
@@ -193,6 +196,7 @@ jprt.my.solaris.sparcv9.test.targets= \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCOld_G1, \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCOld_ParOldGC, \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_default, \
+ ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_default_tiered, \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_SerialGC, \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_ParallelGC, \
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_CMS, \
@@ -201,6 +205,7 @@ jprt.my.solaris.sparcv9.test.targets= \
jprt.my.solaris.x64.test.targets= \
${jprt.my.solaris.x64}-{product|fastdebug}-c2-jvm98, \
+ ${jprt.my.solaris.x64}-{product|fastdebug}-c2-jvm98_tiered, \
${jprt.my.solaris.x64}-{product|fastdebug}-c2-scimark, \
${jprt.my.solaris.x64}-product-c2-runThese, \
${jprt.my.solaris.x64}-product-c2-runThese_Xcomp, \
@@ -219,6 +224,7 @@ jprt.my.solaris.x64.test.targets= \
${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCOld_G1, \
${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCOld_ParOldGC, \
${jprt.my.solaris.x64}-{product|fastdebug}-c2-jbb_default, \
+ ${jprt.my.solaris.x64}-{product|fastdebug}-c2-jbb_default_tiered, \
${jprt.my.solaris.x64}-{product|fastdebug}-c2-jbb_SerialGC, \
${jprt.my.solaris.x64}-{product|fastdebug}-c2-jbb_ParallelGC, \
${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCOld_CMS, \
@@ -227,6 +233,7 @@ jprt.my.solaris.x64.test.targets= \
jprt.my.solaris.i586.test.targets= \
${jprt.my.solaris.i586}-{product|fastdebug}-{c1|c2}-jvm98, \
+ ${jprt.my.solaris.i586}-{product|fastdebug}-c2-jvm98_tiered, \
${jprt.my.solaris.i586}-{product|fastdebug}-{c1|c2}-scimark, \
${jprt.my.solaris.i586}-product-{c1|c2}-runThese_Xcomp, \
${jprt.my.solaris.i586}-fastdebug-c1-runThese_Xcomp, \
@@ -253,6 +260,7 @@ jprt.my.solaris.i586.test.targets= \
${jprt.my.solaris.i586}-product-c1-GCOld_G1, \
${jprt.my.solaris.i586}-product-c1-GCOld_ParOldGC, \
${jprt.my.solaris.i586}-fastdebug-c2-jbb_default, \
+ ${jprt.my.solaris.i586}-fastdebug-c2-jbb_default_tiered, \
${jprt.my.solaris.i586}-fastdebug-c2-jbb_ParallelGC, \
${jprt.my.solaris.i586}-fastdebug-c2-jbb_CMS, \
${jprt.my.solaris.i586}-fastdebug-c2-jbb_G1, \
@@ -260,6 +268,7 @@ jprt.my.solaris.i586.test.targets= \
jprt.my.linux.i586.test.targets = \
${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-jvm98, \
+ ${jprt.my.linux.i586}-{product|fastdebug}-c2-jvm98_tiered, \
${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-scimark, \
${jprt.my.linux.i586}-product-c1-runThese_Xcomp, \
${jprt.my.linux.i586}-fastdebug-c1-runThese_Xshare, \
@@ -279,6 +288,7 @@ jprt.my.linux.i586.test.targets = \
${jprt.my.linux.i586}-product-{c1|c2}-GCOld_G1, \
${jprt.my.linux.i586}-product-{c1|c2}-GCOld_ParOldGC, \
${jprt.my.linux.i586}-{product|fastdebug}-c1-jbb_default, \
+ ${jprt.my.linux.i586}-{product|fastdebug}-c2-jbb_default_tiered, \
${jprt.my.linux.i586}-{product|fastdebug}-c1-jbb_ParallelGC, \
${jprt.my.linux.i586}-{product|fastdebug}-c1-jbb_CMS, \
${jprt.my.linux.i586}-{product|fastdebug}-c1-jbb_G1, \
@@ -286,6 +296,7 @@ jprt.my.linux.i586.test.targets = \
jprt.my.linux.x64.test.targets = \
${jprt.my.linux.x64}-{product|fastdebug}-c2-jvm98, \
+ ${jprt.my.linux.x64}-{product|fastdebug}-c2-jvm98_tiered, \
${jprt.my.linux.x64}-{product|fastdebug}-c2-scimark, \
${jprt.my.linux.x64}-{product|fastdebug}-c2-GCBasher_default, \
${jprt.my.linux.x64}-{product|fastdebug}-c2-GCBasher_SerialGC, \
@@ -302,12 +313,14 @@ jprt.my.linux.x64.test.targets = \
${jprt.my.linux.x64}-{product|fastdebug}-c2-GCOld_G1, \
${jprt.my.linux.x64}-{product|fastdebug}-c2-GCOld_ParOldGC, \
${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_default, \
+ ${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_default_tiered, \
${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_ParallelGC, \
${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_G1, \
${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_ParOldGC
jprt.my.windows.i586.test.targets = \
${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-jvm98, \
+ ${jprt.my.windows.i586}-{product|fastdebug}-c2-jvm98_tiered, \
${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-scimark, \
${jprt.my.windows.i586}-product-{c1|c2}-runThese, \
${jprt.my.windows.i586}-product-{c1|c2}-runThese_Xcomp, \
@@ -327,6 +340,7 @@ jprt.my.windows.i586.test.targets = \
${jprt.my.windows.i586}-product-{c1|c2}-GCOld_G1, \
${jprt.my.windows.i586}-product-{c1|c2}-GCOld_ParOldGC, \
${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-jbb_default, \
+ ${jprt.my.windows.i586}-{product|fastdebug}-c2-jbb_default_tiered, \
${jprt.my.windows.i586}-product-{c1|c2}-jbb_ParallelGC, \
${jprt.my.windows.i586}-product-{c1|c2}-jbb_CMS, \
${jprt.my.windows.i586}-product-{c1|c2}-jbb_G1, \
@@ -334,6 +348,7 @@ jprt.my.windows.i586.test.targets = \
jprt.my.windows.x64.test.targets = \
${jprt.my.windows.x64}-{product|fastdebug}-c2-jvm98, \
+ ${jprt.my.windows.x64}-{product|fastdebug}-c2-jvm98_tiered, \
${jprt.my.windows.x64}-{product|fastdebug}-c2-scimark, \
${jprt.my.windows.x64}-product-c2-runThese, \
${jprt.my.windows.x64}-product-c2-runThese_Xcomp, \
@@ -351,6 +366,7 @@ jprt.my.windows.x64.test.targets = \
${jprt.my.windows.x64}-{product|fastdebug}-c2-GCOld_G1, \
${jprt.my.windows.x64}-{product|fastdebug}-c2-GCOld_ParOldGC, \
${jprt.my.windows.x64}-{product|fastdebug}-c2-jbb_default, \
+ ${jprt.my.windows.x64}-{product|fastdebug}-c2-jbb_default_tiered, \
${jprt.my.windows.x64}-product-c2-jbb_CMS, \
${jprt.my.windows.x64}-product-c2-jbb_ParallelGC, \
${jprt.my.windows.x64}-product-c2-jbb_G1, \
diff --git a/hotspot/make/linux/Makefile b/hotspot/make/linux/Makefile
index 3187fb914b8..93d83ea2f81 100644
--- a/hotspot/make/linux/Makefile
+++ b/hotspot/make/linux/Makefile
@@ -62,7 +62,9 @@ endif
include $(GAMMADIR)/make/$(OSNAME)/makefiles/rules.make
ifndef CC_INTERP
-FORCE_TIERED=1
+ ifndef FORCE_TIERED
+ FORCE_TIERED=1
+ endif
endif
ifdef LP64
@@ -254,7 +256,7 @@ $(SUBDIRS_TIERED): $(BUILDTREE_MAKE)
$(BUILDTREE) VARIANT=tiered
$(SUBDIRS_C2): $(BUILDTREE_MAKE)
-ifdef FORCE_TIERED
+ifeq ($(FORCE_TIERED),1)
$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
$(BUILDTREE) VARIANT=tiered FORCE_TIERED=1
else
diff --git a/hotspot/make/linux/adlc_updater b/hotspot/make/linux/adlc_updater
index b54f783d6ee..6d31b792c05 100644
--- a/hotspot/make/linux/adlc_updater
+++ b/hotspot/make/linux/adlc_updater
@@ -15,5 +15,6 @@ fix_lines() {
' F2=$2
mv $1+ $1
}
-[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \
+fix_lines $2/$1 $3/$1
+[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
diff --git a/hotspot/make/linux/makefiles/adlc.make b/hotspot/make/linux/makefiles/adlc.make
index 35b7a89ccff..a4d2babb4b8 100644
--- a/hotspot/make/linux/makefiles/adlc.make
+++ b/hotspot/make/linux/makefiles/adlc.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
@@ -42,16 +42,14 @@ SOURCE.AD = $(OUTDIR)/$(OS)_$(Platform_arch_model).ad
SOURCES.AD = $(GAMMADIR)/src/cpu/$(ARCH)/vm/$(Platform_arch_model).ad \
$(GAMMADIR)/src/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad
-Src_Dirs += $(GAMMADIR)/src/share/vm/adlc
-
EXEC = $(OUTDIR)/adlc
# set VPATH so make knows where to look for source files
-Src_Dirs_V = ${Src_Dirs} $(GENERATED)/incls
-VPATH += $(Src_Dirs_V:%=%:)
+Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc
+VPATH += $(Src_Dirs_V:%=%:)
# set INCLUDES for C preprocessor
-Src_Dirs_I = ${Src_Dirs} $(GENERATED)
+Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED)
INCLUDES += $(Src_Dirs_I:%=-I%)
# set flags for adlc compilation
diff --git a/hotspot/make/linux/makefiles/amd64.make b/hotspot/make/linux/makefiles/amd64.make
index b6f1f2f18fc..ecdac17ee3a 100644
--- a/hotspot/make/linux/makefiles/amd64.make
+++ b/hotspot/make/linux/makefiles/amd64.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2010, 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,6 @@
#
#
-# Not included in includeDB because it has no dependencies
-Obj_Files += linux_x86_64.o
-
# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
diff --git a/hotspot/make/linux/makefiles/build_vm_def.sh b/hotspot/make/linux/makefiles/build_vm_def.sh
index 2b6f906eee8..fb9a0d57a78 100644
--- a/hotspot/make/linux/makefiles/build_vm_def.sh
+++ b/hotspot/make/linux/makefiles/build_vm_def.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# If we're cross compiling use that path for nm
-if [ "$ALT_COMPILER_PATH" != "" ]; then
+if [ "$CROSS_COMPILE_ARCH" != "" ]; then
NM=$ALT_COMPILER_PATH/nm
else
NM=nm
diff --git a/hotspot/make/linux/makefiles/buildtree.make b/hotspot/make/linux/makefiles/buildtree.make
index af34617f46c..4ba1f0e74b4 100644
--- a/hotspot/make/linux/makefiles/buildtree.make
+++ b/hotspot/make/linux/makefiles/buildtree.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -37,7 +37,7 @@
# OS_FAMILY - operating system
# VARIANT - core, compiler1, compiler2, or tiered
# HOTSPOT_RELEASE_VERSION - .-b (11.0-b07)
-# HOTSPOT_BUILD_VERSION - internal, PRTjob ID, JPRTjob ID
+# HOTSPOT_BUILD_VERSION - internal, internal-$(USER_RELEASE_SUFFIX) or empty
# JRE_RELEASE_VERSION - .. (1.7.0)
#
# Builds the directory trees with makefiles plus some convenience files in
@@ -113,7 +113,7 @@ endif
COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE))
SIMPLE_DIRS = \
- $(PLATFORM_DIR)/generated/incls \
+ $(PLATFORM_DIR)/generated/dependencies \
$(PLATFORM_DIR)/generated/adfiles \
$(PLATFORM_DIR)/generated/jvmtifiles
@@ -124,7 +124,7 @@ SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make sa.make \
- env.sh env.csh .dbxrc test_gamma
+ env.sh env.csh jdkpath.sh .dbxrc test_gamma
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
@@ -197,11 +197,27 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
echo; \
- echo "Src_Dirs = \\"; \
+ echo "# Used for platform dispatching"; \
+ echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
+ echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
+ echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \
+ echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \
+ echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \
+ echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \
+ echo "CFLAGS += \$$(TARGET_DEFINES)"; \
+ echo; \
+ echo "Src_Dirs_V = \\"; \
sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \
echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
+ echo; \
+ echo "Src_Dirs_I = \\"; \
+ echo "\$$(GAMMADIR)/src/share/vm \\"; \
+ echo "\$$(GAMMADIR)/src/share/vm/prims \\"; \
+ echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
+ echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
+ echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
[ -n "$(CFLAGS_BROWSE)" ] && \
echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
@@ -302,6 +318,13 @@ env.csh: env.sh
sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=/setenv \1 /p' $?; \
) > $@
+jdkpath.sh: $(BUILDTREE_MAKE)
+ @echo Creating $@ ...
+ $(QUIETLY) ( \
+ $(BUILDTREE_COMMENT); \
+ echo "JDK=${JAVA_HOME}"; \
+ ) > $@
+
.dbxrc: $(BUILDTREE_MAKE)
@echo Creating $@ ...
$(QUIETLY) ( \
diff --git a/hotspot/make/linux/makefiles/core.make b/hotspot/make/linux/makefiles/core.make
index eb662de79cb..e032d964f57 100644
--- a/hotspot/make/linux/makefiles/core.make
+++ b/hotspot/make/linux/makefiles/core.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
@@ -24,8 +24,7 @@
# Sets make macros for making core version of VM
-# Note the effect on includeDB lists in top.make:
-# includeDB_compiler* and ad_.*pp are excluded from the build,
+# Select which files to use (in top.make)
TYPE=CORE
# There is no "core" directory in JDK. Install core build in server directory.
diff --git a/hotspot/make/linux/makefiles/defs.make b/hotspot/make/linux/makefiles/defs.make
index 561f7f58107..88329a6f583 100644
--- a/hotspot/make/linux/makefiles/defs.make
+++ b/hotspot/make/linux/makefiles/defs.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2010, 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
diff --git a/hotspot/make/linux/makefiles/gcc.make b/hotspot/make/linux/makefiles/gcc.make
index 7107858f7d9..aa879b10fc3 100644
--- a/hotspot/make/linux/makefiles/gcc.make
+++ b/hotspot/make/linux/makefiles/gcc.make
@@ -25,7 +25,9 @@
#------------------------------------------------------------------------
# CC, CPP & AS
-ifdef ALT_COMPILER_PATH
+# When cross-compiling the ALT_COMPILER_PATH points
+# to the cross-compilation toolset
+ifdef CROSS_COMPILE_ARCH
CPP = $(ALT_COMPILER_PATH)/g++
CC = $(ALT_COMPILER_PATH)/gcc
else
@@ -42,9 +44,13 @@ CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
# check for precompiled headers support
ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0"
+# Allow the user to turn off precompiled headers from the command line.
+ifneq ($(USE_PRECOMPILED_HEADER),0)
USE_PRECOMPILED_HEADER=1
PRECOMPILED_HEADER_DIR=.
-PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch
+PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp
+PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch
+endif
endif
@@ -144,6 +150,16 @@ ifneq "$(shell expr \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) = 3 \) \)
OPT_CFLAGS/mulnode.o += -O0
endif
+# Flags for generating make dependency flags.
+ifneq ("${CC_VER_MAJOR}", "2")
+DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d)
+endif
+
+# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
+ifneq ($(USE_PRECOMPILED_HEADER),1)
+CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
+endif
+
#------------------------------------------------------------------------
# Linker flags
diff --git a/hotspot/make/linux/makefiles/i486.make b/hotspot/make/linux/makefiles/i486.make
index 6764e2d5d1f..86e825d3e9d 100644
--- a/hotspot/make/linux/makefiles/i486.make
+++ b/hotspot/make/linux/makefiles/i486.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
@@ -23,8 +23,6 @@
#
# TLS helper, assembled from .s file
-# Not included in includeDB because it has no dependencies
-Obj_Files += linux_x86_32.o
# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
diff --git a/hotspot/make/linux/makefiles/jvmti.make b/hotspot/make/linux/makefiles/jvmti.make
index 7694b1c9b15..43cdb9d8789 100644
--- a/hotspot/make/linux/makefiles/jvmti.make
+++ b/hotspot/make/linux/makefiles/jvmti.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2010, 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
@@ -37,11 +37,10 @@ JvmtiOutDir = $(GENERATED)/jvmtifiles
JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims
InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter
-Src_Dirs += $(JvmtiSrcDir)
# set VPATH so make knows where to look for source files
-Src_Dirs_V = ${Src_Dirs}
-VPATH += $(Src_Dirs_V:%=%:)
+Src_Dirs_V += $(JvmtiSrcDir)
+VPATH += $(Src_Dirs_V:%=%:)
JvmtiGeneratedNames = \
jvmtiEnv.hpp \
diff --git a/hotspot/make/linux/makefiles/launcher.make b/hotspot/make/linux/makefiles/launcher.make
index 52ba511aea9..d9e34406bcb 100644
--- a/hotspot/make/linux/makefiles/launcher.make
+++ b/hotspot/make/linux/makefiles/launcher.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -24,19 +24,23 @@
# Rules to build gamma launcher, used by vm.make
-# gamma[_g]: launcher
+LAUNCHER_SCRIPT = hotspot
LAUNCHER = gamma
-LAUNCHER_G = $(LAUNCHER)$(G_SUFFIX)
-LAUNCHERDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/launcher
-LAUNCHERFLAGS = $(ARCHFLAG) \
+LAUNCHERDIR := $(GAMMADIR)/src/os/posix/launcher
+LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
+LAUNCHERFLAGS := $(ARCHFLAG) \
-I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
+ -I$(LAUNCHERDIR_SHARE) \
-DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
+ -DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
+ -DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
-DARCH=\"$(LIBARCH)\" \
-DGAMMA \
-DLAUNCHER_TYPE=\"gamma\" \
- -DLINK_INTO_$(LINK_INTO)
+ -DLINK_INTO_$(LINK_INTO) \
+ $(TARGET_DEFINES)
ifeq ($(LINK_INTO),AOUT)
LAUNCHER.o = launcher.o $(JVM_OBJ_FILES)
@@ -55,22 +59,35 @@ LINK_LAUNCHER = $(LINK.c)
LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK)
LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
-launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c
- $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS)
+LAUNCHER_OUT = launcher
-launcher.c:
- @echo Generating $@
- $(QUIETLY) { \
- echo '#define debug launcher_debug'; \
- echo '#include "java.c"'; \
- echo '#include "java_md.c"'; \
- } > $@
+SUFFIXES += .d
+
+SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
+SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
+
+OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
+
+DEPFILES := $(patsubst %.o,%.d,$(OBJS))
+-include $(DEPFILES)
+
+$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
+ $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
+ $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
+
+$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
+ $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
+ $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
+
+$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
+ $(QUIETLY) echo Linking launcher...
+ $(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK)
+ $(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(OBJS) $(LIBS_LAUNCHER)
+ $(QUIETLY) $(LINK_LAUNCHER/POST_HOOK)
+
+$(LAUNCHER): $(LAUNCHER_SCRIPT)
+
+$(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script
+ $(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@
+ $(QUIETLY) chmod +x $@
-$(LAUNCHER): $(LAUNCHER.o) $(LIBJVM) $(LAUNCHER_MAPFILE)
- $(QUIETLY) { \
- echo Linking launcher...; \
- $(LINK_LAUNCHER/PRE_HOOK) \
- $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(LAUNCHER.o) $(LIBS_LAUNCHER); \
- $(LINK_LAUNCHER/POST_HOOK) \
- [ -f $(LAUNCHER_G) ] || { ln -s $@ $(LAUNCHER_G); }; \
- }
diff --git a/hotspot/make/linux/makefiles/mapfile-vers-debug b/hotspot/make/linux/makefiles/mapfile-vers-debug
index edd213ea194..a7ba4583ee9 100644
--- a/hotspot/make/linux/makefiles/mapfile-vers-debug
+++ b/hotspot/make/linux/makefiles/mapfile-vers-debug
@@ -3,7 +3,7 @@
#
#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2010, 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
diff --git a/hotspot/make/linux/makefiles/mapfile-vers-product b/hotspot/make/linux/makefiles/mapfile-vers-product
index 4cc8f15735d..7f7e279aa2f 100644
--- a/hotspot/make/linux/makefiles/mapfile-vers-product
+++ b/hotspot/make/linux/makefiles/mapfile-vers-product
@@ -3,7 +3,7 @@
#
#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2010, 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
diff --git a/hotspot/make/linux/makefiles/product.make b/hotspot/make/linux/makefiles/product.make
index ff768b6a6bd..379685f5f51 100644
--- a/hotspot/make/linux/makefiles/product.make
+++ b/hotspot/make/linux/makefiles/product.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
diff --git a/hotspot/make/linux/makefiles/rules.make b/hotspot/make/linux/makefiles/rules.make
index 73f2eb44d7e..4ce9e3db872 100644
--- a/hotspot/make/linux/makefiles/rules.make
+++ b/hotspot/make/linux/makefiles/rules.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2010, 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
@@ -151,20 +151,20 @@ ifdef LP64
%.o: %.cpp
@echo Compiling $<
$(QUIETLY) $(REMOVE_TARGET)
- $(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
+ $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
else
%.o: %.cpp
@echo Compiling $<
$(QUIETLY) $(REMOVE_TARGET)
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
- $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \
- $(COMPILE.CC) -o $@ $< $(COMPILE_DONE))
+ $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
+ $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
endif
%.o: %.s
@echo Assembling $<
$(QUIETLY) $(REMOVE_TARGET)
- $(QUIETLY) $(AS.S) -o $@ $< $(COMPILE_DONE)
+ $(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
%.s: %.cpp
@echo Generating assembly for $<
diff --git a/hotspot/make/linux/makefiles/saproc.make b/hotspot/make/linux/makefiles/saproc.make
index bc4fc66c5fa..68ec2378ad4 100644
--- a/hotspot/make/linux/makefiles/saproc.make
+++ b/hotspot/make/linux/makefiles/saproc.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -55,10 +55,12 @@ endif
# if $(AGENT_DIR) does not exist, we don't build SA
# also, we don't build SA on Itanium, PPC, ARM or zero.
-checkAndBuildSA:
- $(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "arm" -a "$(SRCARCH)" != "ppc" -a "$(SRCARCH)" != "zero" ] ; then \
- $(MAKE) -f vm.make $(LIBSAPROC); \
- fi
+ifneq ($(wildcard $(AGENT_DIR)),)
+ifneq ($(filter-out ia64 arm ppc zero,$(SRCARCH)),)
+ BUILDLIBSAPROC = $(LIBSAPROC)
+endif
+endif
+
SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
@@ -81,10 +83,10 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
-lthread_db
$(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); }
-install_saproc: checkAndBuildSA
+install_saproc: $(BUILDLIBSAPROC)
$(QUIETLY) if [ -e $(LIBSAPROC) ] ; then \
echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \
cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \
fi
-.PHONY: checkAndBuildSA install_saproc
+.PHONY: install_saproc
diff --git a/hotspot/make/linux/makefiles/shark.make b/hotspot/make/linux/makefiles/shark.make
index f767a805039..ca702ee6616 100644
--- a/hotspot/make/linux/makefiles/shark.make
+++ b/hotspot/make/linux/makefiles/shark.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright 2008, 2010 Red Hat, Inc.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
diff --git a/hotspot/make/linux/makefiles/sparc.make b/hotspot/make/linux/makefiles/sparc.make
index ef5b122eab4..ddb05132fab 100644
--- a/hotspot/make/linux/makefiles/sparc.make
+++ b/hotspot/make/linux/makefiles/sparc.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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,6 +22,3 @@
#
#
-# Not included in includeDB because it has no dependencies
-Obj_Files += linux_sparc.o
-
diff --git a/hotspot/make/linux/makefiles/sparcWorks.make b/hotspot/make/linux/makefiles/sparcWorks.make
index 900c7ddea00..77076fff16c 100644
--- a/hotspot/make/linux/makefiles/sparcWorks.make
+++ b/hotspot/make/linux/makefiles/sparcWorks.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
@@ -74,6 +74,14 @@ CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@))
OPT_CFLAGS+=-xO4
OPT_CFLAGS/NOOPT=-xO0
+# Flags for creating the dependency files.
+ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
+DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d)
+endif
+
+# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
+CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
+
#------------------------------------------------------------------------
# Linker flags
diff --git a/hotspot/make/linux/makefiles/sparcv9.make b/hotspot/make/linux/makefiles/sparcv9.make
index 8687dfb4bb1..b9e4e525d76 100644
--- a/hotspot/make/linux/makefiles/sparcv9.make
+++ b/hotspot/make/linux/makefiles/sparcv9.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -21,10 +21,6 @@
# questions.
#
-#
-# Not included in includeDB because it has no dependencies
-Obj_Files += linux_sparc.o
-
# gcc 4.0 miscompiles this code in -m64
OPT_CFLAGS/macro.o = -O0
diff --git a/hotspot/make/linux/makefiles/top.make b/hotspot/make/linux/makefiles/top.make
index c9988f6aba7..db9224fc215 100644
--- a/hotspot/make/linux/makefiles/top.make
+++ b/hotspot/make/linux/makefiles/top.make
@@ -31,7 +31,7 @@
# -generate sa-jdi.jar (JDI binding to core files)
# It assumes the following flags are set:
-# CFLAGS Platform_file, Src_Dirs, SYSDEFS, AOUT, Obj_Files
+# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Obj_Files
# -- D. Ungar (5/97) from a file by Bill Bush
@@ -45,10 +45,6 @@ VM = $(GAMMADIR)/src/share/vm
Plat_File = $(Platform_file)
CDG = cd $(GENERATED);
-# Pick up MakeDeps' sources and definitions
-include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/makedeps.make
-MakeDepsClass = MakeDeps.class
-
ifdef USE_PRECOMPILED_HEADER
PrecompiledOption = -DUSE_PRECOMPILED_HEADER
UpdatePCH = $(MAKE) -f vm.make $(PRECOMPILED_HEADER) $(MFLAGS)
@@ -57,33 +53,7 @@ UpdatePCH = \# precompiled header is not used
PrecompiledOption =
endif
-MakeDeps = $(RUN.JAVA) $(PrecompiledOption) -classpath $(GENERATED) MakeDeps
-
-Include_DBs/GC = $(VM)/includeDB_gc \
- $(VM)/includeDB_gc_parallel \
- $(VM)/gc_implementation/includeDB_gc_parallelScavenge \
- $(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \
- $(VM)/gc_implementation/includeDB_gc_parNew \
- $(VM)/gc_implementation/includeDB_gc_g1 \
- $(VM)/gc_implementation/includeDB_gc_serial \
- $(VM)/gc_implementation/includeDB_gc_shared
-
-Include_DBs/CORE = $(VM)/includeDB_core $(Include_DBs/GC) \
- $(VM)/includeDB_jvmti \
- $(VM)/includeDB_features
-Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1
-Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2
-Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 $(VM)/includeDB_compiler2
-Include_DBs/ZERO = $(Include_DBs/CORE) $(VM)/includeDB_zero
-Include_DBs/SHARK = $(Include_DBs/ZERO) $(VM)/includeDB_shark
-Include_DBs = $(Include_DBs/$(TYPE))
-
Cached_plat = $(GENERATED)/platform.current
-Cached_db = $(GENERATED)/includeDB.current
-
-Incremental_Lists = $(Cached_db)
-# list generation also creates $(GENERATED)/$(Cached_plat)
-
AD_Dir = $(GENERATED)/adfiles
ADLC = $(AD_Dir)/adlc
@@ -102,7 +72,7 @@ adjust-mflags = $(GENERATED)/adjust-mflags
MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"`
-# default target: make makeDeps, update lists, make vm
+# default target: update lists, make vm
# done in stages to force sequential order with parallel make
#
@@ -110,39 +80,18 @@ default: vm_build_preliminaries the_vm
@echo All done.
# This is an explicit dependency for the sake of parallel makes.
-vm_build_preliminaries: checks $(Incremental_Lists) $(AD_Files_If_Required) jvmti_stuff sa_stuff
+vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff
@# We need a null action here, so implicit rules don't get consulted.
-# make makeDeps: (and zap the cached db files to force a nonincremental run)
-
-$(GENERATED)/$(MakeDepsClass): $(MakeDepsSources)
- @$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources)
- @echo Removing $(Incremental_Lists) to force regeneration.
- @rm -f $(Incremental_Lists)
- @$(CDG) echo >$(Cached_plat)
-
-# make incremental_lists, if cached files out of date, run makeDeps
-
-$(Incremental_Lists): $(Include_DBs) $(Plat_File) $(GENERATED)/$(MakeDepsClass)
- $(CDG) cat $(Include_DBs) > $(GENERATED)/includeDB
- $(CDG) if [ ! -r incls ] ; then \
- mkdir incls ; \
- fi
- $(CDG) (echo $(CDG) echo $(MakeDeps) diffs UnixPlatform $(Cached_plat) $(Cached_db) $(Plat_File) $(GENERATED)/includeDB $(MakeDepsOptions)) > makeDeps.sh
- $(CDG) $(REMOTE) sh $(GENERATED)/makeDeps.sh
- $(CDG) cp includeDB $(Cached_db)
+$(Cached_plat): $(Plat_File)
$(CDG) cp $(Plat_File) $(Cached_plat)
-# symbolic target for command lines
-lists: $(Incremental_Lists)
- @: lists are now up to date
-
# make AD files as necessary
-ad_stuff: $(Incremental_Lists) $(adjust-mflags)
+ad_stuff: $(Cached_plat) $(adjust-mflags)
@$(MAKE) -f adlc.make $(MFLAGS-adjusted)
# generate JVMTI files from the spec
-jvmti_stuff: $(Incremental_Lists) $(adjust-mflags)
+jvmti_stuff: $(Cached_plat) $(adjust-mflags)
@$(MAKE) -f jvmti.make $(MFLAGS-adjusted)
# generate SA jar files and native header
@@ -169,7 +118,7 @@ the_vm: vm_build_preliminaries $(adjust-mflags)
install: the_vm
@$(MAKE) -f vm.make install
-# next rules support "make foo.[oi]"
+# next rules support "make foo.[ois]"
%.o %.i %.s:
$(UpdatePCH)
@@ -179,7 +128,6 @@ install: the_vm
# this should force everything to be rebuilt
clean:
rm -f $(GENERATED)/*.class
- $(MAKE) $(MFLAGS) $(GENERATED)/$(MakeDepsClass)
$(MAKE) -f vm.make $(MFLAGS) clean
# just in case it doesn't, this should do it
diff --git a/hotspot/make/linux/makefiles/vm.make b/hotspot/make/linux/makefiles/vm.make
index 92add561f09..653da7de6a7 100644
--- a/hotspot/make/linux/makefiles/vm.make
+++ b/hotspot/make/linux/makefiles/vm.make
@@ -35,9 +35,10 @@ default: build
# Defs
GENERATED = ../generated
+DEP_DIR = $(GENERATED)/dependencies
-# read a generated file defining the set of .o's and the .o .h dependencies
-include $(GENERATED)/Dependencies
+# reads the generated files defining the set of .o's and the .o .h dependencies
+-include $(DEP_DIR)/*.d
# read machine-specific adjustments (%%% should do this via buildtree.make?)
ifeq ($(ZERO_BUILD), true)
@@ -47,16 +48,16 @@ else
endif
# set VPATH so make knows where to look for source files
-# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
-# The incls directory contains generated header file lists for inclusion.
+# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
# The adfiles directory contains ad_.[ch]pp.
# The jvmtifiles directory contains jvmti*.[ch]pp
-Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls
-VPATH += $(Src_Dirs_V:%=%:)
+Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles
+VPATH += $(Src_Dirs_V:%=%:)
-# set INCLUDES for C preprocessor
-Src_Dirs_I = $(PRECOMPILED_HEADER_DIR) $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)
-INCLUDES += $(Src_Dirs_I:%=-I%)
+# set INCLUDES for C preprocessor.
+Src_Dirs_I += $(GENERATED)
+# The order is important for the precompiled headers to work.
+INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
ifeq (${VERSION}, debug)
SYMFLAG = -g
@@ -118,6 +119,64 @@ JVM = jvm
LIBJVM = lib$(JVM).so
LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
+CORE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \))
+CORE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm
+CORE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm
+CORE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm
+CORE_PATHS += $(GENERATED)/jvmtifiles
+
+COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1
+
+COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto
+COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt
+COMPILER2_PATHS += $(GENERATED)/adfiles
+
+# Include dirs per type.
+Src_Dirs/CORE := $(CORE_PATHS)
+Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS)
+Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS)
+Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS)
+Src_Dirs/ZERO := $(CORE_PATHS)
+Src_Dirs/SHARK := $(CORE_PATHS)
+Src_Dirs := $(Src_Dirs/$(TYPE))
+
+COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\*
+COMPILER1_SPECIFIC_FILES := c1_\*
+SHARK_SPECIFIC_FILES := shark
+ZERO_SPECIFIC_FILES := zero
+
+# Always exclude these.
+Src_Files_EXCLUDE := jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp
+
+# Exclude per type.
+Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
+Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
+Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES)
+
+Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE))
+
+# Special handling of arch model.
+ifeq ($(Platform_arch_model), x86_32)
+Src_Files_EXCLUDE += \*x86_64\*
+endif
+ifeq ($(Platform_arch_model), x86_64)
+Src_Files_EXCLUDE += \*x86_32\*
+endif
+
+# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
+define findsrc
+ $(notdir $(shell find $(1)/. ! -name . -prune \
+ -a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
+ -a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \)))
+endef
+
+Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e)))
+
+Obj_Files = $(sort $(addsuffix .o,$(basename $(Src_Files))))
+
JVM_OBJ_FILES = $(Obj_Files)
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
@@ -180,10 +239,10 @@ endif
LINK_VM = $(LINK_LIB.c)
# rule for building precompiled header
-$(PRECOMPILED_HEADER): $(Precompiled_Files)
+$(PRECOMPILED_HEADER):
$(QUIETLY) echo Generating precompiled header $@
- $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)/incls
- $(QUIETLY) $(COMPILE.CC) -x c++-header -c $(GENERATED)/incls/_precompiled.incl -o $@ $(COMPILE_DONE)
+ $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
+ $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
# making the library:
@@ -252,7 +311,7 @@ include $(MAKEFILES_DIR)/saproc.make
#----------------------------------------------------------------------
-build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) checkAndBuildSA
+build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
install: install_jvm install_jsig install_saproc
diff --git a/hotspot/make/linux/makefiles/zero.make b/hotspot/make/linux/makefiles/zero.make
index 6de6d0e6374..0270711f5cb 100644
--- a/hotspot/make/linux/makefiles/zero.make
+++ b/hotspot/make/linux/makefiles/zero.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright 2009 Red Hat, Inc.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
@@ -25,7 +25,7 @@
# Setup for Zero (non-Shark) version of VM
-# Select which includeDB files to use (in top.make)
+# Select which files to use (in top.make)
TYPE = ZERO
# Install libjvm.so, etc in in server directory.
diff --git a/hotspot/make/solaris/Makefile b/hotspot/make/solaris/Makefile
index 622ddd1f884..d4bcb90f57a 100644
--- a/hotspot/make/solaris/Makefile
+++ b/hotspot/make/solaris/Makefile
@@ -53,7 +53,9 @@ endif
include $(GAMMADIR)/make/$(OSNAME)/makefiles/rules.make
ifndef CC_INTERP
-FORCE_TIERED=1
+ ifndef FORCE_TIERED
+ FORCE_TIERED=1
+ endif
endif
ifdef LP64
@@ -210,7 +212,7 @@ $(SUBDIRS_TIERED): $(BUILDTREE_MAKE)
$(BUILDTREE) VARIANT=tiered
$(SUBDIRS_C2): $(BUILDTREE_MAKE)
-ifdef FORCE_TIERED
+ifeq ($(FORCE_TIERED),1)
$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
$(BUILDTREE) VARIANT=tiered FORCE_TIERED=1
else
diff --git a/hotspot/make/solaris/adlc_updater b/hotspot/make/solaris/adlc_updater
index b54f783d6ee..6d31b792c05 100644
--- a/hotspot/make/solaris/adlc_updater
+++ b/hotspot/make/solaris/adlc_updater
@@ -15,5 +15,6 @@ fix_lines() {
' F2=$2
mv $1+ $1
}
-[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \
+fix_lines $2/$1 $3/$1
+[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
diff --git a/hotspot/make/solaris/makefiles/adlc.make b/hotspot/make/solaris/makefiles/adlc.make
index 35cce4b99cf..7fc55b9d39e 100644
--- a/hotspot/make/solaris/makefiles/adlc.make
+++ b/hotspot/make/solaris/makefiles/adlc.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2010, 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
@@ -42,16 +42,14 @@ SOURCE.AD = $(OUTDIR)/$(OS)_$(Platform_arch_model).ad
SOURCES.AD = $(GAMMADIR)/src/cpu/$(ARCH)/vm/$(Platform_arch_model).ad \
$(GAMMADIR)/src/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad
-Src_Dirs += $(GAMMADIR)/src/share/vm/adlc
-
EXEC = $(OUTDIR)/adlc
# set VPATH so make knows where to look for source files
-Src_Dirs_V = ${Src_Dirs} $(GENERATED)/incls
-VPATH += $(Src_Dirs_V:%=%:)
+Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc
+VPATH += $(Src_Dirs_V:%=%:)
# set INCLUDES for C preprocessor
-Src_Dirs_I = ${Src_Dirs} $(GENERATED)
+Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED)
INCLUDES += $(Src_Dirs_I:%=-I%)
# set flags for adlc compilation
diff --git a/hotspot/make/solaris/makefiles/amd64.make b/hotspot/make/solaris/makefiles/amd64.make
index d9ca84a6e67..f88d743fe7c 100644
--- a/hotspot/make/solaris/makefiles/amd64.make
+++ b/hotspot/make/solaris/makefiles/amd64.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2010, 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,9 +25,6 @@
# Must also specify if CPU is little endian
CFLAGS += -DVM_LITTLE_ENDIAN
-# Not included in includeDB because it has no dependencies
-Obj_Files += solaris_x86_64.o
-
#
# Special case flags for compilers and compiler versions on amd64.
#
@@ -35,7 +32,8 @@ ifeq ("${Platform_compiler}", "sparcWorks")
# Temporary until SS10 C++ compiler is fixed
OPT_CFLAGS/generateOptoStub.o = -xO2
-
+# Temporary util SS12u1 C++ compiler is fixed
+OPT_CFLAGS/c1_LinearScan.o = -xO2
else
ifeq ("${Platform_compiler}", "gcc")
diff --git a/hotspot/make/solaris/makefiles/buildtree.make b/hotspot/make/solaris/makefiles/buildtree.make
index a505963a252..08224ef1103 100644
--- a/hotspot/make/solaris/makefiles/buildtree.make
+++ b/hotspot/make/solaris/makefiles/buildtree.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2010, 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
@@ -37,7 +37,7 @@
# OS_FAMILY - operating system
# VARIANT - core, compiler1, compiler2, or tiered
# HOTSPOT_RELEASE_VERSION - .-b (11.0-b07)
-# HOTSPOT_BUILD_VERSION - internal, PRTjob ID, JPRTjob ID
+# HOTSPOT_BUILD_VERSION - internal, internal-$(USER_RELEASE_SUFFIX) or empty
# JRE_RELEASE_VERSION - .. (1.7.0)
#
# Builds the directory trees with makefiles plus some convenience files in
@@ -61,7 +61,7 @@ include $(GAMMADIR)/make/scm.make
QUIETLY$(MAKE_VERBOSE) = @
# For now, until the compiler is less wobbly:
-TESTFLAGS = -Xbatch -showversion
+TESTFLAGS = -Xbatch -Xmx32m -showversion
### maye ARCH_XXX instead?
ifdef USE_GCC
@@ -106,7 +106,7 @@ endif
COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE))
SIMPLE_DIRS = \
- $(PLATFORM_DIR)/generated/incls \
+ $(PLATFORM_DIR)/generated/dependencies \
$(PLATFORM_DIR)/generated/adfiles \
$(PLATFORM_DIR)/generated/jvmtifiles
@@ -117,7 +117,7 @@ SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make sa.make \
- env.ksh env.csh .dbxrc test_gamma
+ env.ksh env.csh jdkpath.sh .dbxrc test_gamma
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
@@ -191,11 +191,27 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
echo "$(LP64_SETTING/$(DATA_MODE))"; \
echo; \
- echo "Src_Dirs = \\"; \
+ echo "# Used for platform dispatching"; \
+ echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
+ echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
+ echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \
+ echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \
+ echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \
+ echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \
+ echo "CFLAGS += \$$(TARGET_DEFINES)"; \
+ echo; \
+ echo "Src_Dirs_V = \\"; \
sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \
echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
+ echo; \
+ echo "Src_Dirs_I = \\"; \
+ echo "\$$(GAMMADIR)/src/share/vm \\"; \
+ echo "\$$(GAMMADIR)/src/share/vm/prims \\"; \
+ echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
+ echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
+ echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
[ -n "$(CFLAGS_BROWSE)" ] && \
echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
@@ -298,6 +314,13 @@ env.csh: env.ksh
sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=/setenv \1 /p' $?; \
) > $@
+jdkpath.sh: $(BUILDTREE_MAKE)
+ @echo Creating $@ ...
+ $(QUIETLY) ( \
+ $(BUILDTREE_COMMENT); \
+ echo "JDK=${JAVA_HOME}"; \
+ ) > $@
+
.dbxrc: $(BUILDTREE_MAKE)
@echo Creating $@ ...
$(QUIETLY) ( \
diff --git a/hotspot/make/solaris/makefiles/core.make b/hotspot/make/solaris/makefiles/core.make
index 66d73b6618d..64400556fcc 100644
--- a/hotspot/make/solaris/makefiles/core.make
+++ b/hotspot/make/solaris/makefiles/core.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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
@@ -24,8 +24,7 @@
# Sets make macros for making core version of VM
-# Note the effect on includeDB lists in top.make:
-# includeDB_compiler* and ad_.*pp are excluded from the build,
+# Select which files to use (in top.make)
TYPE=CORE
# There is no "core" directory in JDK. Install core build in server directory.
diff --git a/hotspot/make/solaris/makefiles/defs.make b/hotspot/make/solaris/makefiles/defs.make
index 637b3b49c54..6fc596404d1 100644
--- a/hotspot/make/solaris/makefiles/defs.make
+++ b/hotspot/make/solaris/makefiles/defs.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2010, 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
diff --git a/hotspot/make/solaris/makefiles/dtrace.make b/hotspot/make/solaris/makefiles/dtrace.make
index 2338c01099d..8b750858cd3 100644
--- a/hotspot/make/solaris/makefiles/dtrace.make
+++ b/hotspot/make/solaris/makefiles/dtrace.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -63,8 +63,6 @@ endif
# making libjvm_db
-INCLS = $(GENERATED)/incls
-
# Use mapfile with libjvm_db.so
LIBJVM_DB_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jvm_db
LFLAGS_JVM_DB += $(MAPFLAG:FILENAME=$(LIBJVM_DB_MAPFILE))
@@ -114,7 +112,7 @@ LFLAGS_GENOFFS += -mt -xnolib -norunpath
endif
lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
- $(INCLS)/_vmStructs.cpp.incl $(LIBJVM.o)
+ $(LIBJVM.o)
$(QUIETLY) $(CCC) $(CPPFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
$(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc
@@ -161,6 +159,27 @@ $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \
$(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d
$(QUIETLY) cat $^ > $@
+DTraced_Files = ciEnv.o \
+ classLoadingService.o \
+ compileBroker.o \
+ hashtable.o \
+ instanceKlass.o \
+ java.o \
+ jni.o \
+ jvm.o \
+ memoryManager.o \
+ nmethod.o \
+ objectMonitor.o \
+ runtimeService.o \
+ sharedRuntime.o \
+ synchronizer.o \
+ thread.o \
+ unsafe.o \
+ vmThread.o \
+ vmCMSOperations.o \
+ vmPSOperations.o \
+ vmGCOperations.o \
+
# Dtrace is available, so we build $(DTRACE.o)
$(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files)
@echo Compiling $(DTRACE).d
diff --git a/hotspot/make/solaris/makefiles/fastdebug.make b/hotspot/make/solaris/makefiles/fastdebug.make
index 3537b3ab06e..1a033f0cba4 100644
--- a/hotspot/make/solaris/makefiles/fastdebug.make
+++ b/hotspot/make/solaris/makefiles/fastdebug.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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
diff --git a/hotspot/make/solaris/makefiles/gcc.make b/hotspot/make/solaris/makefiles/gcc.make
index 0bbba240498..b0cdfc9a231 100644
--- a/hotspot/make/solaris/makefiles/gcc.make
+++ b/hotspot/make/solaris/makefiles/gcc.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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
@@ -47,9 +47,13 @@ $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
# check for precompiled headers support
ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0"
+# Allow the user to turn off precompiled headers from the command line.
+ifneq ($(USE_PRECOMPILED_HEADER),0)
USE_PRECOMPILED_HEADER=1
PRECOMPILED_HEADER_DIR=.
-PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch
+PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp
+PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch
+endif
endif
@@ -131,6 +135,17 @@ OPT_CFLAGS/bytecodeInterpreter.o += -fno-expensive-optimizations
endif
OPT_CFLAGS/NOOPT=-O0
+
+# Flags for generating make dependency flags.
+ifneq ("${CC_VER_MAJOR}", "2")
+DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d)
+endif
+
+# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
+ifneq ($(USE_PRECOMPILED_HEADER),1)
+CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
+endif
+
#------------------------------------------------------------------------
# Linker flags
diff --git a/hotspot/make/solaris/makefiles/i486.make b/hotspot/make/solaris/makefiles/i486.make
index c5c15035e67..c2e6ff8395a 100644
--- a/hotspot/make/solaris/makefiles/i486.make
+++ b/hotspot/make/solaris/makefiles/i486.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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
@@ -26,8 +26,6 @@
CFLAGS += -DVM_LITTLE_ENDIAN
# TLS helper, assembled from .s file
-# Not included in includeDB because it has no dependencies
-Obj_Files += solaris_x86_32.o
#
# Special case flags for compilers and compiler versions on i486.
diff --git a/hotspot/make/solaris/makefiles/jvmti.make b/hotspot/make/solaris/makefiles/jvmti.make
index 08b4f0edfb4..be07e0546bc 100644
--- a/hotspot/make/solaris/makefiles/jvmti.make
+++ b/hotspot/make/solaris/makefiles/jvmti.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2010, 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
@@ -36,11 +36,10 @@ JvmtiOutDir = $(GENERATED)/jvmtifiles
JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims
InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter
-Src_Dirs += $(JvmtiSrcDir)
# set VPATH so make knows where to look for source files
-Src_Dirs_V = ${Src_Dirs}
-VPATH += $(Src_Dirs_V:%=%:)
+Src_Dirs_V += $(JvmtiSrcDir)
+VPATH += $(Src_Dirs_V:%=%:)
JvmtiGeneratedNames = \
jvmtiEnv.hpp \
diff --git a/hotspot/make/solaris/makefiles/launcher.make b/hotspot/make/solaris/makefiles/launcher.make
index 0051fd9892b..e0a2ee31640 100644
--- a/hotspot/make/solaris/makefiles/launcher.make
+++ b/hotspot/make/solaris/makefiles/launcher.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -24,18 +24,22 @@
# Rules to build gamma launcher, used by vm.make
-# gamma[_g]: launcher
+LAUNCHER_SCRIPT = hotspot
LAUNCHER = gamma
-LAUNCHER_G = $(LAUNCHER)$(G_SUFFIX)
-LAUNCHERDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/launcher
+LAUNCHERDIR = $(GAMMADIR)/src/os/posix/launcher
+LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
LAUNCHERFLAGS = $(ARCHFLAG) \
-I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
+ -I$(LAUNCHERDIR_SHARE) \
-DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
+ -DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
+ -DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
-DARCH=\"$(LIBARCH)\" \
-DGAMMA \
-DLAUNCHER_TYPE=\"gamma\" \
- -DLINK_INTO_$(LINK_INTO)
+ -DLINK_INTO_$(LINK_INTO) \
+ $(TARGET_DEFINES)
ifeq ($(LINK_INTO),AOUT)
LAUNCHER.o = launcher.o $(JVM_OBJ_FILES)
@@ -68,24 +72,37 @@ ifeq ("${Platform_compiler}", "sparcWorks")
#LAUNCHERFLAGS += -W0,-noglobal
endif # Platform_compiler == sparcWorks
-launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c
- $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS)
+LAUNCHER_OUT = launcher
-launcher.c:
- @echo Generating $@
- $(QUIETLY) { \
- echo '#define debug launcher_debug'; \
- echo '#include "java.c"'; \
- echo '#include "java_md.c"'; \
- } > $@
+SUFFIXES += .d
-$(LAUNCHER): $(LAUNCHER.o) $(LIBJVM) $(LAUNCHER_MAPFILE)
+SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
+SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
+
+OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
+
+DEPFILES := $(patsubst %.o,%.d,$(OBJS))
+-include $(DEPFILES)
+
+$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
+ $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
+ $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
+
+$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
+ $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
+ $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
+
+$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
- @echo Linking launcher...
+ $(QUIETLY) echo Linking launcher...
$(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK)
- $(QUIETLY) \
- $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(LAUNCHER.o) $(LIBS_LAUNCHER)
+ $(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(OBJS) $(LIBS_LAUNCHER)
$(QUIETLY) $(LINK_LAUNCHER/POST_HOOK)
- [ -f $(LAUNCHER_G) ] || ln -s $@ $(LAUNCHER_G)
endif # filter -sbfast -xsbfast
+$(LAUNCHER): $(LAUNCHER_SCRIPT)
+
+$(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script
+ $(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@
+ $(QUIETLY) chmod +x $@
+
diff --git a/hotspot/make/solaris/makefiles/optimized.make b/hotspot/make/solaris/makefiles/optimized.make
index 9cf8543233e..563bd4c4a09 100644
--- a/hotspot/make/solaris/makefiles/optimized.make
+++ b/hotspot/make/solaris/makefiles/optimized.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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
diff --git a/hotspot/make/solaris/makefiles/product.make b/hotspot/make/solaris/makefiles/product.make
index daf335cf332..e6ebeea7580 100644
--- a/hotspot/make/solaris/makefiles/product.make
+++ b/hotspot/make/solaris/makefiles/product.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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
diff --git a/hotspot/make/solaris/makefiles/reorder_COMPILER1_i486 b/hotspot/make/solaris/makefiles/reorder_COMPILER1_i486
index e920dcefec7..47553eb36cc 100644
--- a/hotspot/make/solaris/makefiles/reorder_COMPILER1_i486
+++ b/hotspot/make/solaris/makefiles/reorder_COMPILER1_i486
@@ -18,7 +18,6 @@ text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compilationPolicy.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: fprofiler.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: genCollectedHeap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: generateOopMap.o;
text: .text%__1cNCellTypeStateLmake_bottom6F_0_: generateOopMap.o;
text: .text%__1cNCellTypeStateImake_any6Fi_0_: generateOopMap.o;
@@ -34,23 +33,15 @@ text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiTagMap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: management.o;
text: .text%__1cJTimeStamp2t6M_v_: management.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: markSweep.o;
-text: .text%__1cJMarkSweepSMarkAndPushClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepRFollowRootClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepSFollowStackClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepOIsAliveClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepQKeepAliveClosure2t6M_v_: markSweep.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: memoryService.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
-text: .text%__1cQDoNothingClosure2t6M_v_: oopMap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: parGCAllocBuffer.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psMarkSweep.o;
-text: .text%__1cTPSAlwaysTrueClosure2t6M_v_: psMarkSweep.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psScavenge.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: relocInfo.o;
text: .text%__1cQRelocationHolder2t6M_v_: relocInfo.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: runtimeService.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: sharedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: sharedHeap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vmStructs.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vm_version.o;
text: .text%__1cTAbstract_VM_VersionKvm_release6F_pkc_;
@@ -94,7 +85,6 @@ text: .text%__1cCosXnon_memory_address_word6F_pc_;
text: .text%__1cCosHSolarisOlibthread_init6F_v_;
text: .text%__1cRlwp_priocntl_init6F_i_: os_solaris.o;
text: .text%__1cNpriocntl_stub6FinGidtype_lipc_l_: os_solaris.o;
-text: .text%__1cOresolve_symbol6Fpkc_pC_: os_solaris.o;
text: .text%__1cCosHSolarisQsignal_sets_init6F_v_;
text: .text%__1cCosHSolarisPinit_signal_mem6F_v_;
text: .text%__1cCosHSolarisXinstall_signal_handlers6F_v_;
@@ -107,7 +97,6 @@ text: .text%__1cSThreadLocalStorageEinit6F_v_;
text: .text%__1cSThreadLocalStorageHpd_init6F_v_;
text: .text%__1cCosbDallocate_thread_local_storage6F_i_;
text: .text%__1cSThreadLocalStoragebCgenerate_code_for_get_thread6F_v_;
-text: .text%__1cRAllocateTLSOffset6F_v_: threadLS_solaris_x86.o;
text: .text%__1cPvm_init_globals6F_v_;
text: .text%__1cScheck_ThreadShadow6F_v_;
text: .text%__1cNeventlog_init6F_v_;
@@ -119,17 +108,8 @@ text: .text%__1cPperfMemory_init6F_v_;
text: .text%__1cKPerfMemoryKinitialize6F_v_;
text: .text%__1cCosZvm_allocation_granularity6F_i_;
text: .text%__1cKPerfMemoryUcreate_memory_region6FI_v_;
-text: .text%__1cUcreate_shared_memory6FI_pc_: perfMemory_solaris.o;
-text: .text%__1cSmmap_create_shared6FI_pc_: perfMemory_solaris.o;
text: .text%__1cCosScurrent_process_id6F_i_;
-text: .text%__1cNget_user_name6Fl_pc_: perfMemory_solaris.o;
-text: .text%__1cQget_user_tmp_dir6Fpkc_pc_: perfMemory_solaris.o;
text: .text%__1cCosSget_temp_directory6F_pkc_;
-text: .text%__1cWget_sharedmem_filename6Fpkci_pc_: perfMemory_solaris.o;
-text: .text%__1cbBcleanup_sharedmem_resources6Fpkc_v_: perfMemory_solaris.o;
-text: .text%lstat: perfMemory_solaris.o;
-text: .text%__1cPfilename_to_pid6Fpkc_l_: perfMemory_solaris.o;
-text: .text%__1cbAcreate_sharedmem_resources6Fpkc1I_i_: perfMemory_solaris.o;
text: .text%__1cGThread2t6M_v_;
text: .text%__1cFArena2t6M_v_;
text: .text%__1cFChunk2n6FII_pv_;
@@ -161,7 +141,6 @@ text: .text%__1cCosRinitialize_thread6F_v_;
text: .text%__1cNReservedSpaceUpage_align_size_down6FI_I_;
text: .text%__1cCosHSolarisVinit_thread_fpu_state6F_v_;
text: .text%__1cOJNIHandleBlockOallocate_block6FpnGThread__p0_;
-text: .text%__1cQcreate_os_thread6FpnGThread_I_pnIOSThread__: os_solaris.o;
text: .text%__1cIOSThread2t6MpFpv_i1_v_;
text: .text%__1cIOSThreadNpd_initialize6M_v_;
text: .text%__1cCosHSolarisPhotspot_sigmask6FpnGThread__v_;
@@ -186,7 +165,6 @@ text: .text%__1cNThreadServiceEinit6F_v_;
text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
text: .text%__1cORuntimeServiceEinit6F_v_;
text: .text%__1cTClassLoadingServiceEinit6F_v_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cObytecodes_init6F_v_;
text: .text%__1cJBytecodesKinitialize6F_v_;
text: .text%__1cJBytecodesNpd_initialize6F_v_;
@@ -200,7 +178,6 @@ text: .text%__1cKHandleMark2T6M_v_;
text: .text%__1cLClassLoaderbBsetup_bootstrap_search_path6F_v_;
text: .text%__1cCosGstrdup6Fpkc_pc_;
text: .text%__1cCosEstat6FpkcpnEstat__i_;
-text: .text%stat: os_solaris.o;
text: .text%JVM_RawMonitorCreate;
text: .text%JVM_NativePath;
text: .text%JVM_RawMonitorEnter;
@@ -216,7 +193,6 @@ text: .text%__1cNReservedSpace2t6MI_v_;
text: .text%__1cMVirtualSpaceQuncommitted_size6kM_I_;
text: .text%__1cMVirtualSpaceNreserved_size6kM_I_;
text: .text%__1cMVirtualSpaceOcommitted_size6kM_I_;
-text: .text%__1cSalign_to_page_size6FI_I_: heap.o;
text: .text%__1cICodeHeapFclear6M_v_;
text: .text%__1cICodeHeapTmark_segmap_as_free6MII_v_;
text: .text%__1cNMemoryServiceZadd_code_heap_memory_pool6FpnICodeHeap__v_;
@@ -244,9 +220,7 @@ text: .text%__1cKMemoryPoolYrecord_peak_memory_usage6M_v_;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cICodeHeapSallocated_capacity6kM_I_;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
text: .text%__1cXresource_allocate_bytes6FI_pc_;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cRAbstractAssembler2t6MpnKCodeBuffer__v_;
text: .text%__1cYVM_Version_StubGeneratorTgenerate_getPsrInfo6M_pC_: vm_version_x86.o;
text: .text%__1cMStubCodeMark2t6MpnRStubCodeGenerator_pkc4_v_;
@@ -269,10 +243,8 @@ text: .text%__1cJAssemblerDret6Mi_v_;
text: .text%__1cMStubCodeMark2T6M_v_;
text: .text%__1cRAbstractAssemblerFflush6M_v_;
text: .text%__1cRStubCodeGeneratorLstub_epilog6MpnMStubCodeDesc__v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
text: .text%__1cKVM_VersionWget_processor_features6F_v_;
-text: .text%__1cVcheck_for_sse_support6F_v_: os_solaris_x86.o;
text: .text%jio_snprintf;
text: .text%jio_vsnprintf;
text: .text%__1cPlocal_vsnprintf6FpcIpkcpv_i_;
@@ -651,7 +623,6 @@ text: .text%__1cZInterpreterMacroAssemblerWprofile_switch_default6MpnMRegisterIm
text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableH_return6FnITosState__v_;
text: .text%__1cNTemplateTableJgetstatic6Fi_v_;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cJAssemblerHfistp_d6MnHAddress__v_;
text: .text%__1cNTemplateTableJputstatic6Fi_v_;
text: .text%__1cOMacroAssemblerLstore_check6MpnMRegisterImpl_nHAddress__v_;
@@ -735,7 +706,6 @@ text: .text%__1cbBBlockOffsetArrayContigSpaceQalloc_block_work6MpnIHeapWord_2_v_
text: .text%__1cLsymbolKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cLsymbolKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: symbolKlass.o;
text: .text%__1cLsymbolKlassOset_alloc_size6MI_v_: symbolKlass.o;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cJHashtableLhash_symbol6Fpkci_I_: symbolTable.o;
text: .text%__1cLSymbolTableGlookup6MipkciI_pnNsymbolOopDesc__;
@@ -806,7 +776,6 @@ text: .text%__1cQSystemDictionaryRload_shared_class6FnMsymbolHandle_nGHandle_pnG
text: .text%__1cQSystemDictionaryRfind_shared_class6FnMsymbolHandle__pnMklassOopDesc__;
text: .text%__1cQSystemDictionaryRload_shared_class6FnTinstanceKlassHandle_nGHandle_pnGThread__1_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cMstringStream2t6MI_v_;
@@ -854,7 +823,6 @@ text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHand
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
text: .text%__1cSconstMethodOopDescbEchecked_exceptions_length_addr6kM_pH_;
text: .text%__1cSconstMethodOopDescYchecked_exceptions_start6kM_pnXCheckedExceptionElement__;
-text: .text%__1cXcopy_u2_with_conversion6FpH0i_v_: classFileParser.o;
text: .text%__1cPClassFileParserbDcompute_transitive_interfaces6MnTinstanceKlassHandle_nOobjArrayHandle_pnGThread__2_;
text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nPtypeArrayHandle__;
text: .text%method_compare: methodOop.o;
@@ -862,9 +830,6 @@ text: .text%__1cLklassVtableQget_num_mirandas6FpnMklassOopDesc_pnPobjArrayOopDes
text: .text%__1cLklassVtableMget_mirandas6FpnNGrowableArray4CpnNmethodOopDesc___pnMklassOopDesc_pnPobjArrayOopDesc_8_v_;
text: .text%__1cLklassItableTcompute_itable_size6FnOobjArrayHandle__i_;
text: .text%__1cUvisit_all_interfaces6FpnPobjArrayOopDesc_pnXInterfaceVisiterClosure__v_;
-text: .text%__1cPClassFileParserUcompute_oop_map_size6MnTinstanceKlassHandle_ii_i_;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlass.o;
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_: instanceKlass.o;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
@@ -878,7 +843,6 @@ text: .text%__1cNinstanceKlassYcompute_secondary_supers6MipnGThread__pnPobjArray
text: .text%__1cLklassItableZsetup_itable_offset_table6FnTinstanceKlassHandle__v_;
text: .text%__1cFKlassKsuperklass6kM_pnNinstanceKlass__;
text: .text%__1cPClassFileParserVset_precomputed_flags6MnTinstanceKlassHandle__v_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cNinstanceKlassWuncached_lookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cNinstanceKlassLfind_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cNinstanceKlassLfind_method6FpnPobjArrayOopDesc_pnNsymbolOopDesc_4_pnNmethodOopDesc__;
@@ -893,7 +857,6 @@ text: .text%__1cQPackageHashtableMcompute_hash6Mpkci_I_: classLoader.o;
text: .text%__1cQPackageHashtableJget_entry6MiIpkcI_pnLPackageInfo__: classLoader.o;
text: .text%__1cMstringStream2T6M_v_;
text: .text%__1cSThreadProfilerMark2T6M_v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cQSystemDictionaryVdefine_instance_class6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cVLoaderConstraintTableWfind_loader_constraint6MnMsymbolHandle_nGHandle__ppnVLoaderConstraintEntry__;
text: .text%__1cQSystemDictionaryQadd_to_hierarchy6FnTinstanceKlassHandle_pnGThread__v_;
@@ -970,8 +933,6 @@ text: .text%__1cbBjava_lang_ref_SoftReferenceJset_clock6Fx_v_;
text: .text%__1cQjni_handles_init6F_v_;
text: .text%__1cKJNIHandlesKinitialize6F_v_;
text: .text%__1cOvmStructs_init6F_v_;
-text: .text%__1cIFrameMapEinit6F_v_;
-text: .text%__1cIRuntime1Kinitialize6F_v_;
text: .text%__1cIRuntime1Ninitialize_pd6F_v_;
text: .text%__1cNSharedRuntimeTgenerate_deopt_blob6F_v_;
text: .text%__1cJOopMapSet2t6M_v_;
@@ -996,7 +957,6 @@ text: .text%__1cJOopMapSetJheap_size6kM_i_;
text: .text%__1cGOopMapJheap_size6kM_i_;
text: .text%__1cJOopMapSetHcopy_to6MpC_v_;
text: .text%__1cGOopMapHcopy_to6MpC_v_;
-text: .text%__1cIRuntime1Rgenerate_blob_for6Fn0AGStubID__v_;
text: .text%__1cLOopRecorder2t6MpnFArena__v_;
text: .text%__1cIRuntime1Iname_for6Fn0AGStubID__pkc_;
text: .text%__1cLRuntimeStub2n6FII_pv_;
@@ -1004,7 +964,6 @@ text: .text%__1cNStubAssemblerHcall_RT6MpnMRegisterImpl_2pC2_i_;
text: .text%__1cNStubAssemblerHcall_RT6MpnMRegisterImpl_2pCi_i_;
text: .text%__1cJStubFrame2T6M_v_;
text: .text%__1cOMacroAssemblerLtlab_refill6MrnFLabel_22_v_;
-text: .text%__1cLlog2_intptr6Fi_i_: assembler_x86.o;
text: .text%__1cOMacroAssemblerNeden_allocate6MpnMRegisterImpl_2i2rnFLabel__v_;
text: .text%__1cOMacroAssemblerLverify_tlab6M_v_;
text: .text%__1cOMacroAssemblerNtlab_allocate6MpnMRegisterImpl_2i22rnFLabel__v_;
@@ -1033,7 +992,6 @@ text: .text%__1cPICStubInterfaceRcode_size_to_size6kMi_i_: icBuffer.o;
text: .text%__1cPICStubInterfaceKinitialize6MpnEStub_i_v_: icBuffer.o;
text: .text%__1cTcompilerOracle_init6F_v_;
text: .text%__1cOCompilerOraclePparse_from_file6F_v_;
-text: .text%__1cHcc_file6F_pkc_: compilerOracle.o;
text: .text%__1cWcompilationPolicy_init6F_v_;
text: .text%__1cNinstanceKlassGvtable6kM_pnLklassVtable__;
text: .text%__1cNinstanceKlassKjava_super6kM_pnMklassOopDesc__: instanceKlass.o;
@@ -1076,18 +1034,14 @@ text: .text%__1cNinstanceKlassKlink_class6MpnGThread__v_;
text: .text%__1cNinstanceKlassNrewrite_class6MpnGThread__v_;
text: .text%__1cIRewriterHrewrite6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cYconstantPoolCacheOopDescKinitialize6MrnIintArray__v_;
-text: .text%__1cWConstantPoolCacheEntryRset_initial_state6Mi_v_;
text: .text%__1cTAbstractInterpreterLmethod_kind6FnMmethodHandle__n0AKMethodKind__;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
text: .text%__1cMNativeLookupNpure_jni_name6FnMmethodHandle__pc_;
text: .text%__1cMoutputStreamFprint6MpkcE_v_;
text: .text%__1cNmethodOopDescKklass_name6kM_pnNsymbolOopDesc__;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc__v_: nativeLookup.o;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc_ii_v_: nativeLookup.o;
text: .text%__1cMoutputStreamDput6Mc_v_;
text: .text%__1cCosYprint_jni_name_prefix_on6FpnMoutputStream_i_v_;
text: .text%__1cCosYprint_jni_name_suffix_on6FpnMoutputStream_i_v_;
-text: .text%__1cVlookup_special_native6Fpc_pC_: nativeLookup.o;
text: .text%__1cbEinitialize_converter_functions6F_v_;
text: .text%__1cIUniverseWupdate_heap_info_at_gc6F_v_;
text: .text%__1cQGenCollectedHeapIcapacity6kM_I_;
@@ -1137,7 +1091,6 @@ text: .text%__1cCosMstart_thread6FpnGThread__v_;
text: .text%__1cCosPpd_start_thread6FpnGThread__v_;
text: .text%__1cCosTset_native_priority6FpnGThread_i_nIOSReturn__;
text: .text%__1cQset_lwp_priority6Fiii_i_;
-text: .text%__1cVscale_to_lwp_priority6Fiii_i_: os_solaris.o;
text: .text%__1cIVMThreadDrun6M_v_;
text: .text%__1cIVMThreadEloop6M_v_;
text: .text%__1cQVMOperationQdDueueLremove_next6M_pnMVM_Operation__;
@@ -1154,7 +1107,6 @@ text: .text%__1cNinstanceKlassRclass_initializer6M_pnNmethodOopDesc__;
text: .text%__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_;
text: .text%__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
-text: .text%__1cRruntime_type_from6FpnJJavaValue__nJBasicType__: javaCalls.o;
text: .text%__1cTAbstractInterpreterbFsize_top_interpreter_activation6FpnNmethodOopDesc__i_;
text: .text%__1cPJavaCallWrapper2t6MnMmethodHandle_nGHandle_pnJJavaValue_pnGThread__v_;
text: .text%__1cRJavaCallArgumentsKparameters6M_pi_;
@@ -1192,7 +1144,6 @@ text: .text%__1cXSignatureHandlerLibraryLset_handler6FpnKCodeBuffer__pC_;
text: .text%__1cXSignatureHandlerLibraryOpd_set_handler6FpC_v_;
text: .text%jni_RegisterNatives: jni.o;
text: .text%__1cPjava_lang_ClassLas_klassOop6FpnHoopDesc__pnMklassOopDesc__;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
text: .text%__1cPJavaCallWrapper2T6M_v_;
text: .text%__1cOJNIHandleBlockNrelease_block6Fp0pnGThread__v_;
text: .text%__1cNinstanceKlassbJset_initialization_state_and_notify6Mn0AKClassState_pnGThread__v_;
@@ -1206,7 +1157,6 @@ text: .text%__1cPFieldAccessInfoDset6MnLKlassHandle_nMsymbolHandle_iinJBasicType
text: .text%__1cWConstantPoolCacheEntryOset_bytecode_26MnJBytecodesECode__v_;
text: .text%__1cSInterpreterRuntimeE_new6FpnKJavaThread_pnTconstantPoolOopDesc_i_v_;
text: .text%__1cMLinkResolverVresolve_invokespecial6FrnICallInfo_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cWConstantPoolCacheEntryPbytecode_number6FnJBytecodesECode__i_: cpCacheOop.o;
text: .text%__1cNSignatureInfoJdo_object6Mii_v_: bytecode.o;
text: .text%__1cNSignatureInfoHdo_long6M_v_: bytecode.o;
text: .text%JVM_CurrentTimeMillis;
@@ -1225,8 +1175,6 @@ text: .text%__1cQjava_lang_StringbBcreate_tenured_from_unicode6FpHipnGThread__nG
text: .text%__1cKoopFactoryXnew_permanent_charArray6FipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
text: .text%__1cNmethodOopDescIbci_from6kMpC_i_;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cNmethodOopDescIbcp_from6kMi_pC_;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cMLinkResolverVresolve_invokevirtual6FrnICallInfo_nGHandle_nSconstantPoolHandle_ipnGThread__v_;
@@ -1258,7 +1206,6 @@ text: .text%jni_GetStringUTFChars: jni.o;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc__pc_;
text: .text%__1cHUNICODEHas_utf86FpHi_pc_;
text: .text%__1cHUNICODELutf8_length6FpHi_i_;
-text: .text%__1cKutf8_write6FpCH_0_: utf8.o;
text: .text%JVM_FindPrimitiveClass;
text: .text%__1cJname2type6Fpkc_nJBasicType__;
text: .text%jni_ReleaseStringUTFChars;
@@ -1300,7 +1247,6 @@ text: .text%__1cKJavaThreadRthread_main_inner6M_v_;
text: .text%__1cMthread_entry6FpnKJavaThread_pnGThread__v_: jvm.o;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cNFingerprinterHdo_long6M_v_: dump.o;
text: .text%JVM_MonitorWait;
text: .text%__1cQjava_lang_ThreadRget_thread_status6FpnHoopDesc__n0AMThreadStatus__;
@@ -1314,23 +1260,19 @@ text: .text%__1cNmethodOopDescKjmethod_id6M_pnK_jmethodID__;
text: .text%jni_NewStringUTF: jni.o;
text: .text%jni_CallObjectMethod: jni.o;
text: .text%__1cRSignatureIterator2t6MpnGThread_pnNsymbolOopDesc__v_;
-text: .text%__1cUjni_invoke_nonstatic6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cXJNI_ArgumentPusherVaArgHiterate6MX_v_: jni.o;
text: .text%__1cXJNI_ArgumentPusherVaArgKget_object6M_v_: jni.o;
text: .text%jni_ExceptionOccurred: jni.o;
-text: .text%__1cbAjni_check_async_exceptions6FpnKJavaThread__v_: jni.o;
text: .text%jni_DeleteLocalRef: jni.o;
text: .text%__1cOJNIHandleBlockRrebuild_free_list6M_v_;
text: .text%jni_EnsureLocalCapacity;
text: .text%jni_GetStaticMethodID: jni.o;
text: .text%jni_CallStaticObjectMethodV: jni.o;
-text: .text%__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cMLinkResolverbHlookup_instance_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%jni_ExceptionCheck: jni.o;
text: .text%jni_NewString: jni.o;
text: .text%__1cQjava_lang_StringXcreate_oop_from_unicode6FpHipnGThread__pnHoopDesc__;
text: .text%JVM_InitProperties;
-text: .text%__1cMset_property6FnGHandle_pkc2pnGThread__v_: jvm.o;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2t6M_v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2T6M_v_;
@@ -1394,7 +1336,6 @@ text: .text%__1cRLowMemoryDetectorbLdetect_low_memory_for_collected_pools6F_v_:
text: .text%jni_GetStringUTFLength: jni.o;
text: .text%__1cQjava_lang_StringLutf8_length6FpnHoopDesc__i_;
text: .text%jni_GetStringLength: jni.o;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%jni_GetStringUTFRegion: jni.o;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc_ii_pc_;
text: .text%JVM_FindClassFromClassLoader;
@@ -1445,13 +1386,9 @@ text: .text%Unsafe_FreeMemory;
text: .text%__1cNSignatureInfoIdo_float6M_v_: bytecode.o;
text: .text%__1cFJNIidEfind6Mi_p0_;
text: .text%jni_NewObjectV: jni.o;
-text: .text%__1cMalloc_object6FpnH_jclass_pnGThread__pnPinstanceOopDesc__: jni.o;
text: .text%jni_GetStringRegion: jni.o;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%jni_GetObjectField: jni.o;
text: .text%jni_GetStringCritical: jni.o;
-text: .text%__1cJGC_lockerNlock_critical6FpnKJavaThread__v_: jni.o;
text: .text%jni_ReleaseStringCritical: jni.o;
text: .text%JVM_LoadLibrary;
text: .text%JVM_FindLibraryEntry;
@@ -1496,10 +1433,7 @@ text: .text%__1cNobjArrayKlassIallocate6MipnGThread__pnPobjArrayOopDesc__;
text: .text%jni_SetObjectArrayElement: jni.o;
text: .text%jni_GetObjectArrayElement: jni.o;
text: .text%__1cQSimpleCompPolicyXmethod_invocation_event6MnMmethodHandle_pnGThread__v_;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cRInvocationCounterJset_carry6M_v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
-text: .text%__1cQSimpleCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%__1cNobjArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cLJvmtiExportQenter_live_phase6F_v_;
text: .text%__1cLJvmtiExportTpost_vm_initialized6F_v_;
@@ -1512,7 +1446,6 @@ text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMs
text: .text%__1cCosOsignal_init_pd6F_v_;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cICompiler2t6M_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cNCompileBrokerUmake_compiler_thread6FpkcpnMCompileQdDueue_pnQCompilerCounters_pnGThread__pnOCompilerThread__;
text: .text%__1cOCompilerThread2t6MpnMCompileQdDueue_pnQCompilerCounters__v_;
@@ -1570,10 +1503,7 @@ text: .text%__1cTjava_lang_ThrowableTfill_in_stack_trace6FnGHandle_pnGThread__v_
text: .text%__1cTjava_lang_ThrowableNset_backtrace6FpnHoopDesc_2_v_;
text: .text%__1cTjava_lang_ThrowableQclear_stacktrace6FpnHoopDesc__v_;
text: .text%__1cVPreserveExceptionMark2T6M_v_;
-text: .text%__1cKExceptionsG_throw6FpnGThread_pkcinGHandle__v_;
text: .text%__1cSInterpreterRuntimeXthrow_pending_exception6FpnKJavaThread__v_;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
-text: .text%__1cNSharedRuntimebOraw_exception_handler_for_return_address6FpC_1_;
text: .text%__1cSInterpreterRuntimebFexception_handler_for_exception6FpnKJavaThread_pnHoopDesc__pC_;
text: .text%__1cNmethodOopDescbEfast_exception_handler_bci_for6MnLKlassHandle_ipnGThread__i_;
text: .text%__1cSInterpreterRuntimePset_bcp_and_mdp6FpCpnKJavaThread__v_;
@@ -1588,7 +1518,6 @@ text: .text%__1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_;
text: .text%__1cNCompileBrokerVpush_jni_handle_block6F_v_;
text: .text%__1cPciObjectFactory2t6MpnFArena_i_v_;
text: .text%__1cPciObjectFactoryTinit_shared_objects6M_v_;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cIciObject2t6MnGHandle__v_;
text: .text%__1cPciObjectFactoryEfind6MpnHoopDesc_pnNGrowableArray4CpnIciObject____i_;
text: .text%__1cPciObjectFactoryNinit_ident_of6MpnIciObject__v_;
@@ -1675,14 +1604,12 @@ text: .text%__1cOGenerateOopMapYrewrite_refval_conflicts6M_v_;
text: .text%__1cOGenerateOopMapNreport_result6M_v_;
text: .text%__1cLCompilationJbuild_hir6M_v_;
text: .text%__1cCIR2t6MpnLCompilation_pnIciMethod_i_v_;
-text: .text%__1cJValueTypeKinitialize6F_v_;
text: .text%__1cMciNullObjectEmake6F_p0_;
text: .text%__1cMGraphBuilderKinitialize6F_v_;
text: .text%__1cJXHandlers2t6MpnIciMethod__v_;
text: .text%__1cIciMethodJload_code6M_v_;
text: .text%__1cHIRScopeLbuild_graph6MpnLCompilation_i_pnKBlockBegin__;
text: .text%__1cQBlockListBuilderLset_leaders6M_v_;
-text: .text%__1cKValueStack2t6MpnHIRScope_ii_v_;
text: .text%__1cMGraphBuilderPpush_root_scope6MpnHIRScope_pnJBlockList_pnKBlockBegin__v_;
text: .text%__1cMGraphBuilderJScopeDataJset_scope6MpnHIRScope__v_;
text: .text%__1cIValueMap2t6M_v_;
@@ -1690,7 +1617,6 @@ text: .text%__1cMGraphBuilderJScopeDataQadd_to_work_list6MpnKBlockBegin__v_;
text: .text%__1cNResourceArrayGexpand6MIiri_v_;
text: .text%__1cMGraphBuilderJScopeDataVremove_from_work_list6M_pnKBlockBegin__;
text: .text%__1cIValueMapIkill_all6M_v_;
-text: .text%__1cKValueStackEcopy6M_p0_;
text: .text%__1cGValuesIpush_all6Mpk0_v_: c1_ValueStack.o;
text: .text%__1cMGraphBuilderbBiterate_bytecodes_for_block6Mi_pnIBlockEnd__;
text: .text%__1cMGraphBuilderJScopeDataIblock_at6Mi_pnKBlockBegin__;
@@ -1709,8 +1635,6 @@ text: .text%__1cHciFieldPinitialize_from6MpnPfieldDescriptor__v_;
text: .text%__1cMas_ValueType6FnJBasicType__pnJValueType__;
text: .text%__1cMLinkResolverXresolve_klass_no_update6FrnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cTconstantPoolOopDescbCklass_ref_at_if_loaded_check6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
-text: .text%__1cMGraphBuilderKlock_stack6M_pnKValueStack__;
-text: .text%__1cKValueStackKcopy_locks6M_p0_;
text: .text%__1cJLoadFieldFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerMdo_LoadField6MpnJLoadField__v_;
text: .text%__1cJLoadFieldEhash6kM_i_: c1_Instruction.o;
@@ -1738,7 +1662,6 @@ text: .text%__1cMGraphBuilderNmethod_return6MpnLInstruction__v_;
text: .text%__1cGReturnFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerJdo_Return6MpnGReturn__v_;
text: .text%__1cGReturnJas_Return6M_p0_: c1_GraphBuilder.o;
-text: .text%__1cKValueStackMcaller_state6kM_p0_;
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cMGraphBuilderHif_same6MpnJValueType_nLInstructionJCondition__v_;
text: .text%__1cNCanonicalizerNdo_StoreField6MpnKStoreField__v_;
@@ -1781,24 +1704,17 @@ text: .text%__1cTNullCheckEliminatorLiterate_one6MpnKBlockBegin__v_;
text: .text%__1cGBitMapIset_from6M0_v_;
text: .text%__1cQNullCheckVisitorNdo_BlockBegin6MpnKBlockBegin__v_;
text: .text%__1cQNullCheckVisitorHdo_Base6MpnEBase__v_;
-text: .text%__1cKStateSplitPinput_values_do6MpFppnLInstruction__v_v_: c1_Canonicalizer.o;
text: .text%__1cQNullCheckVisitorHdo_Goto6MpnEGoto__v_;
-text: .text%__1cTNullCheckEliminatorIdo_value6FppnLInstruction__v_;
-text: .text%__1cFLocalPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cFLocalFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorIdo_Local6MpnFLocal__v_;
-text: .text%__1cLAccessFieldPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorMdo_LoadField6MpnJLoadField__v_;
text: .text%__1cTNullCheckEliminatorShandle_AccessField6MpnLAccessField__v_;
-text: .text%__1cCIfPinput_values_do6MpFppnLInstruction__v_v_: c1_Canonicalizer.o;
-text: .text%__1cIConstantPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorLdo_Constant6MpnIConstant__v_;
text: .text%__1cQNullCheckVisitorFdo_If6MpnCIf__v_;
text: .text%__1cQNullCheckVisitorPdo_ArithmeticOp6MpnMArithmeticOp__v_;
text: .text%__1cQNullCheckVisitorOdo_LoadIndexed6MpnLLoadIndexed__v_;
text: .text%__1cTNullCheckEliminatorShandle_LoadIndexed6MpnLLoadIndexed__v_;
text: .text%__1cQNullCheckVisitorNdo_StoreField6MpnKStoreField__v_;
-text: .text%__1cGReturnPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorJdo_Return6MpnGReturn__v_;
text: .text%__1cGBitMapQset_intersection6M0_v_;
text: .text%__1cLInstructionJas_Invoke6M_pnGInvoke__: c1_Canonicalizer.o;
@@ -1811,11 +1727,7 @@ text: .text%__1cKStateSplitFscope6kM_pnHIRScope__;
text: .text%__1cIBlockEndOsubstitute_sux6MpnKBlockBegin_2_v_;
text: .text%__1cCIRMcompute_code6M_v_;
text: .text%__1cJBlockListJblocks_do6MpFpnKBlockBegin__v_v_;
-text: .text%__1cQUseCountComputerXbasic_compute_use_count6FpnKBlockBegin__v_: c1_IR.o;
-text: .text%__1cQUseCountComputerQupdate_use_count6FppnLInstruction__v_: c1_IR.o;
text: .text%__1cFLocalIas_Local6M_p0_: c1_GraphBuilder.o;
-text: .text%__1cKStateSplitPstate_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cKValueStackJvalues_do6MpFppnLInstruction__v_v_;
text: .text%__1cLCompilationIemit_lir6M_v_;
text: .text%__1cLInstructionGas_Phi6M_pnDPhi__: c1_Canonicalizer.o;
text: .text%__1cMas_BasicType6FpnJValueType__nJBasicType__;
@@ -1888,14 +1800,11 @@ text: .text%__1cLOopRecorderIoop_size6M_i_;
text: .text%__1cYDebugInformationRecorderIpcs_size6M_i_;
text: .text%__1cYDebugInformationRecorderJdata_size6M_i_;
text: .text%__1cHnmethod2n6FIi_pv_;
-text: .text%__1cHnmFlagsFclear6M_v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
text: .text%__1cGPcDesc2t6Miii_v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cKNativeJumpbEcheck_verified_entry_alignment6FpC1_v_;
text: .text%__1cFciEnvKcompile_id6M_I_;
@@ -1938,8 +1847,6 @@ text: .text%__1cNCanonicalizerOdo_NewInstance6MpnLNewInstance__v_;
text: .text%__1cKValueStackMclear_locals6M_v_;
text: .text%__1cMGraphBuilderIstack_op6MnJBytecodesECode__v_;
text: .text%__1cMGraphBuilderGinvoke6MnJBytecodesECode__v_;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cFciEnvbTget_instance_klass_for_declared_method_holder6FpnHciKlass__pnPciInstanceKlass__;
text: .text%__1cPciObjectFactoryTget_unloaded_method6MpnPciInstanceKlass_pnIciSymbol_4_pnIciMethod__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
@@ -1951,18 +1858,13 @@ text: .text%__1cKValueStackNpop_arguments6Mi_pnGValues__;
text: .text%__1cGInvokeFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerJdo_Invoke6MpnGInvoke__v_;
text: .text%__1cGInvokeJas_Invoke6M_p0_: c1_Instruction.o;
-text: .text%__1cFThrowFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerIdo_Throw6MpnFThrow__v_;
-text: .text%__1cFThrowIas_Throw6M_p0_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorOdo_NewInstance6MpnLNewInstance__v_;
text: .text%__1cTNullCheckEliminatorShandle_NewInstance6MpnLNewInstance__v_;
-text: .text%__1cGInvokePinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorJdo_Invoke6MpnGInvoke__v_;
text: .text%__1cTNullCheckEliminatorNhandle_Invoke6MpnGInvoke__v_;
-text: .text%__1cFThrowPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorIdo_Throw6MpnFThrow__v_;
text: .text%__1cLInstructionGnegate6Fn0AJCondition__1_;
-text: .text%__1cFThrowPstate_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cIVoidTypeLas_VoidType6M_p0_: c1_ValueType.o;
text: .text%__1cLNewInstanceKexact_type6kM_pnGciType__;
text: .text%__1cLNewInstanceOas_NewInstance6M_p0_: c1_Instruction.o;
@@ -1975,7 +1877,6 @@ text: .text%__1cPNewInstanceStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
text: .text%__1cNLIR_AssemblerJemit_call6MpnOLIR_OpJavaCall__v_;
text: .text%__1cNLIR_AssemblerKalign_call6MnILIR_Code__v_;
text: .text%__1cICodeStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
-text: .text%__1cNLIR_AssemblerEcall6MpCnJrelocInfoJrelocType_pnMCodeEmitInfo__v_;
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cYinternal_word_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cJrelocInfoKset_format6Mi_v_;
@@ -2021,9 +1922,6 @@ text: .text%__1cMGraphBuilderUclear_inline_bailout6M_v_;
text: .text%__1cMGraphBuilderWrecursive_inline_level6kMpnIciMethod__i_;
text: .text%__1cPciObjectFactoryMvm_symbol_at6Fi_pnIciSymbol__;
text: .text%__1cNCanonicalizerMdo_NullCheck6MpnJNullCheck__v_;
-text: .text%__1cKValueStackKpush_scope6MpnHIRScope__p0_;
-text: .text%__1cHIRScopeXcompute_lock_stack_size6M_v_;
-text: .text%__1cMGraphBuilderJScopeDataRcaller_stack_size6kM_i_;
text: .text%__1cMGraphBuilderJScopeDataLnum_returns6M_i_;
text: .text%__1cMGraphBuilderJScopeDataXset_inline_cleanup_info6MpnKBlockBegin_pnLInstruction_pnKValueStack__v_;
text: .text%__1cMGraphBuilderJScopeDataQincr_num_returns6M_v_;
@@ -2033,12 +1931,8 @@ text: .text%__1cFciEnvVnotice_inlined_method6MpnIciMethod__v_;
text: .text%__1cMLinkResolverbCresolve_special_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cMGraphBuilderOinline_bailout6Mpkc_v_;
text: .text%__1cLInstructionEprev6MpnKBlockBegin__p0_;
-text: .text%__1cKBlockBeginPblock_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cIConstantPother_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cIBlockEndPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cQNullCheckVisitorMdo_NullCheck6MpnJNullCheck__v_;
text: .text%__1cTNullCheckEliminatorQhandle_NullCheck6MpnJNullCheck__v_;
-text: .text%__1cHIRScopeNtop_scope_bci6kM_i_;
text: .text%__1cNSharedRuntimeQfind_callee_info6FpnKJavaThread_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
text: .text%__1cGPcDescHreal_pc6kMpknHnmethod__pC_;
text: .text%__1cLPcDescCacheLadd_pc_desc6MpnGPcDesc__v_;
@@ -2055,14 +1949,11 @@ text: .text%__1cKNativeCallXset_destination_mt_safe6MpC_v_;
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%jni_GetByteArrayRegion: jni.o;
text: .text%JVM_DefineClassWithSource;
-text: .text%__1cXjvm_define_class_common6FpnHJNIEnv__pkcpnI_jobject_pkWi53pnGThread__pnH_jclass__: jvm.o;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cPClassFileParserbDverify_legal_method_signature6MnMsymbolHandle_1pnGThread__i_;
text: .text%__1cPClassFileParserXverify_legal_class_name6MnMsymbolHandle_pnGThread__v_;
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cPDictionaryEntryVadd_protection_domain6MpnHoopDesc__v_;
-text: .text%__1cUverify_byte_codes_fn6F_pv_: verifier.o;
text: .text%JVM_GetClassCPEntriesCount;
text: .text%JVM_GetClassCPTypes;
text: .text%JVM_GetClassNameUTF;
@@ -2124,7 +2015,6 @@ text: .text%__1cIOSThread2T6M_v_;
text: .text%__1cIOSThreadKpd_destroy6M_v_;
text: .text%jni_DestroyJavaVM;
text: .text%jni_AttachCurrentThread;
-text: .text%attach_current_thread: jni.o;
text: .text%__1cKJavaThreadVinvoke_shutdown_hooks6M_v_;
text: .text%__1cLbefore_exit6FpnKJavaThread__v_;
text: .text%__1cNWatcherThreadEstop6F_v_;
@@ -2139,7 +2029,6 @@ text: .text%__1cCosXterminate_signal_thread6F_v_;
text: .text%__1cCosNsigexitnum_pd6F_i_;
text: .text%__1cCosNsignal_notify6Fi_v_;
text: .text%__1cQprint_statistics6F_v_;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cIVMThreadXwait_for_vm_thread_exit6F_v_;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
text: .text%__1cORuntimeServiceWrecord_safepoint_begin6F_v_;
@@ -2158,7 +2047,6 @@ text: .text%__1cQSystemDictionaryRnumber_of_classes6F_i_;
text: .text%__1cQSystemDictionaryStry_get_next_class6F_pnMklassOopDesc__;
text: .text%__1cKDictionaryStry_get_next_class6M_pnMklassOopDesc__;
text: .text%__1cNinstanceKlassKmethods_do6MpFpnNmethodOopDesc__v_v_;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
text: .text%__1cHVM_ExitbJwait_for_threads_in_native_to_block6F_i_;
text: .text%__1cIVMThreadHdestroy6F_v_;
@@ -2171,8 +2059,6 @@ text: .text%__1cPPerfDataManagerHdestroy6F_v_;
text: .text%__1cIPerfData2T6M_v_;
text: .text%__1cKPerfMemoryHdestroy6F_v_;
text: .text%__1cKPerfMemoryUdelete_memory_region6F_v_;
-text: .text%__1cUdelete_shared_memory6FpcI_v_: perfMemory_solaris.o;
-text: .text%__1cLremove_file6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cMostream_exit6F_v_;
text: .text%__SLIP.DELETER__C: ostream.o;
text: .text%JVM_Halt;
@@ -2206,14 +2092,10 @@ text: .text%jni_IsAssignableFrom: jni.o;
text: .text%__1cOGenerateOopMapGdo_ldc6Mii_v_;
text: .text%__1cQComputeCallStackIdo_array6Mii_v_: generateOopMap.o;
text: .text%__1cMGraphBuilderNload_constant6M_v_;
-text: .text%__1cQciBytecodeStreamSget_constant_index6kM_i_;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cMLinkResolverbBresolve_static_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cJValueTypeLas_VoidType6M_pnIVoidType__: c1_Canonicalizer.o;
text: .text%__1cWstatic_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cRComputeEntryStackIdo_array6Mii_v_: generateOopMap.o;
-text: .text%__1cEIfOpPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cEIfOpFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorHdo_IfOp6MpnEIfOp__v_;
text: .text%__1cOGenerateOopMapMdo_checkcast6M_v_;
@@ -2223,12 +2105,10 @@ text: .text%__1cNCanonicalizerNdo_InstanceOf6MpnKInstanceOf__v_;
text: .text%__1cKInstanceOfNas_InstanceOf6M_p0_: c1_GraphBuilder.o;
text: .text%__1cMGraphBuilderKcheck_cast6Mi_v_;
text: .text%__1cNCanonicalizerMdo_CheckCast6MpnJCheckCast__v_;
-text: .text%__1cJTypeCheckPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorNdo_InstanceOf6MpnKInstanceOf__v_;
text: .text%__1cQNullCheckVisitorMdo_CheckCast6MpnJCheckCast__v_;
text: .text%__1cTSimpleExceptionStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
text: .text%__1cNLIR_AssemblerQemit_opTypeCheck6MpnPLIR_OpTypeCheck__v_;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cTSimpleExceptionStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
text: .text%__1cTSimpleExceptionStubJemit_code6MpnNLIR_Assembler__v_;
text: .text%__1cJLoadFieldMas_LoadField6M_p0_: c1_Instruction.o;
@@ -2266,8 +2146,6 @@ text: .text%__1cHConvertEname6kM_pkc_: c1_GraphBuilder.o;
text: .text%__1cMGraphBuilderNstore_indexed6MnJBasicType__v_;
text: .text%__1cIValueMapKkill_array6MpnJValueType__v_;
text: .text%__1cNCanonicalizerPdo_StoreIndexed6MpnMStoreIndexed__v_;
-text: .text%__1cLAccessFieldPother_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cHConvertPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorKdo_LogicOp6MpnHLogicOp__v_;
text: .text%__1cQNullCheckVisitorKdo_Convert6MpnHConvert__v_;
text: .text%__1cQNullCheckVisitorPdo_StoreIndexed6MpnMStoreIndexed__v_;
@@ -2294,10 +2172,8 @@ text: .text%__1cMGraphBuilderOnew_type_array6M_v_;
text: .text%__1cMNewTypeArrayFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerPdo_NewTypeArray6MpnMNewTypeArray__v_;
text: .text%__1cNCanonicalizerMdo_Intrinsic6MpnJIntrinsic__v_;
-text: .text%__1cLAccessArrayPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorOdo_ArrayLength6MpnLArrayLength__v_;
text: .text%__1cTNullCheckEliminatorShandle_ArrayLength6MpnLArrayLength__v_;
-text: .text%__1cINewArrayPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorPdo_NewTypeArray6MpnMNewTypeArray__v_;
text: .text%__1cTNullCheckEliminatorPhandle_NewArray6MpnINewArray__v_;
text: .text%__1cQNullCheckVisitorMdo_Intrinsic6MpnJIntrinsic__v_;
@@ -2309,7 +2185,6 @@ text: .text%__1cMNewTypeArrayKexact_type6kM_pnGciType__;
text: .text%__1cLArrayLengthOas_ArrayLength6M_p0_: c1_GraphBuilder.o;
text: .text%__1cILIR_ListUunsigned_shift_right6MpnLLIR_OprDesc_222_v_;
text: .text%__1cQNewTypeArrayStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
-text: .text%__1cNLIR_AssemblerHic_call6MpCpnMCodeEmitInfo__v_;
text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNLIR_AssemblerQemit_alloc_array6MpnQLIR_OpAllocArray__v_;
text: .text%__1cNLIR_AssemblerSarray_element_size6kMnJBasicType__nHAddressLScaleFactor__;
@@ -2335,8 +2210,6 @@ text: .text%__1cRInlineCacheBufferLnew_ic_stub6F_pnGICStub__;
text: .text%JVM_NewArray;
text: .text%__1cKReflectionRreflect_new_array6FpnHoopDesc_ipnGThread__pnMarrayOopDesc__;
text: .text%__1cSInterpreterRuntimeOmultianewarray6FpnKJavaThread_pi_v_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
-text: .text%__1cQSimpleCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
text: .text%__1cMGraphBuilderQnew_object_array6M_v_;
text: .text%__1cONewObjectArrayFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerRdo_NewObjectArray6MpnONewObjectArray__v_;
@@ -2349,7 +2222,6 @@ text: .text%__1cHShiftOpEhash6kM_i_: c1_GraphBuilder.o;
text: .text%__1cHShiftOpEname6kM_pkc_: c1_GraphBuilder.o;
text: .text%__1cLLoadIndexedOas_LoadIndexed6M_p0_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorRdo_NewObjectArray6MpnONewObjectArray__v_;
-text: .text%__1cDOp2Pinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorKdo_ShiftOp6MpnHShiftOp__v_;
text: .text%__1cHciKlassMaccess_flags6M_i_;
text: .text%__1cPciObjArrayKlassEmake6FpnHciKlass__p0_;
@@ -2413,7 +2285,6 @@ text: .text%__1cQDefNewGenerationTallocate_from_space6MI_pnIHeapWord__;
text: .text%__1cPVM_GC_OperationZacquire_pending_list_lock6M_v_;
text: .text%__1cQinstanceRefKlassZacquire_pending_list_lock6FpnJBasicLock__v_;
text: .text%__1cbAVM_GenCollectForAllocationEdoit6M_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cTContiguousSpacePoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cTContiguousSpacePoolNused_in_bytes6M_I_: memoryPool.o;
@@ -2441,11 +2312,7 @@ text: .text%__1cKSharedHeapbAchange_strong_roots_parity6M_v_;
text: .text%__1cPFastScanClosureGdo_oop6MppnHoopDesc__v_: defNewGeneration.o;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
text: .text%__1cOJNIHandleBlockHoops_do6MpnKOopClosure__v_;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKHandleAreaHoops_do6MpnKOopClosure__v_;
-text: .text%__1cNchunk_oops_do6FpnKOopClosure_pnFChunk_pc_I_: handles.o;
text: .text%__1cFframeVinterpreter_frame_bci6kM_i_;
text: .text%__1cFframebDinterpreter_frame_monitor_end6kM_pnPBasicObjectLock__;
text: .text%__1cFframebFinterpreter_frame_monitor_begin6kM_pnPBasicObjectLock__;
@@ -2483,7 +2350,6 @@ text: .text%__1cQComputeCallStackHdo_long6M_v_: generateOopMap.o;
text: .text%__1cOGenerateOopMapOdo_monitorexit6Mi_v_;
text: .text%__1cOGenerateOopMapLmonitor_pop6M_nNCellTypeState__;
text: .text%__1cRComputeEntryStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cQVMOperationQdDueueHoops_do6MpnKOopClosure__v_;
text: .text%__1cQVMOperationQdDueueNqueue_oops_do6MipnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
@@ -2584,7 +2450,6 @@ text: .text%__1cUGenGCEpilogueClosureNdo_generation6MpnKGeneration__v_: genColle
text: .text%__1cRTenuredGenerationPupdate_counters6M_v_;
text: .text%__1cUCompactingPermGenGenPupdate_counters6M_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%__1cNJvmtiGCMarker2T6M_v_;
text: .text%__1cPVM_GC_OperationNdoit_epilogue6M_v_;
@@ -2597,7 +2462,6 @@ text: .text%jni_PopLocalFrame: jni.o;
text: .text%__1cMGraphBuilderJnegate_op6MpnJValueType__v_;
text: .text%__1cINegateOpFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerLdo_NegateOp6MpnINegateOp__v_;
-text: .text%__1cINegateOpPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorLdo_NegateOp6MpnINegateOp__v_;
text: .text%__1cILIR_ListLstore_check6MpnLLIR_OprDesc_2222pnMCodeEmitInfo__v_;
text: .text%__1cXArrayStoreExceptionStub2t6MpnMCodeEmitInfo__v_;
@@ -2637,7 +2501,6 @@ text: .text%__1cYjava_lang_reflect_MethodLreturn_type6FpnHoopDesc__2_;
text: .text%JVM_IsInterrupted;
text: .text%__1cTresource_free_bytes6FpcI_v_;
text: .text%__1cRComputeEntryStackHdo_bool6M_v_: generateOopMap.o;
-text: .text%__1cMArithmeticOpKlock_stack6kM_pnKValueStack__: c1_Instruction.o;
text: .text%__1cJAssemblerGfist_s6MnHAddress__v_;
text: .text%__1cNLIR_AssemblerJreset_FPU6M_v_;
text: .text%__1cNLIR_AssemblerIemit_op36MpnHLIR_Op3__v_;
@@ -2659,7 +2522,6 @@ text: .text%__1cUBytecode_tableswitchOdest_offset_at6kMi_i_;
text: .text%__1cMGraphBuilderMtable_switch6M_v_;
text: .text%__1cLTableSwitchFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerOdo_TableSwitch6MpnLTableSwitch__v_;
-text: .text%__1cGSwitchPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorOdo_TableSwitch6MpnLTableSwitch__v_;
text: .text%__1cWstatic_call_RelocationLstatic_stub6M_pC_;
text: .text%__1cSCompiledStaticCallMset_to_clean6M_v_;
@@ -2672,7 +2534,6 @@ text: .text%__1cNFingerprinterHdo_byte6M_v_: dump.o;
text: .text%Unsafe_SetMemory;
text: .text%__1cNSharedRuntimeElrem6Fxx_x_;
text: .text%Unsafe_DefineClass1;
-text: .text%__1cSUnsafe_DefineClass6FpnHJNIEnv__pnI_jstring_pnL_jbyteArray_iipnI_jobject_7_pnH_jclass__: unsafe.o;
text: .text%JVM_DefineClass;
text: .text%__1cVLoaderConstraintTableYextend_loader_constraint6MpnVLoaderConstraintEntry_nGHandle_pnMklassOopDesc__v_;
text: .text%__1cVLoaderConstraintTablebHensure_loader_constraint_capacity6MpnVLoaderConstraintEntry_i_v_;
@@ -2680,7 +2541,6 @@ text: .text%__1cIRuntime1Tprimitive_arraycopy6FpnIHeapWord_2i_v_;
text: .text%__1cRComputeEntryStackHdo_char6M_v_: generateOopMap.o;
text: .text%jni_NewDirectByteBuffer;
text: .text%lookupDirectBufferClasses: jni.o;
-text: .text%__1cJlookupOne6FpnHJNIEnv__pkcpnGThread__pnH_jclass__: jni.o;
text: .text%__1cHJNIEnv_JNewObject6MpnH_jclass_pnK_jmethodID_E_pnI_jobject__: jni.o;
text: .text%jni_GetDoubleArrayRegion: jni.o;
text: .text%__1cNSignatureInfoJdo_double6M_v_: bytecode.o;
@@ -2701,7 +2561,6 @@ text: .text%JVM_GetCPFieldModifiers;
text: .text%__1cPClassFileParserUverify_constantvalue6MiinSconstantPoolHandle_pnGThread__v_;
text: .text%JVM_MonitorNotify;
text: .text%__1cSObjectSynchronizerGnotify6FnGHandle_pnGThread__v_;
-text: .text%__1cKValueStackElock6MpnHIRScope_pnLInstruction__i_;
text: .text%__1cKValueStackGunlock6M_i_;
text: .text%__1cQMonitorEnterStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
text: .text%__1cNLIR_AssemblerJemit_lock6MpnKLIR_OpLock__v_;
@@ -2726,8 +2585,6 @@ text: .text%__1cbCOneContigSpaceCardGenerationLused_region6kM_nJMemRegion__;
text: .text%__1cMGenMarkSweepPallocate_stacks6F_v_;
text: .text%__1cQGenCollectedHeapOgather_scratch6MpnKGeneration_I_pnMScratchBlock__;
text: .text%__1cQDefNewGenerationScontribute_scratch6MrpnMScratchBlock_pnKGeneration_I_v_;
-text: .text%__1cRsort_scratch_list6FrpnMScratchBlock__v_: genCollectedHeap.o;
-text: .text%__1cVremoveSmallestScratch6FppnMScratchBlock__1_: genCollectedHeap.o;
text: .text%__1cJMarkSweepRFollowRootClosureGdo_oop6MppnHoopDesc__v_: markSweep.o;
text: .text%__1cParrayKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cLklassVtableToop_follow_contents6M_v_;
@@ -2784,12 +2641,6 @@ text: .text%__1cbCOneContigSpaceCardGenerationWfirst_compaction_space6kM_pnQComp
text: .text%__1cMGenMarkSweepRmark_sweep_phase36Fi_v_;
text: .text%__1cUCompactingPermGenGenTpre_adjust_pointers6M_v_;
text: .text%__1cJMarkSweepUAdjustPointerClosureGdo_oop6MppnHoopDesc__v_: markSweep.o;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cJHashtableHoops_do6MpnKOopClosure__v_;
text: .text%__1cJMarkSweepMadjust_marks6F_v_;
text: .text%__1cYGenAdjustPointersClosureNdo_generation6MpnKGeneration__v_: genMarkSweep.o;
@@ -2840,7 +2691,6 @@ text: .text%Unsafe_CompareAndSwapObject;
text: .text%__1cMLinkResolverbEvtable_index_of_miranda_method6FnLKlassHandle_nMsymbolHandle_2pnGThread__i_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
text: .text%__1cRPrivilegedElementHoops_do6MpnKOopClosure__v_;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cMOopMapStream2t6MpnGOopMap_i_v_;
text: .text%__1cQComputeCallStackIdo_float6M_v_: generateOopMap.o;
text: .text%jni_DeleteWeakGlobalRef: jni.o;
@@ -2849,7 +2699,6 @@ text: .text%JVM_IsSameClassPackage;
text: .text%__1cNCanonicalizerPdo_MonitorEnter6MpnMMonitorEnter__v_;
text: .text%__1cLMonitorExitFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerOdo_MonitorExit6MpnLMonitorExit__v_;
-text: .text%__1cNAccessMonitorPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_MonitorEnter6MpnMMonitorEnter__v_;
text: .text%__1cTNullCheckEliminatorUhandle_AccessMonitor6MpnNAccessMonitor__v_;
text: .text%__1cQNullCheckVisitorOdo_MonitorExit6MpnLMonitorExit__v_;
@@ -2867,7 +2716,6 @@ text: .text%Unsafe_AllocateInstance;
text: .text%jni_AllocObject: jni.o;
text: .text%__1cQinstanceRefKlassUoop_oop_iterate_nv_m6MpnHoopDesc_pnQFilteringClosure_nJMemRegion__i_;
text: .text%__1cNCanonicalizerMset_constant6Mi_v_: c1_Canonicalizer.o;
-text: .text%__1cJTypeCheckPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cNLIR_AssemblerMcheck_icache6M_i_;
text: .text%__1cNLIR_AssemblerZjobject2reg_with_patching6MpnMRegisterImpl_pnMCodeEmitInfo__v_;
text: .text%__1cIRuntime1Mnew_instance6FpnKJavaThread_pnMklassOopDesc__v_;
@@ -2878,7 +2726,6 @@ text: .text%__1cNFloatConstantQas_FloatConstant6M_p0_: c1_Canonicalizer.o;
text: .text%__1cJFloatTypeMas_FloatType6M_p0_: c1_Canonicalizer.o;
text: .text%__1cRAbstractAssemblerGa_long6Mi_v_;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
-text: .text%__1cINewArrayPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cIRuntime1Mmonitorenter6FpnKJavaThread_pnHoopDesc_pnPBasicObjectLock__v_;
text: .text%__1cIRuntime1Lmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cNVM_DeoptimizeEdoit6M_v_;
@@ -2887,14 +2734,8 @@ text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
text: .text%__1cKJavaThreadbFdeoptimized_wrt_marked_nmethods6M_v_;
text: .text%__1cJCodeCachebGmake_marked_nmethods_not_entrant6F_v_;
text: .text%__1cJCodeCacheNalive_nmethod6FpnICodeBlob__pnHnmethod__;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cKNativeJumpUpatch_verified_entry6FpC11_v_;
text: .text%__1cHnmethodVmark_as_seen_on_stack6M_v_;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
-text: .text%__1cKJavaThreadLnmethods_do6M_v_;
-text: .text%__1cGThreadLnmethods_do6M_v_;
-text: .text%__1cFframeLnmethods_do6M_v_;
-text: .text%__1cFframeVnmethods_code_blob_do6M_v_;
text: .text%__1cONMethodSweeperPprocess_nmethod6FpnHnmethod__v_;
text: .text%__1cHnmethodVcleanup_inline_caches6M_v_;
text: .text%__1cKCompiledIC2t6MpnKRelocation__v_;
@@ -2902,14 +2743,9 @@ text: .text%JVM_HoldsLock;
text: .text%__1cTMaskFillerForNativeIpass_int6M_v_: oopMapCache.o;
text: .text%__1cNSharedRuntimeDf2l6Ff_x_;
text: .text%__1cMGraphBuilderKcompare_op6MpnJValueType_nJBytecodesECode__v_;
-text: .text%__1cJCompareOpFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerMdo_CompareOp6MpnJCompareOp__v_;
-text: .text%__1cJCompareOpEhash6kM_i_: c1_Instruction.o;
-text: .text%__1cJCompareOpEname6kM_pkc_: c1_Instruction.o;
-text: .text%__1cJCompareOpMas_CompareOp6M_p0_: c1_Instruction.o;
text: .text%__1cHnmethodSflush_dependencies6MpnRBoolObjectClosure__v_;
text: .text%__1cNinstanceKlassYremove_dependent_nmethod6MpnHnmethod__v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cQPlaceholderEntryHoops_do6MpnKOopClosure__v_;
text: .text%__1cHnmethodFflush6M_v_;
text: .text%__1cICodeBlobFflush6M_v_;
@@ -2951,9 +2787,7 @@ text: .text%__1cNCanonicalizerPdo_UnsafeGetRaw6MpnMUnsafeGetRaw__v_;
text: .text%__1cMGraphBuilderNlookup_switch6M_v_;
text: .text%__1cMLookupSwitchFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerPdo_LookupSwitch6MpnMLookupSwitch__v_;
-text: .text%__1cMUnsafePutRawPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_UnsafePutRaw6MpnMUnsafePutRaw__v_;
-text: .text%__1cLUnsafeRawOpPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_UnsafeGetRaw6MpnMUnsafeGetRaw__v_;
text: .text%__1cQNullCheckVisitorPdo_LookupSwitch6MpnMLookupSwitch__v_;
text: .text%__1cNSharedRuntimeEldiv6Fxx_x_;
diff --git a/hotspot/make/solaris/makefiles/reorder_COMPILER1_sparc b/hotspot/make/solaris/makefiles/reorder_COMPILER1_sparc
index 541227310a6..45c02b4e690 100644
--- a/hotspot/make/solaris/makefiles/reorder_COMPILER1_sparc
+++ b/hotspot/make/solaris/makefiles/reorder_COMPILER1_sparc
@@ -135,7 +135,6 @@ text: .text%__1cNThreadServiceEinit6F_v_;
text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
text: .text%__1cORuntimeServiceEinit6F_v_;
text: .text%__1cTClassLoadingServiceEinit6F_v_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cObytecodes_init6F_v_;
text: .text%__1cJBytecodesKinitialize6F_v_;
text: .text%__1cJBytecodesNpd_initialize6F_v_;
@@ -181,9 +180,7 @@ text: .text%__1cKMemoryPoolYrecord_peak_memory_usage6M_v_;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cICodeHeapSallocated_capacity6kM_I_;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
text: .text%__1cXresource_allocate_bytes6FI_pc_;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cRAbstractAssembler2t6MpnKCodeBuffer__v_;
text: .text%__1cTICacheStubGeneratorVgenerate_icache_flush6MppFpCii_i_v_;
text: .text%__1cMStubCodeMark2t6MpnRStubCodeGenerator_pkc4_v_;
@@ -194,7 +191,6 @@ text: .text%__1cMStubCodeMark2T6M_v_;
text: .text%__1cRAbstractAssemblerFflush6M_v_;
text: .text%__1cOAbstractICacheQinvalidate_range6FpCi_v_;
text: .text%__1cRStubCodeGeneratorLstub_epilog6MpnMStubCodeDesc__v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
text: .text%__1cPVM_Version_init6F_v_;
text: .text%jio_snprintf;
@@ -314,10 +310,8 @@ text: .text%__1cLReadClosureGdo_ptr6MppnIHeapWord__v_: restore.o;
text: .text%__1cLReadClosureGdo_ptr6Mppv_v_: restore.o;
text: .text%__1cLReadClosureJdo_size_t6MpI_v_: restore.o;
text: .text%__1cLReadClosureGdo_oop6MppnHoopDesc__v_: restore.o;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
text: .text%__1cICodeHeapLfirst_block6kM_pnJHeapBlock__;
text: .text%__1cICodeHeapJnext_free6kMpnJHeapBlock__pv_;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cICodeHeapLblock_start6kMpv_pnJHeapBlock__;
text: .text%__1cICodeHeapKfind_start6kMpv_1_;
text: .text%__1cICodeHeapKnext_block6kMpnJHeapBlock__2_;
@@ -334,7 +328,6 @@ text: .text%__1cbCAbstractInterpreterGenerator2t6MpnJStubQdDueue__v_;
text: .text%__1cbCAbstractInterpreterGeneratorMgenerate_all6M_v_;
text: .text%__1cJStubQdDueueHrequest6Mi_pnEStub__;
text: .text%__1cJStubQdDueueGcommit6Mi_v_;
-text: .text%__1cZInterpreterMacroAssemblerbAget_cache_and_index_at_bcp6MpnMRegisterImpl_2i_v_;
text: .text%__1cZInterpreterMacroAssemblerZget_2_byte_integer_at_bcp6MipnMRegisterImpl_2n0ALsignedOrNot_n0AKsetCCOrNot__v_;
text: .text%__1cZInterpreterMacroAssemblerNdispatch_next6MnITosState_i_v_;
text: .text%__1cOMacroAssemblerKverify_FPU6Mipkc_v_;
@@ -357,7 +350,6 @@ text: .text%__1cZInterpreterMacroAssemblerNunlock_object6MpnMRegisterImpl__v_;
text: .text%__1cQRelocationHolderEplus6kMi_0_;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC222_v_;
text: .text%__1cOMacroAssemblerNset_vm_result6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cOMacroAssemblerRcall_VM_leaf_base6MpnMRegisterImpl_pCi_v_;
text: .text%__1cbCAbstractInterpreterGeneratorVgenerate_method_entry6MnTAbstractInterpreterKMethodKind__pC_;
text: .text%__1cUInterpreterGeneratorVgenerate_counter_incr6MpnFLabel_22_v_;
@@ -513,7 +505,6 @@ text: .text%__1cZInterpreterMacroAssemblerWprofile_switch_default6MpnMRegisterIm
text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableH_return6FnITosState__v_;
text: .text%__1cNTemplateTableJgetstatic6Fi_v_;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cNTemplateTableJputstatic6Fi_v_;
text: .text%__1cNTemplateTableIgetfield6Fi_v_;
text: .text%__1cOMacroAssemblerKnull_check6MpnMRegisterImpl_i_v_;
@@ -521,7 +512,6 @@ text: .text%__1cNTemplateTableIputfield6Fi_v_;
text: .text%__1cNTemplateTableNinvokevirtual6Fi_v_;
text: .text%__1cNTemplateTableTinvokevfinal_helper6FpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerSprofile_final_call6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerUprofile_virtual_call6MpnMRegisterImpl_2_v_;
text: .text%__1cNTemplateTableUgenerate_vtable_call6FpnMRegisterImpl_22_v_;
text: .text%__1cNTemplateTableNinvokespecial6Fi_v_;
text: .text%__1cZInterpreterMacroAssemblerMprofile_call6MpnMRegisterImpl__v_;
@@ -629,8 +619,6 @@ text: .text%__1cQjni_handles_init6F_v_;
text: .text%__1cOvmStructs_init6F_v_;
text: .text%__1cMRegisterImplEname6kM_pkc_;
text: .text%__1cRFloatRegisterImplEname6kM_pkc_;
-text: .text%__1cIFrameMapEinit6F_v_;
-text: .text%__1cIRuntime1Kinitialize6F_v_;
text: .text%__1cIRuntime1Ninitialize_pd6F_v_;
text: .text%__1cNSharedRuntimeTgenerate_deopt_blob6F_v_;
text: .text%__1cOMacroAssemblerZtotal_frame_size_in_bytes6Mi_i_;
@@ -689,7 +677,6 @@ text: .text%__1cEUTF8Sconvert_to_unicode6FpkcpHi_v_;
text: .text%__1cNinstanceKlassRallocate_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cTjava_lang_ThrowableLset_message6FpnHoopDesc_2_v_;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cNinstanceKlassWuncached_lookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cMstringStream2t6MI_v_;
@@ -788,8 +775,6 @@ text: .text%__1cXSignatureHandlerLibraryOpd_set_handler6FpC_v_;
text: .text%__1cNmethodOopDescVset_signature_handler6MpC_v_;
text: .text%jni_RegisterNatives: jni.o;
text: .text%__1cPjava_lang_ClassLas_klassOop6FpnHoopDesc__pnMklassOopDesc__;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cOJNIHandleBlockNrelease_block6Fp0pnGThread__v_;
text: .text%__1cSObjectSynchronizerJnotifyall6FnGHandle_pnGThread__v_;
text: .text%__1cSInterpreterRuntimeJanewarray6FpnKJavaThread_pnTconstantPoolOopDesc_ii_v_;
@@ -829,7 +814,6 @@ text: .text%__1cbBcreate_initial_thread_group6FpnGThread__nGHandle__: thread.o;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
text: .text%__1cNmethodOopDescIbci_from6kMpC_i_;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cNmethodOopDescIbcp_from6kMi_pC_;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cRSignatureIteratorSiterate_parameters6M_v_;
@@ -983,7 +967,6 @@ text: .text%jni_GetStringUTFLength: jni.o;
text: .text%__1cQjava_lang_StringLutf8_length6FpnHoopDesc__i_;
text: .text%__1cHUNICODELutf8_length6FpHi_i_;
text: .text%jni_GetStringLength: jni.o;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%jni_GetStringUTFRegion: jni.o;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc_ii_pc_;
text: .text%JVM_FindClassFromClassLoader;
@@ -1022,7 +1005,6 @@ text: .text%__1cbDjava_lang_reflect_ConstructorEslot6FpnHoopDesc__i_;
text: .text%__1cbIjava_lang_reflect_AccessibleObjectIoverride6FpnHoopDesc__C_;
text: .text%__1cbDjava_lang_reflect_ConstructorPparameter_types6FpnHoopDesc__2_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cRClassPathZipEntryLopen_stream6Mpkc_pnPClassFileStream__;
@@ -1060,8 +1042,6 @@ text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nP
text: .text%method_compare: methodOop.o;
text: .text%__1cLklassItableTcompute_itable_size6FnOobjArrayHandle__i_;
text: .text%__1cUvisit_all_interfaces6FpnPobjArrayOopDesc_pnXInterfaceVisiterClosure__v_;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlass.o;
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_: instanceKlass.o;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
@@ -1077,7 +1057,6 @@ text: .text%__1cPClassFileParserVset_precomputed_flags6MnTinstanceKlassHandle__v
text: .text%__1cPClassFileParserbCcheck_super_interface_access6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cPClassFileParserbBcheck_final_method_override6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cSThreadProfilerMark2T6M_v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cIRewriterHrewrite6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cYconstantPoolCacheOopDescKinitialize6MrnIintArray__v_;
text: .text%JVM_MaxMemory;
@@ -1091,15 +1070,11 @@ text: .text%Unsafe_FreeMemory;
text: .text%__1cNSignatureInfoIdo_float6M_v_: bytecode.o;
text: .text%jni_NewObjectV: jni.o;
text: .text%jni_GetStringRegion: jni.o;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%jni_GetObjectField: jni.o;
text: .text%jni_GetStringCritical: jni.o;
text: .text%jni_ReleaseStringCritical: jni.o;
text: .text%__1cQSimpleCompPolicyXmethod_invocation_event6MnMmethodHandle_pnGThread__v_;
text: .text%__1cRInvocationCounterJset_carry6M_v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
-text: .text%__1cQSimpleCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%__1cNinstanceKlassUfind_interface_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__pnMklassOopDesc__;
text: .text%JVM_LoadLibrary;
text: .text%JVM_FindLibraryEntry;
@@ -1153,7 +1128,6 @@ text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMs
text: .text%__1cCosOsignal_init_pd6F_v_;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cICompiler2t6M_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cNCompileBrokerUmake_compiler_thread6FpkcpnMCompileQdDueue_pnQCompilerCounters_pnGThread__pnOCompilerThread__;
text: .text%__1cTsignal_thread_entry6FpnKJavaThread_pnGThread__v_: os.o;
@@ -1188,7 +1162,6 @@ text: .text%__1cRLowMemoryDetectorbGlow_memory_detector_thread_entry6FpnKJavaThr
text: .text%__1cKPerfStringKset_string6Mpkc_v_;
text: .text%__1cPciObjectFactory2t6MpnFArena_i_v_;
text: .text%__1cPciObjectFactoryTinit_shared_objects6M_v_;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cIciObject2t6MnGHandle__v_;
text: .text%__1cIciObjectJset_ident6MI_v_;
text: .text%__1cGciType2t6MnJBasicType__v_;
@@ -1267,7 +1240,6 @@ text: .text%__1cOGenerateOopMapYrewrite_refval_conflicts6M_v_;
text: .text%__1cOGenerateOopMapNreport_result6M_v_;
text: .text%__1cLCompilationJbuild_hir6M_v_;
text: .text%__1cCIR2t6MpnLCompilation_pnIciMethod_i_v_;
-text: .text%__1cJValueTypeKinitialize6F_v_;
text: .text%__1cMciNullObjectEmake6F_p0_;
text: .text%__1cMGraphBuilderKinitialize6F_v_;
text: .text%__1cJXHandlers2t6MpnIciMethod__v_;
@@ -1275,13 +1247,11 @@ text: .text%__1cIciMethodJload_code6M_v_;
text: .text%__1cLCompilationTdebug_info_recorder6kM_pnYDebugInformationRecorder__;
text: .text%__1cHIRScopeLbuild_graph6MpnLCompilation_i_pnKBlockBegin__;
text: .text%__1cQBlockListBuilderLset_leaders6M_v_;
-text: .text%__1cKValueStack2t6MpnHIRScope_ii_v_;
text: .text%__1cLciSignatureHtype_at6kMi_pnGciType__;
text: .text%__1cMas_ValueType6FnJBasicType__pnJValueType__;
text: .text%__1cIValueMap2t6M_v_;
text: .text%__1cNResourceArrayGexpand6MIiri_v_;
text: .text%__1cIValueMapIkill_all6M_v_;
-text: .text%__1cKValueStackEcopy6M_p0_;
text: .text%__1cMGraphBuilderbBiterate_bytecodes_for_block6Mi_pnIBlockEnd__;
text: .text%__1cMGraphBuilderJScopeDataIblock_at6Mi_pnKBlockBegin__;
text: .text%__1cMGraphBuilderKload_local6MpnJValueType_i_v_;
@@ -1322,7 +1292,6 @@ text: .text%__1cPciInstanceKlassLfield_cache6M_pnTciConstantPoolCache__;
text: .text%__1cHciField2t6MpnPciInstanceKlass_i_v_;
text: .text%__1cHciFieldPinitialize_from6MpnPfieldDescriptor__v_;
text: .text%__1cTconstantPoolOopDescbCklass_ref_at_if_loaded_check6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
-text: .text%__1cKValueStackKcopy_locks6M_p0_;
text: .text%__1cJLoadFieldFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerMdo_LoadField6MpnJLoadField__v_;
text: .text%__1cJLoadFieldEhash6kM_i_: c1_Instruction.o;
@@ -1365,27 +1334,18 @@ text: .text%__1cTNullCheckEliminatorLiterate_one6MpnKBlockBegin__v_;
text: .text%__1cGBitMapIset_from6M0_v_;
text: .text%__1cQNullCheckVisitorNdo_BlockBegin6MpnKBlockBegin__v_;
text: .text%__1cQNullCheckVisitorHdo_Base6MpnEBase__v_;
-text: .text%__1cKStateSplitPinput_values_do6MpFppnLInstruction__v_v_: c1_Canonicalizer.o;
text: .text%__1cEGotoFvisit6MpnSInstructionVisitor__v_: c1_Canonicalizer.o;
text: .text%__1cQNullCheckVisitorHdo_Goto6MpnEGoto__v_;
-text: .text%__1cCIfPinput_values_do6MpFppnLInstruction__v_v_: c1_Canonicalizer.o;
-text: .text%__1cTNullCheckEliminatorIdo_value6FppnLInstruction__v_;
-text: .text%__1cFLocalPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cFLocalFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorIdo_Local6MpnFLocal__v_;
text: .text%__1cQNullCheckVisitorFdo_If6MpnCIf__v_;
-text: .text%__1cGReturnPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
-text: .text%__1cIConstantPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorLdo_Constant6MpnIConstant__v_;
text: .text%__1cQNullCheckVisitorJdo_Return6MpnGReturn__v_;
-text: .text%__1cJTypeCheckPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorNdo_InstanceOf6MpnKInstanceOf__v_;
text: .text%__1cQNullCheckVisitorMdo_CheckCast6MpnJCheckCast__v_;
-text: .text%__1cLAccessFieldPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorMdo_LoadField6MpnJLoadField__v_;
text: .text%__1cTNullCheckEliminatorShandle_AccessField6MpnLAccessField__v_;
text: .text%__1cQNullCheckVisitorPdo_ArithmeticOp6MpnMArithmeticOp__v_;
-text: .text%__1cLAccessArrayPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorOdo_ArrayLength6MpnLArrayLength__v_;
text: .text%__1cTNullCheckEliminatorShandle_ArrayLength6MpnLArrayLength__v_;
text: .text%__1cQNullCheckVisitorOdo_LoadIndexed6MpnLLoadIndexed__v_;
@@ -1403,16 +1363,12 @@ text: .text%__1cIBlockEndOsubstitute_sux6MpnKBlockBegin_2_v_;
text: .text%__1cCIRMcompute_code6M_v_;
text: .text%__1cLInstructionGnegate6Fn0AJCondition__1_;
text: .text%__1cJBlockListJblocks_do6MpFpnKBlockBegin__v_v_;
-text: .text%__1cQUseCountComputerQupdate_use_count6FppnLInstruction__v_: c1_IR.o;
-text: .text%__1cKStateSplitPstate_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cKValueStackJvalues_do6MpFppnLInstruction__v_v_;
text: .text%__1cFLocalIas_Local6M_p0_: c1_GraphBuilder.o;
text: .text%__1cLCompilationIemit_lir6M_v_;
text: .text%__1cLInstructionGas_Phi6M_pnDPhi__: c1_Canonicalizer.o;
text: .text%__1cMas_BasicType6FpnJValueType__nJBasicType__;
text: .text%__1cJValueTypeRas_ObjectConstant6M_pnOObjectConstant__: c1_Canonicalizer.o;
text: .text%__1cLLIR_OprFactKvalue_type6FpnJValueType__pnLLIR_OprDesc__;
-text: .text%__1cKValueStackMcaller_state6kM_p0_;
text: .text%__1cJArrayTypeMas_ArrayType6M_p0_: c1_ValueType.o;
text: .text%__1cILIR_ListKshift_left6MpnLLIR_OprDesc_222_v_;
text: .text%__1cJValueTypeLas_VoidType6M_pnIVoidType__: c1_Canonicalizer.o;
@@ -1442,7 +1398,6 @@ text: .text%__1cNLIR_AssemblerNemit_opBranch6MpnMLIR_OpBranch__v_;
text: .text%__1cNLIR_AssemblerKemit_delay6MpnLLIR_OpDelay__v_;
text: .text%__1cNLIR_AssemblerLcode_offset6kM_i_;
text: .text%__1cNLIR_AssemblerQemit_opTypeCheck6MpnPLIR_OpTypeCheck__v_;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cOoop_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNLIR_AssemblerEload6MpnMRegisterImpl_i2nJBasicType_pnMCodeEmitInfo__i_;
text: .text%__1cNLIR_AssemblerIemit_op16MpnHLIR_Op1__v_;
@@ -1477,7 +1432,6 @@ text: .text%__1cYDebugInformationRecorderJdata_size6M_i_;
text: .text%__1cNRelocIteratorTadvance_over_prefix6M_v_;
text: .text%__1cOoop_RelocationLunpack_data6M_v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
text: .text%__1cCosXnon_memory_address_word6F_pc_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
@@ -1487,7 +1441,6 @@ text: .text%__1cODataRelocationJset_value6MpC_v_: relocInfo.o;
text: .text%__1cOoop_RelocationGoffset6M_i_: relocInfo.o;
text: .text%__1cKRelocationRpd_set_data_value6MpCi_v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cLCompilation2T6M_v_;
text: .text%__1cFArena2T6M_v_;
@@ -1512,7 +1465,6 @@ text: .text%__1cTjava_lang_ThrowableTfill_in_stack_trace6FnGHandle_pnGThread__v_
text: .text%__1cVPreserveExceptionMark2T6M_v_;
text: .text%__1cSInterpreterRuntimeXthrow_pending_exception6FpnKJavaThread__v_;
text: .text%__1cSThreadLocalStorageGthread6F_pnGThread__: assembler_sparc.o;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
text: .text%__1cSInterpreterRuntimebFexception_handler_for_exception6FpnKJavaThread_pnHoopDesc__pC_;
text: .text%__1cNmethodOopDescbEfast_exception_handler_bci_for6MnLKlassHandle_ipnGThread__i_;
text: .text%__1cFframeZinterpreter_frame_set_bcp6MpC_v_;
@@ -1530,8 +1482,6 @@ text: .text%__1cPciInstanceKlassYprotection_domain_handle6M_pnI_jobject__;
text: .text%__1cLNewInstanceFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerOdo_NewInstance6MpnLNewInstance__v_;
text: .text%__1cMGraphBuilderGinvoke6MnJBytecodesECode__v_;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cPciObjectFactoryTget_unloaded_method6MpnPciInstanceKlass_pnIciSymbol_4_pnIciMethod__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cNciMethodKlassEmake6F_p0_;
@@ -1542,16 +1492,11 @@ text: .text%__1cKValueStackNpop_arguments6Mi_pnGValues__;
text: .text%__1cGInvokeFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerJdo_Invoke6MpnGInvoke__v_;
text: .text%__1cGInvokeJas_Invoke6M_p0_: c1_Instruction.o;
-text: .text%__1cFThrowFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerIdo_Throw6MpnFThrow__v_;
-text: .text%__1cFThrowIas_Throw6M_p0_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorOdo_NewInstance6MpnLNewInstance__v_;
-text: .text%__1cGInvokePinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorJdo_Invoke6MpnGInvoke__v_;
text: .text%__1cTNullCheckEliminatorNhandle_Invoke6MpnGInvoke__v_;
-text: .text%__1cFThrowPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorIdo_Throw6MpnFThrow__v_;
-text: .text%__1cFThrowPstate_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cIVoidTypeLas_VoidType6M_p0_: c1_ValueType.o;
text: .text%__1cLNewInstanceKexact_type6kM_pnGciType__;
text: .text%__1cLNewInstanceOas_NewInstance6M_p0_: c1_Instruction.o;
@@ -1562,7 +1507,6 @@ text: .text%__1cPNewInstanceStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_sparc.o
text: .text%__1cNLIR_AssemblerJemit_call6MpnOLIR_OpJavaCall__v_;
text: .text%__1cNLIR_AssemblerKalign_call6MnILIR_Code__v_;
text: .text%__1cICodeStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_sparc.o;
-text: .text%__1cNLIR_AssemblerEcall6MpCnJrelocInfoJrelocType_pnMCodeEmitInfo__v_;
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cYinternal_word_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cMPatchingStubJemit_code6MpnNLIR_Assembler__v_;
@@ -1586,8 +1530,6 @@ text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJByte
text: .text%__1cMLinkResolverbCresolve_virtual_call_or_null6FnLKlassHandle_1nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cPciObjectFactoryMvm_symbol_at6Fi_pnIciSymbol__;
text: .text%__1cNCanonicalizerMdo_NullCheck6MpnJNullCheck__v_;
-text: .text%__1cKValueStackKpush_scope6MpnHIRScope__p0_;
-text: .text%__1cHIRScopeXcompute_lock_stack_size6M_v_;
text: .text%__1cMGraphBuilderJScopeDataLnum_returns6M_i_;
text: .text%__1cNCanonicalizerHdo_Goto6MpnEGoto__v_;
text: .text%__1cMGraphBuilderJScopeDataQincr_num_returns6M_v_;
@@ -1596,10 +1538,7 @@ text: .text%__1cLCompilationVnotice_inlined_method6MpnIciMethod__v_;
text: .text%__1cFciEnvVnotice_inlined_method6MpnIciMethod__v_;
text: .text%__1cMLinkResolverbCresolve_special_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cLInstructionEprev6MpnKBlockBegin__p0_;
-text: .text%__1cIConstantPother_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cIBlockEndPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cQNullCheckVisitorMdo_NullCheck6MpnJNullCheck__v_;
-text: .text%__1cHIRScopeNtop_scope_bci6kM_i_;
text: .text%__1cIFrameMapQmake_new_address6kMi_nHAddress__;
text: .text%__1cNLIR_AssemblerFstore6MpnMRegisterImpl_2inJBasicType_pnMCodeEmitInfo__v_;
text: .text%__1cNLIR_AssemblerJstack2reg6MpnLLIR_OprDesc_2nJBasicType__v_;
@@ -1610,7 +1549,6 @@ text: .text%__1cXNativeSignatureIteratorIdo_float6M_v_: interpreterRT_sparc.o;
text: .text%JVM_IsNaN;
text: .text%__1cXNativeSignatureIteratorJdo_double6M_v_: interpreterRT_sparc.o;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorLpass_double6M_v_;
-text: .text%__1cEIfOpPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cEIfOpFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorHdo_IfOp6MpnEIfOp__v_;
text: .text%__1cOGenerateOopMapIcopy_cts6MpnNCellTypeState_2_i_;
@@ -1642,8 +1580,6 @@ text: .text%__1cHLogicOpEhash6kM_i_: c1_Instruction.o;
text: .text%__1cHLogicOpEname6kM_pkc_: c1_Instruction.o;
text: .text%__1cMLinkResolverbBresolve_static_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cQNullCheckVisitorNdo_StoreField6MpnKStoreField__v_;
-text: .text%__1cINewArrayPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
-text: .text%__1cHConvertPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorKdo_Convert6MpnHConvert__v_;
text: .text%__1cQNullCheckVisitorPdo_NewTypeArray6MpnMNewTypeArray__v_;
text: .text%__1cJLoadFieldMas_LoadField6M_p0_: c1_Instruction.o;
@@ -1665,7 +1601,6 @@ text: .text%__1cRC1_MacroAssemblerPallocate_object6MpnMRegisterImpl_222ii2rnFLab
text: .text%__1cNLIR_AssemblerOmembar_release6M_v_;
text: .text%__1cNLIR_AssemblerGmembar6M_v_;
text: .text%__1cNLIR_AssemblerOmembar_acquire6M_v_;
-text: .text%__1cNLIR_AssemblerHic_call6MpCpnMCodeEmitInfo__v_;
text: .text%__1cNLIR_AssemblerCpc6kM_pC_;
text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNLIR_AssemblerIlogic_op6MnILIR_Code_pnLLIR_OprDesc_33_v_;
@@ -1675,7 +1610,6 @@ text: .text%__1cXvirtual_call_RelocationLunpack_data6M_v_;
text: .text%__1cNinstanceKlassVadd_dependent_nmethod6MpnHnmethod__v_;
text: .text%__1cGPcDescHreal_pc6kMpknHnmethod__pC_;
text: .text%__1cNSharedRuntimeXfind_callee_info_helper6FpnKJavaThread_rnMvframeStream_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cLRegisterMapIpd_clear6M_v_;
text: .text%__1cPBytecode_invokeNstatic_target6MpnGThread__nMmethodHandle__;
text: .text%__1cMLinkResolverOresolve_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
@@ -1690,8 +1624,6 @@ text: .text%__1cKNativeCallXset_destination_mt_safe6MpC_v_;
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%__1cOGenerateOopMapGdo_ldc6Mii_v_;
text: .text%__1cMGraphBuilderNload_constant6M_v_;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cWstatic_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cKExceptionsL_throw_args6FpnGThread_pkcinMsymbolHandle_5pnRJavaCallArguments__v_;
text: .text%__1cMPeriodicTaskOreal_time_tick6FI_v_;
@@ -1700,7 +1632,6 @@ text: .text%jni_GetArrayLength: jni.o;
text: .text%JVM_Read;
text: .text%jni_GetByteArrayRegion: jni.o;
text: .text%JVM_DefineClassWithSource;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cPClassFileParserbDverify_legal_method_signature6MnMsymbolHandle_1pnGThread__i_;
text: .text%__1cPClassFileParserXverify_legal_class_name6MnMsymbolHandle_pnGThread__v_;
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
@@ -1780,7 +1711,6 @@ text: .text%__1cUJvmtiEventControllerIvm_death6F_v_;
text: .text%__1cCosXterminate_signal_thread6F_v_;
text: .text%__1cCosNsigexitnum_pd6F_i_;
text: .text%__1cCosNsignal_notify6Fi_v_;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cIVMThreadXwait_for_vm_thread_exit6F_v_;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
text: .text%__1cORuntimeServiceWrecord_safepoint_begin6F_v_;
@@ -1795,7 +1725,6 @@ text: .text%__1cQSystemDictionaryRnumber_of_classes6F_i_;
text: .text%__1cQSystemDictionaryStry_get_next_class6F_pnMklassOopDesc__;
text: .text%__1cKDictionaryStry_get_next_class6M_pnMklassOopDesc__;
text: .text%__1cNinstanceKlassKmethods_do6MpFpnNmethodOopDesc__v_v_;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
text: .text%__1cHVM_ExitbJwait_for_threads_in_native_to_block6F_i_;
text: .text%__1cIVMThreadHdestroy6F_v_;
@@ -1839,7 +1768,6 @@ text: .text%__1cMGraphBuilderNstore_indexed6MnJBasicType__v_;
text: .text%__1cIValueMapKkill_array6MpnJValueType__v_;
text: .text%__1cNCanonicalizerPdo_StoreIndexed6MpnMStoreIndexed__v_;
text: .text%__1cQNullCheckVisitorPdo_StoreIndexed6MpnMStoreIndexed__v_;
-text: .text%__1cKValueStackElock6MpnHIRScope_pnLInstruction__i_;
text: .text%__1cKValueStackGunlock6M_i_;
text: .text%__1cQMonitorEnterStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_sparc.o;
text: .text%__1cNLIR_AssemblerJemit_lock6MpnKLIR_OpLock__v_;
@@ -1859,7 +1787,6 @@ text: .text%__1cTconstantPoolOopDescbCverify_constant_pool_resolve6FnSconstantPo
text: .text%__1cNCanonicalizerMdo_Intrinsic6MpnJIntrinsic__v_;
text: .text%__1cMas_ValueType6FnKciConstant__pnJValueType__;
text: .text%__1cQNullCheckVisitorMdo_Intrinsic6MpnJIntrinsic__v_;
-text: .text%__1cDOp2Pinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorKdo_ShiftOp6MpnHShiftOp__v_;
text: .text%__1cILIR_ListLshift_right6MpnLLIR_OprDesc_222_v_;
text: .text%__1cMNewTypeArrayKexact_type6kM_pnGciType__;
@@ -1876,7 +1803,6 @@ text: .text%__1cYciExceptionHandlerStreamEnext6M_v_: c1_IR.o;
text: .text%__1cLInstructionGmirror6Fn0AJCondition__1_;
text: .text%__1cKBlockBeginVadd_exception_handler6Mp0_v_;
text: .text%__1cIciObjectEhash6M_i_;
-text: .text%__1cLAccessFieldPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cFChunk2n6FII_pv_;
text: .text%jni_CallStaticVoidMethodV: jni.o;
text: .text%JVM_GetLastErrorString;
@@ -1899,8 +1825,6 @@ text: .text%__1cWCountInterfacesClosureEdoit6MpnMklassOopDesc_i_v_: klassVtable.
text: .text%__1cPfieldDescriptorRint_initial_value6kM_i_;
text: .text%__1cSSetupItableClosureEdoit6MpnMklassOopDesc_i_v_: klassVtable.o;
text: .text%__1cSInterpreterRuntimeOmultianewarray6FpnKJavaThread_pi_v_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
-text: .text%__1cQSimpleCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
text: .text%__1cMGraphBuilderQnew_object_array6M_v_;
text: .text%__1cONewObjectArrayFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerRdo_NewObjectArray6MpnONewObjectArray__v_;
@@ -1919,7 +1843,6 @@ text: .text%__1cUBytecode_tableswitchOdest_offset_at6kMi_i_;
text: .text%__1cMGraphBuilderMtable_switch6M_v_;
text: .text%__1cLTableSwitchFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerOdo_TableSwitch6MpnLTableSwitch__v_;
-text: .text%__1cGSwitchPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorOdo_TableSwitch6MpnLTableSwitch__v_;
text: .text%__1cSCompiledStaticCallNcompute_entry6FnMmethodHandle_rnOStaticCallInfo__v_;
text: .text%__1cSCompiledStaticCallDset6MrknOStaticCallInfo__v_;
@@ -1972,7 +1895,6 @@ text: .text%jni_GetStaticObjectField: jni.o;
text: .text%__1cXJNI_ArgumentPusherVaArgIget_long6M_v_: jni.o;
text: .text%__1cINegateOpFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerLdo_NegateOp6MpnINegateOp__v_;
-text: .text%__1cINegateOpPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorLdo_NegateOp6MpnINegateOp__v_;
text: .text%__1cILIR_ListLstore_check6MpnLLIR_OprDesc_2222pnMCodeEmitInfo__v_;
text: .text%__1cXArrayStoreExceptionStub2t6MpnMCodeEmitInfo__v_;
@@ -2008,13 +1930,11 @@ text: .text%__1cYjava_lang_reflect_MethodEslot6FpnHoopDesc__i_;
text: .text%__1cYjava_lang_reflect_MethodPparameter_types6FpnHoopDesc__2_;
text: .text%__1cYjava_lang_reflect_MethodLreturn_type6FpnHoopDesc__2_;
text: .text%JVM_IsInterrupted;
-text: .text%__1cMArithmeticOpKlock_stack6kM_pnKValueStack__: c1_Instruction.o;
text: .text%__1cNLIR_AssemblerIemit_op36MpnHLIR_Op3__v_;
text: .text%__1cNLIR_AssemblerbCadd_debug_info_for_div0_here6MpnMCodeEmitInfo__v_;
text: .text%__1cNDivByZeroStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_sparc.o;
text: .text%__1cNDivByZeroStubJemit_code6MpnNLIR_Assembler__v_;
text: .text%__1cIFrameMapLnr2floatreg6Fi_pnRFloatRegisterImpl__;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%Unsafe_EnsureClassInitialized;
text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHandle_pnGThread__1_;
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
@@ -2070,7 +1990,6 @@ text: .text%jni_NewIntArray: jni.o;
text: .text%__1cKGenerationInext_gen6kM_p0_;
text: .text%__1cQinstanceRefKlassZacquire_pending_list_lock6FpnJBasicLock__v_;
text: .text%__1cbAVM_GenCollectForAllocationEdoit6M_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cTContiguousSpacePoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cTContiguousSpacePoolNused_in_bytes6M_I_: memoryPool.o;
@@ -2094,8 +2013,6 @@ text: .text%__1cKSharedHeapbAchange_strong_roots_parity6M_v_;
text: .text%__1cPFastScanClosureGdo_oop6MppnHoopDesc__v_: defNewGeneration.o;
text: .text%__1cPContiguousSpaceIallocate6MI_pnIHeapWord__;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cOJNIHandleBlockHoops_do6MpnKOopClosure__v_;
text: .text%__1cKHandleAreaHoops_do6MpnKOopClosure__v_;
text: .text%__1cFframeVinterpreter_frame_bci6kM_i_;
@@ -2124,8 +2041,6 @@ text: .text%__1cTMaskFillerForNative2t6MnMmethodHandle_pIi_v_: oopMapCache.o;
text: .text%__1cTMaskFillerForNativeLpass_object6M_v_: oopMapCache.o;
text: .text%__1cTMaskFillerForNativeJpass_long6M_v_: oopMapCache.o;
text: .text%__1cRComputeEntryStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
text: .text%__1cMFlatProfilerHoops_do6FpnKOopClosure__v_;
text: .text%__1cKManagementHoops_do6FpnKOopClosure__v_;
@@ -2221,7 +2136,6 @@ text: .text%__1cUGenGCEpilogueClosureNdo_generation6MpnKGeneration__v_: genColle
text: .text%__1cRTenuredGenerationPupdate_counters6M_v_;
text: .text%__1cUCompactingPermGenGenPupdate_counters6M_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%__1cNJvmtiGCMarker2T6M_v_;
text: .text%__1cPVM_GC_OperationNdoit_epilogue6M_v_;
@@ -2232,7 +2146,6 @@ text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
text: .text%__1cNCanonicalizerPdo_MonitorEnter6MpnMMonitorEnter__v_;
text: .text%__1cLMonitorExitFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerOdo_MonitorExit6MpnLMonitorExit__v_;
-text: .text%__1cNAccessMonitorPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_MonitorEnter6MpnMMonitorEnter__v_;
text: .text%__1cQNullCheckVisitorOdo_MonitorExit6MpnLMonitorExit__v_;
text: .text%__1cMLongConstantPas_LongConstant6M_p0_: c1_Canonicalizer.o;
@@ -2246,10 +2159,7 @@ text: .text%__1cRComputeEntryStackIdo_short6M_v_: generateOopMap.o;
text: .text%Unsafe_AllocateInstance;
text: .text%jni_AllocObject: jni.o;
text: .text%__1cNCanonicalizerMset_constant6Mi_v_: c1_Canonicalizer.o;
-text: .text%__1cJTypeCheckPother_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cQComputeCallStackIdo_float6M_v_: generateOopMap.o;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cMOopMapStreamJfind_next6M_v_;
text: .text%__1cQinstanceRefKlassSoop_oop_iterate_nv6MpnHoopDesc_pnQFilteringClosure__i_;
text: .text%__1cQinstanceRefKlassUoop_oop_iterate_nv_m6MpnHoopDesc_pnQFilteringClosure_nJMemRegion__i_;
@@ -2284,7 +2194,6 @@ text: .text%__1cLsymbolKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cQinstanceRefKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cQconstMethodKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cFJNIidHoops_do6MpnKOopClosure__v_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryValways_strong_oops_do6FpnKOopClosure__v_;
text: .text%__1cKDictionaryYalways_strong_classes_do6MpnKOopClosure__v_;
text: .text%__1cVLoaderConstraintTableYalways_strong_classes_do6MpnKOopClosure__v_;
@@ -2341,9 +2250,6 @@ text: .text%__1cVcompiledICHolderKlassOklass_oop_size6kM_i_: compiledICHolderKla
text: .text%__1cJHashtableHoops_do6MpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryYalways_strong_classes_do6FpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryPplaceholders_do6FpnKOopClosure__v_;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cJMarkSweepMadjust_marks6F_v_;
text: .text%__1cYGenAdjustPointersClosureNdo_generation6MpnKGeneration__v_: genMarkSweep.o;
text: .text%__1cKGenerationPadjust_pointers6M_v_;
@@ -2379,32 +2285,24 @@ text: .text%__1cIRuntime1Onew_type_array6FpnKJavaThread_pnMklassOopDesc_i_v_;
text: .text%__1cVcompiledICHolderKlassRoop_oop_iterate_m6MpnHoopDesc_pnKOopClosure_nJMemRegion__i_;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
text: .text%__1cOMacroAssemblerEmult6MpnMRegisterImpl_22_v_;
-text: .text%__1cINewArrayPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cJValueTypeLas_LongType6M_pnILongType__: c1_Canonicalizer.o;
text: .text%__1cNVM_DeoptimizeEdoit6M_v_;
text: .text%__1cODeoptimizationVdeoptimize_dependents6F_i_;
text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
text: .text%__1cKJavaThreadbFdeoptimized_wrt_marked_nmethods6M_v_;
text: .text%__1cJCodeCachebGmake_marked_nmethods_not_entrant6F_v_;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cKNativeJumpUpatch_verified_entry6FpC11_v_;
text: .text%signalHandler;
text: .text%JVM_handle_solaris_signal;
text: .text%JVM_HoldsLock;
text: .text%__1cQinstanceRefKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceRefKlass.o;
text: .text%__1cJCodeCacheFfirst6F_pnICodeBlob__;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cJCodeCacheEnext6FpnICodeBlob__2_;
text: .text%__1cONewObjectArrayKexact_type6kM_pnGciType__;
text: .text%__1cPciObjArrayKlassNelement_klass6M_pnHciKlass__;
text: .text%__1cIRuntime1Noop_arraycopy6FpnIHeapWord_2i_v_;
text: .text%__1cMGraphBuilderKcompare_op6MpnJValueType_nJBytecodesECode__v_;
-text: .text%__1cJCompareOpFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerMdo_CompareOp6MpnJCompareOp__v_;
-text: .text%__1cJCompareOpEhash6kM_i_: c1_Instruction.o;
-text: .text%__1cJCompareOpEname6kM_pkc_: c1_Instruction.o;
-text: .text%__1cJCompareOpMas_CompareOp6M_p0_: c1_Instruction.o;
text: .text%__1cJValueTypeOas_IntConstant6M_pnLIntConstant__: c1_Canonicalizer.o;
text: .text%__1cHIntTypeKas_IntType6M_p0_: c1_Canonicalizer.o;
text: .text%__1cNSharedRuntimeDf2l6Ff_x_;
@@ -2422,7 +2320,6 @@ text: .text%__1cRComputeEntryStackIdo_float6M_v_: generateOopMap.o;
text: .text%__1cTMaskFillerForNativeIpass_int6M_v_: oopMapCache.o;
text: .text%__1cHnmethodSflush_dependencies6MpnRBoolObjectClosure__v_;
text: .text%__1cNinstanceKlassYremove_dependent_nmethod6MpnHnmethod__v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cLCardTableRSFclear6MnJMemRegion__v_: cardTableRS.o;
text: .text%__1cRCardTableModRefBSFclear6MnJMemRegion__v_;
text: .text%__1cHnmethodFflush6M_v_;
@@ -2445,9 +2342,7 @@ text: .text%__1cNCanonicalizerPdo_UnsafeGetRaw6MpnMUnsafeGetRaw__v_;
text: .text%__1cMGraphBuilderNlookup_switch6M_v_;
text: .text%__1cMLookupSwitchFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerPdo_LookupSwitch6MpnMLookupSwitch__v_;
-text: .text%__1cMUnsafePutRawPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_UnsafePutRaw6MpnMUnsafePutRaw__v_;
-text: .text%__1cLUnsafeRawOpPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_UnsafeGetRaw6MpnMUnsafeGetRaw__v_;
text: .text%__1cQNullCheckVisitorPdo_LookupSwitch6MpnMLookupSwitch__v_;
text: .text%__1cIRuntime1Mnew_instance6FpnKJavaThread_pnMklassOopDesc__v_;
diff --git a/hotspot/make/solaris/makefiles/reorder_TIERED_amd64 b/hotspot/make/solaris/makefiles/reorder_TIERED_amd64
index 4531671c613..8aa944c7adf 100644
--- a/hotspot/make/solaris/makefiles/reorder_TIERED_amd64
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_amd64
@@ -4,38 +4,22 @@ text = LOAD ?RXO;
text: .text%__1cECopyRpd_disjoint_words6FpnIHeapWord_2L_v_;
text: .text%__1cSPSPromotionManagerWcopy_to_survivor_space6MpnHoopDesc__2_;
-text: .text%__1cNinstanceKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cJMarkSweepO_mark_and_push6FppnHoopDesc__v_;
text: .text%__1cNinstanceKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cNinstanceKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cOtypeArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cOtypeArrayKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cQIndexSetIteratorEnext6M_I_;
-text: .text%__1cJMarkSweepPmark_and_follow6FppnHoopDesc__v_;
-text: .text%__1cCosOjavaTimeMillis6F_x_;
-text: .text%__1cNRelocIteratorEnext6M_i_;
text: .text%__1cQIndexSetIteratorQadvance_and_next6M_I_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
-text: .text%__1cNobjArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNobjArrayKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cNobjArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cQObjectStartArrayMobject_start6kMpnIHeapWord__2_;
text: .text%__1cJMarkSweepUAdjustPointerClosureGdo_oop6MppnHoopDesc__v_;
-text: .text%__1cJMarkSweepOIsAliveClosureLdo_object_b6MpnHoopDesc__i_;
-text: .text%__1cENodeGis_Phi6M_pnHPhiNode__;
text: .text%__1cIPhaseIFGIadd_edge6MII_i_;
-text: .text%__1cPBoundRelocationLunpack_data6MnJrelocInfoJrelocType__v_;
-text: .text%__1cIMachNodeHis_Mach6M_p0_;
-text: .text%__1cENodeHis_Copy6kM_I_;
-text: .text%__1cUCompressedReadStreamIread_int6M_i_;
text: .text%__1cQIndexSetIterator2t6MpnIIndexSet__v_;
text: .text%__1cOPhaseIdealLoopOidom_no_update6kMpnENode__2_;
-text: .text%__1cHnmethodKcan_unload6MpnRBoolObjectClosure_pnKOopClosure_ppnHoopDesc_i_i_;
-text: .text%__1cIMachNodeNrematerialize6kM_i_;
-text: .text%__1cHRegMaskFis_UP6kM_i_;
text: .text%__1cXresource_allocate_bytes6FL_pc_;
text: .text%__1cNRelocIteratorFreloc6M_pnKRelocation__;
-text: .text%__1cENodeHis_Mach6M_pnIMachNode__;
text: .text%__1cHRegMaskESize6kM_I_;
text: .text%__1cIIndexSetLalloc_block6M_pn0AIBitBlock__;
text: .text%__1cWConstantPoolCacheEntryPadjust_pointers6M_v_;
@@ -48,7 +32,6 @@ text: .text%__1cLsymbolKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cLsymbolKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cYPSPromotionFailedClosureJdo_object6MpnHoopDesc__v_;
text: .text%__1cENodeEjvms6kM_pnIJVMState__;
-text: .text%__1cKRelocationSfix_oop_relocation6M_v_;
text: .text%__1cIIndexSetWalloc_block_containing6MI_pn0AIBitBlock__;
text: .text%__1cENodeHdel_out6Mp0_v_;
text: .text%__1cKRelocationLunpack_data6M_v_;
@@ -56,18 +39,11 @@ text: .text%__1cIMachNodeJideal_reg6kM_I_;
text: .text%__1cJAssemblerOlocate_operand6FpCn0AMWhichOperand__1_;
text: .text%__1cKRelocationSpd_address_in_code6M_ppC_;
text: .text%__1cOoop_RelocationIoop_addr6M_ppnHoopDesc__;
-text: .text%__1cRMachSpillCopyNodeMis_SpillCopy6M_p0_;
text: .text%__1cOPhaseIdealLoopSget_ctrl_no_update6kMpnENode__2_;
text: .text%__1cJCProjNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cENodeGis_CFG6kM_i_;
-text: .text%__1cKRelocationNunpack_2_ints6Mri1_v_;
text: .text%__1cETypeDcmp6Fpk02_i_;
-text: .text%__1cQObjectStartArrayWobject_starts_in_range6kMpnIHeapWord_2_i_;
text: .text%__1cOoop_RelocationLunpack_data6M_v_;
text: .text%__1cHRegMaskJis_bound16kM_i_;
-text: .text%__1cENodeHis_Proj6M_pnIProjNode__;
-text: .text%__1cENodeMis_SpillCopy6M_pnRMachSpillCopyNode__;
-text: .text%__1cOtypeArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cHRegMaskJis_bound26kM_i_;
text: .text%__1cRmethodDataOopDescHdata_at6Mi_pnLProfileData__;
text: .text%__1cNGrowableArray4CI_Hat_grow6MirkI_I_;
@@ -78,126 +54,74 @@ text: .text%__1cQconstMethodKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cQconstMethodKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cLmethodKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cRmethodDataOopDescJnext_data6MpnLProfileData__2_;
-text: .text%__1cMOopTaskQdDueueOpop_local_slow6MInOTaskQdDueueSuperDAge__i_;
-text: .text%__1cRMachSpillCopyNodeHis_Copy6kM_I_;
-text: .text%__1cENodeGpinned6kM_i_;
text: .text%__1cOoop_RelocationJoop_value6M_pnHoopDesc__;
text: .text%__1cJrRegPOperEtype6kM_pknEType__;
text: .text%__1cECopyQpd_fill_to_words6FpnIHeapWord_LI_v_;
-text: .text%__1cMOopTaskQdDueueKpop_global6MrpnHoopDesc__i_;
-text: .text%__1cPOopTaskQdDueueSetPsteal_best_of_26MipirpnHoopDesc__i_;
text: .text%__1cJVectorSet2R6MI_rnDSet__;
text: .text%__1cNRelocIteratorTadvance_over_prefix6M_v_;
-text: .text%__1cSPSPromotionManagerUflush_prefetch_queue6M_v_;
-text: .text%__1cIProjNodeHis_Proj6M_p0_;
text: .text%__1cPDictionaryEntrybDprotection_domain_set_oops_do6MpnKOopClosure__v_;
text: .text%__1cMOopMapStreamJfind_next6M_v_;
-text: .text%__1cMloadConPNodePoper_input_base6kM_I_;
-text: .text%__1cMloadConPNodeHtwo_adr6kM_I_;
text: .text%__1cMloadConPNodeErule6kM_I_;
-text: .text%__1cHPhiNodeGis_Phi6M_p0_;
text: .text%__1cITypeNodeLbottom_type6kM_pknEType__;
-text: .text%__1cENodeGis_Cmp6kM_pknHCmpNode__;
text: .text%__1cDff16FI_i_;
-text: .text%__1cENodeNrematerialize6kM_i_;
text: .text%__1cRLowMemoryDetectorbLdetect_low_memory_for_collected_pools6F_v_;
-text: .text%__1cFframeVoopmapreg_to_location6kMipknLRegisterMap__ppnHoopDesc__;
text: .text%__1cIIndexSetKinitialize6MI_v_;
-text: .text%__1cENodeJis_Region6kM_pknKRegionNode__;
text: .text%__1cMMutableSpaceMcas_allocate6ML_pnIHeapWord__;
text: .text%__1cIMachNodeGOpcode6kM_i_;
-text: .text%__1cMget_live_bit6Fpii_i_: buildOopMap.o;
-text: .text%__1cNSafePointNodeGis_CFG6kM_i_;
-text: .text%__1cIMachNodeQis_MachNullCheck6M_pnRMachNullCheckNode__;
text: .text%__1cENodeHadd_req6Mp0_v_;
text: .text%__1cENodeIout_grow6MI_v_;
-text: .text%__1cMset_live_bit6Fpii_v_: buildOopMap.o;
text: .text%__1cKTypeOopPtrFklass6kM_pnHciKlass__;
text: .text%__1cIIndexSetKfree_block6MI_v_;
-text: .text%__1cJCProjNodeGis_CFG6kM_i_;
text: .text%__1cETypeFuhash6Fpk0_i_;
text: .text%__1cJrRegIOperEtype6kM_pknEType__;
text: .text%__1cMPhaseChaitinLskip_copies6MpnENode__2_;
-text: .text%__1cIMachNodeMcisc_operand6kM_i_;
-text: .text%__1cVCompressedWriteStreamJwrite_int6Mi_v_;
text: .text%__1cICallNodeKmatch_edge6kMI_I_;
-text: .text%__1cENodeHis_Call6M_pnICallNode__;
text: .text%__1cNCollectedHeapbDcheck_for_bad_heap_word_value6MpnIHeapWord_L_v_;
-text: .text%__1cEDictGInsert6Mpv1i_1_;
text: .text%JVM_CurrentTimeMillis;
-text: .text%__1cINodeHashLhash_delete6MpknENode__i_;
-text: .text%__1cETypeJtype_dict6F_pnEDict__;
text: .text%__1cOPSPromotionLABKinitialize6MnJMemRegion__v_;
text: .text%__1cOPSPromotionLABFflush6M_v_;
-text: .text%__1cIrc_class6Fi_nCRC__: ad_amd64.o;
text: .text%__1cMPhaseChaitinTinterfere_with_live6MIpnIIndexSet__v_;
text: .text%__1cINodeHashQhash_find_insert6MpnENode__2_;
-text: .text%__1cNCollectedHeapbAcommon_mem_allocate_noinit6FLipnGThread__pnIHeapWord__;
-text: .text%__1cENodeHis_Load6M_pnILoadNode__;
-text: .text%__1cFArenaIcontains6kMpkv_i_;
-text: .text%__1cJMultiNodeGis_CFG6kM_i_;
text: .text%__1cHPhiNodeGOpcode6kM_i_;
-text: .text%__1cMPhaseChaitinKelide_copy6MpnENode_ipnFBlock_rnJNode_List_6i_i_;
text: .text%__1cKjmpDirNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cIProjNodeGis_CFG6kM_i_;
text: .text%__1cRMachSpillCopyNodeJideal_reg6kM_I_;
text: .text%__1cETypeIhashcons6M_pk0_;
text: .text%__1cENodeEhash6kM_I_;
-text: .text%__1cNMachIdealNodeMideal_Opcode6kM_i_;
-text: .text%__1cOlower_pressure6FpnDLRG_IpnFBlock_pI4_v_: ifg.o;
-text: .text%__1cPOopTaskQdDueueSetFsteal6MipirpnHoopDesc__i_;
-text: .text%__1cENodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cKRegionNodeGis_CFG6kM_i_;
-text: .text%__1cHCompileRvalid_bundle_info6MpknENode__i_;
text: .text%__1cIProjNodeGOpcode6kM_i_;
-text: .text%__1cENodeLis_MergeMem6M_pnMMergeMemNode__;
text: .text%__1cOoop_RelocationSfix_oop_relocation6M_v_;
text: .text%__1cPClassFileStreamGget_u26MpnGThread__H_;
-text: .text%__1cENodeIis_Store6kM_pknJStoreNode__;
text: .text%__1cPVirtualCallDataKcell_count6M_i_;
-text: .text%__1cIProjNodeGpinned6kM_i_;
text: .text%__1cENodeMcisc_operand6kM_i_;
text: .text%__1cRInterpreterOopMapLoop_iterate6MpnKOopClosure__v_;
text: .text%__1cMMachCallNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cMloadConINodePoper_input_base6kM_I_;
-text: .text%__1cMloadConINodeHtwo_adr6kM_I_;
text: .text%__1cHNTarjanEEVAL6M_p0_;
text: .text%__1cNMachIdealNodeErule6kM_I_;
text: .text%__1cKHandleMarkKinitialize6MpnGThread__v_;
text: .text%__1cKHandleMark2T6M_v_;
-text: .text%__1cETypeLisa_oop_ptr6kM_i_;
-text: .text%__1cOPhaseIdealLoopUbuild_loop_late_post6MpnENode_pk0_v_;
text: .text%__1cENode2t6MI_v_;
text: .text%__1cJloadPNodeErule6kM_I_;
-text: .text%__1cIMachNodeLis_MachCall6M_pnMMachCallNode__;
text: .text%__1cMloadConINodeErule6kM_I_;
text: .text%__1cICodeHeapKfind_start6kMpv_1_;
text: .text%__1cWShouldNotReachHereNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cHTypeIntCeq6kMpknEType__i_;
text: .text%__1cLProfileDataPfollow_contents6M_v_;
text: .text%__1cLProfileDataPadjust_pointers6M_v_;
-text: .text%__1cIMachNodeQis_MachSafePoint6M_pnRMachSafePointNode__;
text: .text%__1cHRegMaskMClearToPairs6M_v_;
text: .text%__1cJPhaseLiveLadd_liveout6MpnFBlock_IrnJVectorSet__v_;
text: .text%__1cLemit_opcode6FrnKCodeBuffer_i_v_;
text: .text%__1cIPhaseIFGQeffective_degree6kMI_i_;
-text: .text%__1cENodeIis_Catch6kM_pknJCatchNode__;
text: .text%__1cFArenaIArealloc6MpvLL_1_;
text: .text%__1cGIfNodeGOpcode6kM_i_;
text: .text%__1cHTypePtrEhash6kM_i_;
text: .text%__1cIPhaseIFGLremove_node6MI_pnIIndexSet__;
text: .text%__1cIPhaseIFGJre_insert6MI_v_;
text: .text%__1cRMachSpillCopyNodeLbottom_type6kM_pknEType__;
-text: .text%__1cMclr_live_bit6Fpii_v_: buildOopMap.o;
text: .text%__1cETypeEmeet6kMpk0_2_;
-text: .text%__1cMPhaseChaitinQis_high_pressure6MpnFBlock_pnDLRG_I_i_;
text: .text%__1cKBranchDataKcell_count6M_i_;
text: .text%__1cNCollectedHeapOarray_allocate6FnLKlassHandle_iipnGThread__pnHoopDesc__;
text: .text%__1cOPhaseIdealLoopYsplit_if_with_blocks_pre6MpnENode__2_;
text: .text%__1cNIdealLoopTreeJis_member6kMpk0_i_;
text: .text%__1cOPhaseIdealLoopZsplit_if_with_blocks_post6MpnENode__v_;
text: .text%__1cDfh16FI_i_;
-text: .text%__1cJraw_score6Fdd_d_: chaitin.o;
text: .text%__1cDLRGFscore6kM_d_;
text: .text%__1cKTypeOopPtrEhash6kM_i_;
text: .text%__1cIAddPNodeGOpcode6kM_i_;
@@ -205,11 +129,8 @@ text: .text%__1cKIfTrueNodeGOpcode6kM_i_;
text: .text%__1cMPhaseChaitinMchoose_color6MrnDLRG_i_i_;
text: .text%__1cMPhaseIterGVNNtransform_old6MpnENode__2_;
text: .text%__1cGcmpkey6Fpkv1_i_;
-text: .text%__1cETypeJsingleton6kM_i_;
text: .text%__1cIMachNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cSPSPromotionManagerMdrain_stacks6M_v_;
text: .text%__1cHConNodeGOpcode6kM_i_;
-text: .text%__1cITypeLongCeq6kMpknEType__i_;
text: .text%__1cUParallelScavengeHeapVlarge_typearray_limit6M_L_;
text: .text%__1cOtypeArrayKlassIallocate6MipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cKoopFactoryNnew_typeArray6FnJBasicType_ipnGThread__pnQtypeArrayOopDesc__;
@@ -220,133 +141,90 @@ text: .text%__1cICodeHeapLblock_start6kMpv_pnJHeapBlock__;
text: .text%__1cJCodeCacheEnext6FpnICodeBlob__2_;
text: .text%__1cRMachSpillCopyNodeKin_RegMask6kMI_rknHRegMask__;
text: .text%__1cMMachProjNodeLbottom_type6kM_pknEType__;
-text: .text%__1cLOptoRuntimeXdeoptimize_caller_frame6FpnKJavaThread_i_v_;
text: .text%__1cSCallStaticJavaNodeGOpcode6kM_i_;
text: .text%__1cYCallStaticJavaDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cJCodeCacheFalive6FpnICodeBlob__2_;
-text: .text%__1cHRegMaskQis_aligned_Pairs6kM_i_;
-text: .text%__1cSis_single_register6FI_i_: postaloc.o;
text: .text%__1cRMachSpillCopyNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMPhaseIterGVNWadd_users_to_worklist06MpnENode__v_;
text: .text%__1cECopyYconjoint_words_to_higher6FpnIHeapWord_2L_v_;
text: .text%__1cILRG_ListGextend6MII_v_;
text: .text%__1cWstatic_stub_RelocationLunpack_data6M_v_;
-text: .text%__1cIciObjectGequals6Mp0_i_;
text: .text%__1cJPhaseLiveGgetset6MpnFBlock__pnIIndexSet__;
text: .text%__1cIConINodeGOpcode6kM_i_;
-text: .text%__1cENodeRis_cisc_alternate6kM_i_;
text: .text%__1cLIfFalseNodeGOpcode6kM_i_;
text: .text%__1cKNode_ArrayGinsert6MIpnENode__v_;
text: .text%__1cLCounterDataKcell_count6M_i_;
-text: .text%__1cWThreadLocalAllocBufferFreset6M_v_;
text: .text%__1cMMachProjNodeGOpcode6kM_i_;
text: .text%__1cENodeEgrow6MI_v_;
text: .text%__1cIMachNodePcompute_padding6kMi_i_;
-text: .text%__1cKup_one_dom6FpnENode__1_: ifnode.o;
text: .text%__1cIMachNodeSalignment_required6kM_i_;
text: .text%__1cOPhaseIdealLoopEsort6MpnNIdealLoopTree_2_2_;
-text: .text%__1cFframeOis_entry_frame6kM_i_;
text: .text%__1cNCollectedHeapXallocate_from_tlab_slow6FpnGThread_L_pnIHeapWord__;
-text: .text%__1cUParallelScavengeHeapVunsafe_max_tlab_alloc6kM_L_;
text: .text%__1cHNTarjanICOMPRESS6M_v_;
text: .text%__1cWThreadLocalAllocBufferXclear_before_allocation6M_v_;
-text: .text%__1cFMutexGunlock6M_v_;
-text: .text%__1cJMultiNodeIis_Multi6M_p0_;
text: .text%__1cIBoolNodeGOpcode6kM_i_;
text: .text%__1cSInterpreterRuntimeInewarray6FpnKJavaThread_nJBasicType_i_v_;
text: .text%__1cUParallelScavengeHeapRallocate_new_tlab6ML_pnIHeapWord__;
-text: .text%__1cKSharedHeapXfill_region_with_object6FnJMemRegion__v_;
text: .text%__1cWThreadLocalAllocBufferKinitialize6MpnIHeapWord_22_v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2t6M_v_;
text: .text%__1cWThreadLocalAllocBufferEfill6MpnIHeapWord_2L_v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2T6M_v_;
-text: .text%__1cKTypeOopPtrCeq6kMpknEType__i_;
-text: .text%__1cHTypePtrCeq6kMpknEType__i_;
text: .text%__1cRMachSpillCopyNodePoper_input_base6kM_I_;
text: .text%__1cIIndexSetFclear6M_v_;
-text: .text%__1cHTypeIntJsingleton6kM_i_;
text: .text%__1cJPhaseLiveLadd_liveout6MpnFBlock_pnIIndexSet_rnJVectorSet__v_;
text: .text%__1cECopyXconjoint_words_to_lower6FpnIHeapWord_2L_v_;
text: .text%__1cNRelocIteratorKset_limits6MpC1_v_;
-text: .text%__1cNRelocIteratorKinitialize6MlpnICodeBlob_pC3_v_;
text: .text%__1cNinstanceKlassGvtable6kM_pnLklassVtable__;
text: .text%__1cSinstanceKlassKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cITypeNodeJideal_reg6kM_I_;
-text: .text%__1cFframeUis_interpreted_frame6kM_i_;
text: .text%__1cHTypeIntEhash6kM_i_;
text: .text%__1cIPhaseGVNJtransform6MpnENode__2_;
text: .text%__1cNinstanceKlassGitable6kM_pnLklassItable__;
text: .text%__1cLklassItable2t6MnTinstanceKlassHandle__v_;
-text: .text%__1cIMachNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cIciObjectEhash6M_i_;
-text: .text%__1cENodeIis_Multi6M_pnJMultiNode__;
-text: .text%__1cFState2T6M_v_;
-text: .text%__1cPVirtualCallDataPfollow_contents6M_v_;
-text: .text%__1cPVirtualCallDataPadjust_pointers6M_v_;
-text: .text%__1cENodeGis_Con6kM_I_;
-text: .text%__1cJrRegIOperJnum_edges6kM_I_;
-text: .text%__1cENodeIget_long6kM_x_;
text: .text%__1cNCellTypeStateFmerge6kM0i_0_;
text: .text%__1cOPhaseIdealLoopUbuild_loop_tree_impl6MpnENode_i_i_;
text: .text%__1cWNode_Backward_IteratorEnext6M_pnENode__;
text: .text%__1cHemit_rm6FrnKCodeBuffer_iii_v_;
-text: .text%__1cHPhiNodeGpinned6kM_i_;
text: .text%__1cITypeNodeEhash6kM_I_;
text: .text%__1cIIndexSetKinitialize6MIpnFArena__v_;
text: .text%__1cJPhaseLiveKgetfreeset6M_pnIIndexSet__;
text: .text%__1cMMachProjNodeJideal_reg6kM_I_;
text: .text%__1cHPhiNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIParmNodeGis_CFG6kM_i_;
text: .text%__1cENodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cNCollectedHeapMobj_allocate6FnLKlassHandle_ipnGThread__pnHoopDesc__;
text: .text%__1cNinstanceKlassRallocate_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cKRegionNodeGOpcode6kM_i_;
text: .text%__1cMMachProjNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLOptoRuntimeFnew_C6FpnMklassOopDesc_pnKJavaThread__v_;
text: .text%__1cOBytecodeStreamEnext6M_nJBytecodesECode__;
text: .text%__1cIProjNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cIJVMStateOis_monitor_use6kMI_i_;
text: .text%__1cLTypeInstPtrEhash6kM_i_;
-text: .text%__1cLuse_dom_lca6FpnFBlock_pnENode_3rnLBlock_Array__1_: gcm.o;
text: .text%__1cITypeLongEhash6kM_i_;
-text: .text%__1cIBoolNodeHis_Bool6M_p0_;
text: .text%__1cOPhaseIdealLoopOget_early_ctrl6MpnENode__2_;
text: .text%__1cOPhaseIdealLoopOset_early_ctrl6MpnENode__v_;
-text: .text%__1cENodeHis_Loop6M_pnILoopNode__;
text: .text%__1cIJumpDataKcell_count6M_i_;
text: .text%__1cHNTarjanELINK6Mp01_v_;
text: .text%__1cENodeIIdentity6MpnOPhaseTransform__p0_;
-text: .text%__1cIMachNode2t6M_v_;
-text: .text%__1cFStateRMachOperGenerator6MipnIMachNode_pnHCompile__pnIMachOper__;
text: .text%__1cRPSOldPromotionLABFflush6M_v_;
-text: .text%__1cICallNodeHis_Call6M_p0_;
-text: .text%__1cENodeFIdeal6MpnIPhaseGVN_i_p0_;
text: .text%__1cENodeRraise_bottom_type6MpknEType__v_;
text: .text%__1cOJNIHandleBlockPallocate_handle6MpnHoopDesc__pnI_jobject__;
text: .text%__1cENodeNis_block_proj6kM_pk0_;
-text: .text%__1cUParallelScavengeHeapPis_in_permanent6kMpkv_i_;
-text: .text%__1cHdom_lca6FpnFBlock_1_1_: gcm.o;
text: .text%__1cOPhaseIdealLoopThas_local_phi_input6MpnENode__2_;
text: .text%__1cJVectorSet2F6kMI_i_;
text: .text%__1cIMachOperDreg6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cICallNodeLbottom_type6kM_pknEType__;
text: .text%JVM_ArrayCopy;
-text: .text%__1cOtypeArrayKlassQoop_is_typeArray6kM_i_;
text: .text%__1cOtypeArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cIMachNodeLbottom_type6kM_pknEType__;
-text: .text%__1cPClassFileParserOcheck_property6MipkcipnGThread__v_;
text: .text%__1cFState2t6M_v_;
-text: .text%__1cFStateDDFA6MipknENode__i_;
text: .text%__1cJPhaseLiveHfreeset6MpknFBlock__v_;
text: .text%__1cOPhaseIdealLoopbIdom_lca_for_get_late_ctrl_internal6MpnENode_22_2_;
-text: .text%__1cKRegionNodeGpinned6kM_i_;
text: .text%__1cPjava_lang_ClassLas_klassOop6FpnHoopDesc__pnMklassOopDesc__;
text: .text%__1cRSignatureIteratorGexpect6Mc_v_;
text: .text%__1cIProjNodeEhash6kM_I_;
text: .text%__1cENodeFclone6kM_p0_;
text: .text%__1cILocationIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cIPhaseCCPOtransform_once6MpnENode__2_;
-text: .text%__1cHCompileMFillLocArray6MpnENode_pnNGrowableArray4CpnKScopeValue____i_;
text: .text%__1cHRegMaskPfind_first_pair6kM_i_;
text: .text%__1cENodeKmatch_edge6kMI_I_;
text: .text%__1cKJNIHandlesKmake_local6FpnHJNIEnv__pnHoopDesc__pnI_jobject__;
@@ -355,41 +233,27 @@ text: .text%__1cNPhaseRegAllocKreg2offset6kMi_i_;
text: .text%__1cNPhaseRegAllocUreg2offset_unchecked6kMi_i_;
text: .text%__1cbAfinal_graph_reshaping_impl6FpnENode_rnUFinal_Reshape_Counts__v_: compile.o;
text: .text%__1cETypeFxmeet6kMpk0_2_;
-text: .text%__1cENodeFis_If6M_pnGIfNode__;
text: .text%__1cJStartNodeLbottom_type6kM_pknEType__;
text: .text%__1cICmpPNodeGOpcode6kM_i_;
text: .text%__1cOMethodLivenessKBasicBlockXcompute_gen_kill_single6MpnQciBytecodeStream__v_;
text: .text%__1cKjmpDirNodeMideal_Opcode6kM_i_;
text: .text%__1cOPhaseIdealLoopZremix_address_expressions6MpnENode__2_;
-text: .text%__1cFMutexElock6MpnGThread__v_;
-text: .text%__1cILoadNodeHis_Load6M_p0_;
text: .text%__1cGciTypeEmake6FnJBasicType__p0_;
text: .text%__1cQUnique_Node_ListGremove6MpnENode__v_;
text: .text%__1cKNode_Array2t6MpnFArena__v_;
text: .text%__1cRMachSafePointNodeEjvms6kM_pnIJVMState__;
text: .text%__1cNinstanceKlassMclass_loader6kM_pnHoopDesc__;
text: .text%__1cOPhaseIdealLoopNget_late_ctrl6MpnENode_2_2_;
-text: .text%__1cRMachSpillCopyNodeOimplementation6kMpnKCodeBuffer_pnNPhaseRegAlloc_i_I_;
text: .text%__1cKTypeAryPtrEhash6kM_i_;
text: .text%__1cIIndexSet2t6Mp0_v_;
text: .text%__1cNrFlagsRegOperEtype6kM_pknEType__;
text: .text%__1cHTypeInt2t6Miii_v_;
-text: .text%__1cTconstantPoolOopDescbAname_and_type_ref_index_at6Mi_i_;
text: .text%__1cMPhaseChaitinSuse_prior_register6MpnENode_I2pnFBlock_rnJNode_List_6_i_;
-text: .text%__1cIGraphKitHstopped6M_i_;
-text: .text%__1cKTypeOopPtrJsingleton6kM_i_;
text: .text%__1cENodeQIdeal_DU_postCCP6MpnIPhaseCCP__p0_;
-text: .text%__1cNSafePointNodeGpinned6kM_i_;
-text: .text%__1cQCompressedStream2t6MpCi_v_;
text: .text%__1cIConLNodeGOpcode6kM_i_;
text: .text%__1cHPhiNodeEhash6kM_I_;
-text: .text%__1cGIfNodeGpinned6kM_i_;
-text: .text%__1cOis_diamond_phi6FpnENode__i_: cfgnode.o;
-text: .text%__1cLTypeInstPtrCeq6kMpknEType__i_;
text: .text%__1cENodeHsize_of6kM_I_;
-text: .text%__1cENodeSremove_dead_region6MpnIPhaseGVN_i_i_;
text: .text%__1cHRegMaskMSmearToPairs6M_v_;
-text: .text%__1cSCallStaticJavaNodeEhash6kM_I_;
text: .text%jni_GetObjectField: jni.o;
text: .text%__1cJMarkSweepXrevisit_weak_klass_link6FpnFKlass__v_;
text: .text%__1cKklassKlassToop_follow_contents6MpnHoopDesc__v_;
@@ -398,53 +262,33 @@ text: .text%__1cFKlassXfollow_weak_klass_links6MpnRBoolObjectClosure_pnKOopClosu
text: .text%__1cKNode_ArrayEgrow6MI_v_;
text: .text%__1cLklassVtableToop_adjust_pointers6M_v_;
text: .text%__1cLklassVtableToop_follow_contents6M_v_;
-text: .text%__1cCosOis_interrupted6FpnGThread_i_i_;
text: .text%__1cICmpINodeGOpcode6kM_i_;
-text: .text%__1cHMatcherKLabel_Root6MpknENode_pnFState_p16_6_;
text: .text%__1cMPhaseChaitinHnew_lrg6MpknENode_I_v_;
text: .text%__1cFframeYinterpreter_frame_method6kM_pnNmethodOopDesc__;
text: .text%__1cUGenericGrowableArrayMraw_allocate6Mi_pv_;
text: .text%__1cJMarkSweepNpreserve_mark6FpnHoopDesc_pnLmarkOopDesc__v_;
text: .text%__1cIMachNodeKconst_size6kM_i_;
-text: .text%__1cGIfNodeFis_If6M_p0_;
text: .text%__1cINodeHashLhash_insert6MpnENode__v_;
-text: .text%__1cOPhaseIdealLoopMis_dominator6MpnENode_2_i_;
-text: .text%__1cKTypeOopPtrLxadd_offset6kMi_i_;
text: .text%JVM_Read;
text: .text%__1cDhpiEread6FipvI_L_;
-text: .text%__1cIMachNodeIpeephole6MpnFBlock_ipnNPhaseRegAlloc_ri_p0_;
text: .text%__1cMPhaseIterGVNVadd_users_to_worklist6MpnENode__v_;
-text: .text%__1cIHaltNodeGis_CFG6kM_i_;
-text: .text%__1cENodeKis_PCTable6kM_pknLPCTableNode__;
text: .text%__1cPClassFileStreamGget_u16MpnGThread__C_;
text: .text%__1cMMergeMemNodeGOpcode6kM_i_;
text: .text%__1cPciObjectFactoryEfind6MpnHoopDesc_pnNGrowableArray4CpnIciObject____i_;
-text: .text%__1cJCodeCacheQfind_blob_unsafe6Fpv_pnICodeBlob__;
text: .text%__1cHemit_d86FrnKCodeBuffer_i_v_;
-text: .text%__1cKCodeBuffer2t6MiiiiiipnKBufferBlob_pnJrelocInfo_pnORelocateBuffer_ipnLOopRecorder_pkcii_v_;
text: .text%__1cLOopRecorder2t6MpnFArena__v_;
text: .text%__1cKCodeBuffer2T6M_v_;
-text: .text%__1cKCodeBufferQalloc_relocation6MI_v_;
text: .text%__1cIMachNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIMachNodeJemit_size6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cLTypeInstPtr2t6MnHTypePtrDPTR_pnHciKlass_ipnIciObject_i_v_;
-text: .text%__1cLOptoRuntimeKjbyte_copy6FpW1L_v_;
text: .text%__1cJloadINodeErule6kM_I_;
text: .text%__1cMOopMapStream2t6MpnGOopMap_i_v_;
-text: .text%__1cPciObjectFactoryLis_found_at6MipnHoopDesc_pnNGrowableArray4CpnIciObject____i_;
text: .text%__1cIMachOperDreg6kMpnNPhaseRegAlloc_pknENode__i_;
text: .text%__1cIAddINodeGOpcode6kM_i_;
text: .text%__1cWShouldNotReachHereNodeMideal_Opcode6kM_i_;
-text: .text%__1cOmatch_into_reg6FpnENode_iii1_i_: matcher.o;
-text: .text%__1cENodeJis_Branch6kM_I_;
-text: .text%__1cITypeLong2t6Mxxi_v_;
text: .text%__1cRconstantPoolKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cIJVMStateIof_depth6kMi_p0_;
-text: .text%__1cFMutexElock6M_v_;
text: .text%__1cJrRegLOperEtype6kM_pknEType__;
text: .text%__1cENode2t6Mp0_v_;
-text: .text%__1cLTypeInstPtrEmake6FnHTypePtrDPTR_pnHciKlass_ipnIciObject_i_pk0_;
-text: .text%__1cJStartNodeGpinned6kM_i_;
text: .text%__1cHhashptr6Fpkv_i_;
text: .text%__1cLklassItableToop_adjust_pointers6M_v_;
text: .text%__1cLklassItableToop_follow_contents6M_v_;
@@ -455,62 +299,39 @@ text: .text%__1cSinstanceKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cNinstanceKlassXfollow_weak_klass_links6MpnRBoolObjectClosure_pnKOopClosure__v_;
text: .text%__1cNinstanceKlassUadjust_static_fields6M_v_;
text: .text%__1cNinstanceKlassUfollow_static_fields6M_v_;
-text: .text%__1cFBlockLis_uncommon6kMrnLBlock_Array__i_;
text: .text%__1cEDict2F6kMpkv_pv_;
text: .text%__1cIProjNodeLbottom_type6kM_pknEType__;
text: .text%__1cNCatchProjNodeGOpcode6kM_i_;
text: .text%__1cJCodeCacheJfind_blob6Fpv_pnICodeBlob__;
text: .text%__1cICallNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cJdo_method6FpnNmethodOopDesc__v_: recompilationMonitor.o;
text: .text%__1cWconstantPoolCacheKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cKjmpConNodeMideal_Opcode6kM_i_;
text: .text%__1cJLoadPNodeGOpcode6kM_i_;
text: .text%__1cLSymbolTableGlookup6MipkciI_pnNsymbolOopDesc__;
text: .text%__1cWconstantPoolCacheKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cWconstantPoolCacheKlassToop_adjust_pointers6MpnHoopDesc__i_;
-text: .text%__1cOindOffset8OperJnum_edges6kM_I_;
-text: .text%__1cKBufferBlobIis_alive6kM_i_;
-text: .text%__1cFframeGsender6kMpnLRegisterMap_pnICodeBlob__0_;
-text: .text%__1cJTypeTupleJsingleton6kM_i_;
-text: .text%__1cKTypeAryPtrCeq6kMpknEType__i_;
text: .text%__1cHPhiNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cETypeKhas_memory6kM_i_;
-text: .text%__1cHMatcherKReduceOper6MpnFState_ipnIMachNode_rpnENode__v_;
text: .text%__1cGIfNodeLbottom_type6kM_pknEType__;
text: .text%__1cENodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIMachNodeFreloc6kM_i_;
text: .text%__1cPciObjectFactoryDget6MpnHoopDesc__pnIciObject__;
text: .text%__1cOThreadCritical2T6M_v_;
text: .text%__1cOThreadCritical2t6M_v_;
-text: .text%__1cFframeOis_first_frame6kM_i_;
-text: .text%__1cICodeBlobOis_osr_adapter6kM_i_;
-text: .text%__1cHConNodeGis_Con6kM_I_;
text: .text%__1cIAddPNodeKmatch_edge6kMI_I_;
text: .text%__1cILoadNodeEhash6kM_I_;
text: .text%__1cRMachSpillCopyNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cICodeBlobTfix_oop_relocations6MpC1_v_;
-text: .text%__1cICodeBlobTfix_oop_relocations6M_v_;
text: .text%__1cIimmIOperIconstant6kM_l_;
-text: .text%__1cHCmpNodeGis_Cmp6kM_pk0_;
-text: .text%__1cFMutexbClock_without_safepoint_check6M_v_;
text: .text%__1cENodeHdel_req6MI_v_;
text: .text%__1cJCProjNodeEhash6kM_I_;
-text: .text%__1cHCompileJcan_alias6MpknHTypePtr_i_i_;
text: .text%__1cJMultiNodeEhash6kM_I_;
text: .text%__1cRSignatureIteratorKparse_type6M_i_;
-text: .text%__1cHnmethodIis_alive6kM_i_;
text: .text%__1cIHaltNodeGOpcode6kM_i_;
-text: .text%__1cMMergeMemNodeLis_MergeMem6M_p0_;
-text: .text%__1cUPSMarkSweepDecoratorQinsert_deadspace6MrlpnIHeapWord_L_i_;
text: .text%__1cHPhiNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMPhaseIterGVNZremove_globally_dead_node6MpnENode__v_;
text: .text%__1cETypeEhash6kM_i_;
text: .text%__1cJHashtableLhash_symbol6Fpkci_I_;
-text: .text%__1cKTypeAryPtrEmake6FnHTypePtrDPTR_pnIciObject_pknHTypeAry_pnHciKlass_ii_pk0_;
-text: .text%__1cYDebugInformationRecorderLcheck_phase6Mn0AFPhase__v_;
text: .text%__1cOMachReturnNodeKin_RegMask6kMI_rknHRegMask__;
text: .text%__1cFframeVinterpreter_frame_bcp6kM_pC_;
-text: .text%__1cICodeBlobKis_nmethod6kM_i_;
text: .text%__1cICmpUNodeGOpcode6kM_i_;
text: .text%__1cJOopMapSetSfind_map_at_offset6kMi_pnGOopMap__;
text: .text%__1cICodeBlobbAoop_map_for_return_address6MpC_pnGOopMap__;
@@ -519,91 +340,53 @@ text: .text%__1cIMachNodeHtwo_adr6kM_I_;
text: .text%__1cIParmNodeGOpcode6kM_i_;
text: .text%__1cTconvI2L_reg_regNodeErule6kM_I_;
text: .text%__1cHTypeIntFxmeet6kMpknEType__3_;
-text: .text%__1cLAdapterInfoFequal6kMp0_i_;
-text: .text%__1cGOopMapbEmap_compiler_reg_to_oopmap_reg6Miii_i_;
-text: .text%__1cTconstantPoolOopDescSklass_ref_index_at6Mi_i_;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cMloadConINodeMideal_Opcode6kM_i_;
text: .text%__1cGTarjanEEVAL6M_p0_;
-text: .text%__1cKRelocationYindex_to_runtime_address6Fl_pC_;
text: .text%__1cYexternal_word_RelocationLunpack_data6M_v_;
text: .text%__1cJCatchNodeGOpcode6kM_i_;
text: .text%__1cZPhaseConservativeCoalesceIcoalesce6MpnFBlock__v_;
-text: .text%__1cITypeLongJsingleton6kM_i_;
-text: .text%__1cNencode_RegMem6FrnKCodeBuffer_iiiiii_v_;
-text: .text%__1cFBlockGselect6MrnJNode_List_rnLBlock_Array_pirnJVectorSet_IrnNGrowableArray4CI___pnENode__;
-text: .text%__1cGOopMapHset_xxx6MinLOopMapValueJoop_types_iii_v_;
-text: .text%__1cFMutexNowned_by_self6kM_i_;
text: .text%__1cTCreateExceptionNodeErule6kM_I_;
text: .text%__1cIJVMStateLdebug_start6kM_I_;
-text: .text%__1cRCardTableModRefBSEkind6M_nKBarrierSetEName__;
text: .text%__1cMloadConPNodeMideal_Opcode6kM_i_;
text: .text%__1cIMachNodeNoperand_index6kMI_i_;
-text: .text%__1cKMachIfNodeJis_MachIf6kM_pk0_;
text: .text%__1cFBlockIis_Empty6kM_i_;
text: .text%__1cMMachTypeNodeLbottom_type6kM_pknEType__;
text: .text%__1cIAddPNodeLbottom_type6kM_pknEType__;
text: .text%__1cFBlockOcode_alignment6M_I_;
-text: .text%__1cKRegionNodeJis_Region6kM_pk0_;
text: .text%__1cGBitMapUclear_range_of_words6MLL_v_;
-text: .text%__1cGBitMapFclear6M_v_;
-text: .text%__1cSinstanceKlassKlassMoop_is_klass6kM_i_;
text: .text%__1cJrRegIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKCastPPNodeGOpcode6kM_i_;
text: .text%__1cIPhaseIFGMtest_edge_sq6kMII_i_;
-text: .text%__1cFframeQoops_do_internal6MpnKOopClosure_pnLRegisterMap_i_v_;
text: .text%__1cNinstanceKlassLfind_method6FpnPobjArrayOopDesc_pnNsymbolOopDesc_4_pnNmethodOopDesc__;
text: .text%__1cFStateRMachNodeGenerator6MipnHCompile__pnIMachNode__;
text: .text%__1cHMatcherKReduceInst6MpnFState_irpnENode__pnIMachNode__;
-text: .text%__1cENodeOis_CountedLoop6M_pnPCountedLoopNode__;
text: .text%__1cPClassFileStreamHskip_u16MipnGThread__v_;
-text: .text%__1cMMachCallNodeGpinned6kM_i_;
-text: .text%__1cHnmethodJis_zombie6kM_i_;
text: .text%__1cMMergeMemNodeLbottom_type6kM_pknEType__;
text: .text%__1cNinstanceKlassLfind_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
-text: .text%__1cKTypeAryPtrKadd_offset6kMi_pknHTypePtr__;
-text: .text%__1cKCodeBufferIrelocate6MpCrknQRelocationHolder_i_v_;
text: .text%__1cILoadNodeLbottom_type6kM_pknEType__;
text: .text%__1cLConvI2LNodeGOpcode6kM_i_;
text: .text%__1cHTypeIntEmake6Fi_pk0_;
-text: .text%__1cbFCompressedLineNumberWriteStreamKwrite_pair6Mii_v_;
text: .text%__1cJMultiNodeIproj_out6kMI_pnIProjNode__;
-text: .text%__1cFKlassMoop_is_array6kM_i_;
text: .text%__1cIBoolNodeEhash6kM_I_;
text: .text%__1cIimmPOperEtype6kM_pknEType__;
text: .text%__1cMloadConPNodeLbottom_type6kM_pknEType__;
-text: .text%__1cJrRegPOperJnum_edges6kM_I_;
text: .text%__1cOrFlagsRegUOperEtype6kM_pknEType__;
text: .text%__1cGIfNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNsymbolOopDescLas_C_string6kM_pc_;
text: .text%__1cNsymbolOopDescLas_C_string6kMpci_1_;
-text: .text%__1cGOopMapJset_value6Miii_v_;
text: .text%__1cITypeLongFxmeet6kMpknEType__3_;
text: .text%__1cNCollectedHeapbHcheck_for_non_bad_heap_word_value6MpnIHeapWord_L_v_;
-text: .text%__1cHMatcherTReduceInst_Interior6MpnFState_ipnIMachNode_IrpnENode__I_;
-text: .text%__1cNsymbolOopDescGequals6kMpkci_i_;
text: .text%__1cMPhaseChaitinLinsert_proj6MpnFBlock_IpnENode_I_v_;
-text: .text%__1cKjmpConNodeGpinned6kM_i_;
-text: .text%__1cNSafePointNodebBneeds_polling_address_input6F_i_;
text: .text%__1cHCompileRprobe_alias_cache6MpknHTypePtr__pn0APAliasCacheEntry__;
-text: .text%__1cHnmethodOis_not_entrant6kM_i_;
-text: .text%__1cIAddPNodeHis_AddP6M_p0_;
-text: .text%__1cNobjArrayKlassQarray_klass_impl6MiipnGThread__pnMklassOopDesc__;
-text: .text%__1cNobjArrayKlassQarray_klass_impl6FnTobjArrayKlassHandle_iipnGThread__pnMklassOopDesc__;
-text: .text%__1cIMachNodeGExpand6MpnFState_rnJNode_List__p0_;
text: .text%__1cXInterpreterFrameClosureJoffset_do6Mi_v_;
-text: .text%__1cNinstanceKlassQarray_klass_impl6FnTinstanceKlassHandle_iipnGThread__pnMklassOopDesc__;
-text: .text%__1cNinstanceKlassQarray_klass_impl6MiipnGThread__pnMklassOopDesc__;
text: .text%__1cENodeIdestruct6M_v_;
text: .text%__1cIAddPNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cPClassFileParserbEparse_constant_pool_utf8_entry6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cPClassFileParserRverify_legal_utf86MpkCipnGThread__v_;
text: .text%__1cMMachHaltNodeEjvms6kM_pnIJVMState__;
text: .text%__1cKoopFactoryMnew_objArray6FpnMklassOopDesc_ipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cNinstanceKlassRallocate_objArray6MiipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cGBitMapJset_union6M0_v_;
-text: .text%__1cPciInstanceKlassMis_interface6M_i_;
text: .text%__1cHTypeIntEmake6Fiii_pk0_;
text: .text%__1cJTypeTupleEhash6kM_i_;
text: .text%__1cFParsePdo_one_bytecode6M_v_;
@@ -614,27 +397,14 @@ text: .text%__1cUParallelScavengeHeapWpermanent_mem_allocate6ML_pnIHeapWord__;
text: .text%__1cJPSPermGenSallocate_permanent6ML_pnIHeapWord__;
text: .text%__1cPmethodDataKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cIHaltNodeKmatch_edge6kMI_I_;
-text: .text%__1cENodeOis_block_start6kM_i_;
-text: .text%__1cHMatcherQis_save_on_entry6Mi_i_;
-text: .text%__1cLsymbolKlassNoop_is_symbol6kM_i_;
-text: .text%__1cITypeLongEmake6Fxxi_pk0_;
text: .text%__1cPmethodDataKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cPmethodDataKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cMPhaseIterGVNKis_IterGVN6M_p0_;
text: .text%__1cGBitMap2t6MpLL_v_;
-text: .text%__1cLOptoRuntimePnew_typeArray_C6FnJBasicType_ipnKJavaThread__v_;
-text: .text%__1cHCompilePfind_alias_type6MpknHTypePtr_i_pn0AJAliasType__;
text: .text%__1cNnew_loc_value6FpnNPhaseRegAlloc_inILocationEType__pnNLocationValue__: output.o;
-text: .text%__1cKjmpDirNodePoper_input_base6kM_I_;
-text: .text%__1cMMachCallNodeLis_MachCall6M_p0_;
-text: .text%__1cHPhiNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cXjava_lang_ref_ReferenceNreferent_addr6FpnHoopDesc__p2_;
text: .text%__1cOindOffset8OperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOindOffset8OperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cZPhaseConservativeCoalesceJcopy_copy6MpnENode_2pnFBlock_I_i_;
-text: .text%__1cKutf8_write6FpCH_0_: utf8.o;
text: .text%__1cKNode_ArrayGremove6MI_v_;
-text: .text%__1cTconstantPoolOopDescQsignature_ref_at6Mi_pnNsymbolOopDesc__;
text: .text%__1cHPhiNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cRSignatureIterator2t6MnMsymbolHandle__v_;
text: .text%__1cJloadPNodeMideal_Opcode6kM_i_;
@@ -642,17 +412,11 @@ text: .text%__1cPSignatureStreamEnext6M_v_;
text: .text%__1cOindOffset8OperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cLjmpConUNodeMideal_Opcode6kM_i_;
text: .text%__1cFBlockJfind_node6kMpknENode__I_;
-text: .text%__1cOis_range_check6FpnENode_r12ri_i_: ifnode.o;
-text: .text%__1cENodeIis_Start6M_pnJStartNode__;
text: .text%__1cHhashkey6Fpkv_i_;
text: .text%__1cNLoadRangeNodeGOpcode6kM_i_;
text: .text%__1cJLoadINodeGOpcode6kM_i_;
-text: .text%__1cKis_x2logic6FpnIPhaseGVN_pnENode__3_: cfgnode.o;
-text: .text%__1cHAbsNodeLis_absolute6FpnIPhaseGVN_pnENode__4_;
text: .text%__1cGTarjanICOMPRESS6M_v_;
text: .text%__1cTconstantPoolOopDescNklass_at_impl6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
-text: .text%__1cENodeHis_Goto6kM_I_;
-text: .text%__1cLPCTableNodeGpinned6kM_i_;
text: .text%JVM_ReleaseUTF;
text: .text%__1cHSubNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cFChunk2t6ML_v_;
@@ -662,7 +426,6 @@ text: .text%__1cMCreateExNodeGOpcode6kM_i_;
text: .text%__1cFframebCsender_for_interpreter_frame6kMpnLRegisterMap__0_;
text: .text%__1cFChunk2k6Fpv_v_;
text: .text%__1cOMachReturnNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cJrelocInfo2t6Mn0AJrelocType_ii_v_;
text: .text%__1cHMatcherKmatch_tree6MpknENode__pnIMachNode__;
text: .text%__1cLTypeInstPtrFxmeet6kMpknEType__3_;
text: .text%__1cKjmpConNodePoper_input_base6kM_I_;
@@ -670,84 +433,45 @@ text: .text%__1cIJVMState2t6MpnIciMethod_p0_v_;
text: .text%__1cMciMethodDataHdata_at6Mi_pnLProfileData__;
text: .text%__1cJrelocInfoNfinish_prefix6Mph_p0_;
text: .text%__1cIProjNodeHsize_of6kM_I_;
-text: .text%__1cENodeHis_AddP6M_pnIAddPNode__;
-text: .text%__1cLTypeInstPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cHBitDataKcell_count6M_i_;
-text: .text%__1cFframeZsender_for_compiled_frame6kMpnLRegisterMap_pnICodeBlob__0_;
text: .text%__1cFArenaEgrow6ML_pv_;
-text: .text%__1cNCollectedHeapWpermanent_obj_allocate6FnLKlassHandle_ipnGThread__pnHoopDesc__;
text: .text%__1cMPhaseIterGVNMsubsume_node6MpnENode_2_v_;
-text: .text%__1cLBoxLockNodeNrematerialize6kM_i_;
-text: .text%__1cRMachSafePointNodeQis_MachSafePoint6M_p0_;
text: .text%__1cJloadBNodeErule6kM_I_;
-text: .text%__1cITypeNodeRraise_bottom_type6MpknEType__v_;
text: .text%__1cHConNodeEhash6kM_I_;
-text: .text%__1cICodeBlobLlink_offset6M_i_;
text: .text%__1cENodeRdisconnect_inputs6Mp0_i_;
text: .text%__1cIHaltNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cICodeBlobOis_i2c_adapter6kM_i_;
text: .text%__1cTconstantPoolOopDescWsignature_ref_index_at6Mi_i_;
-text: .text%__1cIJVMStateNclone_shallow6kM_p0_;
text: .text%__1cRMachSpillCopyNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cGOopMapQset_callee_saved6Miiii_v_;
text: .text%__1cKRegionNodeLbottom_type6kM_pknEType__;
-text: .text%__1cJOopMapSetTupdate_register_map6FpknFframe_pnICodeBlob_pnLRegisterMap__v_;
text: .text%__1cIJVMStateJdebug_end6kM_I_;
-text: .text%__1cXjava_lang_ref_ReferenceJnext_addr6FpnHoopDesc__p2_;
text: .text%__1cENode2t6Mp011_v_;
-text: .text%__1cENodeMis_SafePoint6M_pnNSafePointNode__;
-text: .text%__1cHMatcherTcollect_null_checks6MpnENode__v_;
-text: .text%__1cNSafePointNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cHMemNodeMIdeal_common6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cGBitMapGat_put6MLi_v_;
-text: .text%__1cFciEnvIis_in_vm6F_i_;
text: .text%__1cNSafePointNodeHsize_of6kM_I_;
-text: .text%__1cMgetTimeNanos6F_x_;
-text: .text%__1cKciTypeFlowLStateVectorSapply_one_bytecode6MpnQciBytecodeStream__i_;
text: .text%__1cKPSScavengeUoop_promotion_failed6FpnHoopDesc_pnLmarkOopDesc__v_;
text: .text%__1cHTypePtrLmeet_offset6kMi_i_;
-text: .text%__1cOMergeMemStreamOnext_non_empty6Mi_i_;
-text: .text%__1cNPhaseRegAllocGis_oop6kMpknENode__i_;
text: .text%__1cSPSPromotionManagerUoop_promotion_failed6MpnHoopDesc_pnLmarkOopDesc__2_;
-text: .text%__1cIMachOperLdisp_is_oop6kM_i_;
text: .text%__1cRSignatureIteratorSiterate_parameters6M_v_;
text: .text%__1cNmethodOopDescIbci_from6kMpC_i_;
-text: .text%__1cICodeBlobYcaller_must_gc_arguments6kMpnKJavaThread__i_;
text: .text%__1cLLShiftLNodeGOpcode6kM_i_;
text: .text%__1cOMethodLivenessKBasicBlockIload_one6Mi_v_;
-text: .text%__1cJTypeTupleCeq6kMpknEType__i_;
text: .text%__1cHCmpNodeLbottom_type6kM_pknEType__;
text: .text%__1cFDictI2i6M_v_;
-text: .text%__1cPjava_lang_ClassMis_primitive6FpnHoopDesc__i_;
text: .text%JVM_GetMethodIxExceptionTableLength;
-text: .text%__1cKC2IAdapterIis_alive6kM_i_;
text: .text%__1cENodeHget_int6kM_i_;
text: .text%__1cMMachCallNodeLbottom_type6kM_pknEType__;
text: .text%__1cOGenerateOopMapHinterp16MpnOBytecodeStream__v_;
-text: .text%__1cIAddPNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMloadConINodeLbottom_type6kM_pknEType__;
text: .text%__1cPCheckCastPPNodeGOpcode6kM_i_;
text: .text%__1cMloadConINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cENodeXis_iteratively_computed6M_i_;
-text: .text%__1cNloadConI0NodePoper_input_base6kM_I_;
-text: .text%__1cNinstanceKlassPoop_is_instance6kM_i_;
text: .text%__1cENodeKreplace_by6Mp0_v_;
text: .text%__1cHPhiNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cIBoolTestKcc2logical6kMpknEType__3_;
text: .text%__1cIBoolNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cJrelocInfoKset_format6Mi_v_;
text: .text%__1cXruntime_call_RelocationEtype6M_nJrelocInfoJrelocType__;
-text: .text%__1cKRelocationJpack_data6M_i_;
-text: .text%__1cXjava_lang_ref_ReferencePdiscovered_addr6FpnHoopDesc__p2_;
text: .text%__1cNPhaseCoalesceRcombine_these_two6MpnENode_2_v_;
text: .text%__1cNtestP_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cETypeFempty6kM_i_;
-text: .text%__1cHMemNodeGis_Mem6M_p0_;
-text: .text%__1cZload_can_see_stored_value6FpnILoadNode_pnENode_pnOPhaseTransform__3_: memnode.o;
text: .text%__1cICallNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cICodeBlobJis_zombie6kM_i_;
text: .text%__1cJTypeTupleGfields6FI_ppknEType__;
-text: .text%__1cOGenerateOopMapPjump_targets_do6MpnOBytecodeStream_pFp0ipi_v4_i_;
text: .text%__1cPClassFileParserUassemble_annotations6MpCi1ipnGThread__nPtypeArrayHandle__;
text: .text%method_compare: methodOop.o;
text: .text%__1cMMergeMemNodeEhash6kM_I_;
@@ -755,47 +479,30 @@ text: .text%__1cJloadPNodePoper_input_base6kM_I_;
text: .text%__1cILoadNodeKmatch_edge6kMI_I_;
text: .text%__1cFBlockUneeded_for_next_call6MpnENode_rnJVectorSet_rnLBlock_Array__v_;
text: .text%__1cIIndexSetSpopulate_free_list6F_v_;
-text: .text%__1cGIfNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cCosPelapsed_counter6F_x_;
text: .text%__1cIAddPNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cIemit_d326FrnKCodeBuffer_i_v_;
-text: .text%__1cNloadConI0NodeHtwo_adr6kM_I_;
text: .text%__1cJStoreNodeKmatch_edge6kMI_I_;
text: .text%__1cITypeNodeDcmp6kMrknENode__I_;
text: .text%__1cMPhaseChaitinFUnion6MpknENode_3_v_;
-text: .text%__1cFKlassMoop_is_klass6kM_i_;
text: .text%__1cRSignatureIteratorTcheck_signature_end6M_v_;
text: .text%__1cRSignatureIteratorSiterate_returntype6M_v_;
text: .text%__1cNinstanceKlassWuncached_lookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
-text: .text%__1cHnmethodKis_nmethod6kM_i_;
text: .text%__1cILoadNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNSafePointNodeKmatch_edge6kMI_I_;
text: .text%__1cPClassFileStreamGget_u46MpnGThread__I_;
-text: .text%__1cSCallStaticJavaNodeRis_CallStaticJava6kM_pk0_;
text: .text%__1cKarrayKlassLobject_size6kMi_i_;
-text: .text%__1cPciInstanceKlassRis_instance_klass6M_i_;
-text: .text%__1cOno_flip_branch6FpnFBlock__i_: block.o;
text: .text%__1cKarrayKlassGvtable6kM_pnLklassVtable__;
text: .text%__1cYCallStaticJavaDirectNodePoper_input_base6kM_I_;
text: .text%__1cOGenerateOopMapEpush6MnNCellTypeState__v_;
-text: .text%__1cKjmpDirNodeGpinned6kM_i_;
-text: .text%__1cTconstantPoolOopDescLname_ref_at6Mi_pnNsymbolOopDesc__;
-text: .text%__1cKjmpDirNodeHtwo_adr6kM_I_;
text: .text%__1cPciInstanceKlassGloader6M_pnHoopDesc__;
-text: .text%__1cJrRegLOperJnum_edges6kM_I_;
text: .text%__1cOGenerateOopMapDpop6M_nNCellTypeState__;
-text: .text%__1cNGrowableArray4CpnKScopeValue__2t6Mii_v_;
text: .text%__1cYDebugInformationRecorderWserialize_scope_values6MpnNGrowableArray4CpnKScopeValue____i_;
text: .text%__1cYDebugInformationRecorderTcreate_scope_values6MpnNGrowableArray4CpnKScopeValue____pnKDebugToken__;
text: .text%__1cITypeNodeHsize_of6kM_I_;
text: .text%__1cILoadNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cPPerfLongVariantGsample6M_v_;
text: .text%__1cNloadConI0NodeErule6kM_I_;
-text: .text%__1cJCodeCacheIcontains6Fpv_i_;
text: .text%__1cQciBytecodeStreamMreset_to_bci6Mi_v_;
-text: .text%__1cJOopMapSetGall_do6FpknFframe_pnICodeBlob_pknLRegisterMap_pnKOopClosure_pFppnHoopDesc_9E_v9B9B_v_;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
-text: .text%__1cJOopMapSetHoops_do6FpknFframe_pnICodeBlob_pknLRegisterMap_pnKOopClosure__v_;
text: .text%__1cHPhiNodeHsize_of6kM_I_;
text: .text%__1cSInterpreterRuntimeJanewarray6FpnKJavaThread_pnTconstantPoolOopDesc_ii_v_;
text: .text%__1cMPhaseChaitinNFind_compress6MI_I_;
@@ -804,92 +511,55 @@ text: .text%__1cLOopMapCacheIentry_at6kMi_pnQOopMapCacheEntry__;
text: .text%__1cOGenerateOopMapKcheck_type6MnNCellTypeState_1_v_;
text: .text%__1cPciInstanceKlassRprotection_domain6M_pnHoopDesc__;
text: .text%__1cSobjArrayKlassKlassIoop_size6kMpnHoopDesc__i_;
-text: .text%__1cILoadNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cMPhaseIterGVNbGregister_new_node_with_optimizer6MpnENode__2_;
-text: .text%__1cKBufferBlobMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_;
text: .text%__1cLRegisterMapFclear6M_v_;
text: .text%__1cIBoolNodeLbottom_type6kM_pknEType__;
text: .text%__1cITypeNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cKRegionNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cLBlock_Array2t6MpnFArena__v_;
-text: .text%__1cPSignatureStreamHis_done6kM_i_;
-text: .text%__1cNrFlagsRegOperJnum_edges6kM_I_;
-text: .text%__1cLPhaseValuesGintcon6Mi_pnIConINode__;
text: .text%__1cKStoreINodeGOpcode6kM_i_;
-text: .text%__1cLRegisterMap2t6MpnKJavaThread_i_v_;
-text: .text%__1cNmethodOopDescPis_empty_method6kM_i_;
text: .text%__1cJcmpOpOperJnum_edges6kM_I_;
text: .text%__1cNExceptionMark2t6MrpnGThread__v_;
text: .text%__1cNExceptionMark2T6M_v_;
text: .text%__1cCosMvm_page_size6F_i_;
-text: .text%__1cJloadPNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cOcompU_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cNmethodOopDescLis_accessor6kM_i_;
-text: .text%__1cPloadConUL32NodePoper_input_base6kM_I_;
text: .text%__1cMPhaseChaitinSget_spillcopy_wide6MpnENode_2I_2_;
-text: .text%__1cKI2CAdapterIis_alive6kM_i_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cIGraphKitJsync_jvms6kM_pnIJVMState__;
text: .text%__1cFframebFinterpreter_frame_monitor_begin6kM_pnPBasicObjectLock__;
-text: .text%__1cENodeGis_Mem6M_pnHMemNode__;
-text: .text%__1cQSystemDictionaryXcheck_signature_loaders6FnMsymbolHandle_nGHandle_2ipnGThread__v_;
-text: .text%__1cIGraphKitEstop6M_v_;
text: .text%__1cNidealize_test6FpnIPhaseGVN_pnGIfNode__3_: ifnode.o;
-text: .text%__1cPloadConUL32NodeHtwo_adr6kM_I_;
text: .text%__1cNSafePointNodeLbottom_type6kM_pknEType__;
text: .text%__1cPTwoOopHashtableMcompute_hash6MnMsymbolHandle_nGHandle__I_;
text: .text%__1cRSignatureIterator2t6MpnNsymbolOopDesc__v_;
text: .text%__1cKStorePNodeGOpcode6kM_i_;
-text: .text%__1cHMonitorKnotify_all6M_i_;
text: .text%__1cFframeVinterpreter_frame_bci6kM_i_;
text: .text%__1cHRetNodeNis_block_proj6kM_pknENode__;
text: .text%__1cMPhaseChaitinMyank_if_dead6MpnENode_pnFBlock_pnJNode_List_6_i_;
text: .text%__1cENodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cFBlockLfind_remove6MpknENode__v_;
text: .text%__1cOGenerateOopMapRdo_exception_edge6MpnOBytecodeStream__v_;
-text: .text%__1cKOopClosureLdo_nmethods6kM_ki_;
-text: .text%__1cGOopMapHset_oop6Miii_v_;
text: .text%__1cNSafePointNodeSset_next_exception6Mp0_v_;
text: .text%__1cPloadConUL32NodeErule6kM_I_;
text: .text%__1cFChunkEchop6M_v_;
text: .text%__1cMciMethodDataJnext_data6MpnLProfileData__2_;
text: .text%__1cJStoreNodeLbottom_type6kM_pknEType__;
-text: .text%__1cPciObjectFactorySget_unloaded_klass6MpnHciKlass_pnIciSymbol_i_2_;
text: .text%__1cLBlock_StackXmost_frequent_successor6MpnFBlock__I_;
text: .text%__1cFBlockScall_catch_cleanup6MrnLBlock_Array__v_;
-text: .text%__1cFBlockOschedule_local6MrnHMatcher_rnLBlock_Array_pirnJVectorSet_rnNGrowableArray4CI___i_;
text: .text%__1cXPhaseAggressiveCoalesceIcoalesce6MpnFBlock__v_;
text: .text%__1cOGenerateOopMapFppop16MnNCellTypeState__v_;
text: .text%__1cKstorePNodePoper_input_base6kM_I_;
-text: .text%__1cMPhaseIterGVNFwiden6kMpknEType_3_3_;
-text: .text%__1cKRegionNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cNmethodOopDescRis_not_compilable6kMi_i_;
-text: .text%__1cLis_cond_add6FpnIPhaseGVN_pnHPhiNode__pnENode__;
text: .text%__1cPsplit_flow_path6FpnIPhaseGVN_pnHPhiNode__pnENode__: cfgnode.o;
text: .text%__1cKRegionNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGTarjanELINK6Mp01_v_;
-text: .text%__1cKTypeRawPtrKadd_offset6kMi_pknHTypePtr__;
-text: .text%__1cWMutableSpaceUsedHelperLtake_sample6M_x_;
-text: .text%__1cIBoolNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cIsplit_if6FpnGIfNode_pnMPhaseIterGVN__pnENode__: ifnode.o;
-text: .text%__1cTremove_useless_bool6FpnGIfNode_pnIPhaseGVN__pnENode__: ifnode.o;
text: .text%__1cMPhaseChaitinNFind_compress6MpknENode__I_;
text: .text%__1cRInterpreterOopMapKinitialize6M_v_;
text: .text%__1cJTypeTupleEmake6FIppknEType__pk0_;
-text: .text%__1cYCallStaticJavaDirectNodeHtwo_adr6kM_I_;
text: .text%__1cKDictionaryJget_entry6MiInMsymbolHandle_nGHandle__pnPDictionaryEntry__;
text: .text%__1cLLShiftINodeGOpcode6kM_i_;
text: .text%__1cQResultTypeFinderDset6MinJBasicType__v_;
-text: .text%__1cHnmethodMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
text: .text%__1cNmethodOopDescLresult_type6kM_nJBasicType__;
text: .text%__1cIMachOperOindex_position6kM_i_;
-text: .text%__1cKReflectionTverify_field_access6FpnMklassOopDesc_22nLAccessFlags_ii_i_;
text: .text%__1cOemit_d32_reloc6FrnKCodeBuffer_irknQRelocationHolder_i_v_;
text: .text%__1cLjmpConUNodePoper_input_base6kM_I_;
text: .text%__1cHAddNodeEhash6kM_I_;
-text: .text%__1cNtestP_regNodePoper_input_base6kM_I_;
-text: .text%__1cHSubNodeGis_Sub6M_p0_;
text: .text%__1cPcheckCastPPNodePoper_input_base6kM_I_;
text: .text%__1cIRootNodeGOpcode6kM_i_;
text: .text%__1cFframebDinterpreter_frame_monitor_end6kM_pnPBasicObjectLock__;
@@ -900,20 +570,14 @@ text: .text%__1cRInterpreterOopMap2T6M_v_;
text: .text%__1cRInterpreterOopMapNresource_copy6MpnQOopMapCacheEntry__v_;
text: .text%__1cLOopMapCacheGlookup6MnMmethodHandle_ipnRInterpreterOopMap__v_;
text: .text%__1cRInterpreterOopMap2t6M_v_;
-text: .text%__1cFframeToops_interpreted_do6MpnKOopClosure_pknLRegisterMap_i_v_;
text: .text%__1cSInterpreterRuntimeLcache_entry6FpnKJavaThread__pnWConstantPoolCacheEntry__;
text: .text%__1cOindOffset8OperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOJNIHandleBlockHoops_do6MpnKOopClosure__v_;
text: .text%__1cKstorePNodeMideal_Opcode6kM_i_;
text: .text%__1cFChunkJnext_chop6M_v_;
text: .text%__1cENode2t6Mp0111_v_;
-text: .text%__1cITypeLongEmake6Fx_pk0_;
-text: .text%__1cLjmpConUNodeGpinned6kM_i_;
text: .text%__1cPciObjectFactoryNfind_non_perm6MpnHoopDesc__rpn0ANNonPermObject__;
text: .text%__1cHCmpNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cKTypeRawPtrJsingleton6kM_i_;
-text: .text%__1cNGCTaskManagerNresource_flag6MI_i_;
-text: .text%__1cNGCTaskManagerYshould_release_resources6MI_i_;
text: .text%__1cIAddINodeLbottom_type6kM_pknEType__;
text: .text%__1cNloadRangeNodeErule6kM_I_;
text: .text%__1cNrFlagsRegOperKin_RegMask6kMi_pknHRegMask__;
@@ -923,9 +587,7 @@ text: .text%__1cYciExceptionHandlerStreamEnext6M_v_;
text: .text%__1cOBasicHashtableJnew_entry6MI_pnTBasicHashtableEntry__;
text: .text%__1cJHashtableJnew_entry6MIpnHoopDesc__pnOHashtableEntry__;
text: .text%__1cSCountedLoopEndNodeGOpcode6kM_i_;
-text: .text%__1cTOopMapForCacheEntryRpossible_gc_point6MpnOBytecodeStream__i_;
text: .text%__1cKstoreINodePoper_input_base6kM_I_;
-text: .text%__1cNtestP_regNodeHtwo_adr6kM_I_;
text: .text%__1cCosVcurrent_stack_pointer6F_pC_;
text: .text%__1cMMergeMemNodePiteration_setup6Mpk0_v_;
text: .text%__1cRMachSafePointNodeKin_RegMask6kMI_rknHRegMask__;
@@ -933,13 +595,8 @@ text: .text%__1cJStoreNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMMergeMemNodeJmemory_at6kMI_pnENode__;
text: .text%__1cJloadSNodeErule6kM_I_;
text: .text%__1cLLShiftLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cMBasicAdapterHoops_do6MpnKOopClosure__v_;
-text: .text%__1cKjmpConNodeJnum_opnds6kM_I_;
-text: .text%__1cLOptoRuntimeOnew_objArray_C6FpnMklassOopDesc_ipnKJavaThread__v_;
text: .text%__1cTconstantPoolOopDescSklass_at_if_loaded6FnSconstantPoolHandle_i_pnMklassOopDesc__;
-text: .text%__1cFciEnvXget_klass_by_index_impl6MpnPciInstanceKlass_iri_pnHciKlass__;
text: .text%__1cKjmpDirNodeHsize_of6kM_I_;
-text: .text%__1cJloadPNodeJnum_opnds6kM_I_;
text: .text%__1cJCProjNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJMultiNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cHOopFlowNcompute_reach6MpnNPhaseRegAlloc_ipnEDict__v_;
@@ -952,127 +609,88 @@ text: .text%__1cLGCTaskQdDueueHenqueue6MpnGGCTask__v_;
text: .text%__1cNGCTaskManagerWincrement_busy_workers6M_I_;
text: .text%__1cLGCTaskQdDueueHdequeue6M_pnGGCTask__;
text: .text%__1cNGCTaskManagerPnote_completion6MI_v_;
-text: .text%__1cHMatcherXadjust_outgoing_stk_arg6Miiri_i_;
text: .text%__1cTCreateExceptionNodeMideal_Opcode6kM_i_;
text: .text%__1cKIfTrueNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cXvirtual_call_RelocationLunpack_data6M_v_;
-text: .text%__1cMBasicAdapterMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
text: .text%__1cXindIndexScaleOffsetOperJnum_edges6kM_I_;
text: .text%__1cLRShiftINodeGOpcode6kM_i_;
-text: .text%__1cJStoreNodeIis_Store6kM_pk0_;
text: .text%Unsafe_CompareAndSwapLong;
text: .text%__1cNinstanceKlassRprotection_domain6M_pnHoopDesc__;
text: .text%__1cNtestI_regNodeMideal_Opcode6kM_i_;
text: .text%__1cTAbstractInterpreterLmethod_kind6FnMmethodHandle__n0AKMethodKind__;
text: .text%__1cJStoreNodeEhash6kM_I_;
-text: .text%__1cOcompI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cKmethodOperGmethod6kM_l_;
-text: .text%__1cHTypeAryRary_must_be_exact6kM_i_;
text: .text%__1cKstoreINodeMideal_Opcode6kM_i_;
text: .text%__1cGGCTask2t6M_v_;
-text: .text%__1cOcompU_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cNSafePointNodeOnext_exception6kM_p0_;
text: .text%__1cOindOffset8OperNbase_position6kM_i_;
text: .text%__1cOindOffset8OperNconstant_disp6kM_i_;
-text: .text%__1cKjmpDirNodeHis_Goto6kM_I_;
text: .text%__1cENodeHset_req6MIp0_v_;
text: .text%__1cTconstantPoolOopDescNklass_name_at6Mi_pnNsymbolOopDesc__;
-text: .text%__1cSObjectSynchronizerKfast_enter6FnGHandle_pnJBasicLock_pnGThread__v_;
text: .text%__1cSObjectSynchronizerJfast_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cWShouldNotReachHereNodePoper_input_base6kM_I_;
-text: .text%__1cMMergeMemNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cGThreadLis_in_stack6kMpC_i_;
text: .text%__1cLIfFalseNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cKJavaThreadNis_lock_owned6kMpC_i_;
text: .text%__1cXAdaptiveWeightedAverageYcompute_adaptive_average6Mff_f_;
text: .text%__1cOcompU_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cJloadPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTconvI2L_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cSPSPromotionManagerbBgc_thread_promotion_manager6Fi_p0_;
-text: .text%__1cNmethodOopDescMintrinsic_id6kM_nMvmIntrinsicsCID__;
-text: .text%__1cKstorePNodeJnum_opnds6kM_I_;
text: .text%__1cQinstanceRefKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cQinstanceRefKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cMMergeMemNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cLciSignatureLreturn_type6kM_pnGciType__;
-text: .text%__1cMMergeMemNodeQclone_all_memory6FpnENode__p0_;
text: .text%__1cIGraphKitJclone_map6M_pnNSafePointNode__;
text: .text%__1cLMachNopNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJchar2type6Fc_nJBasicType__;
text: .text%__1cJFieldTypeKbasic_type6FpnNsymbolOopDesc__nJBasicType__;
text: .text%__1cKRelocationLspec_simple6FnJrelocInfoJrelocType__nQRelocationHolder__;
-text: .text%__1cICallNodeLis_CallLeaf6kM_pknMCallLeafNode__;
-text: .text%__1cLrecord_bias6FpknIPhaseIFG_ii_v_: coalesce.o;
text: .text%__1cJrRegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cMObjectLocker2t6MnGHandle_pnGThread__v_;
text: .text%__1cMObjectLocker2T6M_v_;
text: .text%__1cNloadRangeNodeMideal_Opcode6kM_i_;
-text: .text%__1cRMachSafePointNodeRis_safepoint_node6kM_i_;
-text: .text%__1cHTypeIntFempty6kM_i_;
text: .text%__1cRInvocationCounterJset_state6Mn0AFState__v_;
text: .text%__1cRInvocationCounterFreset6M_v_;
-text: .text%__1cKTypeOopPtrWmake_from_klass_common6FpnHciKlass_ii_pk0_;
text: .text%__1cRInvocationCounterEinit6M_v_;
text: .text%__1cNSafePointNodeEjvms6kM_pnIJVMState__;
text: .text%__1cNSignatureInfoJdo_object6Mii_v_;
-text: .text%__1cLPhaseValuesFwiden6kMpknEType_3_3_;
text: .text%__1cTconstantPoolOopDescRname_ref_index_at6Mi_i_;
text: .text%__1cIHaltNodeLbottom_type6kM_pknEType__;
-text: .text%__1cRRawBytecodeStreamMset_interval6Mii_v_;
-text: .text%__1cNtestI_regNodeHtwo_adr6kM_I_;
text: .text%__1cSsafePoint_pollNodeMideal_Opcode6kM_i_;
-text: .text%__1cLOopRecorderOallocate_index6MpnI_jobject__i_;
-text: .text%__1cYDebugInformationRecorderNappend_handle6MpnI_jobject__i_;
text: .text%__1cYCallStaticJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cYCallStaticJavaDirectNodeSalignment_required6kM_i_;
text: .text%__1cMloadConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGPcDescHreal_pc6kMpknHnmethod__pC_;
text: .text%__1cKRegionNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cOPhaseIdealLoopIsplit_up6MpnENode_22_i_;
-text: .text%__1cWConstantPoolCacheEntryRset_initial_state6Mi_v_;
text: .text%__1cKNativeCallGverify6M_v_;
text: .text%__1cNCompileBrokerLmaybe_block6F_v_;
text: .text%__1cFPhase2t6Mn0ALPhaseNumber__v_;
text: .text%__1cJloadINodeMideal_Opcode6kM_i_;
text: .text%__1cNLoadKlassNodeGOpcode6kM_i_;
text: .text%__1cIBoolNodeKmatch_edge6kMI_I_;
-text: .text%__1cITypeLongEmake6Fxx_pk0_;
-text: .text%__1cKRegionNodeOis_block_start6kM_i_;
text: .text%__1cCosGmalloc6FL_pv_;
text: .text%__1cXAdaptiveWeightedAverageGsample6Mf_v_;
text: .text%__1cFStateM_sub_Op_RegP6MpknENode__v_;
text: .text%__1cPcheckCastPPNodeHtwo_adr6kM_I_;
-text: .text%__1cRMachNullCheckNodeQis_MachNullCheck6M_p0_;
text: .text%__1cOGenerateOopMapGppush16MnNCellTypeState__v_;
text: .text%__1cGBitMapOset_difference6M0_v_;
text: .text%__1cMvalue_of_loc6FppnHoopDesc__l_;
text: .text%__1cRmethodDataOopDescTbytecode_cell_count6FnJBytecodesECode__i_;
text: .text%__1cRmethodDataOopDescRcompute_data_size6FpnOBytecodeStream__i_;
text: .text%__1cRmethodDataOopDescPinitialize_data6MpnOBytecodeStream_i_i_;
-text: .text%__1cOcompI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cLSymbolTableJbasic_add6MipCiIpnGThread__pnNsymbolOopDesc__;
text: .text%__1cLsymbolKlassPallocate_symbol6MpCipnGThread__pnNsymbolOopDesc__;
text: .text%__1cNGrowableArray4CpnKciTypeFlowFBlock__2t6MpnFArena_iirk2_v_;
-text: .text%__1cLPhaseValuesHlongcon6Mx_pnIConLNode__;
text: .text%__1cKDictionaryEfind6MiInMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cOcompI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cKTypeAryPtrFxmeet6kMpknEType__3_;
-text: .text%__1cMPhaseChaitinJsplit_USE6MpnENode_pnFBlock_2IIiinNGrowableArray4CI__i_I_;
-text: .text%__1cNCatchProjNodeMis_CatchProj6kM_pk0_;
text: .text%__1cOcompU_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cNSafePointNodeGOpcode6kM_i_;
-text: .text%__1cTconvI2L_reg_regNodePoper_input_base6kM_I_;
text: .text%__1cMTypeKlassPtrEhash6kM_i_;
-text: .text%__1cMLinkResolverOresolve_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
text: .text%__1cMLinkResolverYlookup_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cMciMethodDataLbci_to_data6Mi_pnLProfileData__;
text: .text%JVM_GetCPMethodSignatureUTF;
text: .text%__1cPfieldDescriptorKinitialize6MpnMklassOopDesc_i_v_;
-text: .text%__1cIciMethodbCinterpreter_invocation_count6M_i_;
text: .text%__1cMMergeMemNodeNset_memory_at6MIpnENode__v_;
text: .text%JVM_CurrentThread;
-text: .text%__1cPClassFileParserbLparse_constant_pool_nameandtype_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cKstoreINodeJnum_opnds6kM_I_;
text: .text%__1cHTypeAryEhash6kM_i_;
text: .text%JVM_GetClassModifiers;
text: .text%JVM_GetClassAccessFlags;
@@ -1088,38 +706,24 @@ text: .text%__1cParrayKlassKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cParrayKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cMrax_RegPOperEtype6kM_pknEType__;
text: .text%__1cKTypeRawPtrEhash6kM_i_;
-text: .text%__1cLmethodKlassNoop_is_method6kM_i_;
text: .text%__1cXindIndexScaleOffsetOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cPSignatureStreamJis_object6kM_i_;
text: .text%__1cVCompressedWriteStream2t6Mi_v_;
text: .text%__1cENode2t6Mp01_v_;
text: .text%__1cHAddNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cJStartNodeIis_Start6M_p0_;
text: .text%__1cMURShiftINodeGOpcode6kM_i_;
-text: .text%__1cNGrowableArray4CpnMMonitorValue__2t6Mii_v_;
-text: .text%__1cYDebugInformationRecorderOdescribe_scope6MpnIciMethod_ipnKDebugToken_44_v_;
text: .text%__1cYDebugInformationRecorderVcreate_monitor_values6MpnNGrowableArray4CpnMMonitorValue____pnKDebugToken__;
text: .text%__1cYDebugInformationRecorderYserialize_monitor_values6MpnNGrowableArray4CpnMMonitorValue____i_;
text: .text%__1cMloadConINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIMachNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cKReflectionTverify_class_access6FpnMklassOopDesc_2i_i_;
text: .text%__1cOMethodLivenessKBasicBlockWcompute_gen_kill_range6MpnQciBytecodeStream__v_;
text: .text%__1cJAssemblerJemit_data6MirknQRelocationHolder_i_v_;
text: .text%__1cIMachOperMdisp_as_type6kM_pknHTypePtr__;
-text: .text%__1cKCompiledICWis_in_transition_state6kM_i_;
-text: .text%__1cRInlineCacheBufferIcontains6FpC_i_;
text: .text%__1cOcompU_rRegNodeErule6kM_I_;
text: .text%__1cRMemBarReleaseNodeGOpcode6kM_i_;
text: .text%__1cKRelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cETypeOget_const_type6FpnGciType__pk0_;
text: .text%__1cMPhaseChaitinPset_was_spilled6MpnENode__v_;
-text: .text%__1cXvirtual_call_RelocationIparse_ic6FrpnICodeBlob_rpC5rppnHoopDesc_pi_nNRelocIterator__;
-text: .text%__1cLCounterDataOis_CounterData6M_i_;
-text: .text%__1cRCompilationPolicyNcanBeCompiled6FnMmethodHandle__i_;
-text: .text%__1cOcompU_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cKcmpOpUOperJnum_edges6kM_I_;
-text: .text%__1cOrFlagsRegUOperJnum_edges6kM_I_;
-text: .text%__1cKCastPPNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIGraphKitMsaved_ex_oop6FpnNSafePointNode__pnENode__;
text: .text%__1cMtlsLoadPNodeErule6kM_I_;
text: .text%__1cIGraphKitGmemory6MI_pnENode__;
@@ -1129,45 +733,22 @@ text: .text%__1cOGenerateOopMapFppush6MpnNCellTypeState__v_;
text: .text%__1cSobjArrayKlassKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cSobjArrayKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cQciBytecodeStreamPget_field_index6M_i_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKHandleAreaHoops_do6MpnKOopClosure__v_;
-text: .text%__1cNchunk_oops_do6FpnKOopClosure_pnFChunk_pc_L_: handles.o;
text: .text%__1cKCompiledIC2t6MpnKRelocation__v_;
-text: .text%__1cMUniverseOperFclone6kM_pnIMachOper__;
-text: .text%__1cJlabelOperFclone6kM_pnIMachOper__;
text: .text%__1cRaddI_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cLPhaseValuesHmakecon6MpknEType__pnHConNode__;
text: .text%__1cENodeHins_req6MIp0_v_;
text: .text%__1cIGraphKitLclean_stack6Mi_v_;
text: .text%__1cKRegionNodeHhas_phi6kM_pnHPhiNode__;
text: .text%__1cNloadRangeNodePoper_input_base6kM_I_;
-text: .text%__1cOMachReturnNodeNis_MachReturn6M_p0_;
-text: .text%__1cNaddI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cQPreserveJVMState2t6MpnIGraphKit_i_v_;
-text: .text%__1cNtestP_regNodeMcisc_operand6kM_i_;
-text: .text%__1cKjmpConNodeHtwo_adr6kM_I_;
-text: .text%__1cPClassFileParserbJparse_constant_pool_methodref_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cFKlassNoop_is_symbol6kM_i_;
-text: .text%__1cWConstantPoolCacheEntryLis_resolved6kMnJBytecodesECode__i_;
text: .text%__1cWConstantPoolCacheEntryPbytecode_number6FnJBytecodesECode__i_;
-text: .text%__1cMPhaseChaitinVmay_be_copy_of_callee6kMpnENode__i_;
text: .text%__1cNtestP_regNodeErule6kM_I_;
-text: .text%__1cUThreadSafepointStateXexamine_state_of_thread6Mi_v_;
-text: .text%__1cUSafepointSynchronizeOsafepoint_safe6FpnKJavaThread_nPJavaThreadState__i_;
text: .text%__1cFStateM_sub_Op_ConI6MpknENode__v_;
text: .text%__1cUArgumentSizeComputerDset6MinJBasicType__v_;
-text: .text%__1cOcompU_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cHPhiNodeEmake6FpnENode_2pknEType_pknHTypePtr__p0_;
-text: .text%__1cKCodeBufferOadd_stub_reloc6MpCrknQRelocationHolder_i_v_;
-text: .text%__1cKCodeBufferOalloc_relocate6M_pnORelocateBuffer__;
text: .text%__1cNtestI_regNodeErule6kM_I_;
text: .text%__1cOGenerateOopMapbAget_basic_block_containing6kMi_pnKBasicBlock__;
-text: .text%__1cFParseKensure_phi6Mii_pnHPhiNode__;
text: .text%__1cMLinkResolverZcheck_klass_accessability6FnLKlassHandle_1pnGThread__v_;
text: .text%__1cOGenerateOopMapSget_basic_block_at6kMi_pnKBasicBlock__;
-text: .text%__1cHAddress2t6MpCnJrelocInfoJrelocType__v_;
-text: .text%__1cFciEnvSget_klass_by_index6MpnPciInstanceKlass_iri_pnHciKlass__;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cFStateM_sub_Op_AddP6MpknENode__v_;
text: .text%__1cICallNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cOcompI_rRegNodeMcisc_operand6kM_i_;
@@ -1178,53 +759,24 @@ text: .text%__1cLMachNopNodeMideal_Opcode6kM_i_;
text: .text%__1cKJNIHandlesKmake_local6FpnHoopDesc__pnI_jobject__;
text: .text%__1cITypeFuncEhash6kM_i_;
text: .text%__1cOcompI_rRegNodeErule6kM_I_;
-text: .text%__1cIciMethodPliveness_at_bci6Mi_nGBitMap__;
-text: .text%__1cOMethodLivenessPget_liveness_at6Mi_nGBitMap__;
-text: .text%__1cOMethodLivenessKBasicBlockPget_liveness_at6MpnIciMethod_i_nGBitMap__;
-text: .text%__1cITypeLongFempty6kM_i_;
-text: .text%__1cMTypeKlassPtrCeq6kMpknEType__i_;
text: .text%__1cJAssemblerJemit_data6MinJrelocInfoJrelocType_i_v_;
text: .text%__1cJLoadSNodeGOpcode6kM_i_;
text: .text%__1cRMemBarAcquireNodeGOpcode6kM_i_;
-text: .text%__1cIGraphKitObasic_plus_adr6MpnENode_2l_2_;
text: .text%__1cJVectorSet2L6MI_rnDSet__;
text: .text%__1cJVectorSetEgrow6MI_v_;
-text: .text%__1cLCastP2LNodeGOpcode6kM_i_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
-text: .text%__1cJAssemblerEcall6MpCnJrelocInfoJrelocType__v_;
text: .text%__1cPcheckCastPPNodeMideal_Opcode6kM_i_;
text: .text%__1cJLoadLNodeGOpcode6kM_i_;
text: .text%__1cMLinkResolverNresolve_klass6FrnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cTconstantPoolOopDescMklass_ref_at6MipnGThread__pnMklassOopDesc__;
-text: .text%__1cRCompilationPolicyOmustBeCompiled6FnMmethodHandle__i_;
text: .text%__1cIAndINodeGOpcode6kM_i_;
-text: .text%__1cKklassKlassMoop_is_klass6kM_i_;
-text: .text%__1cUParallelScavengeHeapNtlab_capacity6kM_L_;
text: .text%__1cTCreateExceptionNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIPhaseCCPFwiden6kMpknEType_3_3_;
-text: .text%__1cHTypePtrJsingleton6kM_i_;
text: .text%__1cNArgumentCountDset6MinJBasicType__v_;
-text: .text%__1cWShouldNotReachHereNodeGpinned6kM_i_;
-text: .text%__1cNsubI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cNtestI_regNodePoper_input_base6kM_I_;
text: .text%__1cLBoxLockNodeGOpcode6kM_i_;
-text: .text%__1cWShouldNotReachHereNodeHtwo_adr6kM_I_;
-text: .text%__1cQMachCallJavaNodePis_MachCallJava6M_p0_;
text: .text%__1cKStoreBNodeGOpcode6kM_i_;
-text: .text%__1cJAssemblerMemit_operand6MpnMRegisterImpl_22nHAddressLScaleFactor_ipCrknQRelocationHolder__v_;
-text: .text%__1cJAssemblerMemit_operand6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cOGenerateOopMapHget_var6Mi_nNCellTypeState__;
-text: .text%__1cITypeFuncCeq6kMpknEType__i_;
-text: .text%__1cMloadConLNodePoper_input_base6kM_I_;
-text: .text%__1cMPhaseIterGVNHmakecon6MpknEType__pnHConNode__;
text: .text%__1cWShouldNotReachHereNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cHoopDescGverify6M_v_;
-text: .text%__1cQconstMethodKlassSoop_is_constMethod6kM_i_;
-text: .text%__1cRconstantPoolKlassToop_is_constantPool6kM_i_;
-text: .text%__1cOcompP_rRegNodePoper_input_base6kM_I_;
text: .text%__1cHTypePtrHget_con6kM_l_;
-text: .text%__1cHMatcherWis_short_branch_offset6Mi_i_;
-text: .text%__1cMloadConLNodeHtwo_adr6kM_I_;
text: .text%__1cMTypeKlassPtr2t6MnHTypePtrDPTR_pnHciKlass_i_v_;
text: .text%__1cYCallStaticJavaDirectNodeKmethod_set6Ml_v_;
text: .text%__1cWMachCallStaticJavaNodePret_addr_offset6M_i_;
@@ -1232,31 +784,20 @@ text: .text%__1cYCallStaticJavaDirectNodePcompute_padding6kMi_i_;
text: .text%__1cJVectorSet2t6MpnFArena__v_;
text: .text%__1cFStateM_sub_Op_RegI6MpknENode__v_;
text: .text%__1cICmpPNodeDsub6kMpknEType_3_3_;
-text: .text%__1cNloadConP0NodePoper_input_base6kM_I_;
text: .text%__1cOAbstractICachePinvalidate_word6FpC_v_;
text: .text%__1cRNativeInstructionFwrote6Mi_v_;
text: .text%__1cMURShiftLNodeGOpcode6kM_i_;
text: .text%__1cOrFlagsRegUOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cIciMethodLscale_count6Mi_i_;
-text: .text%__1cLjmpConUNodeJnum_opnds6kM_I_;
text: .text%__1cQciBytecodeStreamQget_method_index6M_i_;
text: .text%__1cFciEnvbTget_instance_klass_for_declared_method_holder6FpnHciKlass__pnPciInstanceKlass__;
-text: .text%__1cPSignatureStream2t6MnMsymbolHandle_i_v_;
text: .text%JVM_GetMethodIxLocalsCount;
text: .text%__1cJlabelOperFlabel6kM_pnFLabel__;
text: .text%__1cGOopMapJheap_size6kM_i_;
text: .text%__1cLOopMapCacheLoop_iterate6MpnKOopClosure__v_;
text: .text%__1cMloadConLNodeErule6kM_I_;
-text: .text%__1cOMacroAssemblerZneeds_explicit_null_check6Fi_i_;
-text: .text%__1cNSafePointNode2t6MIpnIJVMState__v_;
text: .text%__1cLas_TosState6FnJBasicType__nITosState__;
text: .text%__1cNloadKlassNodeMideal_Opcode6kM_i_;
-text: .text%__1cWConstantPoolCacheEntryIas_flags6MnITosState_iiiii_i_;
-text: .text%__1cNloadConP0NodeHtwo_adr6kM_I_;
text: .text%__1cWThreadLocalAllocBufferVinitialize_statistics6M_v_;
-text: .text%__1cWThreadLocalAllocBufferFclear6M_v_;
-text: .text%__1cWThreadLocalAllocBufferVaccumulate_statistics6MLi_v_;
-text: .text%__1cWThreadLocalAllocBufferImax_size6F_L_;
text: .text%__1cWThreadLocalAllocBufferGresize6M_v_;
text: .text%__1cJloadINodePoper_input_base6kM_I_;
text: .text%__1cIRootNodeLbottom_type6kM_pknEType__;
@@ -1264,10 +805,8 @@ text: .text%__1cWConstantPoolCacheEntryGverify6kMpnMoutputStream__v_;
text: .text%__1cHCompileYout_preserve_stack_slots6F_I_;
text: .text%__1cFParsePload_state_from6Mpn0AFBlock__v_;
text: .text%__1cFParseMmerge_common6Mpn0AFBlock_i_v_;
-text: .text%__1cNloadRangeNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cIGraphKitQkill_dead_locals6M_v_;
text: .text%__1cKMemBarNodeLbottom_type6kM_pknEType__;
-text: .text%__1cKimmL32OperJconstantL6kM_x_;
text: .text%__1cIciObject2t6MnGHandle__v_;
text: .text%__1cITypeFuncEmake6FpknJTypeTuple_3_pk0_;
text: .text%__1cLConvI2LNodeFValue6kMpnOPhaseTransform__pknEType__;
@@ -1276,30 +815,18 @@ text: .text%__1cRaddP_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cLBoxLockNodeJideal_reg6kM_I_;
text: .text%__1cPClassFileParserYverify_legal_method_name6MnMsymbolHandle_pnGThread__v_;
text: .text%__1cICHeapObj2n6FL_pv_;
-text: .text%__1cFframeUentry_frame_is_first6kM_i_;
text: .text%__1cKInlineTreeJcallee_at6kMipnIciMethod__p0_;
text: .text%__1cOFastUnlockNodeGOpcode6kM_i_;
text: .text%__1cFStateM_sub_Op_ConL6MpknENode__v_;
-text: .text%__1cIHaltNodeGpinned6kM_i_;
text: .text%__1cMTypeKlassPtrEmake6FnHTypePtrDPTR_pnHciKlass_i_pk0_;
text: .text%__1cOoop_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cOCallRelocationFvalue6M_pC_;
-text: .text%__1cKRelocationXpd_set_call_destination6MpCl_v_;
-text: .text%__1cOCallRelocationWfix_relocation_at_move6Ml_v_;
-text: .text%__1cKRelocationTpd_call_destination6M_pC_;
-text: .text%__1cOCallRelocationPset_destination6MpCl_v_;
-text: .text%__1cHcommute6FpnENode_ii_i_: addnode.o;
-text: .text%__1cENodeHis_Root6M_pnIRootNode__;
-text: .text%__1cENodeQlatency_from_use6kMrnLBlock_Array_rnNGrowableArray4CI__pk0p0_i_;
-text: .text%__1cHAddNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cNinstanceKlassQfind_local_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__i_;
text: .text%__1cMmerge_region6FpnKRegionNode_pnIPhaseGVN__pnENode__: cfgnode.o;
text: .text%__1cNloadConP0NodeErule6kM_I_;
text: .text%__1cIGraphKitMreset_memory6M_pnENode__;
text: .text%__1cPciObjectFactoryRcreate_new_object6MpnHoopDesc__pnIciObject__;
text: .text%__1cNloadRangeNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNloadConI0NodeMideal_Opcode6kM_i_;
-text: .text%__1cJloadPNodeHtwo_adr6kM_I_;
text: .text%__1cNSignatureInfoGdo_int6M_v_;
text: .text%__1cKjmpDirNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPThreadRootsTaskFdo_it6MpnNGCTaskManager_I_v_;
@@ -1311,49 +838,31 @@ text: .text%__1cJrRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cIAddLNodeGOpcode6kM_i_;
text: .text%__1cJLoadPNodeJideal_reg6kM_I_;
text: .text%__1cNinstanceKlassKfind_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__pnMklassOopDesc__;
-text: .text%__1cOkill_dead_code6FpnENode_pnMPhaseIterGVN__i_: node.o;
-text: .text%__1cKjmpDirNodeFclone6kM_pnENode__;
-text: .text%__1cOcompI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cFParseFBlockRsuccessor_for_bci6Mi_p1_;
text: .text%__1cNGrowableArray4CpnOMethodLivenessKBasicBlock__2t6MpnFArena_iirk2_v_;
text: .text%__1cQSystemDictionaryEfind6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cNtestP_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNincI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cICallInfoDset6MnLKlassHandle_1nMmethodHandle_2ipnGThread__v_;
text: .text%__1cHOrINodeGOpcode6kM_i_;
-text: .text%__1cOcompI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cMPhaseChaitinJsplit_DEF6MpnENode_pnFBlock_iIp25nNGrowableArray4CI__i_I_;
-text: .text%__1cENodeHis_Type6M_pnITypeNode__;
-text: .text%__1cNSafePointNodeMis_SafePoint6M_p0_;
text: .text%__1cICHeapObj2k6Fpv_v_;
text: .text%__1cRaddP_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cICmpINodeDsub6kMpknEType_3_3_;
-text: .text%__1cENode2n6FLi_pv_;
-text: .text%__1cJTraceTime2t6MpkcpnMelapsedTimer_iipnMoutputStream__v_;
text: .text%__1cIAddINodeGadd_id6kM_pknEType__;
text: .text%__1cKStoreCNodeGOpcode6kM_i_;
text: .text%__1cTconvI2L_reg_regNodeMcisc_operand6kM_i_;
text: .text%__1cHMemNodeQIdeal_DU_postCCP6MpnIPhaseCCP__pnENode__;
-text: .text%__1cSvframeStreamCommonPfill_from_frame6M_i_;
-text: .text%__1cILoadNodeRraise_bottom_type6MpknEType__v_;
-text: .text%__1cJStoreNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cNFingerprinterLfingerprint6M_L_;
-text: .text%__1cLConvI2LNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOGenerateOopMapGppload6MpnNCellTypeState_i_v_;
-text: .text%__1cIGraphKitRnull_check_common6MpnENode_nJBasicType_i_2_;
text: .text%__1cKBlock_ListGremove6MI_v_;
text: .text%__1cKMemoryPoolYrecord_peak_memory_usage6M_v_;
text: .text%__1cKciTypeFlowGJsrSetJcopy_into6Mp1_v_;
text: .text%__1cICmpLNodeGOpcode6kM_i_;
-text: .text%__1cLklassVtableTupdate_super_vtable6MpnNinstanceKlass_pnNmethodOopDesc_i_i_;
-text: .text%__1cLcastP2LNodePoper_input_base6kM_I_;
-text: .text%__1cQStackFrameStream2t6MpnKJavaThread_i_v_;
text: .text%__1cTciConstantPoolCacheEfind6Mi_i_;
text: .text%__1cOPhaseIdealLoopGspinup6MpnENode_2222pnLsmall_cache__2_;
text: .text%__1cMVirtualSpaceOcommitted_size6kM_L_;
text: .text%__1cNGrowableArray4CpnIciObject__Praw_at_put_grow6Mirk14_v_;
text: .text%__1cIRootNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cHOopFlowEmake6FpnFArena_i_p0_;
text: .text%__1cJloadLNodeErule6kM_I_;
text: .text%__1cNloadConI0NodeLbottom_type6kM_pknEType__;
text: .text%__1cJimmI0OperIconstant6kM_l_;
@@ -1362,105 +871,57 @@ text: .text%__1cLBoxLockNodeLbottom_type6kM_pknEType__;
text: .text%__1cNaddI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cOPhaseIdealLoopKhandle_use6MpnENode_2pnLsmall_cache_22222_v_;
text: .text%__1cOPhaseIdealLoopOfind_use_block6MpnENode_22222_2_;
-text: .text%__1cNmethodOopDescbGupdate_compiled_code_entry_point6Mi_v_;
text: .text%__1cJStoreNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cNSignatureInfoHdo_void6M_v_;
-text: .text%__1cLAdapterInfoKhash_value6kM_l_;
text: .text%JVM_GetCPMethodClassNameUTF;
text: .text%__1cHOopFlowFclone6Mp0i_v_;
text: .text%__1cRSignatureIteratorSiterate_parameters6ML_v_;
-text: .text%__1cILoopNodeHis_Loop6M_p0_;
text: .text%__1cPindOffset32OperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cPindOffset32OperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cMCallLeafNodeGOpcode6kM_i_;
-text: .text%__1cNmethodOopDescPis_final_method6kM_i_;
-text: .text%__1cSComputeAdapterInfoHcompute6Mplii_v_;
-text: .text%__1cLAdapterInfoHcompute6MnMmethodHandle_i_v_;
-text: .text%__1cLAdapterInfo2T6M_v_;
-text: .text%__1cSComputeAdapterInfoLreturn_type6MnJBasicType__i_;
-text: .text%__1cSComputeAdapterInfoMsize_in_bits6FnMmethodHandle__i_;
-text: .text%__1cMAdapterCacheGlookup6MpnLAdapterInfo__pnMBasicAdapter__;
-text: .text%__1cJloadINodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cPadd_derived_oop6FppnHoopDesc_2_v_: oopMap.o;
text: .text%__1cTDerivedPointerTableDadd6FppnHoopDesc_3_v_;
text: .text%__1cFParseFBlockJinit_node6Mp0i_v_;
text: .text%__1cFParseFBlockKinit_graph6Mp0_v_;
-text: .text%__1cOcompP_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cSObjectSynchronizerKslow_enter6FnGHandle_pnJBasicLock_pnGThread__v_;
text: .text%__1cKjmpDirNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cMLinkResolverbFlinktime_resolve_virtual_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
-text: .text%__1cKJavaThreadOis_Java_thread6kM_i_;
-text: .text%__1cKCastPPNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cJTraceTime2T6M_v_;
-text: .text%__1cKciTypeFlowNmake_range_at6Mi_pn0AFRange__;
text: .text%__1cNmethodOopDescbAcompute_size_of_parameters6MpnGThread__v_;
-text: .text%__1cKoopFactoryKnew_method6FinLAccessFlags_iiipnGThread__pnNmethodOopDesc__;
-text: .text%__1cNmethodOopDescLobject_size6Fi_i_;
text: .text%__1cSconstMethodOopDescLobject_size6Fiiii_i_;
-text: .text%__1cLklassVtableWneeds_new_vtable_entry6FpnNmethodOopDesc_pnMklassOopDesc_pnHoopDesc_pnNsymbolOopDesc_nLAccessFlags__i_;
text: .text%__1cSconstMethodOopDescZset_inlined_tables_length6Miii_v_;
text: .text%__1cLmethodKlassIallocate6MnRconstMethodHandle_nLAccessFlags_pnGThread__pnNmethodOopDesc__;
-text: .text%__1cQconstMethodKlassIallocate6MiiiipnGThread__pnSconstMethodOopDesc__;
-text: .text%__1cNmethodOopDescJinit_code6M_v_;
-text: .text%__1cKoopFactoryPnew_constMethod6FiiiipnGThread__pnSconstMethodOopDesc__;
-text: .text%__1cPClassFileParserMparse_method6MnSconstantPoolHandle_ipnLAccessFlags_pnPtypeArrayHandle_55pnGThread__nMmethodHandle__;
-text: .text%__1cFBlockUhoist_LCA_above_defs6Mp01IrnLBlock_Array__1_;
-text: .text%__1cScompI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cPciInstanceKlassLfield_cache6M_pnTciConstantPoolCache__;
-text: .text%__1cHciFieldJwill_link6MpnPciInstanceKlass_nJBytecodesECode__i_;
text: .text%__1cFciEnvXget_field_by_index_impl6MpnPciInstanceKlass_i_pnHciField__;
-text: .text%__1cQciBytecodeStreamJget_field6Mri_pnHciField__;
text: .text%__1cFciEnvSget_field_by_index6MpnPciInstanceKlass_i_pnHciField__;
-text: .text%__1cKTypeOopPtrFempty6kM_i_;
text: .text%__1cWConstantPoolCacheEntryOset_bytecode_16MnJBytecodesECode__v_;
-text: .text%__1cKCastPPNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cMMergeMemNodeNgrow_to_match6Mpk0_v_;
-text: .text%__1cFKlassPoop_is_objArray6kM_i_;
text: .text%__1cTCreateExceptionNodePoper_input_base6kM_I_;
text: .text%__1cPciInstanceKlassYunique_concrete_subklass6M_p0_;
text: .text%__1cLStringTableGlookup6MipHiI_pnHoopDesc__;
text: .text%__1cLBoxLockNodeHsize_of6kM_I_;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
-text: .text%__1cPClassFileParserbDverify_legal_method_modifiers6MiinMsymbolHandle_pnGThread__v_;
text: .text%__1cIPhaseGVNUtransform_no_reclaim6MpnENode__2_;
-text: .text%__1cIRewriterOrewrite_method6FnMmethodHandle_rnIintArray_pnGThread__1_;
-text: .text%__1cNmethodOopDescLlink_method6FnMmethodHandle__v_;
text: .text%__1cNloadKlassNodePoper_input_base6kM_I_;
text: .text%__1cNObjectMonitorEexit6MpnGThread__v_;
-text: .text%__1cPClassFileParserZskip_over_field_signature6MpciIpnGThread__1_;
text: .text%__1cMMergeMemNode2t6MpnENode__v_;
text: .text%__1cMMergeMemNodeRmake_empty_memory6F_pnENode__;
-text: .text%__1cNinstanceKlassVshould_be_initialized6kM_i_;
-text: .text%__1cNtestP_regNodeJnum_opnds6kM_I_;
-text: .text%__1cJStartNodeGis_CFG6kM_i_;
-text: .text%__1cRaddI_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cPVirtualCallDataSis_VirtualCallData6M_i_;
text: .text%__1cMindIndexOperJnum_edges6kM_I_;
text: .text%__1cRInterpretedRFrameKtop_method6kM_nMmethodHandle__;
-text: .text%__1cKGCStatInfoMset_gc_usage6MinLMemoryUsage_i_v_;
text: .text%__1cXmembar_acquire_lockNodeLbottom_type6kM_pknEType__;
text: .text%__1cQPreserveJVMState2T6M_v_;
-text: .text%__1cLRuntimeStubIis_alive6kM_i_;
-text: .text%__1cMWarmCallInfoHis_cold6kM_i_;
text: .text%__1cNObjectMonitorFenter6MpnGThread__v_;
text: .text%__1cKjmpConNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIemit_d646FrnKCodeBuffer_l_v_;
text: .text%__1cFParseFmerge6Mi_v_;
text: .text%__1cOPhaseIdealLoopIset_idom6MpnENode_2I_v_;
-text: .text%__1cIAddINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cFParseMdo_one_block6M_v_;
text: .text%__1cFParseFBlockMrecord_state6Mp0_v_;
-text: .text%__1cNtestP_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cNCollectedHeapYpermanent_array_allocate6FnLKlassHandle_iipnGThread__pnHoopDesc__;
-text: .text%__1cJloadLNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cIPhaseIFGFUnion6MII_v_;
-text: .text%__1cNloadRangeNodeJnum_opnds6kM_I_;
text: .text%__1cWConstantPoolCacheEntryOset_bytecode_26MnJBytecodesECode__v_;
text: .text%__1cOcompP_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cIBoolNodeJideal_reg6kM_I_;
text: .text%__1cHCmpNodeJideal_reg6kM_I_;
text: .text%__1cFStateM_sub_Op_Bool6MpknENode__v_;
-text: .text%__1cJCatchNodeIis_Catch6kM_pk0_;
text: .text%__1cJLoadBNodeGOpcode6kM_i_;
text: .text%__1cENodeHlatency6MI_I_;
text: .text%__1cIGraphKit2t6MpnIJVMState__v_;
@@ -1468,67 +929,42 @@ text: .text%__1cKTypeAryPtrFklass6kM_pnHciKlass__;
text: .text%__1cTciConstantPoolCacheDget6Mi_pv_;
text: .text%__1cNmethodOopDescIbcp_from6kMi_pC_;
text: .text%__1cKTypeOopPtrHget_con6kM_l_;
-text: .text%__1cMPhaseChaitinKprompt_use6MpnFBlock_I_i_;
text: .text%__1cIJVMStateLdebug_depth6kM_I_;
-text: .text%__1cIGraphKitTadd_safepoint_edges6MpnNSafePointNode_i_v_;
text: .text%__1cENodeNadd_req_batch6Mp0I_v_;
-text: .text%__1cIJVMStateKclone_deep6kM_p0_;
text: .text%__1cFStateK_sub_Op_If6MpknENode__v_;
text: .text%__1cXindIndexScaleOffsetOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cXindIndexScaleOffsetOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cGBitMapVset_union_with_result6M0_i_;
-text: .text%__1cNSafePointNodeEhash6kM_I_;
text: .text%__1cMelapsedTimerFstart6M_v_;
text: .text%__1cJStartNodeGOpcode6kM_i_;
text: .text%__1cMelapsedTimerEstop6M_v_;
text: .text%__1cOPhaseIdealLoopQconditional_move6MpnENode__2_;
text: .text%__1cJloadLNodeMideal_Opcode6kM_i_;
text: .text%__1cOMethodLivenessKBasicBlockJstore_one6Mi_v_;
-text: .text%__1cTC2IAdapterGeneratorXlazy_std_verified_entry6FnMmethodHandle__pC_;
-text: .text%__1cPindOffset32OperJnum_edges6kM_I_;
text: .text%__1cPFieldAccessInfoDset6MnLKlassHandle_nMsymbolHandle_iinJBasicType_nLAccessFlags__v_;
-text: .text%__1cMLinkResolverNresolve_field6FrnPFieldAccessInfo_nSconstantPoolHandle_inJBytecodesECode_iipnGThread__v_;
text: .text%__1cMLinkResolverZcheck_field_accessability6FnLKlassHandle_11rnPfieldDescriptor_pnGThread__v_;
text: .text%__1cNsubI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cTCreateExceptionNodeHtwo_adr6kM_I_;
text: .text%__1cPindOffset32OperFscale6kM_i_;
text: .text%__1cHAddNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cICmpPNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cbFCompressedLineNumberWriteStream2t6Mi_v_;
-text: .text%__1cPClassFileParserWparse_linenumber_table6MIIpipnGThread__pC_;
text: .text%__1cSconstMethodOopDescbBcompressed_linenumber_table6kM_pC_;
text: .text%__1cHTypePtrLdual_offset6kM_i_;
text: .text%__1cNMachIdealNodePoper_input_base6kM_I_;
text: .text%__1cSObjectSynchronizerOinflate_helper6FpnHoopDesc__pnNObjectMonitor__;
text: .text%__1cKciTypeFlowIblock_at6Mipn0AGJsrSet_n0AMCreateOption__pn0AFBlock__;
-text: .text%__1cKciTypeFlowFRangeNget_block_for6Mpn0AGJsrSet_n0AMCreateOption__pn0AFBlock__;
-text: .text%__1cSvframeStreamCommonbBfill_from_interpreter_frame6M_v_;
-text: .text%__1cHMonitorEwait6Mil_i_;
-text: .text%__1cLcastP2LNodeMideal_Opcode6kM_i_;
-text: .text%__1cNloadKlassNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cSObjectSynchronizerJslow_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cPJavaCallWrapperHoops_do6MpnKOopClosure__v_;
text: .text%__1cFframeNoops_entry_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cXindIndexScaleOffsetOperFscale6kM_i_;
-text: .text%__1cQciBytecodeStreamKget_method6Mri_pnIciMethod__;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJBytecodesECode__pnNmethodOopDesc__;
text: .text%__1cYinternal_word_RelocationLunpack_data6M_v_;
text: .text%__1cNstoreImmBNodePoper_input_base6kM_I_;
text: .text%__1cNLoadRangeNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cITypeFuncEmake6FpnIciMethod__pk0_;
-text: .text%__1cMindirectOperJnum_edges6kM_I_;
text: .text%__1cKCompiledICOic_destination6kM_pC_;
text: .text%__1cTconvI2L_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cICmpUNodeDsub6kMpknEType_3_3_;
text: .text%__1cPSignatureStreamJas_symbol6MpnGThread__pnNsymbolOopDesc__;
text: .text%__1cRshrL_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cIGraphKitRcreate_and_map_if6MpnENode_2ff_pnGIfNode__;
-text: .text%__1cPClassFileParserbFparse_constant_pool_class_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cOMethodLivenessKBasicBlockMmerge_normal6MnGBitMap__i_;
-text: .text%__1cTleaPIdxScaleOffNodeHtwo_adr6kM_I_;
-text: .text%__1cETypeFwiden6kMpk0_2_;
text: .text%__1cKciTypeFlowLStateVector2t6Mp0_v_;
text: .text%__1cNCatchProjNodeLbottom_type6kM_pknEType__;
text: .text%__1cOcompU_rRegNodeLout_RegMask6kM_rknHRegMask__;
@@ -1536,40 +972,26 @@ text: .text%__1cNCatchProjNodeHsize_of6kM_I_;
text: .text%__1cNCatchProjNodeEhash6kM_I_;
text: .text%__1cSvframeStreamCommonEnext6M_v_;
text: .text%__1cFKlassIsubklass6kM_p0_;
-text: .text%__1cKciTypeFlowFBlockPis_simpler_than6Mp1_i_;
text: .text%__1cJimmI8OperIconstant6kM_l_;
-text: .text%__1cIAddPNodeQmach_bottom_type6FpknIMachNode__pknEType__;
text: .text%__1cILoadNodeHsize_of6kM_I_;
-text: .text%__1cHMatcherVReduceInst_Chain_Rule6MpnFState_ipnIMachNode_rpnENode__v_;
text: .text%__1cURethrowExceptionNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cNincI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cLjmpConUNodeHtwo_adr6kM_I_;
-text: .text%__1cHMatcherScalling_convention6FpnLOptoRegPair_Ii_v_;
text: .text%__1cKPerfStringKset_string6Mpkc_v_;
text: .text%__1cENodeLnonnull_req6kM_p0_;
-text: .text%__1cICmpINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cHTypeAryCeq6kMpknEType__i_;
text: .text%__1cQSystemDictionaryKfind_class6FiInMsymbolHandle_nGHandle__pnMklassOopDesc__;
text: .text%__1cKDictionaryKfind_class6MiInMsymbolHandle_nGHandle__pnMklassOopDesc__;
text: .text%__1cQUnique_Node_ListEpush6MpnENode__v_;
text: .text%__1cILoopNodeGOpcode6kM_i_;
text: .text%__1cIGraphKitTadd_exception_state6MpnNSafePointNode__v_;
text: .text%__1cJloadPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cICallNodeSis_CallInterpreter6kM_pknTCallInterpreterNode__;
text: .text%__1cOPhaseIdealLoopRregister_new_node6MpnENode_2_v_;
text: .text%__1cQPSGenerationPoolImax_size6kM_L_;
text: .text%__1cQPSGenerationPoolNused_in_bytes6M_L_;
text: .text%__1cQPSGenerationPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cOMethodLivenessNwork_list_get6M_pn0AKBasicBlock__;
text: .text%__1cNinstanceKlassKmethods_do6MpFpnNmethodOopDesc__v_v_;
-text: .text%__1cICallNodeOis_CallRuntime6kM_pknPCallRuntimeNode__;
text: .text%__1cHTypeAryFxmeet6kMpknEType__3_;
text: .text%__1cNstoreImmBNodeMideal_Opcode6kM_i_;
-text: .text%__1cKciTypeFlowLStateVectorEmeet6Mpk1_i_;
-text: .text%__1cIMachNodeTmay_be_short_branch6kM_i_;
-text: .text%__1cJloadINodeJnum_opnds6kM_I_;
text: .text%__1cNaddI_rRegNodeMcisc_operand6kM_i_;
-text: .text%__1cRMachSafePointNode2t6M_v_;
text: .text%__1cHMatcherKmatch_sfpt6MpnNSafePointNode__pnIMachNode__;
text: .text%__1cOcompP_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cMPhaseChaitinKFind_const6kMpknENode__I_;
@@ -1591,62 +1013,41 @@ text: .text%__1cKciTypeFlowLStateVectorOpush_translate6MpnGciType__v_;
text: .text%__1cOGenerateOopMapJdo_method6Miiii_v_;
text: .text%__1cMloadConPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIimmPOperIconstant6kM_l_;
-text: .text%__1cIimmPOperPconstant_is_oop6kM_i_;
-text: .text%__1cOleaPIdxOffNodeHtwo_adr6kM_I_;
text: .text%__1cHGCCauseJto_string6Fn0AFCause__pkc_;
text: .text%__1cTleaPIdxScaleOffNodeErule6kM_I_;
text: .text%JVM_IsNaN;
-text: .text%__1cXinsert_anti_dependences6FrpnFBlock_pnENode_rnLBlock_Array__i_: gcm.o;
-text: .text%__1cLOptoRuntimebCcomplete_monitor_unlocking_C6FpnHoopDesc_pnJBasicLock__v_;
text: .text%__1cJloadINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLOptoRuntimebAcomplete_monitor_locking_C6FpnHoopDesc_pnJBasicLock_pnKJavaThread__v_;
-text: .text%__1cHCompileKTracePhase2t6MpkcpnMelapsedTimer_i_v_;
text: .text%__1cHCompileKTracePhase2T6M_v_;
text: .text%__1cOGenerateOopMapTmerge_state_into_bb6MpnKBasicBlock__v_;
text: .text%__1cHMatcherPc_frame_pointer6kM_i_;
text: .text%__1cFBlockKsched_call6MrnHMatcher_rnLBlock_Array_IrnJNode_List_pipnMMachCallNode_rnJVectorSet__I_;
-text: .text%__1cMMachCallNode2t6M_v_;
text: .text%__1cICallNodeJideal_reg6kM_I_;
text: .text%__1cOleaPIdxOffNodeErule6kM_I_;
text: .text%__1cOGenerateOopMapEppop6MpnNCellTypeState__v_;
text: .text%__1cSCallLeafDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cOcompP_rRegNodeErule6kM_I_;
-text: .text%__1cMany_RegPOperJnum_edges6kM_I_;
-text: .text%__1cIGraphKitbLset_predefined_input_for_runtime_call6MpnNSafePointNode__v_;
text: .text%__1cMany_RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cScompI_rReg_immNodeErule6kM_I_;
text: .text%__1cLBoxLockNodeKin_RegMask6kMI_rknHRegMask__;
text: .text%__1cIGraphKitOset_all_memory6MpnENode__v_;
text: .text%__1cLRegisterMap2t6Mpk0_v_;
text: .text%__1cGvframe2t6MpknFframe_pknLRegisterMap_pnKJavaThread__v_;
-text: .text%__1cNmethodOopDescWwas_executed_more_than6kMi_i_;
text: .text%__1cKstoreCNodePoper_input_base6kM_I_;
text: .text%__1cVjava_lang_ClassLoaderbBnon_reflection_class_loader6FpnHoopDesc__2_;
text: .text%__1cHi2sNodeErule6kM_I_;
text: .text%__1cIMulLNodeGOpcode6kM_i_;
-text: .text%__1cOPhaseIdealLoopHdom_lca6kMpnENode_2_2_;
-text: .text%__1cMPrefetchNodeGOpcode6kM_i_;
-text: .text%__1cSReferenceProcessorSdiscover_reference6MpnHoopDesc_nNReferenceType__i_;
-text: .text%__1cSReferenceProcessorTget_discovered_list6MnNReferenceType__ppnHoopDesc__;
-text: .text%__1cXjava_lang_ref_ReferenceIset_next6FpnHoopDesc_2_v_;
text: .text%__1cKciTypeFlowGJsrSet2t6MpnFArena_i_v_;
-text: .text%__1cNtestI_regNodeJnum_opnds6kM_I_;
text: .text%__1cIAddINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cIMachOperNconstant_disp6kM_i_;
text: .text%__1cIMachOperFscale6kM_i_;
-text: .text%__1cFframeNis_java_frame6kM_i_;
text: .text%__1cOMethodLivenessKBasicBlockJpropagate6Mp0_v_;
text: .text%__1cQSystemDictionaryStry_get_next_class6F_pnMklassOopDesc__;
text: .text%__1cKDictionaryStry_get_next_class6M_pnMklassOopDesc__;
text: .text%__1cNloadKlassNodeErule6kM_I_;
-text: .text%__1cIciMethodRhas_compiled_code6M_i_;
-text: .text%__1cOoop_RelocationJpack_data6M_i_;
text: .text%__1cKCompiledICKcached_oop6kM_pnHoopDesc__;
text: .text%__1cGOopMap2t6Mii_v_;
text: .text%__1cJOopMapSetKadd_gc_map6MipnGOopMap__v_;
text: .text%__1cNincI_rRegNodeErule6kM_I_;
-text: .text%__1cRMachSafePointNodePis_MachCallLeaf6M_pnQMachCallLeafNode__;
-text: .text%__1cRMachSafePointNodeLset_oop_map6MpnGOopMap__v_;
text: .text%__1cYDebugInformationRecorderNadd_safepoint6MipnGOopMap__v_;
text: .text%__1cHCompileTProcess_OopMap_Node6MpnIMachNode_i_v_;
text: .text%__1cYDebugInformationRecorderKadd_oopmap6MipnGOopMap__v_;
@@ -1660,44 +1061,24 @@ text: .text%__1cHRetNodeMideal_Opcode6kM_i_;
text: .text%__1cGvframeKnew_vframe6FpknFframe_pknLRegisterMap_pnKJavaThread__p0_;
text: .text%__1cNsubI_rRegNodeErule6kM_I_;
text: .text%__1cRaddP_rReg_immNodeErule6kM_I_;
-text: .text%__1cPClassFileParserbGparse_constant_pool_string_entry6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cJloadLNodePoper_input_base6kM_I_;
-text: .text%__1cRshrL_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cITypeLongFxdual6kM_pknEType__;
-text: .text%__1cRMachSafePointNodeSis_MachCallRuntime6M_pnTMachCallRuntimeNode__;
-text: .text%__1cNaddI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cENodeJset_req_X6MIp0pnMPhaseIterGVN__v_;
-text: .text%__1cOcompP_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cSInterpreterRuntimePresolve_get_put6FpnKJavaThread_nJBytecodesECode__v_;
-text: .text%__1cMLinkResolverNresolve_field6FrnPFieldAccessInfo_nSconstantPoolHandle_inJBytecodesECode_ipnGThread__v_;
-text: .text%__1cWConstantPoolCacheEntryJset_field6MnJBytecodesECode_2nLKlassHandle_iinITosState_ii_v_;
text: .text%__1cIAndLNodeGOpcode6kM_i_;
text: .text%__1cMindIndexOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cOtypeArrayKlassSallocate_permanent6MipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cOGenerateOopMapCpp6MpnNCellTypeState_2_v_;
-text: .text%__1cMCallJavaNodeLis_CallJava6kM_pk0_;
-text: .text%__1cICallNodeScalling_convention6kMpnLOptoRegPair_I_v_;
text: .text%__1cHCompileSflatten_alias_type6kMpknHTypePtr__3_;
-text: .text%__1cRcmpFastUnlockNodePoper_input_base6kM_I_;
text: .text%__1cYCallStaticJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cOcompP_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cFStateW_sub_Op_CallStaticJava6MpknENode__v_;
-text: .text%__1cWMachCallStaticJavaNodeVis_MachCallStaticJava6M_p0_;
-text: .text%__1cRaddP_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cICallInfoDset6MnLKlassHandle_nMmethodHandle_pnGThread__v_;
-text: .text%__1cSComputeAdapterInfoJdo_object6Mii_v_;
-text: .text%__1cRMachSafePointNodeWis_MachCallInterpreter6M_pnXMachCallInterpreterNode__;
text: .text%__1cIGraphKitbDtransfer_exceptions_into_jvms6M_pnIJVMState__;
text: .text%__1cLConvL2INodeGOpcode6kM_i_;
text: .text%__1cOcompI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQSystemDictionarybEresolve_instance_class_or_null6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cNaddI_rRegNodeErule6kM_I_;
-text: .text%__1cHConNodeEmake6FpknEType__p0_;
-text: .text%__1cScompI_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cJLoadCNodeGOpcode6kM_i_;
text: .text%__1cYCallStaticJavaDirectNodeFreloc6kM_i_;
text: .text%__1cRcmpFastUnlockNodeMideal_Opcode6kM_i_;
-text: .text%__1cJTraceTime2t6MpkciipnMoutputStream__v_;
text: .text%__1cWstatic_stub_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cIGraphKitQset_saved_ex_oop6FpnNSafePointNode_pnENode__v_;
text: .text%__1cIGraphKitUmake_exception_state6MpnENode__pnNSafePointNode__;
@@ -1705,33 +1086,16 @@ text: .text%__1cJloadBNodeMideal_Opcode6kM_i_;
text: .text%__1cMLinkResolverOresolve_invoke6FrnICallInfo_nGHandle_nSconstantPoolHandle_inJBytecodesECode_pnGThread__v_;
text: .text%__1cMLinkResolverMresolve_pool6FrnLKlassHandle_rnMsymbolHandle_42nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cGOopMapHcopy_to6MpC_v_;
-text: .text%__1cNstoreImmBNodeJnum_opnds6kM_I_;
text: .text%__1cVLoaderConstraintTableWfind_loader_constraint6MnMsymbolHandle_nGHandle__ppnVLoaderConstraintEntry__;
-text: .text%__1cJTimeStampJupdate_to6Mx_v_;
text: .text%__1cJTimeStampGupdate6M_v_;
text: .text%__1cFframeZinterpreter_frame_set_bcx6Ml_v_;
-text: .text%__1cCosFsleep6FpnGThread_xi_i_;
-text: .text%__1cNgetTimeMillis6F_x_;
-text: .text%__1cRaddP_rReg_immNodeLbottom_type6kM_pknEType__;
-text: .text%__1cIos_sleep6Fxi_i_: os_solaris.o;
-text: .text%__1cLPhaseValuesHzerocon6MnJBasicType__pnHConNode__;
text: .text%__1cMCreateExNodeKmatch_edge6kMI_I_;
-text: .text%__1cTconvI2L_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cIGraphKitNuncommon_trap6MipnHciKlass_pkci_v_;
-text: .text%__1cILoadNodeEmake6FpnENode_22pknHTypePtr_pknEType_nJBasicType__p0_;
-text: .text%__1cIGraphKitJmake_load6MpnENode_2pknEType_nJBasicType_i_2_;
-text: .text%__1cTconvI2L_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cTno_rax_rbx_RegPOperJnum_edges6kM_I_;
text: .text%__1cLPCTableNodeLbottom_type6kM_pknEType__;
text: .text%__1cLOptoRuntimeSuncommon_trap_Type6F_pknITypeFunc__;
text: .text%__1cIHaltNode2t6MpnENode_2_v_;
text: .text%__1cNSafePointNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cNaddI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cGPcDesc2t6Mii_v_;
-text: .text%__1cHnmethodKcopy_pc_at6MipnGPcDesc__v_;
text: .text%__1cKciTypeFlowLStateVectorJcopy_into6kMp1_v_;
text: .text%__1cXmembar_release_lockNodeMideal_Opcode6kM_i_;
-text: .text%__1cOcompL_rRegNodePoper_input_base6kM_I_;
text: .text%__1cMoutputStreamPupdate_position6MpkcL_v_;
text: .text%__1cMstringStreamFwrite6MpkcL_v_;
text: .text%__1cKciTypeFlowQadd_to_work_list6Mpn0AFBlock__v_;
@@ -1741,87 +1105,57 @@ text: .text%__1cKciTypeFlowOwork_list_next6M_pn0AFBlock__;
text: .text%__1cIPipelineXfunctional_unit_latency6kMIpk0_I_;
text: .text%__1cMPhaseIterGVNJtransform6MpnENode__2_;
text: .text%__1cQSystemDictionarybCfind_instance_or_array_klass6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
-text: .text%__1cSCompareAndSwapNodeGis_CFG6kM_i_;
-text: .text%__1cNGrowableArray4CpnOMethodLivenessKBasicBlock__Icontains6kMrk2_i_;
-text: .text%__1cKciTypeFlowFBlock2t6Mp0pn0AFRange_pn0AGJsrSet__v_;
text: .text%__1cNGrowableArray4CpnKciTypeFlowJJsrRecord__2t6MpnFArena_iirk2_v_;
-text: .text%__1cKstoreCNodeJnum_opnds6kM_I_;
text: .text%__1cNmodI_rRegNodeErule6kM_I_;
-text: .text%__1cKInlineTreeWfind_subtree_from_root6Fp0pnIJVMState_pnIciMethod_i_1_;
text: .text%__1cNGrowableArray4CpnPciInstanceKlass__2t6MpnFArena_iirk1_v_;
text: .text%__1cKciTypeFlowFBlockScompute_exceptions6M_v_;
text: .text%__1cYciExceptionHandlerStreamFcount6M_i_;
text: .text%__1cINodeHashJhash_find6MpknENode__p1_;
-text: .text%__1cFParsePdo_field_access6Mii_v_;
text: .text%__1cPThreadLocalNodeLbottom_type6kM_pknEType__;
-text: .text%__1cOMethodLivenessNmake_block_at6Mipn0AKBasicBlock__2_;
-text: .text%__1cKstorePNodeHtwo_adr6kM_I_;
text: .text%__1cKciTypeFlowPflow_successors6MpnNGrowableArray4Cpn0AFBlock___pn0ALStateVector__v_;
-text: .text%__1cGciTypeMis_classless6kM_i_;
text: .text%__1cRsalI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cJloadFNodeErule6kM_I_;
-text: .text%__1cKBranchDataNis_BranchData6M_i_;
-text: .text%__1cIJumpDataLis_JumpData6M_i_;
text: .text%__1cSMemBarCPUOrderNodeGOpcode6kM_i_;
text: .text%__1cLklassVtableNput_method_at6MpnNmethodOopDesc_i_v_;
text: .text%__1cHi2sNodeMideal_Opcode6kM_i_;
text: .text%__1cKstoreCNodeMideal_Opcode6kM_i_;
text: .text%__1cRshrI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cNloadConI0NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNloadKlassNodeJnum_opnds6kM_I_;
text: .text%__1cHCompileKalias_type6MpnHciField__pn0AJAliasType__;
text: .text%__1cLStringTableGintern6FnGHandle_pHipnGThread__pnHoopDesc__;
text: .text%__1cLStringTableLhash_string6FpHi_i_;
-text: .text%__1cMCreateExNodeGpinned6kM_i_;
-text: .text%__1cFciEnvWget_klass_by_name_impl6MpnHciKlass_pnIciSymbol_i_2_;
text: .text%__1cNloadKlassNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRScavengeRootsTaskEname6M_pc_;
text: .text%__1cRScavengeRootsTaskFdo_it6MpnNGCTaskManager_I_v_;
-text: .text%__1cNtestP_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cKstoreINodeHtwo_adr6kM_I_;
text: .text%__1cSInterpreterRuntimeOresolve_invoke6FpnKJavaThread_nJBytecodesECode__v_;
text: .text%__1cPCountedLoopNodeGOpcode6kM_i_;
-text: .text%__1cHTypeIntEmake6Fii_pk0_;
-text: .text%__1cRcmpFastUnlockNodeHtwo_adr6kM_I_;
text: .text%__1cJloadSNodeMideal_Opcode6kM_i_;
-text: .text%__1cPDictionaryEntrybAcontains_protection_domain6kMpnHoopDesc__i_;
text: .text%__1cIregFOperEtype6kM_pknEType__;
text: .text%__1cLLShiftLNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%JVM_GetCPMethodNameUTF;
-text: .text%__1cMLinkResolverbNlinktime_resolve_virtual_method_or_null6FnLKlassHandle_nMsymbolHandle_21i_nMmethodHandle__;
-text: .text%__1cNsubI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cLTypeInstPtrFxdual6kM_pknEType__;
-text: .text%__1cNsubI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cIGraphKitOreplace_in_map6MpnENode_2_v_;
text: .text%__1cMPhaseChaitinLclone_projs6MpnFBlock_IpnENode_4rI_i_;
text: .text%__1cTconstantPoolOopDescbCverify_constant_pool_resolve6FnSconstantPoolHandle_nLKlassHandle_pnGThread__v_;
-text: .text%__1cLcastP2LNodeJnum_opnds6kM_I_;
text: .text%__1cOMethodLivenessNwork_list_add6Mpn0AKBasicBlock__v_;
text: .text%__1cFParseFBlockNlocal_type_at6kMi_pknEType__;
text: .text%__1cWConstantPoolCacheEntryKset_method6MnJBytecodesECode_nMmethodHandle_i_v_;
text: .text%__1cHTypeIntFxdual6kM_pknEType__;
text: .text%__1cEUTF8Hstrrchr6FpWiW_1_;
text: .text%__1cQConstantIntValueIwrite_on6MpnUDebugInfoWriteStream__v_;
-text: .text%__1cQSystemDictionaryPresolve_or_fail6FnMsymbolHandle_nGHandle_2ipnGThread__pnMklassOopDesc__;
text: .text%__1cNLoadKlassNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cHCompileZintrinsic_insertion_index6MpnIciMethod_i_i_;
-text: .text%__1cIciObjectSis_obj_array_klass6M_i_;
text: .text%__1cJVectorSetFClear6M_v_;
text: .text%__1cMMergeMemNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKMemoryPoolHoops_do6MpnKOopClosure__v_;
text: .text%__1cICodeHeapSallocated_capacity6kM_L_;
-text: .text%__1cICodeBlobRis_at_poll_return6MpC_i_;
text: .text%__1cIMachOperEtype6kM_pknEType__;
text: .text%__1cLjmpConUNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cNCallGenerator2t6MpnIciMethod__v_;
-text: .text%__1cSHighResTimeSamplerLtake_sample6M_x_;
-text: .text%__1cRis_error_reported6F_i_;
text: .text%__1cLStatSamplerLsample_data6FpnMPerfDataList__v_;
text: .text%__1cPStatSamplerTaskEtask6M_v_;
text: .text%__1cMPeriodicTaskMtime_to_wait6F_L_;
text: .text%__1cMPeriodicTaskOreal_time_tick6FL_v_;
-text: .text%__1cNWatcherThreadRis_Watcher_thread6kM_i_;
text: .text%__1cLStatSamplerOcollect_sample6F_v_;
text: .text%__1cJloadBNodePoper_input_base6kM_I_;
text: .text%__1cMVM_OperationPevaluation_mode6kM_n0AEMode__;
@@ -1829,98 +1163,62 @@ text: .text%__1cIGraphKit2t6M_v_;
text: .text%__1cOemit_d64_reloc6FrnKCodeBuffer_lnJrelocInfoJrelocType_i_v_;
text: .text%__1cNinstanceKlassKlink_class6MpnGThread__v_;
text: .text%__1cIGraphKitNset_map_clone6MpnNSafePointNode__v_;
-text: .text%__1cRRawBytecodeStream2t6MnMmethodHandle__v_;
text: .text%__1cENodeHget_ptr6kM_l_;
text: .text%__1cFStateM_sub_Op_ConP6MpknENode__v_;
text: .text%__1cJloadPNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cKI2CAdapterOis_i2c_adapter6kM_i_;
text: .text%__1cOcompU_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cNinstanceKlassPinitialize_impl6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cQciBytecodeStreamWget_field_holder_index6M_i_;
text: .text%__1cQciBytecodeStreamZget_declared_field_holder6M_pnPciInstanceKlass__;
text: .text%__1cRinterpretedVFrameGmethod6kM_pnNmethodOopDesc__;
-text: .text%__1cMorI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
-text: .text%__1cFParseRensure_memory_phi6Mii_pnHPhiNode__;
text: .text%__1cNdecI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cJLoadINodeJideal_reg6kM_I_;
-text: .text%__1cKRelocationWfix_relocation_at_move6Ml_v_;
text: .text%__1cPindOffset32OperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cHAddNodePadd_of_identity6kMpknEType_3_3_;
text: .text%__1cMFastLockNodeGOpcode6kM_i_;
-text: .text%__1cScompU_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cHCompilebAallow_range_check_smearing6kM_i_;
text: .text%__1cLBuildCutout2T6M_v_;
text: .text%__1cLBuildCutout2t6MpnIGraphKit_pnENode_ff_v_;
text: .text%__1cTconstantPoolOopDescOstring_at_impl6FnSconstantPoolHandle_ipnGThread__pnHoopDesc__;
-text: .text%__1cQjava_lang_StringQbasic_create_oop6FpnQtypeArrayOopDesc_ipnGThread__pnHoopDesc__;
text: .text%__1cICodeHeapIcapacity6kM_L_;
text: .text%__1cKMemoryPoolImax_size6kM_L_;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_L_;
-text: .text%__1cMPhaseChaitinTsplit_Rematerialize6MpnENode_pnFBlock_IrInNGrowableArray4CI__ipIp2i_2_;
text: .text%__1cJcmpOpOperFccode6kM_i_;
-text: .text%__1cKjmpDirNodeTmay_be_short_branch6kM_i_;
-text: .text%__1cKjmpDirNodeOis_pc_relative6kM_i_;
text: .text%__1cPClassFileParserXverify_legal_field_name6MnMsymbolHandle_pnGThread__v_;
text: .text%__1cPClassFileParserbCverify_legal_field_signature6MnMsymbolHandle_1pnGThread__v_;
text: .text%__1cEUTF8Enext6FpkcpH_pc_;
text: .text%__1cOcompL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cbAPSEvacuateFollowersClosureHdo_void6M_v_;
-text: .text%__1cFParseKdo_get_xxx6MpknHTypePtr_pnENode_pnHciField_i_v_;
-text: .text%__1cTInlineCallGeneratorJis_inline6kM_i_;
text: .text%__1cHMulNodeEhash6kM_I_;
text: .text%__1cGRFrame2t6MnFframe_pnKJavaThread_p0_v_;
-text: .text%__1cTconvI2L_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cOGenerateOopMapLbb_mark_fct6Fp0ipi_v_;
text: .text%__1cScompU_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cNFingerprinterJdo_object6Mii_v_;
-text: .text%__1cMloadConFNodePoper_input_base6kM_I_;
-text: .text%__1cOGenerateOopMapTmerge_state_vectors6MpnNCellTypeState_2_i_;
-text: .text%__1cMloadConFNodeHtwo_adr6kM_I_;
-text: .text%__1cICallNodeSis_CallDynamicJava6kM_pknTCallDynamicJavaNode__;
-text: .text%__1cRcmpFastUnlockNodeJnum_opnds6kM_I_;
text: .text%__1cEUTF8Sconvert_to_unicode6FpkcpHi_v_;
-text: .text%__1cUParallelScavengeHeapMmem_allocate6MLii_pnIHeapWord__;
text: .text%__1cNinstanceKlassbBallocate_permanent_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cKjmpConNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOMethodLivenessKBasicBlockQcompute_gen_kill6MpnIciMethod__v_;
text: .text%__1cOMethodLivenessKBasicBlock2t6Mp0ii_v_;
text: .text%__1cMloadConFNodeErule6kM_I_;
-text: .text%__1cLcastP2LNodeHtwo_adr6kM_I_;
text: .text%__1cIMachOperIconstant6kM_l_;
-text: .text%__1cJloadSNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cPcheckCastPPNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMTypeKlassPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cUEdenMutableSpacePoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cYSurvivorMutableSpacePoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cYSurvivorMutableSpacePoolImax_size6kM_L_;
text: .text%__1cUEdenMutableSpacePoolNused_in_bytes6M_L_;
text: .text%__1cUEdenMutableSpacePoolImax_size6kM_L_;
text: .text%__1cYSurvivorMutableSpacePoolNused_in_bytes6M_L_;
-text: .text%__1cKjmpConNodeTmay_be_short_branch6kM_i_;
-text: .text%__1cKjmpConNodeOis_pc_relative6kM_i_;
text: .text%__1cHConNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKCodeBufferKend_a_stub6M_v_;
text: .text%__1cTemit_java_to_interp6FrnKCodeBuffer__v_;
-text: .text%__1cKCodeBufferMstart_a_stub6M_v_;
-text: .text%__1cFParseUprofile_taken_branch6Mi_v_;
text: .text%__1cKciTypeFlowGJsrSetNapply_control6Mp0pnQciBytecodeStream_pn0ALStateVector__v_;
-text: .text%__1cKReturnNodeGis_CFG6kM_i_;
text: .text%__1cRSignatureIteratorSskip_optional_size6M_v_;
text: .text%__1cRaddI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHTypeIntFwiden6kMpknEType__3_;
text: .text%__1cTCompareAndSwapLNodeGOpcode6kM_i_;
-text: .text%__1cNmethodOopDescbHhas_unloaded_classes_in_signature6FnMmethodHandle_pnGThread__i_;
-text: .text%__1cIciObjectRis_instance_klass6M_i_;
text: .text%__1cOGenerateOopMapRsigchar_to_effect6McipnNCellTypeState__2_;
text: .text%__1cOGenerateOopMapIdo_field6Miiii_v_;
text: .text%__1cPloadConUL32NodeMideal_Opcode6kM_i_;
text: .text%__1cEUTF8Ounicode_length6Fpkci_i_;
text: .text%__1cIciMethodRget_flow_analysis6M_pnKciTypeFlow__;
-text: .text%__1cICodeBlobLoop_addr_at6kMi_ppnHoopDesc__;
-text: .text%__1cNloadRangeNodeHtwo_adr6kM_I_;
-text: .text%__1cJloadLNodeJnum_opnds6kM_I_;
text: .text%__1cSmembar_acquireNodeMideal_Opcode6kM_i_;
text: .text%__1cSObjectSynchronizerXidentity_hash_value_for6FnGHandle__l_;
text: .text%__1cHoopDescSslow_identity_hash6M_l_;
@@ -1928,38 +1226,23 @@ text: .text%__1cKMemBarNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cOGenerateOopMapLmerge_state6Fp0ipi_v_;
text: .text%__1cIMachNodeOpipeline_class6F_pknIPipeline__;
text: .text%__1cIMachNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cJloadCNodeErule6kM_I_;
-text: .text%__1cKOSRAdapterIis_alive6kM_i_;
-text: .text%__1cQjava_lang_StringMbasic_create6FpnQtypeArrayOopDesc_ipnGThread__nGHandle__;
text: .text%__1cRMachNullCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cGThreadXclear_pending_exception6M_v_;
text: .text%__1cXindIndexScaleOffsetOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cOcompL_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cTconstantPoolOopDescbBbasic_type_for_signature_at6Mi_nJBasicType__;
text: .text%__1cETypeRget_typeflow_type6FpnGciType__pk0_;
text: .text%__1cLStringTableGintern6FpnNsymbolOopDesc_pnGThread__pnHoopDesc__;
text: .text%__1cNsymbolOopDescKas_unicode6kMri_pH_;
-text: .text%__1cKciTypeFlowLStateVectorJdo_invoke6MpnQciBytecodeStream_i_v_;
text: .text%__1cKstorePNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKReturnNodeKmatch_edge6kMI_I_;
-text: .text%__1cKRegionNodeJideal_reg6kM_I_;
-text: .text%__1cJloadINodeHtwo_adr6kM_I_;
-text: .text%__1cQmark_inner_loops6FpnIPhaseCFG_pnFBlock__v_: block.o;
text: .text%__1cIHaltNodeJideal_reg6kM_I_;
text: .text%__1cFStateM_sub_Op_Halt6MpknENode__v_;
text: .text%__1cWShouldNotReachHereNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKReturnNodeGOpcode6kM_i_;
text: .text%__1cJTypeTupleKmake_range6FpnLciSignature__pk0_;
text: .text%__1cKStoreLNodeGOpcode6kM_i_;
-text: .text%__1cPCountedLoopNodeOis_CountedLoop6M_p0_;
text: .text%__1cJTypeTupleLmake_domain6FpnPciInstanceKlass_pnLciSignature__pk0_;
-text: .text%__1cPClassFileParserWparse_field_attributes6MnSconstantPoolHandle_iHpHpi2pnPtypeArrayHandle_pnGThread__v_;
-text: .text%__1cPClassFileParserbCverify_legal_field_modifiers6MiipnGThread__v_;
text: .text%__1cMindirectOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cMindirectOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cMLinkResolverUresolve_virtual_call6FrnICallInfo_nGHandle_nLKlassHandle_4nMsymbolHandle_54iipnGThread__v_;
-text: .text%__1cMLinkResolverbEruntime_resolve_virtual_method6FrnICallInfo_nMmethodHandle_nLKlassHandle_nGHandle_4ipnGThread__v_;
-text: .text%__1cFKlassXcan_be_statically_bound6FpnNmethodOopDesc__i_;
text: .text%__1cLProfileDataOtranslate_from6Mp0_v_;
text: .text%__1cKstorePNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cKstoreINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -1967,59 +1250,36 @@ text: .text%__1cSPSKeepAliveClosureGdo_oop6MppnHoopDesc__v_;
text: .text%__1cNloadConI0NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvI2L_reg_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMWarmCallInfoKalways_hot6F_p0_;
-text: .text%__1cMWarmCallInfoGis_hot6kM_i_;
text: .text%__1cNprefetchwNodeMideal_Opcode6kM_i_;
text: .text%__1cIAddINodeJideal_reg6kM_I_;
-text: .text%__1cNCatchProjNode2t6MpnENode_Ii_v_;
-text: .text%__1cENodeHis_Bool6M_pnIBoolNode__;
text: .text%__1cLBoxLockNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNmulL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cKciTypeFlowIcan_trap6MrnQciBytecodeStream__i_;
-text: .text%__1cQVMOperationQdDueueLqueue_empty6Mi_i_;
text: .text%__1cIProjNodeDcmp6kMrknENode__I_;
-text: .text%__1cSComputeAdapterInfoGdo_int6M_v_;
text: .text%__1cNCatchProjNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%JVM_GetCPFieldSignatureUTF;
-text: .text%__1cIGraphKitTtoo_many_recompiles6MnODeoptimizationLDeoptReason__i_;
text: .text%__1cHCompileFstart6kM_pnJStartNode__;
text: .text%__1cNmulL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cLPCTableNodeEhash6kM_I_;
text: .text%__1cIGraphKitZadd_exception_states_from6MpnIJVMState__v_;
-text: .text%__1cJStartNodeOis_block_start6kM_i_;
text: .text%__1cQComputeCallStackHdo_void6M_v_;
text: .text%__1cNaddI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIGraphKitOtoo_many_traps6MnODeoptimizationLDeoptReason__i_;
-text: .text%__1cNciCallProfileRapply_prof_factor6Mf_v_;
text: .text%__1cIciMethodTcall_profile_at_bci6Mi_nNciCallProfile__;
-text: .text%__1cHCompileOcall_generator6MpnIciMethod_ipnIJVMState_if_pnNCallGenerator__;
-text: .text%__1cHCompileOfind_intrinsic6MpnIciMethod_i_pnNCallGenerator__;
text: .text%__1cMindIndexOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cMindIndexOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%jni_GetPrimitiveArrayCritical: jni.o;
text: .text%jni_ReleasePrimitiveArrayCritical: jni.o;
-text: .text%__1cSInterpreterRuntimeDldc6FpnKJavaThread_i_v_;
-text: .text%__1cPClassFileParserbIparse_constant_pool_fieldref_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cNdecI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cFKlassOis_subclass_of6kMpnMklassOopDesc__i_;
-text: .text%__1cNGrowableArray4Cl_2t6Mii_v_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMpnNmethodOopDesc_i_pnHnmethod__;
text: .text%__1cIAddINodeIadd_ring6kMpknEType_3_3_;
-text: .text%__1cLPCTableNodeKis_PCTable6kM_pk0_;
text: .text%__1cLPCTableNodeHsize_of6kM_I_;
text: .text%__1cNincI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKJNIHandlesKmake_local6FpnGThread_pnHoopDesc__pnI_jobject__;
text: .text%__1cQciBytecodeStreamXget_method_holder_index6M_i_;
text: .text%__1cMorI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cLimmUL32OperJconstantL6kM_x_;
text: .text%__1cIGraphKitWround_double_arguments6MpnIciMethod__v_;
text: .text%__1cFParseHdo_call6M_v_;
text: .text%__1cIGraphKitTround_double_result6MpnIciMethod__v_;
-text: .text%__1cFParseZcan_not_compile_call_site6MpnIciMethod_pnPciInstanceKlass__i_;
text: .text%__1cQciBytecodeStreambAget_declared_method_holder6M_pnHciKlass__;
text: .text%__1cFParseMprofile_call6MpnENode__v_;
text: .text%__1cScompP_mem_rRegNodePoper_input_base6kM_I_;
text: .text%__1cICodeHeapLheader_size6F_L_;
-text: .text%__1cJloadBNodeJnum_opnds6kM_I_;
text: .text%__1cENodeLbottom_type6kM_pknEType__;
text: .text%__1cXindIndexScaleOffsetOperNconstant_disp6kM_i_;
text: .text%__1cSindIndexOffsetOperJnum_edges6kM_I_;
@@ -2033,11 +1293,9 @@ text: .text%__1cIBoolNodeHsize_of6kM_I_;
text: .text%__1cLLShiftINodeLbottom_type6kM_pknEType__;
text: .text%jni_DeleteLocalRef: jni.o;
text: .text%__1cJloadSNodePoper_input_base6kM_I_;
-text: .text%__1cPno_rax_RegPOperJnum_edges6kM_I_;
text: .text%__1cOcompI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%jni_SetIntField: jni.o;
text: .text%__1cMURShiftLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cMMutableSpaceFclear6M_v_;
text: .text%__1cNtestI_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjava_lang_StringbBcreate_tenured_from_unicode6FpHipnGThread__nGHandle__;
text: .text%__1cKoopFactoryXnew_permanent_charArray6FipnGThread__pnQtypeArrayOopDesc__;
@@ -2048,46 +1306,26 @@ text: .text%__1cHMulNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cVExceptionHandlerTableJadd_entry6MnRHandlerTableEntry__v_;
text: .text%__1cPsalI_rReg_1NodeMideal_Opcode6kM_i_;
text: .text%__1cRaddP_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMLinkResolverbFlinktime_resolve_special_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
-text: .text%__1cMLinkResolverUresolve_special_call6FrnICallInfo_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
-text: .text%__1cMLinkResolverbEruntime_resolve_special_method6FrnICallInfo_nMmethodHandle_nLKlassHandle_4ipnGThread__v_;
text: .text%__1cQComputeCallStackJdo_object6Mii_v_;
-text: .text%__1cIGraphKitNcast_not_null6MpnENode__2_;
text: .text%__1cTconvL2I_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cKPSYoungGenNused_in_bytes6kM_L_;
-text: .text%__1cOCompilerOracleOshould_exclude6FnMmethodHandle__i_;
text: .text%__1cOGenerateOopMapHset_var6MinNCellTypeState__v_;
-text: .text%__1cPcheckCastPPNodeJnum_opnds6kM_I_;
-text: .text%__1cLLShiftLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cGIfNodeHsize_of6kM_I_;
text: .text%__1cPciInstanceKlassFsuper6M_p0_;
text: .text%__1cOcompL_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cLLShiftINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cScompI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMMergeMemNodeJideal_reg6kM_I_;
-text: .text%__1cNandL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cIciMethodWwas_executed_more_than6Mi_i_;
-text: .text%__1cSReferenceProcessorbAprocess_discovered_reflist6MppnHoopDesc_pnPReferencePolicy_i_v_;
-text: .text%__1cSReferenceProcessorOprocess_phase36MppnHoopDesc_ipnRBoolObjectClosure_pnKOopClosure_pnLVoidClosure__v_;
-text: .text%__1cSReferenceProcessorOprocess_phase26MppnHoopDesc_pnRBoolObjectClosure_pnKOopClosure__v_;
-text: .text%__1cSReferenceProcessorbAenqueue_discovered_reflist6MpnHoopDesc_p2_v_;
text: .text%__1cTleaPIdxScaleOffNodeMideal_Opcode6kM_i_;
text: .text%__1cTleaPIdxScaleOffNodePoper_input_base6kM_I_;
-text: .text%__1cFLabelJadd_patch6Mi_v_;
text: .text%__1cKMemBarNodeEhash6kM_I_;
text: .text%__1cOcompP_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNloadConL0NodePoper_input_base6kM_I_;
text: .text%__1cNsubI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cJMarkSweepSMarkAndPushClosureLdo_nmethods6kM_ki_;
text: .text%__1cIXorINodeGOpcode6kM_i_;
-text: .text%__1cTStackWalkCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%__1cMoutputStreamDput6Mc_v_;
text: .text%__1cPindOffset32OperNbase_position6kM_i_;
text: .text%__1cPindOffset32OperNconstant_disp6kM_i_;
text: .text%__1cOcompU_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNloadConL0NodeHtwo_adr6kM_I_;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
-text: .text%__1cFframeNis_glue_frame6kM_i_;
text: .text%__1cLRShiftINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cZPhaseConservativeCoalesceKupdate_ifg6MIIpnIIndexSet_2_v_;
text: .text%__1cZPhaseConservativeCoalesceMunion_helper6MpnENode_2II222pnFBlock_I_v_;
@@ -2095,37 +1333,24 @@ text: .text%__1cIIndexSetEswap6Mp0_v_;
text: .text%__1cOPhaseIdealLoopIsink_use6MpnENode_2_v_;
text: .text%__1cRshrL_rReg_immNodeErule6kM_I_;
text: .text%__1cKInlineTreeMok_to_inline6MpnIciMethod_pnIJVMState_rnNciCallProfile_pnMWarmCallInfo__8_;
-text: .text%__1cTpass_initial_checks6FpnIciMethod_i1_i_;
-text: .text%__1cKInlineTreeMshouldInline6kMpnIciMethod_irnNciCallProfile_pnMWarmCallInfo__pkc_;
-text: .text%__1cOCompilerOracleNshould_inline6FnMmethodHandle__i_;
-text: .text%__1cKInlineTreeNtry_to_inline6MpnIciMethod_irnNciCallProfile_pnMWarmCallInfo__pkc_;
-text: .text%__1cIciMethodbAinterpreter_throwout_count6kM_i_;
-text: .text%__1cIciMethodNshould_inline6M_i_;
-text: .text%__1cIciMethodOshould_exclude6M_i_;
text: .text%__1cScompU_rReg_immNodeErule6kM_I_;
text: .text%__1cKjmpDirNodeJlabel_set6MrnFLabel_I_v_;
-text: .text%__1cKjmpDirNodeJis_Branch6kM_I_;
text: .text%__1cKjmpDirNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMindirectOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cILoadNodeDcmp6kMrknENode__I_;
text: .text%__1cLTypeInstPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
text: .text%__1cIGraphKitHjava_bc6kM_nJBytecodesECode__;
-text: .text%__1cFLabelSpatch_instructions6MpnRAbstractAssembler__v_;
-text: .text%__1cRAbstractAssemblerHbind_to6MrnFLabel_i_v_;
text: .text%__1cRAbstractAssemblerEbind6MrnFLabel__v_;
text: .text%__1cNloadConL0NodeErule6kM_I_;
text: .text%__1cJStoreNodeSIdeal_masked_input6MpnIPhaseGVN_I_pnENode__;
text: .text%__1cIGraphKitNbuiltin_throw6MnODeoptimizationLDeoptReason_pnENode__v_;
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__;
-text: .text%__1cJrRegIOperFclone6kM_pnIMachOper__;
text: .text%__1cMindIndexOperFscale6kM_i_;
text: .text%__1cScompP_mem_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cFKlassPoop_is_instance6kM_i_;
text: .text%__1cHciFieldPinitialize_from6MpnPfieldDescriptor__v_;
text: .text%__1cRandI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cMMachProjNodeHsize_of6kM_I_;
text: .text%__1cJStoreNodeZIdeal_sign_extended_input6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cScompP_mem_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cTconvF2D_reg_memNodeErule6kM_I_;
text: .text%__1cPindOffset32OperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cFStateM_sub_Op_CmpP6MpknENode__v_;
@@ -2134,38 +1359,24 @@ text: .text%__1cMloadConLNodeMideal_Opcode6kM_i_;
text: .text%__1cSCompiledStaticCallJfind_stub6M_pC_;
text: .text%__1cIciSymbolEmake6Fpkc_p0_;
text: .text%__1cIciSymbolJmake_impl6Fpkc_p0_;
-text: .text%__1cScompU_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cKimmL32OperIconstant6kM_l_;
-text: .text%__1cHi2sNodePoper_input_base6kM_I_;
text: .text%__1cKimmL32OperJnum_edges6kM_I_;
-text: .text%__1cMMonitorValue2t6MpnKScopeValue_nILocation__v_;
text: .text%__1cMMonitorValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cLBoxLockNodeKstack_slot6FpnENode__i_;
-text: .text%__1cLBoxLockNodeKis_BoxLock6kM_pk0_;
text: .text%__1cIBoolNodeDcmp6kMrknENode__I_;
text: .text%__1cNSignatureInfoIdo_array6Mii_v_;
-text: .text%__1cKDataLayoutPneeds_array_len6FC_i_;
text: .text%__1cKDataLayoutKinitialize6MCHi_v_;
text: .text%__1cJloadLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFframebHnext_monitor_in_interpreter_frame6kMpnPBasicObjectLock__2_;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_;
-text: .text%__1cFParseRbranch_prediction6Mrf_f_;
text: .text%__1cPshrI_rReg_1NodeMideal_Opcode6kM_i_;
-text: .text%__1cHciKlassNis_subtype_of6Mp0_i_;
text: .text%__1cOcompL_rRegNodeErule6kM_I_;
text: .text%__1cNGrowableArray4Cpv_Praw_at_put_grow6Mirk03_v_;
text: .text%__1cNGrowableArray4Cl_Praw_at_put_grow6Mirkl2_v_;
text: .text%__1cISubINodeLbottom_type6kM_pknEType__;
-text: .text%__1cIGraphKitZset_all_rewritable_memory6MpnENode__v_;
-text: .text%__1cIGraphKitTset_all_memory_call6MpnENode__v_;
text: .text%__1cMtlsLoadPNodeLbottom_type6kM_pknEType__;
text: .text%__1cJAssemblerEmovq6MnHAddress_pnMRegisterImpl__v_;
-text: .text%__1cRsalI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cNloadRangeNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cICodeBlobPis_runtime_stub6kM_i_;
text: .text%__1cGRFrameMset_distance6Mi_v_;
-text: .text%__1cICodeBlobOis_c2i_adapter6kM_i_;
-text: .text%__1cFframeTis_first_java_frame6kM_i_;
text: .text%__1cFframeLreal_sender6kMpnLRegisterMap__0_;
text: .text%__1cGRFrameGcaller6M_p0_;
text: .text%__1cTStackWalkCompPolicyIsenderOf6MpnGRFrame_pnNGrowableArray4C2___2_;
@@ -2174,51 +1385,31 @@ text: .text%__1cKstoreLNodePoper_input_base6kM_I_;
text: .text%__1cTconstantPoolOopDescMklass_at_put6MipnMklassOopDesc__v_;
text: .text%__1cNFingerprinterGdo_int6M_v_;
text: .text%__1cNSafepointBlobbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_;
-text: .text%__1cRaddI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cRshrL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHPhiNodeEmake6FpnENode_2_p0_;
-text: .text%__1cScompI_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cENodeIis_CMove6M_pnJCMoveNode__;
text: .text%__1cWstatic_call_RelocationLstatic_stub6M_pC_;
-text: .text%__1cLRethrowNodeGis_CFG6kM_i_;
text: .text%__1cIciObjectFklass6M_pnHciKlass__;
text: .text%__1cNloadConP0NodeMideal_Opcode6kM_i_;
text: .text%__1cOPhaseIdealLoopOsplit_thru_phi6MpnENode_2i_2_;
-text: .text%__1cNGCTaskManagerRset_resource_flag6MIi_v_;
-text: .text%__1cRshrI_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cUmembar_cpu_orderNodeMideal_Opcode6kM_i_;
text: .text%__1cLklassVtableIindex_of6kMpnNmethodOopDesc_i_i_;
text: .text%__1cKEntryPointFentry6kMnITosState__pC_;
-text: .text%__1cJloadCNodeMideal_Opcode6kM_i_;
text: .text%__1cKJavaThreadJframes_do6MpFpnFframe_pknLRegisterMap__v_v_;
text: .text%__1cNMemoryManagerHoops_do6MpnKOopClosure__v_;
text: .text%__1cRInvocationCounterJset_carry6M_v_;
-text: .text%__1cKTypeAryPtrEmake6FnHTypePtrDPTR_pknHTypeAry_pnHciKlass_ii_pk0_;
text: .text%__1cFStateM_sub_Op_RegL6MpknENode__v_;
text: .text%__1cNdecI_rRegNodeErule6kM_I_;
-text: .text%__1cKjmpConNodeJis_Branch6kM_I_;
text: .text%__1cKjmpConNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcmpFastLockNodeMideal_Opcode6kM_i_;
text: .text%__1cKjmpConNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cJttyLockerbCbreak_tty_lock_for_safepoint6Fl_v_;
-text: .text%__1cNCallGeneratorJis_inline6kM_i_;
text: .text%__1cUSafepointSynchronizeFblock6FpnKJavaThread__v_;
text: .text%__1cCosRcurrent_thread_id6F_l_;
text: .text%__1cKciTypeFlowLStateVectorMdo_getstatic6MpnQciBytecodeStream__v_;
text: .text%__1cNSignatureInfoHdo_bool6M_v_;
text: .text%__1cLLShiftLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cKstoreLNodeMideal_Opcode6kM_i_;
-text: .text%__1cNloadKlassNodeHtwo_adr6kM_I_;
-text: .text%__1cFParseYprofile_not_taken_branch6M_v_;
text: .text%__1cHPhiNodeMslice_memory6kMpknHTypePtr__p0_;
-text: .text%__1cOcompL_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cLRuntimeStubMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
-text: .text%__1cOcompL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cPcmpFastLockNodePoper_input_base6kM_I_;
-text: .text%__1cNCallGeneratorKis_virtual6kM_i_;
-text: .text%__1cKInlineTreePshouldNotInline6kMpnIciMethod_pnMWarmCallInfo__pkc_;
-text: .text%__1cLcastP2LNodeErule6kM_I_;
text: .text%__1cNinstanceKlassKjava_super6kM_pnMklassOopDesc__;
text: .text%__1cNPhaseRegAllocKoffset2reg6kMi_i_;
text: .text%__1cQjmpCon_shortNodeMideal_Opcode6kM_i_;
@@ -2226,88 +1417,53 @@ text: .text%__1cQjmpCon_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cRInterpretedRFrame2t6MnFframe_pnKJavaThread_pnGRFrame__v_;
text: .text%__1cTconvI2L_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJloadINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cENodeRlatency_from_uses6kMrnLBlock_Array_rnNGrowableArray4CI___i_;
text: .text%__1cNGrowableArray4CI_Praw_at_put_grow6MirkI2_v_;
-text: .text%__1cFParseFdo_if6MpnENode_2nIBoolTestEmask_2_v_;
text: .text%__1cXmembar_acquire_lockNodeMideal_Opcode6kM_i_;
text: .text%__1cKklassKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cXindIndexScaleOffsetOperOindex_position6kM_i_;
text: .text%__1cXindIndexScaleOffsetOperNbase_position6kM_i_;
-text: .text%__1cPsalI_rReg_1NodePoper_input_base6kM_I_;
text: .text%__1cIGraphKitJpush_node6MnJBasicType_pnENode__v_;
-text: .text%__1cISubINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cSconstMethodOopDescbEchecked_exceptions_length_addr6kM_pH_;
text: .text%__1cPThreadLocalNodeGOpcode6kM_i_;
text: .text%__1cRsubI_rReg_memNodePoper_input_base6kM_I_;
-text: .text%__1cJloadCNodePoper_input_base6kM_I_;
text: .text%__1cSThreadLocalStoragePget_thread_slow6F_pnGThread__;
text: .text%__1cCosXthread_local_storage_at6Fi_pv_;
-text: .text%__1cLRuntimeStubYcaller_must_gc_arguments6kMpnKJavaThread__i_;
text: .text%__1cIAddPNodeJideal_reg6kM_I_;
-text: .text%__1cTleaPIdxScaleOffNodeJnum_opnds6kM_I_;
text: .text%__1cRaddI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cFParseNthrow_to_exit6MpnNSafePointNode__v_;
text: .text%__1cQCallLeafNoFPNodeGOpcode6kM_i_;
text: .text%__1cKTypeRawPtrHget_con6kM_l_;
text: .text%__1cOClearArrayNodeGOpcode6kM_i_;
-text: .text%__1cOoop_RelocationHoops_do6MpFppnHoopDesc__v_v_;
-text: .text%__1cIciMethodbHhas_unloaded_classes_in_signature6M_i_;
-text: .text%__1cScompP_mem_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cFStateM_sub_Op_CmpI6MpknENode__v_;
-text: .text%__1cNincI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cJimmP0OperEtype6kM_pknEType__;
text: .text%__1cNloadConP0NodeLbottom_type6kM_pknEType__;
text: .text%__1cPloadConUL32NodeLbottom_type6kM_pknEType__;
text: .text%__1cNloadConI0NodeHsize_of6kM_I_;
-text: .text%__1cRaddI_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cPshrI_rReg_1NodePoper_input_base6kM_I_;
text: .text%JVM_handle_solaris_signal;
text: .text%signalHandler;
text: .text%__1cQJNI_FastGetFieldQfind_slowcase_pc6FpC_1_;
-text: .text%__1cMLinkResolverbElinktime_resolve_static_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
-text: .text%__1cRresolve_and_patch6FppnHoopDesc__v_;
text: .text%__1cFStateN_sub_Op_LoadP6MpknENode__v_;
text: .text%__1cISubINodeDsub6kMpknEType_3_3_;
text: .text%__1cPClassFileParserbDverify_legal_method_signature6MnMsymbolHandle_1pnGThread__i_;
text: .text%__1cMLinkResolverVresolve_invokevirtual6FrnICallInfo_nGHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cRInterpretedRFrameOis_interpreted6kM_i_;
-text: .text%__1cGRFrameLis_compiled6kM_i_;
text: .text%__1cUPSGenerationCountersKupdate_all6M_v_;
text: .text%__1cTStackWalkCompPolicyMshouldInline6FnMmethodHandle_fi_pkc_;
text: .text%__1cFArenaRdestruct_contents6M_v_;
-text: .text%__1cIGraphKitPstore_to_memory6MpnENode_22nJBasicType_i_2_;
-text: .text%__1cJStoreNodeEmake6FpnENode_22pknHTypePtr_2nJBasicType__p0_;
text: .text%__1cXPhaseAggressiveCoalesceYinsert_copy_with_overlap6MpnFBlock_pnENode_II_v_;
text: .text%__1cULinearLeastSquareFitGupdate6Mdd_v_;
-text: .text%__1cKciTypeFlowGJsrSetSis_compatible_with6Mp1_i_;
text: .text%__1cENodeIadd_prec6Mp0_v_;
-text: .text%__1cKOSRAdapterOis_osr_adapter6kM_i_;
text: .text%__1cIMulINodeGOpcode6kM_i_;
text: .text%__1cLciSignature2t6MpnHciKlass_pnIciSymbol__v_;
text: .text%__1cNGrowableArray4CpnGciType__2t6MpnFArena_iirk1_v_;
-text: .text%__1cKTypeAryPtrFempty6kM_i_;
-text: .text%__1cHTypeAryFempty6kM_i_;
-text: .text%__1cJloadCNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cIciMethod2t6MnMmethodHandle__v_;
-text: .text%__1cRandI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cJAssemblerDjcc6Mn0AJCondition_rnFLabel_nJrelocInfoJrelocType__v_;
-text: .text%__1cCosRelapsed_frequency6F_x_;
-text: .text%__1cNinstanceKlassVis_same_class_package6FpnHoopDesc_pnNsymbolOopDesc_24_i_;
text: .text%__1cMelapsedTimerHseconds6kM_d_;
text: .text%__1cOJNIHandleBlockOallocate_block6FpnGThread__p0_;
-text: .text%__1cJAssemblerDnop6M_v_;
-text: .text%__1cDCHANprocess_class6FnLKlassHandle_pnNGrowableArray4n0B___pnNGrowableArray4nMmethodHandle___nMsymbolHandle_6_v_;
-text: .text%__1cEUTF8Fequal6FpWi1i_i_;
-text: .text%__1cKstoreLNodeJnum_opnds6kM_I_;
-text: .text%__1cIjniIdMapHoops_do6MpnKOopClosure__v_;
-text: .text%__1cMjniIdMapBaseHoops_do6MpnKOopClosure__v_;
text: .text%__1cJArrayDataKcell_count6M_i_;
text: .text%__1cGBitMapIset_from6M0_v_;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cKType_ArrayEgrow6MI_v_;
text: .text%JVM_Write;
text: .text%__1cDhpiFwrite6FipkvI_L_;
-text: .text%__1cMStartC2INodeGOpcode6kM_i_;
text: .text%__1cSindIndexOffsetOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cIAddLNodeLbottom_type6kM_pknEType__;
@@ -2318,33 +1474,21 @@ text: .text%__1cMtlsLoadPNodeMideal_Opcode6kM_i_;
text: .text%__1cRshrI_rReg_immNodeErule6kM_I_;
text: .text%__1cJcmpOpOperGnegate6M_v_;
text: .text%__1cHTypeAryEmake6FpknEType_pknHTypeInt__pk0_;
-text: .text%__1cFParseRoptimize_inlining6MpnIciMethod_ipnPciInstanceKlass_24irnKInlineTreeLInlineStyle_r2_v_;
-text: .text%__1cQimprove_receiver6FpnPciInstanceKlass_pknLTypeInstPtr_ri_1_;
-text: .text%__1cPcmpFastLockNodeHtwo_adr6kM_I_;
-text: .text%__1cMLinkResolverTresolve_static_call6FrnICallInfo_rnLKlassHandle_nMsymbolHandle_53iipnGThread__v_;
text: .text%__1cPCheckCastPPNodeJideal_reg6kM_I_;
-text: .text%__1cKJavaThreadUin_stack_yellow_zone6MpC_i_;
-text: .text%__1cFParseSmerge_memory_edges6MpnMMergeMemNode_ii_v_;
text: .text%__1cJAssemblerEmovq6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cUSafepointSynchronizebDhandle_polling_page_exception6FpnKJavaThread__v_;
text: .text%__1cUThreadSafepointStatebDhandle_polling_page_exception6M_v_;
text: .text%__1cLjmpConUNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNandL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cKcmpOpUOperFccode6kM_i_;
-text: .text%__1cLjmpConUNodeTmay_be_short_branch6kM_i_;
-text: .text%__1cLjmpConUNodeOis_pc_relative6kM_i_;
text: .text%__1cIPipelinePoperand_latency6kMIpk0_I_;
text: .text%__1cWCallLeafNoFPDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cQPlaceholderTableKfind_entry6MiInMsymbolHandle_nGHandle__pnNsymbolOopDesc__;
-text: .text%__1cJTimeStampSticks_since_update6kM_x_;
text: .text%__1cURethrowExceptionNodeMideal_Opcode6kM_i_;
text: .text%__1cJloadPNodeFreloc6kM_i_;
text: .text%__1cTno_rax_rbx_RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cNprefetchwNodeJnum_opnds6kM_I_;
text: .text%__1cKjmpConNodeGnegate6M_v_;
text: .text%__1cMindirectOperFscale6kM_i_;
-text: .text%__1cQSystemDictionaryVadd_loader_constraint6FnMsymbolHandle_nGHandle_2pnGThread__v_;
-text: .text%__1cVLoaderConstraintTableJadd_entry6MnMsymbolHandle_pnMklassOopDesc_nGHandle_34pnGThread__i_;
text: .text%__1cRsubI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cTOopMapForCacheEntryZfill_stackmap_for_opcodes6MpnOBytecodeStream_pnNCellTypeState_4i_v_;
text: .text%__1cQComputeCallStackGdo_int6M_v_;
@@ -2352,7 +1496,6 @@ text: .text%__1cNloadRangeNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNtestP_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNloadRangeNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPCheckCastPPNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cFParseMvisit_blocks6M_v_;
text: .text%__1cQjmpDir_shortNodeMideal_Opcode6kM_i_;
text: .text%__1cQjmpDir_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cKciTypeFlowLStateVectorLdo_getfield6MpnQciBytecodeStream__v_;
@@ -2361,40 +1504,26 @@ text: .text%__1cScompP_mem_rRegNodeErule6kM_I_;
text: .text%__1cPSignatureStreamRas_symbol_or_null6M_pnNsymbolOopDesc__;
text: .text%__1cNSafePointNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJloadSNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKMemBarNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOjmpLoopEndNodeMideal_Opcode6kM_i_;
-text: .text%__1cFBlockTimplicit_null_check6MrnLBlock_Array_rnNGrowableArray4CI__pnENode_6_v_;
text: .text%__1cKCastPPNodeQIdeal_DU_postCCP6MpnIPhaseCCP__pnENode__;
text: .text%__1cOGenerateOopMapKcopy_state6MpnNCellTypeState_2_v_;
-text: .text%__1cGThreadSis_Compiler_thread6kM_i_;
text: .text%__1cRCardTableModRefBSPdirty_MemRegion6MnJMemRegion__v_;
-text: .text%__1cJloadBNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cQVMOperationQdDueueSqueue_remove_front6Mi_pnMVM_Operation__;
text: .text%__1cOcompI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVCompressedWriteStreamEgrow6M_v_;
-text: .text%__1cNCompileBrokerYcheck_compilation_result6FnMmethodHandle_iippnHnmethod__i_;
-text: .text%__1cKReflectionVis_same_class_package6FpnMklassOopDesc_2_i_;
-text: .text%__1cNinstanceKlassVis_same_class_package6MpnMklassOopDesc__i_;
text: .text%JVM_RawMonitorEnter;
-text: .text%__1cFMutexMjvm_raw_lock6M_v_;
text: .text%JVM_RawMonitorExit;
-text: .text%__1cFMutexOjvm_raw_unlock6M_v_;
text: .text%__1cHUNICODELutf8_length6FpHi_i_;
text: .text%__1cRaddP_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cIciMethodLis_accessor6kM_i_;
text: .text%__1cPCountedLoopNodeDphi6kM_pnENode__;
text: .text%__1cLBoxLockNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cSmembar_releaseNodeMideal_Opcode6kM_i_;
-text: .text%__1cQciBytecodeStreamSget_constant_index6kM_i_;
-text: .text%__1cOGenerateOopMapOset_bbmark_bit6Mi_v_;
text: .text%__1cFParseOreturn_current6MpnENode__v_;
text: .text%__1cLConvI2LNodeJideal_reg6kM_I_;
text: .text%__1cJStartNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cMorI_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cMloadConPNodeFreloc6kM_i_;
-text: .text%__1cGThreadMis_VM_thread6kM_i_;
text: .text%__1cSPSPromotionManagerFreset6M_v_;
-text: .text%__1cNPrefetchQdDueueFclear6M_v_;
text: .text%__1cSPSPromotionManagerKflush_labs6M_v_;
text: .text%__1cFciEnvVnotice_inlined_method6MpnIciMethod__v_;
text: .text%__1cOJNIHandleBlockNrelease_block6Fp0pnGThread__v_;
@@ -2407,84 +1536,52 @@ text: .text%__1cJTypeTupleFxdual6kM_pknEType__;
text: .text%__1cOcompP_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cHi2sNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerKemit_arith6MiipnMRegisterImpl_2_v_;
-text: .text%__1cLcastP2LNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRciVirtualCallDataOtranslate_from6MpnLProfileData__v_;
text: .text%__1cXinitialize_static_field6FpnPfieldDescriptor_pnGThread__v_: classFileParser.o;
text: .text%__1cKstoreCNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cNCompileBrokerXcompilation_is_in_queue6FnMmethodHandle_i_i_;
-text: .text%__1cRsubI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cETypeCeq6kMpk0_i_;
-text: .text%__1cHMatcherPstack_alignment6F_I_;
text: .text%__1cNloadKlassNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJloadSNodeJnum_opnds6kM_I_;
text: .text%__1cJMultiNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRshrL_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cTconvI2L_reg_memNodeErule6kM_I_;
text: .text%__1cMURShiftLNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cRcmpFastUnlockNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSInterpreterRuntimebAfrequency_counter_overflow6FpnKJavaThread_pC_n0AJIcoResult__;
text: .text%__1cHSubNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%__1cLRethrowNodeGOpcode6kM_i_;
-text: .text%__1cPcmpFastLockNodeJnum_opnds6kM_I_;
-text: .text%__1cIciMethodPcan_be_compiled6M_i_;
text: .text%__1cFParseQcreate_entry_map6M_pnNSafePointNode__;
text: .text%__1cFParseIdo_exits6M_v_;
text: .text%__1cFParseLbuild_exits6M_v_;
text: .text%__1cFParseLinit_blocks6M_v_;
text: .text%__1cFParse2t6MpnIJVMState_pnIciMethod_f_v_;
-text: .text%__1cIciMethodVhas_balanced_monitors6M_i_;
text: .text%__1cFParseNdo_all_blocks6M_v_;
text: .text%__1cOParseGeneratorIgenerate6MpnIJVMState__2_;
-text: .text%__1cOParseGeneratorJcan_parse6FpnIciMethod_i_i_;
text: .text%__1cFArenaEused6kM_L_;
text: .text%__1cRandI_rReg_immNodeErule6kM_I_;
text: .text%jni_GetSuperclass: jni.o;
text: .text%__1cPno_rax_RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cFStateM_sub_Op_AddI6MpknENode__v_;
-text: .text%__1cPClassFileParserUskip_over_field_name6MpciI_1_;
text: .text%__1cFParsePdo_method_entry6M_v_;
text: .text%__1cNCallGeneratorKfor_inline6FpnIciMethod_f_p0_;
-text: .text%__1cKciTypeFlowFBlockPclone_loop_head6Mp0ip1pn0AGJsrSet__3_;
text: .text%__1cLOpaque1NodeGOpcode6kM_i_;
-text: .text%__1cHciKlassOis_subclass_of6Mp0_i_;
-text: .text%__1cbBjava_lang_ref_SoftReferenceFclock6F_x_;
text: .text%__1cTAbstractInterpreterbFsize_top_interpreter_activation6FpnNmethodOopDesc__i_;
-text: .text%__1cRruntime_type_from6FpnJJavaValue__nJBasicType__: javaCalls.o;
-text: .text%__1cCosbCstack_shadow_pages_available6FpnGThread_nMmethodHandle__i_;
text: .text%__1cPJavaCallWrapper2t6MnMmethodHandle_nGHandle_pnJJavaValue_pnGThread__v_;
text: .text%__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_;
text: .text%__1cRJavaCallArgumentsKparameters6M_pl_;
text: .text%__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
-text: .text%__1cLCastP2LNodeLbottom_type6kM_pknEType__;
text: .text%__1cPJavaCallWrapper2T6M_v_;
text: .text%__1cVPreserveExceptionMark2T6M_v_;
text: .text%__1cVPreserveExceptionMark2t6MrpnGThread__v_;
-text: .text%__1cMrax_RegPOperJnum_edges6kM_I_;
text: .text%__1cMrax_RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cITypeFuncFxdual6kM_pknEType__;
-text: .text%__1cIimmLOperJconstantL6kM_x_;
-text: .text%__1cIMulLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cLRShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJloadPNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNCompileBrokerTcompile_method_base6FnMmethodHandle_ii1ipkcpnGThread__pnHnmethod__;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
-text: .text%__1cNmethodOopDescWload_signature_classes6FnMmethodHandle_pnGThread__i_;
text: .text%__1cTconstantPoolOopDescbDresolve_string_constants_impl6FnSconstantPoolHandle_pnGThread__v_;
-text: .text%__1cYDebugInformationRecorderNadd_dependent6MpnPciInstanceKlass_pnIciMethod__v_;
text: .text%__1cHciField2t6MpnPciInstanceKlass_i_v_;
text: .text%__1cTconstantPoolOopDescbCklass_ref_at_if_loaded_check6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
text: .text%__1cMLinkResolverXresolve_klass_no_update6FrnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cNaddL_rRegNodePoper_input_base6kM_I_;
text: .text%__1cISubINodeGadd_id6kM_pknEType__;
text: .text%__1cNsubI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cGciType2t6MnLKlassHandle__v_;
-text: .text%__1cMMutableSpaceKinitialize6MnJMemRegion_i_v_;
text: .text%__1cHciKlass2t6MnLKlassHandle__v_;
-text: .text%__1cKInlineTree2t6MpnHCompile_pk0pnIciMethod_pnIJVMState_if_v_;
text: .text%__1cJEventMark2t6MpkcE_v_;
-text: .text%__1cJloadCNodeJnum_opnds6kM_I_;
text: .text%__1cNaddI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cQComputeCallStackHdo_long6M_v_;
text: .text%__1cMindirectOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
@@ -2492,12 +1589,9 @@ text: .text%__1cRaddI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%__1cQVMOperationQdDueueNqueue_oops_do6MipnKOopClosure__v_;
text: .text%__1cMCreateExNodeJideal_reg6kM_I_;
-text: .text%__1cMorI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cMorI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cRmethodDataOopDescLbci_to_data6Mi_pnLProfileData__;
text: .text%__1cNSCMemProjNodeGOpcode6kM_i_;
text: .text%__1cNSignatureInfoHdo_long6M_v_;
-text: .text%__1cLPCTableNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMCreateExNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cRinterpretedVFrameDbci6kM_i_;
text: .text%__1cKInlineTreeYcompute_callee_frequency6kMi_f_;
@@ -2511,36 +1605,25 @@ text: .text%__1cNsubI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cOMethodLivenessKBasicBlockIload_two6Mi_v_;
text: .text%__1cFKlassTarray_klass_or_null6Mi_pnMklassOopDesc__;
text: .text%__1cNmulL_rRegNodeMcisc_operand6kM_i_;
-text: .text%__1cNobjArrayKlassPoop_is_objArray6kM_i_;
-text: .text%__1cLklassVtableXvtable_accessibility_at6Mi_n0AKAccessType__;
-text: .text%__1cNrFlagsRegOperFclone6kM_pnIMachOper__;
text: .text%__1cIGraphKitJpush_pair6MpnENode__v_;
text: .text%__1cNCatchProjNodeDcmp6kMrknENode__I_;
-text: .text%__1cIGraphKitRmake_slow_call_ex6MpnENode_pnPciInstanceKlass__v_;
text: .text%__1cTcompareAndSwapLNodePoper_input_base6kM_I_;
text: .text%__1cMloadConINodeHsize_of6kM_I_;
text: .text%__1cJAssemblerKemit_arith6MiipnMRegisterImpl_i_v_;
-text: .text%__1cRMachSafePointNodeLis_MachCall6M_pnMMachCallNode__;
text: .text%__1cNstoreImmINodeMideal_Opcode6kM_i_;
-text: .text%__1cJScopeDescGis_top6kM_i_;
text: .text%__1cHOrINodeLbottom_type6kM_pknEType__;
text: .text%__1cPstoreImmI16NodeMideal_Opcode6kM_i_;
text: .text%__1cMindIndexOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cFStateQ_sub_Op_CreateEx6MpknENode__v_;
text: .text%__1cRshrL_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cLjmpConUNodeJis_Branch6kM_I_;
text: .text%__1cLjmpConUNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLjmpConUNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cRaddI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cPciInstanceKlass2t6MnLKlassHandle__v_;
text: .text%__1cHCompileXin_preserve_stack_slots6M_I_;
-text: .text%__1cMMachCallNodeHis_Call6M_pnICallNode__;
text: .text%__1cNdecI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKStoreCNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cLLShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cTtypeArrayKlassKlassIoop_size6kMpnHoopDesc__i_;
-text: .text%__1cLklassVtableKis_miranda6FpnNmethodOopDesc_pnPobjArrayOopDesc_pnMklassOopDesc__i_;
-text: .text%__1cTconvL2I_reg_regNodePoper_input_base6kM_I_;
text: .text%__1cRalign_code_offset6Fi_I_;
text: .text%__1cMURShiftINodeLbottom_type6kM_pknEType__;
text: .text%__1cMorI_rRegNodeErule6kM_I_;
@@ -2551,18 +1634,10 @@ text: .text%__1cTconvL2I_reg_regNodeErule6kM_I_;
text: .text%__1cRmethodDataOopDescJbci_to_dp6Mi_pC_;
text: .text%__1cIAddLNodeGadd_id6kM_pknEType__;
text: .text%__1cRaddL_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cLRShiftINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cFTypeFEhash6kM_i_;
-text: .text%__1cIGraphKitMarray_length6MpnENode__2_;
-text: .text%__1cPCallRuntimeNodeEhash6kM_I_;
text: .text%__1cPsalI_rReg_1NodeErule6kM_I_;
text: .text%__1cIJVMState2t6Mi_v_;
-text: .text%__1cNstoreImmBNodeHtwo_adr6kM_I_;
-text: .text%__1cLLShiftINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cScompU_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cNGrowableArray4Cl_Icontains6kMrkl_i_;
text: .text%__1cScompU_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cQjava_lang_StringGequals6FpnHoopDesc_pHi_i_;
text: .text%__1cOcompP_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTCreateExceptionNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMURShiftINodeFValue6kMpnOPhaseTransform__pknEType__;
@@ -2579,197 +1654,112 @@ text: .text%__1cSsafePoint_pollNodePoper_input_base6kM_I_;
text: .text%__1cLRuntimeStubbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_;
text: .text%__1cPshrI_rReg_1NodeErule6kM_I_;
text: .text%__1cRmethodDataOopDescKmileage_of6FpnNmethodOopDesc__i_;
-text: .text%__1cKManagementJtimestamp6F_x_;
-text: .text%__1cbDReferenceProcessorInitializerIis_clean6kM_v_;
text: .text%__1cIPSOldGenPupdate_counters6M_v_;
-text: .text%__1cNSingletonBlobIis_alive6kM_i_;
-text: .text%__1cKTypeRawPtrCeq6kMpknEType__i_;
text: .text%__1cIregDOperEtype6kM_pknEType__;
-text: .text%__1cQleaPIdxScaleNodeHtwo_adr6kM_I_;
text: .text%__1cTStackWalkCompPolicyPshouldNotInline6FnMmethodHandle__pkc_;
-text: .text%__1cMPrefetchNodeLbottom_type6kM_pknEType__;
text: .text%__1cPcmpFastLockNodeErule6kM_I_;
text: .text%__1cFArena2t6M_v_;
text: .text%__1cSCallLeafDirectNodePoper_input_base6kM_I_;
-text: .text%__1cMCallLeafNodeLis_CallLeaf6kM_pk0_;
text: .text%__1cQleaPIdxScaleNodeMideal_Opcode6kM_i_;
text: .text%__1cJcmpOpOperFequal6kM_i_;
text: .text%__1cScompI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_IsSameObject: jni.o;
-text: .text%__1cNmulL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNmulL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cIGraphKitYcombine_exception_states6MpnNSafePointNode_2_v_;
text: .text%__1cJloadBNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMrcx_RegIOperJnum_edges6kM_I_;
-text: .text%__1cFKlassNoop_is_method6kM_i_;
text: .text%__1cIMulLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cHnmethodPis_locked_by_vm6kM_i_;
text: .text%__1cONMethodSweeperPprocess_nmethod6FpnHnmethod__v_;
text: .text%__1cRaddP_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cXjava_lang_ref_ReferenceWpending_list_lock_addr6F_ppnHoopDesc__;
-text: .text%__1cJloadLNodeHtwo_adr6kM_I_;
-text: .text%__1cHMulNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMrep_stosNodePoper_input_base6kM_I_;
text: .text%__1cRsalI_rReg_immNodeErule6kM_I_;
text: .text%__1cJFieldTypeSskip_optional_size6FpnNsymbolOopDesc_pi_v_;
text: .text%__1cMloadConPNodeHsize_of6kM_I_;
-text: .text%__1cSCallLeafDirectNodeHtwo_adr6kM_I_;
text: .text%__1cHnmethodVcleanup_inline_caches6M_v_;
text: .text%__1cIGraphKitTcreate_and_xform_if6MpnENode_2ff_pnGIfNode__;
-text: .text%__1cQsolaris_mprotect6FpcLi_i_: os_solaris.o;
text: .text%__1cRaddI_rReg_memNodePoper_input_base6kM_I_;
-text: .text%__1cHnmethodLis_unloaded6kM_i_;
text: .text%__1cOGenerateOopMapHppstore6MpnNCellTypeState_i_v_;
-text: .text%__1cIGraphKitXset_edges_for_java_call6MpnMCallJavaNode_i_v_;
-text: .text%__1cTconvI2L_reg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cHi2sNodeJnum_opnds6kM_I_;
text: .text%__1cSconstMethodOopDescZchecked_exceptions_length6kM_i_;
-text: .text%__1cHMatcherXadjust_incoming_stk_arg6Mi_i_;
text: .text%__1cNIdealLoopTreeIset_nest6MI_i_;
text: .text%__1cNIdealLoopTreeMcounted_loop6MpnOPhaseIdealLoop__v_;
-text: .text%__1cRsubI_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cIGraphKitZset_results_for_java_call6MpnMCallJavaNode__pnENode__;
-text: .text%__1cTconvI2L_reg_memNodePoper_input_base6kM_I_;
text: .text%__1cFStateM_sub_Op_CmpU6MpknENode__v_;
text: .text%__1cLRethrowNodeKmatch_edge6kMI_I_;
-text: .text%__1cKcopy_table6FppC1i_v_: interpreter.o;
text: .text%__1cUBytecode_tableswitchOdest_offset_at6kMi_i_;
text: .text%__1cNobjArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cKTypeRawPtrFxmeet6kMpknEType__3_;
-text: .text%__1cMVM_OperationVevaluate_at_safepoint6kM_i_;
-text: .text%__1cMVM_OperationVevaluate_concurrently6kM_i_;
-text: .text%__1cMVM_OperationSis_cheap_allocated6kM_i_;
-text: .text%__1cXmembar_release_lockNodePoper_input_base6kM_I_;
-text: .text%__1cRaddL_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cScompP_mem_rRegNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cJFieldTypeOget_array_info6FpnNsymbolOopDesc_pip2pnGThread__nJBasicType__;
-text: .text%__1cJFieldTypeYis_valid_array_signature6FpnNsymbolOopDesc__i_;
text: .text%__1cNincI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIciObject2t6M_v_;
text: .text%__1cPstoreImmI16NodePoper_input_base6kM_I_;
-text: .text%__1cNinstanceKlassbDcheck_valid_for_instantiation6MipnGThread__v_;
text: .text%__1cPClassFileParserbCverify_legal_class_modifiers6MipnGThread__v_;
-text: .text%__1cQLibraryIntrinsicKis_virtual6kM_i_;
text: .text%__1cPciObjectFactoryUget_empty_methodData6M_pnMciMethodData__;
text: .text%__1cMciMethodData2t6M_v_;
-text: .text%__1cPsarI_rReg_1NodePoper_input_base6kM_I_;
text: .text%__1cNstoreImmBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cFTypeDEhash6kM_i_;
-text: .text%__1cMPrefetchNodeKmatch_edge6kMI_I_;
-text: .text%__1cHCompileQcan_generate_C2I6MpnIciMethod_i_i_;
text: .text%__1cPloadConUL32NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cPciObjArrayKlassSis_obj_array_klass6M_i_;
text: .text%__1cLOpaque1NodeEhash6kM_I_;
-text: .text%__1cXmembar_release_lockNodeHtwo_adr6kM_I_;
text: .text%JVM_GetMethodIxModifiers;
text: .text%__1cJloadBNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cNandL_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cNandL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cFKlassMset_subklass6MpnMklassOopDesc__v_;
text: .text%__1cTCallDynamicJavaNodeGOpcode6kM_i_;
text: .text%__1cJloadINodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cKklassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cUCompressedReadStreamMraw_read_int6FrpC_i_;
text: .text%__1cIHaltNodeEhash6kM_I_;
text: .text%__1cNstoreImmINodePoper_input_base6kM_I_;
text: .text%__1cLAccessFlagsPatomic_set_bits6Mi_v_;
text: .text%__1cNinstanceKlassWcompute_modifier_flags6kMpnGThread__i_;
-text: .text%__1cNinstanceKlassScopy_static_fields6MpnSPSPromotionManager__v_;
-text: .text%__1cSinstanceKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cOcompL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQVMOperationQdDueueLremove_next6M_pnMVM_Operation__;
-text: .text%__1cQciTypeArrayKlassTis_type_array_klass6M_i_;
text: .text%__1cRsubI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cFStateP_sub_Op_LShiftL6MpknENode__v_;
text: .text%__1cLjmpConUNodeGnegate6M_v_;
text: .text%__1cKcmpOpUOperGnegate6M_v_;
-text: .text%__1cMrax_RegLOperJnum_edges6kM_I_;
text: .text%__1cLGCTaskQdDueueKinitialize6M_v_;
-text: .text%__1cJStealTask2t6Mi_v_;
text: .text%__1cJStealTaskFdo_it6MpnNGCTaskManager_I_v_;
text: .text%__1cTOldToYoungRootsTaskEname6M_pc_;
text: .text%__1cTOldToYoungRootsTaskFdo_it6MpnNGCTaskManager_I_v_;
text: .text%__1cNGCTaskManagerMnote_release6MI_v_;
text: .text%__1cJStealTaskEname6M_pc_;
text: .text%__1cSCardTableExtensionbAscavenge_contents_parallel6MpnQObjectStartArray_pnMMutableSpace_pnIHeapWord_pnSPSPromotionManager_I_v_;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cQciBytecodeStreamMget_constant6M_nKciConstant__;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cJcmpOpOperFclone6kM_pnIMachOper__;
text: .text%__1cMrep_stosNodeMideal_Opcode6kM_i_;
-text: .text%__1cEhash6Fpkc1_I_;
-text: .text%__1cQput_after_lookup6FnMsymbolHandle_0ppnLNameSigHash__i_;
text: .text%__1cKJavaThreadLgc_epilogue6M_v_;
text: .text%__1cKJavaThreadLgc_prologue6M_v_;
text: .text%__1cTsize_java_to_interp6F_I_;
text: .text%__1cUreloc_java_to_interp6F_I_;
text: .text%__1cQinit_input_masks6FIrnHRegMask_1_p0_: matcher.o;
-text: .text%__1cKOSRAdapterHoops_do6MpnKOopClosure__v_;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cRitableMethodEntryKinitialize6MpnNmethodOopDesc__v_;
text: .text%__1cTcompareAndSwapLNodeMideal_Opcode6kM_i_;
-text: .text%__1cNinstanceKlassPlink_class_impl6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cIGraphKitbBset_arguments_for_java_call6MpnMCallJavaNode__v_;
text: .text%__1cNCallGeneratorCtf6kM_pknITypeFunc__;
text: .text%__1cMloadConLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cKStoreBNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cNaddL_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cTcompareAndSwapLNodeJnum_opnds6kM_I_;
text: .text%__1cFStateO_sub_Op_StoreI6MpknENode__v_;
text: .text%__1cQleaPIdxScaleNodePoper_input_base6kM_I_;
-text: .text%__1cNGrowableArray4CpnNmethodOopDesc__2t6Mii_v_;
text: .text%__1cLklassVtableMget_mirandas6FpnNGrowableArray4CpnNmethodOopDesc___pnMklassOopDesc_pnPobjArrayOopDesc_8_v_;
text: .text%__1cXJNI_ArgumentPusherVaArgKget_object6M_v_;
text: .text%__1cNloadConP0NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFKlassKsuperklass6kM_pnNinstanceKlass__;
-text: .text%__1cWstatic_stub_RelocationJpack_data6M_i_;
-text: .text%__1cNsubL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cbAjni_check_async_exceptions6FpnKJavaThread__v_: jni.o;
-text: .text%__1cKJavaThreadbHcheck_and_handle_async_exceptions6Mi_v_;
text: .text%__1cRsalI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMindIndexOperNbase_position6kM_i_;
text: .text%__1cMindIndexOperOindex_position6kM_i_;
text: .text%__1cMindIndexOperNconstant_disp6kM_i_;
-text: .text%__1cJLoadSNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cNGrowableArray4CpnOMethodLivenessKBasicBlock__2t6Mii_v_;
text: .text%__1cKstoreINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNCallGeneratorPfor_direct_call6FpnIciMethod__p0_;
text: .text%__1cTDirectCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cMWarmCallInfoLalways_cold6F_p0_;
text: .text%__1cFframeIpatch_pc6MpnGThread_pC_v_;
text: .text%JVM_IsInterface;
text: .text%__1cFKlassQset_next_sibling6MpnMklassOopDesc__v_;
-text: .text%__1cJMultiNodeUdepends_only_on_test6kM_i_;
text: .text%__1cRshrL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjmpCon_shortNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjmpCon_shortNodeJlabel_set6MrnFLabel_I_v_;
-text: .text%__1cKjmpConNodeUshort_branch_version6M_pnIMachNode__;
-text: .text%__1cQjmpCon_shortNodeJis_Branch6kM_I_;
-text: .text%__1cKJavaThreadNpd_last_frame6M_nFframe__;
text: .text%__1cTStackWalkCompPolicyVfindTopInlinableFrame6MpnNGrowableArray4CpnGRFrame____2_;
text: .text%__1cKJavaThreadQlast_java_vframe6MpnLRegisterMap__pnKjavaVFrame__;
text: .text%__1cTStackWalkCompPolicyXmethod_invocation_event6MnMmethodHandle_pnGThread__v_;
text: .text%__1cRInterpretedRFrame2t6MnFframe_pnKJavaThread_nMmethodHandle__v_;
-text: .text%__1cNGrowableArray4CpnGRFrame__2t6Mii_v_;
-text: .text%__1cKjavaVFrameNis_java_frame6kM_i_;
-text: .text%__1cIVerifierRshould_verify_for6FpnHoopDesc__i_;
-text: .text%__1cQciBytecodeStreamPget_klass_index6M_i_;
text: .text%__1cRMachNullCheckNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRMachNullCheckNode2t6MpnENode_2I_v_;
text: .text%__1cRsarI_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cNMachIdealNodeJnum_opnds6kM_I_;
-text: .text%__1cRMachSafePointNodePis_MachCallJava6M_pnQMachCallJavaNode__;
text: .text%__1cKstorePNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cWImplicitExceptionTableGappend6MII_v_;
text: .text%__1cHUNICODEHas_utf86FpHi_pc_;
-text: .text%__1cMStartI2CNodeGOpcode6kM_i_;
-text: .text%__1cKOSRAdapterMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
-text: .text%__1cSvframeStreamCommonbHskip_method_invoke_and_aux_frames6M_v_;
-text: .text%__1cNdecI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cIMinINodeGOpcode6kM_i_;
-text: .text%__1cNinstanceKlassbCfind_local_field_from_offset6kMiipnPfieldDescriptor__i_;
-text: .text%__1cNinstanceKlassWfind_field_from_offset6kMiipnPfieldDescriptor__i_;
-text: .text%__1cPciInstanceKlassTget_field_by_offset6Mii_pnHciField__;
text: .text%__1cFArena2T6M_v_;
text: .text%__1cKmethodOperJnum_edges6kM_I_;
text: .text%__1cSconstMethodOopDescYchecked_exceptions_start6kM_pnXCheckedExceptionElement__;
@@ -2780,66 +1770,37 @@ text: .text%__1cRsarL_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cNstoreImmBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKstorePNodeFreloc6kM_i_;
text: .text%__1cYCallStaticJavaDirectNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cYCallStaticJavaDirectNodeJnum_opnds6kM_I_;
text: .text%__1cQleaPIdxScaleNodeErule6kM_I_;
text: .text%__1cTciConstantPoolCacheGinsert6Mipv_v_;
-text: .text%__1cNinstanceKlassXmark_dependent_nmethods6MpnMklassOopDesc__i_;
-text: .text%__1cMvframeStream2t6MpnKJavaThread_i_v_;
text: .text%__1cIGraphKitTuse_exception_state6MpnNSafePointNode__pnENode__;
text: .text%__1cIGraphKitSclear_saved_ex_oop6FpnNSafePointNode__pnENode__;
-text: .text%__1cNloadConI0NodeFclone6kM_pnENode__;
-text: .text%__1cJimmI0OperFclone6kM_pnIMachOper__;
-text: .text%__1cLCastP2LNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMLinkResolverbBresolve_static_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cKcmpOpUOperNgreater_equal6kM_i_;
text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHandle_pnGThread__1_;
-text: .text%__1cXcopy_u2_with_conversion6FpH0i_v_: classFileParser.o;
-text: .text%__1cENodeGis_Sub6M_pnHSubNode__;
text: .text%__1cJAssemblerFtestq6MpnMRegisterImpl_2_v_;
text: .text%__1cJCMoveNodeLis_cmove_id6FpnOPhaseTransform_pnENode_44pnIBoolNode__4_;
text: .text%__1cZresource_reallocate_bytes6FpcLL_0_;
text: .text%__1cKstoreINodeFreloc6kM_i_;
-text: .text%__1cLsymbolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cQciBytecodeStreamJget_klass6Mri_pnHciKlass__;
-text: .text%__1cKMemBarNode2t6M_v_;
text: .text%__1cIDivINodeGOpcode6kM_i_;
-text: .text%__1cFframeRis_compiled_frame6kMpi_i_;
-text: .text%__1cPCallRuntimeNodeOis_CallRuntime6kM_pk0_;
text: .text%__1cPshrI_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMorI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFParseQarray_addressing6MnJBasicType_ippknEType__pnENode__;
text: .text%__1cPsalI_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHciField2t6MpnPfieldDescriptor__v_;
-text: .text%__1cIAddLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cIModINodeGOpcode6kM_i_;
text: .text%__1cNmulL_rRegNodeErule6kM_I_;
-text: .text%__1cSsafePoint_pollNodeHtwo_adr6kM_I_;
-text: .text%__1cDCHAManalyze_call6FnLKlassHandle_11nMsymbolHandle_2_pnJCHAResult__;
-text: .text%__1cJCHAResult2t6MnLKlassHandle_nMsymbolHandle_2pnNGrowableArray4n0B___pnNGrowableArray4nMmethodHandle___n0E_i_v_;
text: .text%__1cMLinkResolverbCresolve_virtual_call_or_null6FnLKlassHandle_1nMsymbolHandle_21_nMmethodHandle__;
-text: .text%__1cJCHAResultOis_monomorphic6kM_i_;
-text: .text%__1cIciMethodXfind_monomorphic_target6MpnHciKlass_22_p0_;
-text: .text%__1cQconstMethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cKMemBarNodeJis_MemBar6kM_pk0_;
-text: .text%__1cIGraphKitOinsert_mem_bar6MpnKMemBarNode__v_;
-text: .text%__1cHi2sNodeHtwo_adr6kM_I_;
text: .text%__1cJCodeCacheMfind_nmethod6Fpv_pnHnmethod__;
text: .text%__1cLConvL2INodeLbottom_type6kM_pknEType__;
text: .text%__1cMLinkResolverbCresolve_special_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
-text: .text%__1cNIdealLoopTreeObeautify_loops6MpnOPhaseIdealLoop__i_;
text: .text%__1cScompP_mem_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKstoreBNodePoper_input_base6kM_I_;
text: .text%__1cRandI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSCallLeafDirectNodeRis_safepoint_node6kM_i_;
text: .text%__1cJloadLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSCallLeafDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKMemBarNodeJideal_reg6kM_I_;
-text: .text%__1cJloadSNodeHtwo_adr6kM_I_;
text: .text%__1cVConstantOopWriteValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cUDebugInfoWriteStreamMwrite_handle6MpnI_jobject__v_;
-text: .text%__1cLmethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNaddI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJlog2_long6Fx_i_;
text: .text%__1cTconvL2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIGraphKitPpush_pair_local6Mi_v_;
text: .text%__1cOjmpLoopEndNodePoper_input_base6kM_I_;
@@ -2852,131 +1813,74 @@ text: .text%__1cHCmpNodeGadd_id6kM_pknEType__;
text: .text%JVM_InternString;
text: .text%__1cLStringTableGintern6FpnHoopDesc_pnGThread__2_;
text: .text%__1cFKlassQup_cast_abstract6M_p0_;
-text: .text%__1cNGrowableArray4CpnENode__2t6Mii_v_;
-text: .text%__1cPCheckCastPPNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cSInterpreterRuntimeMmonitorenter6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cSCountedLoopEndNodeKstride_con6kM_i_;
-text: .text%__1cTconvI2L_reg_memNodeJnum_opnds6kM_I_;
text: .text%__1cPCheckCastPPNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
text: .text%__1cLOpaque1NodeLbottom_type6kM_pknEType__;
text: .text%__1cOPhaseIdealLoopRsplit_thru_region6MpnENode_2_2_;
-text: .text%__1cFTypeFCeq6kMpknEType__i_;
-text: .text%__1cNmethodOopDescOis_initializer6kM_i_;
text: .text%__1cFciEnvRfind_system_klass6MpnIciSymbol__pnHciKlass__;
text: .text%__1cNandL_rRegNodeErule6kM_I_;
text: .text%__1cQjmpDir_shortNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cQjmpDir_shortNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKjmpDirNodeUshort_branch_version6M_pnIMachNode__;
-text: .text%__1cQjmpDir_shortNodeJis_Branch6kM_I_;
text: .text%__1cLBlock_ArrayEgrow6MI_v_;
-text: .text%__1cOtypeArrayKlassQarray_klass_impl6MiipnGThread__pnMklassOopDesc__;
-text: .text%__1cSCompareAndSwapNodeLbottom_type6kM_pknEType__;
-text: .text%__1cOtypeArrayKlassQarray_klass_impl6FnUtypeArrayKlassHandle_iipnGThread__pnMklassOopDesc__;
text: .text%__1cMPhaseChaitinVfind_base_for_derived6MppnENode_2rI_2_;
text: .text%__1cSindIndexOffsetOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cSindIndexOffsetOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cNGrowableArray4CI_Egrow6Mi_v_;
-text: .text%__1cHMatcherMreturn_value6Fii_nLOptoRegPair__;
text: .text%__1cFStateP_sub_Op_ConvI2L6MpknENode__v_;
-text: .text%__1cOjmpLoopEndNodeGpinned6kM_i_;
-text: .text%__1cNxorI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cJCHAResultSmonomorphic_target6kM_nMmethodHandle__;
text: .text%__1cNsubI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPCountedLoopNodeNstride_is_con6kM_i_;
text: .text%__1cRcmpFastUnlockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cbBjava_lang_ref_SoftReferenceJtimestamp6FpnHoopDesc__x_;
-text: .text%__1cQLRUMaxHeapPolicyWshould_clear_reference6MpnHoopDesc__i_;
-text: .text%__1cLcastP2LNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcheckCastPPNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cPciInstanceKlassLfind_method6MpnIciSymbol_2_pnIciMethod__;
-text: .text%__1cZCallInterpreterDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cILoopNodeHsize_of6kM_I_;
text: .text%__1cSindIndexOffsetOperFscale6kM_i_;
-text: .text%__1cMjniIdSupportNto_method_oop6FpnK_jmethodID__pnNmethodOopDesc__;
text: .text%__1cLBoxLockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRSignatureIterator2t6MpnGThread_pnNsymbolOopDesc__v_;
-text: .text%__1cRaddI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cFKlassQoop_is_typeArray6kM_i_;
-text: .text%__1cGOopMapPset_derived_oop6Miiii_v_;
text: .text%__1cKstoreBNodeMideal_Opcode6kM_i_;
text: .text%__1cHi2bNodeErule6kM_I_;
text: .text%__1cFStateN_sub_Op_LoadI6MpknENode__v_;
-text: .text%__1cMloadConDNodePoper_input_base6kM_I_;
text: .text%__1cPCountedLoopNodeJinit_trip6kM_pnENode__;
text: .text%__1cICmpLNodeDsub6kMpknEType_3_3_;
text: .text%__1cRjmpConU_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cRjmpConU_shortNodeMideal_Opcode6kM_i_;
-text: .text%__1cMloadConDNodeHtwo_adr6kM_I_;
-text: .text%__1cHnmethodKpc_desc_at6MpC_pnGPcDesc__;
-text: .text%__1cJrRegPOperFclone6kM_pnIMachOper__;
-text: .text%__1cFParseNpush_constant6MnKciConstant__i_;
-text: .text%__1cMrep_stosNodeJnum_opnds6kM_I_;
text: .text%__1cOClearArrayNodeKmatch_edge6kMI_I_;
text: .text%__1cUvisit_all_interfaces6FpnPobjArrayOopDesc_pnXInterfaceVisiterClosure__v_;
text: .text%__1cXmembar_release_lockNodeLbottom_type6kM_pknEType__;
text: .text%__1cPThreadLocalNodeJideal_reg6kM_I_;
-text: .text%__1cPstoreImmI16NodeJnum_opnds6kM_I_;
text: .text%__1cTleaPIdxScaleOffNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIGraphKitbMset_predefined_output_for_runtime_call6MpnENode_pnMMergeMemNode__v_;
-text: .text%__1cFKlassXsearch_secondary_supers6kMpnMklassOopDesc__i_;
text: .text%__1cPsarI_rReg_1NodeErule6kM_I_;
text: .text%__1cOPhaseIdealLoopPis_counted_loop6MpnENode_pnNIdealLoopTree__2_;
-text: .text%__1cIGraphKitOhas_ex_handler6M_i_;
text: .text%__1cMloadConDNodeErule6kM_I_;
text: .text%__1cHCompileQsync_stack_slots6kM_i_;
text: .text%__1cNMemoryServiceXtrack_memory_pool_usage6FpnKMemoryPool__v_;
-text: .text%__1cMURShiftLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cKoopFactoryTnew_system_objArray6FipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cNdecI_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cPClassFileParserbHparse_constant_pool_integer_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cTDebugInfoReadStream2t6MpknHnmethod_i_v_;
-text: .text%__1cRsalI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cJScopeDescJstream_at6kMi_pnTDebugInfoReadStream__;
text: .text%__1cVjava_lang_ClassLoaderGparent6FpnHoopDesc__2_;
text: .text%__1cIPhaseIFGEinit6MI_v_;
-text: .text%__1cMPhaseChaitinQgather_lrg_masks6Mi_v_;
text: .text%__1cJPhaseLiveHcompute6MI_v_;
text: .text%JVM_GetCPClassNameUTF;
text: .text%__1cMLinkResolverUresolve_invokestatic6FrnICallInfo_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cNstoreImmINodeJnum_opnds6kM_I_;
-text: .text%__1cITypeNodeHis_Type6M_p0_;
text: .text%__1cHRetNodePoper_input_base6kM_I_;
-text: .text%__1cLCastP2LNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%jni_GetStringLength: jni.o;
text: .text%__1cPloadConUL32NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOFastUnlockNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPciObjArrayKlassNelement_klass6M_pnHciKlass__;
-text: .text%__1cNprefetchwNodeHtwo_adr6kM_I_;
-text: .text%__1cNnmethodLocker2T6M_v_;
text: .text%__1cKoopFactoryYnew_permanent_shortArray6FipnGThread__pnQtypeArrayOopDesc__;
-text: .text%__1cKstoreCNodeHtwo_adr6kM_I_;
-text: .text%__1cQleaPIdxScaleNodeJnum_opnds6kM_I_;
text: .text%__1cNaddL_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cOcompL_rRegNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cTDebugInfoReadStreamLread_handle6M_nGHandle__;
-text: .text%__1cJScopeDesc2t6MpknHnmethod_i_v_;
text: .text%__1cFStateR_sub_Op_LoadRange6MpknENode__v_;
text: .text%__1cOcompiledVFrame2t6MpknFframe_pknLRegisterMap_pnKJavaThread_pnJScopeDesc__v_;
text: .text%__1cOcompU_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPcmovI_reg_gNodePoper_input_base6kM_I_;
-text: .text%__1cLProfileDataSis_VirtualCallData6M_i_;
-text: .text%__1cSmembar_acquireNodePoper_input_base6kM_I_;
text: .text%__1cNsubL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cJMarkSweepMfollow_stack6F_v_;
-text: .text%__1cNnmethodLocker2t6MpnHnmethod__v_;
text: .text%__1cNloadRangeNodeFreloc6kM_i_;
-text: .text%__1cNGrowableArray4CpnKciTypeFlowJJsrRecord__2t6Miirk2i_v_;
text: .text%__1cTcompareAndSwapLNodeErule6kM_I_;
text: .text%__1cZCallDynamicJavaDirectNodeMideal_Opcode6kM_i_;
-text: .text%__1cMURShiftINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cOcompiledVFrameGis_top6kM_i_;
text: .text%__1cSInterpreterRuntimeLmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cNxorI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cRshrI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cKciTypeFlow2t6MpnFciEnv_pnIciMethod_i_v_;
-text: .text%__1cKciTypeFlowXmark_known_range_starts6M_v_;
-text: .text%__1cKciTypeFlowLfind_ranges6M_v_;
text: .text%__1cSFixupMirrorClosureJdo_object6MpnHoopDesc__v_;
text: .text%__1cKciTypeFlowKmap_blocks6M_v_;
text: .text%__1cKciTypeFlowHdo_flow6M_v_;
@@ -2984,12 +1888,9 @@ text: .text%__1cKciTypeFlowPget_start_state6M_pkn0ALStateVector__;
text: .text%__1cKciTypeFlowKflow_types6M_v_;
text: .text%__1cIAndINodeGadd_id6kM_pknEType__;
text: .text%__1cMURShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cJloadBNodeHtwo_adr6kM_I_;
text: .text%__1cKPSYoungGenRcapacity_in_bytes6kM_L_;
-text: .text%__1cHMonitorGnotify6M_i_;
text: .text%__1cYciExceptionHandlerStreamPcount_remaining6M_i_;
text: .text%__1cFParseXcatch_inline_exceptions6MpnNSafePointNode__v_;
-text: .text%__1cHMatcherNfind_receiver6Fi_i_;
text: .text%__1cMciMethodDataJload_data6M_v_;
text: .text%__1cIciMethodJload_code6M_v_;
text: .text%__1cJCmpL3NodeGOpcode6kM_i_;
@@ -3000,14 +1901,9 @@ text: .text%__1cOGenerateOopMapGdo_ldc6Mii_v_;
text: .text%__1cMTypeKlassPtrFxdual6kM_pknEType__;
text: .text%__1cIMaxINodeGOpcode6kM_i_;
text: .text%__1cOPhaseTransform2t6MnFPhaseLPhaseNumber__v_;
-text: .text%__1cPsalI_rReg_1NodeJnum_opnds6kM_I_;
text: .text%__1cQSystemDictionarybAcompute_loader_lock_object6FnGHandle_pnGThread__1_;
-text: .text%__1cHciKlassMis_interface6M_i_;
-text: .text%__1cPmethodDataKlassRoop_is_methodData6kM_i_;
text: .text%__1cIMulLNodeGadd_id6kM_pknEType__;
-text: .text%__1cJloadCNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQSystemDictionaryRpreloaded_oops_do6FpnKOopClosure__v_;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cLJvmtiExportHoops_do6FpnKOopClosure__v_;
text: .text%__1cMFlatProfilerHoops_do6FpnKOopClosure__v_;
text: .text%__1cQVMOperationQdDueueHoops_do6MpnKOopClosure__v_;
@@ -3020,83 +1916,55 @@ text: .text%__1cQPlaceholderTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cNThreadServiceHoops_do6FpnKOopClosure__v_;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
text: .text%__1cXJvmtiCurrentBreakpointsHoops_do6FpnKOopClosure__v_;
-text: .text%__1cIUniverseHoops_do6FpnKOopClosure_i_v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollectorXoops_do_for_all_threads6FpnKOopClosure__v_;
text: .text%__1cRindIndexScaleOperJnum_edges6kM_I_;
text: .text%__1cRindIndexScaleOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cKstoreBNodeJnum_opnds6kM_I_;
text: .text%__1cNSignatureInfoJdo_double6M_v_;
text: .text%__1cJAssemblerEmovl6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cRsalI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cMrdx_RegIOperEtype6kM_pknEType__;
text: .text%__1cMciMethodData2t6MnQmethodDataHandle__v_;
-text: .text%__1cSmembar_acquireNodeHtwo_adr6kM_I_;
text: .text%__1cRshrI_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cKJNIHandlesLmake_global6FnGHandle_i_pnI_jobject__;
text: .text%jni_ExceptionOccurred: jni.o;
text: .text%jni_SetObjectArrayElement: jni.o;
-text: .text%__1cSCompareAndSwapNodeKmatch_edge6kMI_I_;
text: .text%__1cISubINodeJideal_reg6kM_I_;
-text: .text%__1cRMachSafePointNodeGpinned6kM_i_;
-text: .text%__1cIimmIOperFclone6kM_pnIMachOper__;
-text: .text%__1cMloadConINodeFclone6kM_pnENode__;
text: .text%__1cICodeHeapIallocate6ML_pv_;
text: .text%__1cICodeHeapPsearch_freelist6ML_pnJFreeBlock__;
-text: .text%__1cbACallCompiledJavaDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cPcmpFastLockNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLCastP2LNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cNmulL_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cJLoadBNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cVmerge_point_too_heavy6FpnHCompile_pnENode__i_: loopopts.o;
text: .text%jni_GetByteArrayRegion: jni.o;
-text: .text%__1cFParseKdo_put_xxx6MpknHTypePtr_pnENode_pnHciField_i_v_;
-text: .text%__1cHnmethodOis_java_method6kM_i_;
text: .text%__1cQjava_lang_StringLutf8_length6FpnHoopDesc__i_;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc_ii_pc_;
text: .text%jni_GetStringUTFRegion: jni.o;
text: .text%jni_GetStringUTFLength: jni.o;
text: .text%__1cOMacroAssemblerWbang_stack_with_offset6Mi_v_;
-text: .text%__1cRsarL_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cScompU_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cFciEnvZcheck_klass_accessibility6MpnHciKlass_pnMklassOopDesc__i_;
-text: .text%__1cIciObjectMis_obj_array6M_i_;
-text: .text%__1cOLibraryCallKitOgenerate_guard6MpnENode_pnKRegionNode_f_v_;
text: .text%__1cMoutputStream2t6Mi_v_;
text: .text%__1cMstringStreamJas_string6M_pc_;
text: .text%__1cMstringStream2t6ML_v_;
text: .text%__1cJloadINodeFreloc6kM_i_;
text: .text%__1cMstringStream2T6M_v_;
text: .text%__1cOMethodLivenessKBasicBlockJstore_two6Mi_v_;
-text: .text%__1cJloadINodeIpeephole6MpnFBlock_ipnNPhaseRegAlloc_ri_pnIMachNode__;
-text: .text%__1cTconvL2I_reg_regNodeJnum_opnds6kM_I_;
text: .text%__1cPClassFileParserXverify_legal_class_name6MnMsymbolHandle_pnGThread__v_;
-text: .text%__1cRandI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cOAbstractICacheQinvalidate_range6FpCi_v_;
text: .text%__1cOAbstractICachePcall_flush_stub6FpCi_v_;
text: .text%__1cICodeBlobMset_oop_maps6MpnJOopMapSet__v_;
text: .text%__1cRClassPathZipEntryLopen_stream6Mpkc_pnPClassFileStream__;
text: .text%__1cJCodeCacheIallocate6Fi_pnICodeBlob__;
-text: .text%__1cIGraphKitOmake_slow_call6MpknITypeFunc_pCpkcpnENode_88_8_;
text: .text%__1cICodeHeapPfollowing_block6MpnJFreeBlock__2_;
text: .text%__1cOClearArrayNodeLbottom_type6kM_pknEType__;
-text: .text%__1cPshrI_rReg_1NodeJnum_opnds6kM_I_;
text: .text%__1cEDictIdoubhash6M_v_;
-text: .text%__1cTleaPIdxScaleOffNodeLbottom_type6kM_pknEType__;
text: .text%__1cIProjNodeJideal_reg6kM_I_;
text: .text%__1cHi2sNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLimmI_16OperJnum_edges6kM_I_;
-text: .text%__1cUmembar_cpu_orderNodePoper_input_base6kM_I_;
text: .text%__1cPfieldDescriptorRint_initial_value6kM_i_;
-text: .text%__1cTCallInterpreterNodeGOpcode6kM_i_;
text: .text%__1cMloadConLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRaddL_rReg_immNodeErule6kM_I_;
text: .text%__1cJLoadLNodeJideal_reg6kM_I_;
-text: .text%__1cTleaPIdxScaleOffNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cHCompileTset_cached_top_node6MpnENode__v_;
text: .text%__1cENodeMsetup_is_top6M_v_;
text: .text%__1cIGotoNodeGOpcode6kM_i_;
text: .text%__1cOMachPrologNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHCompilePneed_stack_bang6kMi_i_;
text: .text%__1cKBranchDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_;
text: .text%__1cNFingerprinterIdo_array6Mii_v_;
text: .text%jni_GetArrayLength: jni.o;
@@ -3104,46 +1972,25 @@ text: .text%__1cJloadSNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKReturnNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSInterpreterRuntimeE_new6FpnKJavaThread_pnTconstantPoolOopDesc_i_v_;
text: .text%__1cMorI_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cKTypeRawPtrFempty6kM_i_;
-text: .text%__1cHRetNodeGpinned6kM_i_;
-text: .text%__1cHRetNodeHtwo_adr6kM_I_;
text: .text%__1cPsalI_rReg_1NodeHtwo_adr6kM_I_;
text: .text%__1cNinstanceKlassVadd_dependent_nmethod6MpnHnmethod__v_;
text: .text%__1cHRetNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPGlobalTLABStatsKinitialize6M_v_;
-text: .text%__1cbBjava_lang_ref_SoftReferenceJset_clock6Fx_v_;
-text: .text%__1cUParallelScavengeHeapTensure_parseability6M_v_;
text: .text%__1cTDerivedPointerTableFclear6F_v_;
-text: .text%__1cNMemoryServiceGgc_end6Fi_v_;
-text: .text%__1cSReferenceProcessorQprocess_phaseJNI6M_v_;
text: .text%__1cRLowMemoryDetectorRdetect_low_memory6F_v_;
-text: .text%__1cSReferenceProcessorbDenqueue_discovered_references6M_i_;
-text: .text%__1cSReferenceProcessorbDprocess_discovered_references6M_v_;
text: .text%__1cNCollectedHeapbFaccumulate_statistics_all_tlabs6M_v_;
text: .text%__1cTDerivedPointerTablePupdate_pointers6F_v_;
-text: .text%__1cNCollectedHeapTensure_parseability6M_v_;
-text: .text%__1cNCollectedHeapOfill_all_tlabs6M_v_;
text: .text%__1cKDictionaryHoops_do6MpnKOopClosure__v_;
-text: .text%__1cSReferenceProcessorbBenqueue_discovered_reflists6MppnHoopDesc__v_;
text: .text%__1cWThreadLocalAllocBufferbFaccumulate_statistics_before_gc6F_v_;
-text: .text%__1cSReferenceProcessorOprocess_phase16MppnHoopDesc_pnPReferencePolicy_pnRBoolObjectClosure_pnKOopClosure_pnLVoidClosure__v_;
text: .text%__1cQLRUMaxHeapPolicy2t6M_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cVLoaderConstraintTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cUParallelScavengeHeapbFaccumulate_statistics_all_tlabs6M_v_;
text: .text%__1cKPSYoungGenPupdate_counters6M_v_;
-text: .text%__1cXjava_lang_ref_ReferenceRpending_list_addr6F_ppnHoopDesc__;
text: .text%__1cNMemoryServiceStrack_memory_usage6F_v_;
text: .text%__1cQSystemDictionaryHoops_do6FpnKOopClosure__v_;
-text: .text%__1cNMemoryServiceIgc_begin6Fi_v_;
-text: .text%__1cUParallelScavengeHeapOfill_all_tlabs6M_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
-text: .text%__1cXTraceMemoryManagerStats2t6Mi_v_;
text: .text%__1cUParallelScavengeHeapPupdate_counters6M_v_;
-text: .text%__1cQPlaceholderTableJnew_entry6MipnNsymbolOopDesc_pnHoopDesc__pnQPlaceholderEntry__;
text: .text%__1cQPlaceholderTableMremove_entry6MiInMsymbolHandle_nGHandle__v_;
-text: .text%__1cQPlaceholderTableJadd_entry6MiInMsymbolHandle_nGHandle__v_;
text: .text%__1cNCollectedHeapQresize_all_tlabs6M_v_;
text: .text%__1cUParallelScavengeHeapQresize_all_tlabs6M_v_;
text: .text%__1cWThreadLocalAllocBufferQresize_all_tlabs6F_v_;
@@ -3152,80 +1999,53 @@ text: .text%__1cYGCAdaptivePolicyCountersbBupdate_counters_from_policy6M_v_;
text: .text%__1cbAPSGCAdaptivePolicyCountersbBupdate_counters_from_policy6M_v_;
text: .text%__1cNmethodOopDescbEfast_exception_handler_bci_for6MnLKlassHandle_ipnGThread__i_;
text: .text%__1cSInterpreterRuntimebFexception_handler_for_exception6FpnKJavaThread_pnHoopDesc__pC_;
-text: .text%__1cNaddL_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cNaddL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cKstoreLNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cUPSAdaptiveSizePolicyZdecay_supplemental_growth6Mi_v_;
text: .text%__1cUPSAdaptiveSizePolicybPeden_increment_with_supplement_aligned_up6ML_L_;
-text: .text%__1cUPSAdaptiveSizePolicyQdecaying_gc_cost6kM_d_;
-text: .text%__1cUPSAdaptiveSizePolicybDcompute_generation_free_space6MLLLLLLLi_v_;
text: .text%__1cIPSOldGenMmax_gen_size6M_L_;
text: .text%__1cUPSAdaptiveSizePolicybHclear_generation_free_space_flags6M_v_;
text: .text%__1cUPSAdaptiveSizePolicyOeden_increment6MLI_L_;
-text: .text%__1cUPSAdaptiveSizePolicyVadjust_for_throughput6MipL1_v_;
text: .text%__1cQSystemDictionaryTload_instance_class6FnMsymbolHandle_nGHandle_pnGThread__nTinstanceKlassHandle__;
-text: .text%__1cUmembar_cpu_orderNodeHtwo_adr6kM_I_;
text: .text%__1cPjava_lang_ClassNcreate_mirror6FnLKlassHandle_pnGThread__pnHoopDesc__;
-text: .text%__1cLklassVtableRinitialize_vtable6MpnGThread__v_;
text: .text%__1cJAssemblerDjmp6MrnFLabel_nJrelocInfoJrelocType__v_;
text: .text%__1cPshrI_rReg_1NodeHtwo_adr6kM_I_;
text: .text%__1cRmulI_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cNandI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cOMachEpilogNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cLklassVtableVinitialize_from_super6MnLKlassHandle__i_;
text: .text%__1cIVMThreadHexecute6FpnMVM_Operation__v_;
text: .text%__1cLklassVtableOcopy_vtable_to6MpnLvtableEntry__v_;
text: .text%__1cQinstanceRefKlassZacquire_pending_list_lock6FpnJBasicLock__v_;
-text: .text%__1cQinstanceRefKlassbKrelease_and_notify_pending_list_lock6FipnJBasicLock__v_;
text: .text%__1cPVM_GC_OperationbKrelease_and_notify_pending_list_lock6M_v_;
-text: .text%__1cPVM_GC_OperationOskip_operation6kM_i_;
-text: .text%__1cPVM_GC_OperationNdoit_prologue6M_i_;
text: .text%__1cPVM_GC_OperationZacquire_pending_list_lock6M_v_;
text: .text%__1cMTypeKlassPtrFxmeet6kMpknEType__3_;
text: .text%__1cKReturnNodeEhash6kM_I_;
-text: .text%__1cHnmethodVis_dependent_on_entry6MpnMklassOopDesc_2pnNmethodOopDesc__i_;
-text: .text%__1cbDVM_ParallelGCFailedAllocation2t6MLiiI_v_;
text: .text%__1cLlog2_intptr6Fl_i_;
text: .text%__1cKKlass_vtbl2n6FLrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cFKlassVbase_create_klass_oop6FrnLKlassHandle_irknKKlass_vtbl_pnGThread__pnMklassOopDesc__;
text: .text%__1cFKlassRinitialize_supers6MpnMklassOopDesc_pnGThread__v_;
-text: .text%__1cMloadConPNodeFclone6kM_pnENode__;
-text: .text%__1cIimmPOperFclone6kM_pnIMachOper__;
text: .text%__1cFKlassRbase_create_klass6FrnLKlassHandle_irknKKlass_vtbl_pnGThread__1_;
text: .text%__1cSCallLeafDirectNodeKmethod_set6Ml_v_;
text: .text%__1cJcmpOpOperJnot_equal6kM_i_;
text: .text%__1cJloadLNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cRAbstractAssemblerbDgenerate_stack_overflow_check6Mi_v_;
-text: .text%__1cCosOunguard_memory6FpcL_i_;
text: .text%__1cNandL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLLShiftINodeJideal_reg6kM_I_;
-text: .text%__1cRsarI_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cGThreadRis_Watcher_thread6kM_i_;
text: .text%__1cJLoadSNodeJideal_reg6kM_I_;
-text: .text%__1cTconvL2I_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cIPhaseIFGISquareUp6M_v_;
text: .text%__1cPciObjectFactoryMvm_symbol_at6Fi_pnIciSymbol__;
text: .text%__1cCosJyield_all6Fi_v_;
-text: .text%__1cKciTypeFlowLStateVectorOmeet_exception6MpnPciInstanceKlass_pk1_i_;
text: .text%__1cCosbCmake_polling_page_unreadable6F_v_;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cSObjectSynchronizerVdeflate_idle_monitors6F_v_;
text: .text%__1cMCounterDecayFdecay6F_v_;
-text: .text%__1cCosOprotect_memory6FpcL_i_;
text: .text%__1cORuntimeServiceWrecord_safepoint_begin6F_v_;
text: .text%__1cORuntimeServicebDrecord_safepoint_synchronized6F_v_;
text: .text%__1cCosXserialize_thread_states6F_v_;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
-text: .text%__1cUSafepointSynchronizeRis_cleanup_needed6F_i_;
text: .text%__1cUSafepointSynchronizeQdo_cleanup_tasks6F_v_;
-text: .text%__1cRInlineCacheBufferIis_empty6F_i_;
text: .text%__1cRInlineCacheBufferUupdate_inline_caches6F_v_;
-text: .text%__1cTAbstractInterpreterRnotice_safepoints6F_v_;
text: .text%__1cNloadConP0NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cCosbAmake_polling_page_readable6F_v_;
text: .text%__1cORuntimeServiceUrecord_safepoint_end6F_v_;
text: .text%__1cUSafepointSynchronizeDend6F_v_;
-text: .text%__1cTAbstractInterpreterRignore_safepoints6F_v_;
text: .text%__1cQVMOperationQdDueueGinsert6MpnMVM_Operation_2_v_;
text: .text%__1cQVMOperationQdDueueGunlink6MpnMVM_Operation__v_;
text: .text%__1cMVM_OperationIevaluate6M_v_;
@@ -3235,38 +2055,20 @@ text: .text%__1cQVMOperationQdDueueOqueue_add_back6MipnMVM_Operation__v_;
text: .text%__1cGThreadMget_priority6Fpk0_nOThreadPriority__;
text: .text%__1cCosTget_native_priority6FpknGThread_pi_nIOSReturn__;
text: .text%__1cIVMThreadSevaluate_operation6MpnMVM_Operation__v_;
-text: .text%__1cQVMOperationQdDueueDadd6MpnMVM_Operation__i_;
text: .text%__1cSmembar_releaseNodeLbottom_type6kM_pknEType__;
text: .text%__1cCosGrandom6F_l_;
-text: .text%__1cNget_next_hash6F_l_: synchronizer.o;
-text: .text%__1cNJvmtiGCMarker2t6Mi_v_;
text: .text%__1cPVM_GC_OperationNdoit_epilogue6M_v_;
-text: .text%__1cKPSScavengeXshould_attempt_scavenge6F_i_;
-text: .text%__1cKPSScavengeQinvoke_no_policy6Fpi_i_;
text: .text%__1cPGlobalTLABStatsHpublish6M_v_;
text: .text%__1cUinitialize_hashtable6FppnLNameSigHash__v_;
-text: .text%__1cPclear_hashtable6FppnLNameSigHash__v_;
-text: .text%__1cQciBytecodeStreamUis_unresolved_string6kM_i_;
-text: .text%__1cFciEnvUis_unresolved_string6kMpnPciInstanceKlass_i_i_;
-text: .text%__1cFciEnvZis_unresolved_string_impl6kMpnNinstanceKlass_i_i_;
text: .text%__1cNtestP_regNodeFreloc6kM_i_;
-text: .text%__1cNSCMemProjNodeGis_CFG6kM_i_;
-text: .text%__1cKPSScavengeGinvoke6Fpi_v_;
-text: .text%__1cUParallelScavengeHeapTfailed_mem_allocate6MpiLii_pnIHeapWord__;
-text: .text%__1cbDVM_ParallelGCFailedAllocationEname6kM_pkc_;
text: .text%__1cbDVM_ParallelGCFailedAllocationEdoit6M_v_;
text: .text%__1cKDictionaryJnew_entry6MIpnMklassOopDesc_pnHoopDesc__pnPDictionaryEntry__;
text: .text%__1cKDictionaryJadd_klass6MnMsymbolHandle_nGHandle_nLKlassHandle__v_;
text: .text%__1cQSystemDictionaryRupdate_dictionary6FiIiInTinstanceKlassHandle_nGHandle_pnGThread__v_;
-text: .text%__1cQSystemDictionaryRcheck_constraints6FiInTinstanceKlassHandle_nGHandle_pnGThread__v_;
text: .text%__1cQSystemDictionaryQfind_placeholder6FiInMsymbolHandle_nGHandle__pnNsymbolOopDesc__;
-text: .text%__1cVLoaderConstraintTablePcheck_or_update6MnTinstanceKlassHandle_nGHandle_nMsymbolHandle__pkc_;
text: .text%__1cKoopFactoryXnew_permanent_byteArray6FipnGThread__pnQtypeArrayOopDesc__;
-text: .text%__1cNIdealLoopTreeTcheck_inner_safepts6MpnOPhaseIdealLoop__v_;
text: .text%__1cPsarI_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKciTypeFlowPflow_exceptions6MpnNGrowableArray4Cpn0AFBlock___pnNGrowableArray4CpnPciInstanceKlass___pn0ALStateVector__v_;
-text: .text%__1cIAndINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cIciObjectOis_null_object6kM_i_;
text: .text%__1cNIdealLoopTreeNDCE_loop_body6M_v_;
text: .text%__1cNprefetchwNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXmembar_release_lockNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -3277,10 +2079,8 @@ text: .text%__1cMPhaseChaitinMreset_uf_map6MI_v_;
text: .text%__1cMPhaseChaitinSbuild_ifg_physical6MpnMResourceArea__I_;
text: .text%__1cNPhaseCoalescePcoalesce_driver6M_v_;
text: .text%__1cNdecI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cSComputeAdapterInfoHdo_long6M_v_;
text: .text%__1cOGenerateOopMapJdo_astore6Mi_v_;
text: .text%__1cSTailCalljmpIndNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cIciObjectMhas_encoding6M_i_;
text: .text%__1cMrcx_RegIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cIMulLNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cHPhiNodeKmake_blank6FpnENode_2_p0_;
@@ -3291,11 +2091,7 @@ text: .text%JVM_GetMethodIxByteCodeLength;
text: .text%JVM_GetMethodIxByteCode;
text: .text%JVM_GetMethodIxExceptionIndexes;
text: .text%JVM_GetMethodIxExceptionsCount;
-text: .text%__1cENodeUdepends_only_on_test6kM_i_;
-text: .text%__1cXmembar_acquire_lockNodePoper_input_base6kM_I_;
text: .text%__1cOPhaseIdealLoopMdominated_by6MpnENode_2_v_;
-text: .text%__1cNGrowableArray4nLKlassHandle__Icontains6kMrkn0A__i_;
-text: .text%__1cLGCTaskQdDueue2t6Mi_v_;
text: .text%__1cNaddL_rRegNodeErule6kM_I_;
text: .text%__1cGGCTask2t6Mn0AEKindEkind__v_;
text: .text%__1cZSerialOldToYoungRootsTaskEname6M_pc_;
@@ -3312,7 +2108,6 @@ text: .text%__1cNMonitorSupplyHreserve6F_pnHMonitor__;
text: .text%__1cUWaitForBarrierGCTaskIwait_for6M_v_;
text: .text%__1cUWaitForBarrierGCTaskIdestruct6M_v_;
text: .text%__1cUWaitForBarrierGCTaskHdestroy6Fp0_v_;
-text: .text%__1cUWaitForBarrierGCTask2t6Mi_v_;
text: .text%__1cUWaitForBarrierGCTaskGcreate6F_p0_;
text: .text%__1cNBarrierGCTaskIdestruct6M_v_;
text: .text%__1cNBarrierGCTaskOdo_it_internal6MpnNGCTaskManager_I_v_;
@@ -3324,35 +2119,21 @@ text: .text%__1cGGCTaskIdestruct6M_v_;
text: .text%__1cSCardTableExtensionRscavenge_contents6MpnQObjectStartArray_pnMMutableSpace_pnIHeapWord_pnSPSPromotionManager__v_;
text: .text%__1cHThreadsZcreate_thread_roots_tasks6FpnLGCTaskQdDueue__v_;
text: .text%__1cKPSYoungGenLswap_spaces6M_v_;
-text: .text%__1cUPSAdaptiveSizePolicybPcompute_survivor_space_size_and_threshold6MiiL_i_;
text: .text%__1cUParallelScavengeHeapQresize_young_gen6MLL_v_;
-text: .text%__1cUPSAdaptiveSizePolicyPupdate_averages6MiLL_v_;
-text: .text%__1cKPSYoungGenRresize_generation6MLL_i_;
text: .text%__1cKPSYoungGenGresize6MLL_v_;
text: .text%__1cKPSYoungGenNresize_spaces6MLL_v_;
-text: .text%__1cHMatcherKcan_be_arg6Fi_i_;
-text: .text%__1cHMatcherQis_spillable_arg6Fi_i_;
-text: .text%__1cUPSAdaptiveSizePolicyOshould_full_GC6ML_i_;
text: .text%__1cSAdaptiveSizePolicybIupdate_minor_pause_young_estimator6Md_v_;
text: .text%__1cUPSAdaptiveSizePolicybGupdate_minor_pause_old_estimator6Md_v_;
text: .text%__1cNsubL_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cMStartOSRNodeGOpcode6kM_i_;
text: .text%__1cRsubI_rReg_memNodeErule6kM_I_;
-text: .text%__1cQinstanceRefKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cXmembar_acquire_lockNodeHtwo_adr6kM_I_;
text: .text%__1cNandI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cNcmovI_regNodePoper_input_base6kM_I_;
text: .text%__1cMURShiftINodeJideal_reg6kM_I_;
text: .text%__1cMorI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cLRShiftINodeJideal_reg6kM_I_;
-text: .text%__1cLklassItableRinitialize_itable6M_v_;
text: .text%__1cLklassVtableQfill_in_mirandas6Mri_v_;
text: .text%__1cRandI_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cSmembar_releaseNodePoper_input_base6kM_I_;
-text: .text%__1cFKlassZcan_be_primary_super_slow6kM_i_;
-text: .text%__1cJrRegLOperFclone6kM_pnIMachOper__;
text: .text%__1cFStateR_sub_Op_LoadKlass6MpknENode__v_;
-text: .text%__1cRmethodDataOopDescJis_mature6kM_i_;
text: .text%__1cJcmpOpOperEless6kM_i_;
text: .text%__1cFKlassWappend_to_sibling_list6M_v_;
text: .text%__1cOcompL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3361,39 +2142,23 @@ text: .text%__1cNloadKlassNodeFreloc6kM_i_;
text: .text%__1cRshrI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIAndINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cTjava_lang_ThrowableNset_backtrace6FpnHoopDesc_2_v_;
-text: .text%__1cPcmovI_reg_gNodeMideal_Opcode6kM_i_;
text: .text%__1cIAndINodeGmul_id6kM_pknEType__;
text: .text%__1cTClassLoadingServiceScompute_class_size6FpnNinstanceKlass__L_;
text: .text%__1cLklassVtableQget_num_mirandas6FpnMklassOopDesc_pnPobjArrayOopDesc_4_i_;
-text: .text%__1cIVerifierQrelax_verify_for6FpnHoopDesc__i_;
-text: .text%__1cLklassVtablebKcompute_vtable_size_and_num_mirandas6Fri1pnMklassOopDesc_pnPobjArrayOopDesc_nLAccessFlags_pnHoopDesc_pnNsymbolOopDesc_5_v_;
text: .text%__1cPClassFileParserbAparse_classfile_attributes6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cRaddI_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cVjava_lang_ClassLoaderRis_trusted_loader6FpnHoopDesc__i_;
-text: .text%__1cNmethodOopDescMsort_methods6FpnPobjArrayOopDesc_222_v_;
text: .text%__1cQSystemDictionaryQadd_to_hierarchy6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cPClassFileParserUcompute_oop_map_size6MnTinstanceKlassHandle_ii_i_;
-text: .text%__1cPClassFileParserOparseClassFile6MnMsymbolHandle_nGHandle_2r1pnGThread__nTinstanceKlassHandle__;
text: .text%__1cPClassFileParserVset_precomputed_flags6MnTinstanceKlassHandle__v_;
-text: .text%__1cPClassFileParserNfill_oop_maps6MnTinstanceKlassHandle_ii_v_;
text: .text%__1cPClassFileParserbDcompute_transitive_interfaces6MnTinstanceKlassHandle_nOobjArrayHandle_pnGThread__2_;
text: .text%__1cQSystemDictionaryVdefine_instance_class6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cPClassFileParserbCcheck_super_interface_access6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cPClassFileParserYcheck_super_class_access6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cPClassFileParserbBcheck_final_method_override6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cPClassFileParserQparse_interfaces6MnSconstantPoolHandle_nGHandle_2pnGThread__nOobjArrayHandle__;
text: .text%__1cPClassFileParserTparse_constant_pool6MpnGThread__nSconstantPoolHandle__;
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_;
-text: .text%__1cTClassLoadingServiceTnotify_class_loaded6FpnNinstanceKlass_i_v_;
text: .text%__1cLklassItableZsetup_itable_offset_table6FnTinstanceKlassHandle__v_;
-text: .text%__1cPClassFileParserMparse_fields6MnSconstantPoolHandle_ipnUFieldAllocationCount_pnOobjArrayHandle_pnGThread__nPtypeArrayHandle__;
-text: .text%__1cPClassFileParserNparse_methods6MnSconstantPoolHandle_ipnLAccessFlags_ppnPobjArrayOopDesc_66pnGThread__nOobjArrayHandle__;
text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nPtypeArrayHandle__;
text: .text%__1cPClassFileParserbBparse_constant_pool_entries6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cIUniverseTflush_dependents_on6FnTinstanceKlassHandle__v_;
-text: .text%__1cKoopFactoryQnew_constantPool6FipnGThread__pnTconstantPoolOopDesc__;
-text: .text%__1cRconstantPoolKlassIallocate6MipnGThread__pnTconstantPoolOopDesc__;
text: .text%__1cPClassFileStream2t6MpCipc_v_;
text: .text%__1cNinstanceKlassbBdo_local_static_fields_impl6FnTinstanceKlassHandle_pFpnPfieldDescriptor_pnGThread__v5_v_;
text: .text%__1cJCodeCachebKnumber_of_nmethods_with_dependencies6F_i_;
@@ -3402,9 +2167,6 @@ text: .text%__1cNinstanceKlassYcompute_secondary_supers6MipnGThread__pnPobjArray
text: .text%__1cNinstanceKlassSprocess_interfaces6MpnGThread__v_;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
text: .text%__1cNinstanceKlassQeager_initialize6MpnGThread__v_;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cQSystemDictionaryVresolve_super_or_fail6FnMsymbolHandle_1nGHandle_2pnGThread__pnMklassOopDesc__;
-text: .text%__1cNinstanceKlassZcan_be_primary_super_slow6kM_i_;
text: .text%__1cKTypeRawPtrEmake6FpC_pk0_;
text: .text%__1cScompI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cScompI_rReg_memNodePoper_input_base6kM_I_;
@@ -3413,11 +2175,8 @@ text: .text%__1cOMethodLivenessSpropagate_liveness6M_v_;
text: .text%__1cOMethodLivenessRinit_basic_blocks6M_v_;
text: .text%__1cOMethodLivenessNinit_gen_kill6M_v_;
text: .text%__1cOMethodLivenessQcompute_liveness6M_v_;
-text: .text%__1cFKlassRoop_is_methodData6kM_i_;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cQSystemDictionaryRload_shared_class6FnTinstanceKlassHandle_nGHandle_pnGThread__1_;
text: .text%__1cQSystemDictionaryRload_shared_class6FnMsymbolHandle_nGHandle_pnGThread__nTinstanceKlassHandle__;
text: .text%__1cQSystemDictionaryRfind_shared_class6FnMsymbolHandle__pnMklassOopDesc__;
@@ -3428,77 +2187,47 @@ text: .text%__1cRaddL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPClassFileParserbKparse_classfile_sourcefile_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cKciTypeFlowLStateVectorGdo_ldc6MpnQciBytecodeStream__v_;
text: .text%__1cMPhaseIterGVNIoptimize6M_v_;
-text: .text%__1cOrFlagsRegUOperFclone6kM_pnIMachOper__;
text: .text%__1cNmulL_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cMrdi_RegPOperJnum_edges6kM_I_;
text: .text%__1cRsalI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLklassVtableYadd_new_mirandas_to_list6FpnNGrowableArray4CpnNmethodOopDesc___pnPobjArrayOopDesc_6pnMklassOopDesc__v_;
text: .text%__1cQPackageHashtableMcompute_hash6Mpkci_I_;
-text: .text%__1cWconstantPoolCacheKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cRsalL_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cIConINodeHget_int6kMpi_i_;
text: .text%__1cJMarkSweepSFollowStackClosureHdo_void6M_v_;
-text: .text%__1cICallNodeRis_CallStaticJava6kM_pknSCallStaticJavaNode__;
text: .text%__1cLOpaque2NodeGOpcode6kM_i_;
text: .text%__1cOGenerateOopMapJppdupswap6Mipkc_v_;
-text: .text%__1cILoopNode2t6MpnENode_2_v_;
text: .text%__1cJloadBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPClassFileStreamGget_u86MpnGThread__X_;
text: .text%__1cKstoreINodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cTconvI2L_reg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cScompP_mem_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cIVerifierRverify_byte_codes6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cIRewriterHrewrite6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cIRewriterScompute_index_maps6FnSconstantPoolHandle_rpnIintArray_rpnIintStack__v_;
-text: .text%__1cIRewriterXnew_constant_pool_cache6FrnIintArray_pnGThread__nXconstantPoolCacheHandle__;
-text: .text%__1cIintArray2t6Mii_v_;
text: .text%__1cNinstanceKlassNrewrite_class6MpnGThread__v_;
-text: .text%__1cKoopFactoryVnew_constantPoolCache6FipnGThread__pnYconstantPoolCacheOopDesc__;
-text: .text%__1cNinstanceKlassWadd_loader_constraints6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cNinstanceKlassLverify_code6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cWconstantPoolCacheKlassIallocate6MipnGThread__pnYconstantPoolCacheOopDesc__;
text: .text%__1cYconstantPoolCacheOopDescKinitialize6MrnIintArray__v_;
text: .text%__1cFframeWsender_for_entry_frame6kMpnLRegisterMap__0_;
text: .text%__1cHPhiNodeDcmp6kMrknENode__I_;
-text: .text%__1cSmembar_releaseNodeHtwo_adr6kM_I_;
text: .text%__1cSObjectSynchronizerJnotifyall6FnGHandle_pnGThread__v_;
text: .text%__1cKoopFactoryWnew_permanent_intArray6FipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cPClassFileParserVparse_exception_table6MIInSconstantPoolHandle_pnGThread__nPtypeArrayHandle__;
-text: .text%__1cPClassFileParserbSparse_constant_pool_interfacemethodref_entry6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cWCountInterfacesClosureEdoit6MpnMklassOopDesc_i_v_;
text: .text%__1cMtlsLoadPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNmodI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cNtestL_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cRaddI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIConFNodeGOpcode6kM_i_;
text: .text%__1cLOpaque1NodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cTconvI2L_reg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cNSharedRuntimebOraw_exception_handler_for_return_address6FpC_1_;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
-text: .text%__1cOMethodLivenessKBasicBlockPmerge_exception6MnGBitMap__i_;
-text: .text%__1cTconvI2L_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIAndINodeKmul_opcode6kM_i_;
text: .text%__1cIAndINodeKadd_opcode6kM_i_;
-text: .text%__1cPcmovI_reg_gNodeJnum_opnds6kM_I_;
text: .text%__1cKCMoveINodeGOpcode6kM_i_;
-text: .text%__1cKarrayKlassMoop_is_array6kM_i_;
text: .text%__1cIRootNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPloadConUL32NodeHsize_of6kM_I_;
text: .text%__1cJAssemblerEandq6MpnMRegisterImpl_i_v_;
text: .text%__1cLClassLoaderOlookup_package6Fpkc_pnLPackageInfo__;
text: .text%__1cQPackageHashtableJget_entry6MiIpkcL_pnLPackageInfo__;
-text: .text%__1cIGraphKitRmerge_fast_memory6MpnENode_2i_v_;
text: .text%JVM_Clone;
text: .text%__1cLklassItableTcompute_itable_size6FnOobjArrayHandle__i_;
-text: .text%__1cUCallCompiledJavaNodeGOpcode6kM_i_;
text: .text%__1cPsalI_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKadd_n_reqs6FpnENode_1_v_: graphKit.o;
text: .text%__1cSTailCalljmpIndNodeMideal_Opcode6kM_i_;
text: .text%__1cQComputeCallStackJdo_double6M_v_;
text: .text%__1cKciTypeFlowLStateVectorMdo_putstatic6MpnQciBytecodeStream__v_;
-text: .text%__1cLClassLoaderLadd_package6Fpkci_i_;
text: .text%__1cIGraphKitHopt_iff6MpnENode_2_2_;
-text: .text%__1cIGraphKitOmake_merge_mem6MpnENode_22_v_;
text: .text%__1cGEventsDlog6FpkcE_v_;
text: .text%__1cMLinkResolverbHlookup_instance_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cSsafePoint_pollNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -3506,29 +2235,16 @@ text: .text%__1cNSharedRuntimebWnative_method_throw_unsatisfied_link_error_entry
text: .text%__1cPshrI_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFParseWensure_phis_everywhere6M_v_;
text: .text%__1cNsubL_rRegNodeErule6kM_I_;
-text: .text%__1cNIdealLoopTreeUiteration_split_impl6MpnOPhaseIdealLoop_rnJNode_List__v_;
-text: .text%__1cNIdealLoopTreebBpolicy_do_remove_empty_loop6MpnOPhaseIdealLoop__i_;
-text: .text%__1cNIdealLoopTreeOpolicy_peeling6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cIBoolNodeZis_counted_loop_exit_test6M_i_;
-text: .text%__1cJloadCNodeHtwo_adr6kM_I_;
text: .text%__1cUPSMarkSweepDecoratorVdestination_decorator6F_p0_;
-text: .text%__1cTGeneratePairingInfoRpossible_gc_point6MpnOBytecodeStream__i_;
-text: .text%__1cENode2n6FL_pv_;
text: .text%__1cSvframeStreamCommonZsecurity_get_caller_frame6Mi_v_;
text: .text%__1cKBufferBlob2n6FLI_pv_;
text: .text%__1cFParseKarray_load6MnJBasicType__v_;
-text: .text%__1cICodeBlob2t6Mpkcii_v_;
text: .text%__1cKBufferBlob2t6Mpkci_v_;
text: .text%__1cKBufferBlobGcreate6Fpkci_p0_;
text: .text%__1cKciTypeFlowLStateVectorLdo_putfield6MpnQciBytecodeStream__v_;
text: .text%__1cHnmethodNscope_desc_at6MpC_pnJScopeDesc__;
-text: .text%__1cHnmethodJcode_size6kM_i_;
-text: .text%__1cRtestP_reg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cRtestP_reg_memNodePoper_input_base6kM_I_;
text: .text%__1cOPhaseIdealLoopQset_subtree_ctrl6MpnENode__v_;
-text: .text%__1cOjmpLoopEndNodeJnum_opnds6kM_I_;
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_i_v_;
-text: .text%__1cRconstantPoolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNinstanceKlassbBcall_class_initializer_impl6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cNinstanceKlassRclass_initializer6M_pnNmethodOopDesc__;
text: .text%__1cNinstanceKlassWcall_class_initializer6MpnGThread__v_;
@@ -3536,19 +2252,11 @@ text: .text%__1cNinstanceKlassbOset_initialization_state_and_notify_impl6FnTinst
text: .text%__1cNinstanceKlassbJset_initialization_state_and_notify6Mn0AKClassState_pnGThread__v_;
text: .text%__1cNRelocIteratorTlocs_and_index_size6Fii_i_;
text: .text%__1cMrdi_RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cTStackWalkCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
-text: .text%__1cFTypeDCeq6kMpknEType__i_;
-text: .text%__1cJLoadCNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cNtestL_regNodeHtwo_adr6kM_I_;
text: .text%__1cTconvL2I_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRCompilationPolicybJreset_counter_for_back_branch_event6MnMmethodHandle__v_;
text: .text%__1cMrax_RegLOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cNmodI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cNSignatureInfoIdo_short6M_v_;
text: .text%JVM_GetFieldIxModifiers;
-text: .text%__1cNsubL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cNandL_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cNsubL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cTMachCallRuntimeNodePret_addr_offset6M_i_;
text: .text%__1cOcompiledVFrameEcode6kM_pnHnmethod__;
text: .text%__1cICodeHeapTmark_segmap_as_used6MLL_v_;
@@ -3563,21 +2271,17 @@ text: .text%__1cJStartNodeHsize_of6kM_I_;
text: .text%__1cILRG_List2t6MI_v_;
text: .text%__1cHMatcherLreturn_addr6kM_i_;
text: .text%__1cSindIndexOffsetOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cGBundlePinitialize_nops6FppnIMachNode__v_;
text: .text%__1cOMachPrologNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cHMemNodeHsize_of6kM_I_;
text: .text%__1cNSignatureInfoIdo_float6M_v_;
text: .text%__1cRaddI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRmulI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cFParseNadd_safepoint6M_v_;
text: .text%__1cFStateT_sub_Op_CheckCastPP6MpknENode__v_;
text: .text%__1cRaddI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOCompiledRFrameEinit6M_v_;
text: .text%__1cGvframeDtop6kM_p0_;
-text: .text%__1cPsarI_rReg_1NodeJnum_opnds6kM_I_;
text: .text%__1cRmethodDataOopDescYcompute_extra_data_count6Fii_i_;
text: .text%__1cPcheckCastPPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cIciObjectIis_klass6M_i_;
text: .text%__1cFStateM_sub_Op_SubI6MpknENode__v_;
text: .text%__1cRxorI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cNloadConP0NodeHsize_of6kM_I_;
@@ -3585,76 +2289,42 @@ text: .text%__1cJAssemblerEaddq6MpnMRegisterImpl_i_v_;
text: .text%__1cJAssemblerEsubq6MpnMRegisterImpl_2_v_;
text: .text%__1cXJNI_ArgumentPusherVaArgHiterate6ML_v_;
text: .text%__1cTresource_free_bytes6FpcL_v_;
-text: .text%__1cNSingletonBlobMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
text: .text%__1cUPSMarkSweepDecoratorPadjust_pointers6M_v_;
-text: .text%__1cUPSMarkSweepDecoratorHcompact6Mi_v_;
text: .text%__1cUPSMarkSweepDecoratorKprecompact6M_v_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeMideal_Opcode6kM_i_;
text: .text%__1cRindIndexScaleOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cRindIndexScaleOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cPCountedLoopNodeHsize_of6kM_I_;
text: .text%__1cENodeHrm_prec6MI_v_;
-text: .text%__1cHAddNodeGis_Add6kM_pk0_;
text: .text%__1cHCompilebAvarargs_C_out_slots_killed6kM_I_;
-text: .text%__1cTMachCallRuntimeNodeSis_MachCallRuntime6M_p0_;
-text: .text%__1cMrax_RegIOperJnum_edges6kM_I_;
text: .text%__1cICodeHeapLmerge_right6MpnJFreeBlock__v_;
-text: .text%__1cNaddI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNmulL_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cWandI_rReg_imm65535NodeMideal_Opcode6kM_i_;
-text: .text%__1cKReturnNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cRjmpConU_shortNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cLjmpConUNodeUshort_branch_version6M_pnIMachNode__;
text: .text%__1cRjmpConU_shortNodeJlabel_set6MrnFLabel_I_v_;
-text: .text%__1cRjmpConU_shortNodeJis_Branch6kM_I_;
-text: .text%__1cKcmpOpUOperFclone6kM_pnIMachOper__;
-text: .text%__1cRtestP_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cFMutexbLwait_for_lock_blocking_implementation6MpnKJavaThread__v_;
-text: .text%__1cIregDOperJnum_edges6kM_I_;
-text: .text%__1cPciInstanceKlassTis_java_lang_Object6M_i_;
text: .text%__1cSciExceptionHandlerLcatch_klass6M_pnPciInstanceKlass__;
text: .text%__1cSindIndexOffsetOperNconstant_disp6kM_i_;
text: .text%__1cIAndLNodeGadd_id6kM_pknEType__;
text: .text%__1cLConvL2INodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cQleaPIdxScaleNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIAndLNodeImul_ring6kMpknEType_3_3_;
-text: .text%__1cRaddP_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMloadConLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHMatcherQpost_fast_unlock6FpknENode__i_;
text: .text%__1cFStateV_sub_Op_MemBarRelease6MpknENode__v_;
text: .text%__1cOleaPIdxOffNodeMideal_Opcode6kM_i_;
-text: .text%__1cILoopNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cScompI_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cScompI_rReg_memNodeJnum_opnds6kM_I_;
text: .text%__1cJAssemblerDorq6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cScompI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cKJNIHandlesOdestroy_global6FpnI_jobject_i_v_;
text: .text%__1cPcmpFastLockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXmembar_release_lockNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTcompareAndSwapLNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNmethodOopDescTset_native_function6MpC_v_;
text: .text%__1cKciTypeFlowLStateVectorJhalf_type6FpnGciType__3_;
-text: .text%__1cQmerge_point_safe6FpnENode__i_: loopopts.o;
-text: .text%__1cRaddL_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cHMatcherUc_calling_convention6FpnLOptoRegPair_I_v_;
-text: .text%__1cPCallRuntimeNodeScalling_convention6kMpnLOptoRegPair_I_v_;
-text: .text%__1cUjni_invoke_nonstatic6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cQSystemDictionaryRnumber_of_classes6F_i_;
text: .text%__1cNaddL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNxorI_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cWCallLeafNoFPDirectNodePoper_input_base6kM_I_;
-text: .text%__1cENodeHget_int6kMpi_i_;
-text: .text%__1cPCountedLoopNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cJLoadFNodeGOpcode6kM_i_;
text: .text%__1cQSystemDictionarybBresolve_array_class_or_null6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
-text: .text%__1cNincI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cPClassFileParserbEparse_constant_pool_long_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cPcmovI_reg_lNodePoper_input_base6kM_I_;
text: .text%__1cJAssemblerEleaq6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cNinstanceKlassQarray_klass_impl6MipnGThread__pnMklassOopDesc__;
text: .text%__1cJloadINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHTypePtrFxmeet6kMpknEType__3_;
-text: .text%__1cNprefetchwNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cFKlassTarray_klass_or_null6M_pnMklassOopDesc__;
text: .text%__1cIPhaseIFGYCompute_Effective_Degree6M_v_;
text: .text%__1cbCfind_class_from_class_loader6FpnHJNIEnv__nMsymbolHandle_CnGHandle_3CpnGThread__pnH_jclass__;
@@ -3667,46 +2337,33 @@ text: .text%__1cScompU_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cScompU_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cRNativeGeneralJumpQjump_destination6kM_pC_;
text: .text%__1cLRethrowNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cWCallLeafNoFPDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_;
-text: .text%__1cSvframeStreamCommonYfill_from_compiled_frame6MpnHnmethod_i_v_;
text: .text%__1cNandL_rRegNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cHnmethodQis_native_method6kM_i_;
text: .text%__1cTleaPIdxScaleOffNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNmulL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cODataRelocationGoffset6M_i_;
text: .text%__1cODataRelocationJset_value6MpC_v_;
text: .text%__1cKRelocationRpd_set_data_value6MpCl_v_;
text: .text%__1cLOptoRuntimeJstub_name6FpC_pkc_;
-text: .text%__1cIMulINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cFStateO_sub_Op_StoreB6MpknENode__v_;
text: .text%__1cRaddL_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cIregFOperJnum_edges6kM_I_;
text: .text%__1cRandI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIRootNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cIRootNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOleaPIdxOffNodePoper_input_base6kM_I_;
text: .text%__1cJcmpOpOperKless_equal6kM_i_;
text: .text%__1cNmethodOopDescVset_signature_handler6MpC_v_;
text: .text%__1cIMulLNodeGmul_id6kM_pknEType__;
-text: .text%__1cMrep_stosNodeHtwo_adr6kM_I_;
text: .text%__1cHMemNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cNsubI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHMemNodeScalculate_adr_type6FpknEType_pknHTypePtr__6_;
text: .text%__1cRmulI_rReg_immNodeErule6kM_I_;
text: .text%__1cURethrowExceptionNodePoper_input_base6kM_I_;
text: .text%__1cNaddP_rRegNodePoper_input_base6kM_I_;
text: .text%__1cFStateP_sub_Op_RShiftI6MpknENode__v_;
-text: .text%__1cKstoreLNodeHtwo_adr6kM_I_;
text: .text%__1cNnegI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodePoper_input_base6kM_I_;
text: .text%__1cbFloadConL_0x6666666666666667NodeErule6kM_I_;
text: .text%__1cNSharedRuntimeXfind_callee_info_helper6FpnKJavaThread_rnMvframeStream_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
-text: .text%__1cIGraphKitNstore_barrier6MpnENode_22_v_;
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%__1cNloadKlassNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cSmembar_acquireNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cMoutputStreamMdo_vsnprintf6FpcLpkcpnR__va_list_element_irL_3_;
text: .text%__1cMoutputStreamFprint6MpkcE_v_;
text: .text%__1cMURShiftLNodeJideal_reg6kM_I_;
text: .text%__1cZPhaseConservativeCoalesce2t6MrnMPhaseChaitin__v_;
@@ -3716,58 +2373,36 @@ text: .text%__1cMPhaseChaitinZcompress_uf_map_for_nodes6M_v_;
text: .text%__1cZPhaseConservativeCoalesceGverify6M_v_;
text: .text%__1cQComputeCallStackIdo_short6M_v_;
text: .text%__1cNFingerprinterHdo_long6M_v_;
-text: .text%__1cIciMethodRinstructions_size6M_i_;
text: .text%__1cSsafePoint_pollNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNloadConL0NodeLbottom_type6kM_pknEType__;
-text: .text%__1cJimmL0OperJconstantL6kM_x_;
-text: .text%__1cWandI_rReg_imm65535NodePoper_input_base6kM_I_;
text: .text%__1cIAndINodeJideal_reg6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerKverify_oop6MpnMRegisterImpl_nITosState__v_;
-text: .text%__1cYexternal_word_RelocationJpack_data6M_i_;
-text: .text%__1cJimmP0OperFclone6kM_pnIMachOper__;
-text: .text%__1cKRelocationYruntime_address_to_index6FpC_l_;
text: .text%__1cOemit_d32_reloc6FrnKCodeBuffer_inJrelocInfoJrelocType_i_v_;
text: .text%__1cYexternal_word_RelocationEtype6M_nJrelocInfoJrelocType__;
-text: .text%__1cRsalL_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cLPhaseValues2T5B6M_v_;
text: .text%__1cNstoreImmBNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateQ_sub_Op_URShiftL6MpknENode__v_;
text: .text%__1cJNode_ListEyank6MpnENode__v_;
-text: .text%__1cNxorI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNxorI_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cJAssemblerEmovq6MpnMRegisterImpl_l_v_;
text: .text%jni_ExceptionCheck: jni.o;
text: .text%__1cMFastLockNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cTCallDynamicJavaNodeEhash6kM_I_;
-text: .text%__1cMalloc_object6FpnH_jclass_pnGThread__pnPinstanceOopDesc__: jni.o;
-text: .text%__1cRshrL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIXorINodeLbottom_type6kM_pknEType__;
text: .text%__1cJAssemblerEsubq6MpnMRegisterImpl_i_v_;
text: .text%__1cNloadConL0NodeMideal_Opcode6kM_i_;
-text: .text%__1cLPcDescCacheKpc_desc_at6kMpnHnmethod_pC_pnGPcDesc__;
text: .text%__1cKBlock_ListGinsert6MIpnFBlock__v_;
-text: .text%__1cKtype2basic6FpknEType__nJBasicType__;
-text: .text%__1cQleaPIdxScaleNodeLbottom_type6kM_pknEType__;
text: .text%__1cKklassKlassOklass_oop_size6kM_i_;
-text: .text%__1cIGraphKitOnull_check_oop6MpnKRegionNode_pnENode_i_4_;
-text: .text%__1cJloadCNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRxorI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cKTypeAryPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
text: .text%__1cKTypeRawPtrEmake6FnHTypePtrDPTR__pk0_;
text: .text%__1cJCodeCacheEfree6FpnICodeBlob__v_;
text: .text%__1cICodeHeapPadd_to_freelist6MpnJHeapBlock__v_;
text: .text%__1cICodeHeapKdeallocate6Mpv_v_;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cJVectorSetGslamin6Mrk0_v_;
text: .text%__1cFStateQ_sub_Op_URShiftI6MpknENode__v_;
text: .text%__1cScompI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRaddI_rReg_memNodeErule6kM_I_;
-text: .text%__1cYexternal_word_RelocationWfix_relocation_at_move6Ml_v_;
text: .text%__1cKRelocationYpd_get_address_from_code6M_pC_;
text: .text%__1cRxorI_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cXJNI_ArgumentPusherVaArgIget_long6M_v_;
text: .text%__1cNandL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOCompilerOracleMshould_print6FnMmethodHandle__i_;
text: .text%__1cNstoreImmBNodeFreloc6kM_i_;
text: .text%__1cJcmpOpOperNgreater_equal6kM_i_;
text: .text%__1cKBufferBlobEfree6Fp0_v_;
@@ -3776,12 +2411,9 @@ text: .text%__1cKNativeCallXset_destination_mt_safe6MpC_v_;
text: .text%__1cOGenerateOopMapIppop_any6Mi_v_;
text: .text%__1cKNode_ArrayFclear6M_v_;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc__pc_;
-text: .text%__1cJAssemblerFpushq6MpnMRegisterImpl__v_;
-text: .text%__1cIRootNodeHis_Root6M_p0_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cIJumpDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_;
text: .text%__1cRsalL_rReg_immNodeErule6kM_I_;
-text: .text%__1cPstoreImmI16NodeHtwo_adr6kM_I_;
text: .text%__1cQjava_lang_StringOchar_converter6FnGHandle_HHpnGThread__1_;
text: .text%jni_NewObject: jni.o;
text: .text%__1cNaddP_rRegNodeMideal_Opcode6kM_i_;
@@ -3790,38 +2422,25 @@ text: .text%__1cFciEnvKcompile_id6M_I_;
text: .text%__1cOPhaseIdealLoopNreorg_offsets6MpnNIdealLoopTree__v_;
text: .text%__1cNtestL_regNodeErule6kM_I_;
text: .text%__1cLOptoRuntimebAcomplete_monitor_exit_Type6F_pknITypeFunc__;
-text: .text%__1cNstoreImmINodeHtwo_adr6kM_I_;
text: .text%__1cIGraphKitNshared_unlock6MpnENode_2_v_;
text: .text%__1cNSafePointNodeLpop_monitor6M_v_;
text: .text%__1cRsarI_rReg_immNodeErule6kM_I_;
-text: .text%__1cNtestL_regNodePoper_input_base6kM_I_;
text: .text%__1cRsarL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMindirectOperNbase_position6kM_i_;
text: .text%__1cMindirectOperNconstant_disp6kM_i_;
text: .text%__1cMTailCallNodeKmatch_edge6kMI_I_;
text: .text%__1cKciTypeFlowLStateVectorGdo_new6MpnQciBytecodeStream__v_;
-text: .text%__1cHMatcherPprior_fast_lock6FpknENode__i_;
text: .text%__1cGIfNodeMdominated_by6MpnENode_pnMPhaseIterGVN__v_;
text: .text%__1cFStateV_sub_Op_MemBarAcquire6MpknENode__v_;
text: .text%__1cNSharedRuntimeQfind_callee_info6FpnKJavaThread_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
text: .text%__1cFKlassDLCA6Mp0_1_;
-text: .text%__1cRtestP_reg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cRtestP_reg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cRtestP_reg_memNodeJnum_opnds6kM_I_;
text: .text%__1cHciKlassVleast_common_ancestor6Mp0_1_;
-text: .text%__1cUmembar_cpu_orderNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cUmembar_cpu_orderNodeLbottom_type6kM_pknEType__;
-text: .text%__1cTcompareAndSwapLNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cNSCMemProjNodeLbottom_type6kM_pknEType__;
-text: .text%__1cTcompareAndSwapLNodeHtwo_adr6kM_I_;
text: .text%__1cJScopeDescGsender6kM_p0_;
text: .text%__1cSindIndexOffsetOperOindex_position6kM_i_;
text: .text%__1cSindIndexOffsetOperNbase_position6kM_i_;
-text: .text%__1cNSharedRuntimeOresolve_helper6FpnKJavaThread_iipnGThread__nMmethodHandle__;
text: .text%__1cNSafePointNodeMpush_monitor6MpknMFastLockNode__v_;
-text: .text%__1cNSharedRuntimeSresolve_sub_helper6FpnKJavaThread_iipnGThread__nMmethodHandle__;
text: .text%__1cOcompiledVFrameGsender6kM_pnGvframe__;
-text: .text%__1cNtestU_regNodeHtwo_adr6kM_I_;
text: .text%__1cTciConstantPoolCache2t6MpnFArena_i_v_;
text: .text%__1cNGrowableArray4Cpv_2t6MpnFArena_iirk0_v_;
text: .text%__1cKstoreFNodePoper_input_base6kM_I_;
@@ -3832,13 +2451,11 @@ text: .text%__1cOMachEpilogNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNcmovI_regNodeMideal_Opcode6kM_i_;
text: .text%__1cKCompiledIC2t6MpnKNativeCall__v_;
text: .text%__1cFStateN_sub_Op_LoadL6MpknENode__v_;
-text: .text%__1cNmodI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cSCallLeafDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNSignatureInfoHdo_char6M_v_;
text: .text%__1cNtestU_regNodeMideal_Opcode6kM_i_;
text: .text%__1cFStateQ_sub_Op_CallLeaf6MpknENode__v_;
text: .text%__1cRAbstractAssemblerFflush6M_v_;
-text: .text%__1cJloadLNodeIpeephole6MpnFBlock_ipnNPhaseRegAlloc_ri_pnIMachNode__;
text: .text%__1cJloadLNodeFreloc6kM_i_;
text: .text%__1cSCallLeafDirectNodeFreloc6kM_i_;
text: .text%__1cIGraphKitNgen_checkcast6MpnENode_2p2_2_;
@@ -3847,50 +2464,31 @@ text: .text%__1cNsubL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cXmembar_release_lockNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cJAssemblerEmovq6MpnMRegisterImpl_2_v_;
text: .text%__1cRmulL_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cRsubI_rReg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cFframeRretrieve_receiver6MpnLRegisterMap__pnHoopDesc__;
text: .text%__1cPBytecode_invokeNstatic_target6MpnGThread__nMmethodHandle__;
text: .text%jni_NewGlobalRef: jni.o;
-text: .text%__1cKciTypeFlowFRangeSprivate_copy_count6kMpn0AGJsrSet__i_;
-text: .text%__1cOleaPIdxOffNodeJnum_opnds6kM_I_;
text: .text%__1cOPhaseIdealLoopLdo_split_if6MpnENode__v_;
text: .text%__1cNandI_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cHOrINodeGadd_id6kM_pknEType__;
text: .text%__1cIPhaseCFGOinsert_goto_at6MII_v_;
-text: .text%__1cOPhaseIdealLoop2t6MrnMPhaseIterGVN_pk0i_v_;
text: .text%__1cOPhaseIdealLoopPbuild_loop_tree6M_v_;
text: .text%__1cRsubI_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMinINodeLbottom_type6kM_pknEType__;
-text: .text%__1cOjmpLoopEndNodeHtwo_adr6kM_I_;
text: .text%__1cJLoadBNodeJideal_reg6kM_I_;
-text: .text%__1cNnegI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cFStateS_sub_Op_FastUnlock6MpknENode__v_;
text: .text%__1cXmembar_release_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRcmpFastUnlockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMVirtualSpaceNreserved_size6kM_L_;
text: .text%__1cScompU_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRsarI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKStoreFNodeGOpcode6kM_i_;
-text: .text%__1cLCastP2LNodeJideal_reg6kM_I_;
text: .text%__1cPcmovI_reg_gNodeErule6kM_I_;
-text: .text%__1cFStateP_sub_Op_CastP2L6MpknENode__v_;
-text: .text%__1cScompU_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cScompU_rReg_memNodeJnum_opnds6kM_I_;
text: .text%__1cScompU_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cMLinkResolverOresolve_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cWCallLeafNoFPDirectNodeRis_safepoint_node6kM_i_;
text: .text%__1cQjava_lang_ThreadRset_thread_status6FpnHoopDesc_n0AMThreadStatus__v_;
text: .text%__1cWCallLeafNoFPDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJAssemblerDjcc6Mn0AJCondition_pCnJrelocInfoJrelocType__v_;
text: .text%__1cKstoreFNodeMideal_Opcode6kM_i_;
text: .text%__1cIimmFOperJconstantF6kM_f_;
-text: .text%__1cNcmovI_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cKTypeOopPtrSmake_from_constant6FpnIciObject__pk0_;
-text: .text%__1cNcmovI_regNodeJnum_opnds6kM_I_;
-text: .text%__1cJAssemblerEmovq6MnHAddress_i_v_;
-text: .text%__1cIciObjectJis_method6M_i_;
-text: .text%__1cIciObjectOis_method_data6M_i_;
text: .text%__1cIDivINodeLbottom_type6kM_pknEType__;
text: .text%__1cHOrINodeJideal_reg6kM_I_;
text: .text%__1cNcmovI_regNodeMcisc_operand6kM_i_;
@@ -3900,63 +2498,40 @@ text: .text%__1cNinstanceKlassUfind_interface_field6kMpnNsymbolOopDesc_2pnPfield
text: .text%__1cJloadFNodeMideal_Opcode6kM_i_;
text: .text%__1cbFunnecessary_membar_volatileNodeMideal_Opcode6kM_i_;
text: .text%__1cSmembar_acquireNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cIAndLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cIAndLNodeKadd_opcode6kM_i_;
text: .text%__1cFStateO_sub_Op_StoreC6MpknENode__v_;
text: .text%__1cIAndLNodeKmul_opcode6kM_i_;
text: .text%__1cRaddL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMrep_stosNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXmembar_acquire_lockNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cFParseJdo_ifnull6MnIBoolTestEmask__v_;
-text: .text%__1cMtlsLoadPNodeHtwo_adr6kM_I_;
-text: .text%__1cIGraphKitOset_pair_local6MipnENode__v_;
-text: .text%__1cJLoadCNodeJideal_reg6kM_I_;
-text: .text%__1cPcmovI_reg_lNodeMideal_Opcode6kM_i_;
-text: .text%__1cJCodeCacheXmark_for_deoptimization6FpnMklassOopDesc__i_;
text: .text%__1cMrcx_RegIOperEtype6kM_pknEType__;
-text: .text%__1cLConvL2INodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOPhaseIdealLoopKDominators6M_v_;
text: .text%__1cHNTarjanDDFS6Fp0rnJVectorSet_pnOPhaseIdealLoop_pI_i_;
text: .text%__1cHNTarjanIsetdepth6MIpI_v_;
text: .text%__1cIMulLNodeKmul_opcode6kM_i_;
text: .text%__1cIMulLNodeKadd_opcode6kM_i_;
text: .text%jni_SetLongField: jni.o;
-text: .text%__1cOPhaseIdealLoopQbuild_loop_early6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
-text: .text%__1cOPhaseIdealLoopPbuild_loop_late6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
text: .text%__1cOPhaseIdealLoopRinit_dom_lca_tags6M_v_;
text: .text%__1cKstoreLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLPcDescCacheLadd_pc_desc6MpnGPcDesc__v_;
-text: .text%__1cScheck_phi_clipping6FpnHPhiNode_rpnHConNode_rI45rpnENode_5_i_: cfgnode.o;
text: .text%__1cJloadSNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cTconvI2L_reg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cRsubI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMloadConFNodeMideal_Opcode6kM_i_;
-text: .text%__1cTC2IAdapterGeneratorUgenerate_c2i_adapter6FnMmethodHandle__pnKC2IAdapter__;
-text: .text%__1cKCompiledICIis_clean6kM_i_;
text: .text%__1cNaddP_rRegNodeErule6kM_I_;
-text: .text%__1cRmulL_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cNmethodOopDescVclear_native_function6M_v_;
-text: .text%__1cICodeBlobOis_java_method6kM_i_;
-text: .text%__1cKVtableStubSpd_code_size_limit6Fi_i_;
-text: .text%__1cIUniverseWis_out_of_memory_error6FnGHandle__i_;
text: .text%__1cTjava_lang_ThrowableTfill_in_stack_trace6FnGHandle_pnGThread__v_;
text: .text%__1cTjava_lang_ThrowableQclear_stacktrace6FpnHoopDesc__v_;
text: .text%__1cKJavaThreadGactive6F_p0_;
text: .text%JVM_FillInStackTrace;
text: .text%__1cTjava_lang_ThrowableTfill_in_stack_trace6FnGHandle__v_;
text: .text%__1cSInterpreterRuntimePset_bcp_and_mdp6FpCpnKJavaThread__v_;
-text: .text%__1cKJavaThreadNreguard_stack6MpC_i_;
text: .text%__1cFframeZinterpreter_frame_set_bcp6MpC_v_;
text: .text%jni_DeleteGlobalRef: jni.o;
-text: .text%__1cKCompiledICZcompute_monomorphic_entry6FnMmethodHandle_nLKlassHandle_iirnOCompiledICInfo_pnGThread__v_;
-text: .text%__1cNGrowableArray4nMmethodHandle__Icontains6kMrkn0A__i_;
text: .text%__1cLOpaque2NodeEhash6kM_I_;
text: .text%__1cICodeHeapLfirst_block6kM_pnJHeapBlock__;
text: .text%__1cJCodeCacheFfirst6F_pnICodeBlob__;
-text: .text%__1cJBytecodesRspecial_length_at6FpC_i_;
text: .text%__1cFParseGdo_new6M_v_;
text: .text%__1cFParseFBlockMadd_new_path6M_i_;
-text: .text%__1cLklassItablebFinitialize_itable_for_interface6MpnMklassOopDesc_pnRitableMethodEntry__v_;
text: .text%__1cJimmI0OperJnum_edges6kM_I_;
text: .text%__1cRmulI_rReg_immNodeMcisc_operand6kM_i_;
text: .text%__1cICodeHeapMmax_capacity6kM_L_;
@@ -3974,103 +2549,65 @@ text: .text%__1cNobjArrayKlassIallocate6MipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cRmulI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHciKlassGloader6M_pnHoopDesc__;
text: .text%__1cIConDNodeGOpcode6kM_i_;
-text: .text%__1cNandI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cLRethrowNodeEhash6kM_I_;
-text: .text%__1cTC2IAdapterGeneratorSstd_verified_entry6FnMmethodHandle__pC_;
text: .text%__1cIDivLNodeGOpcode6kM_i_;
-text: .text%__1cNandI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cGThreadOis_Java_thread6kM_i_;
text: .text%__1cSmembar_releaseNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cHMatcherQinline_cache_reg6F_i_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeJnum_opnds6kM_I_;
text: .text%__1cbBInterpreterCodeletInterfaceRcode_size_to_size6kMi_i_;
text: .text%__1cbBInterpreterCodeletInterfaceKinitialize6MpnEStub_i_v_;
text: .text%jni_NewLocalRef: jni.o;
text: .text%__1cSSetupItableClosureEdoit6MpnMklassOopDesc_i_v_;
-text: .text%__1cLOptoRuntimebAresolve_opt_virtual_call_C6FpnKJavaThread__pC_;
text: .text%__1cPstoreImmI16NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLRShiftLNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIemit_d166FrnKCodeBuffer_i_v_;
text: .text%__1cKimmI16OperIconstant6kM_l_;
text: .text%__1cPClassFileParserbNparse_classfile_inner_classes_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__H_;
text: .text%__1cMloadConFNodeLbottom_type6kM_pknEType__;
-text: .text%__1cENodeMis_CatchProj6kM_pknNCatchProjNode__;
text: .text%__1cJCodeCacheNalive_nmethod6FpnICodeBlob__pnHnmethod__;
text: .text%__1cJAssemblerGmovzbl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cIVMThreadMis_VM_thread6kM_i_;
-text: .text%__1cPcmovI_reg_lNodeJnum_opnds6kM_I_;
text: .text%__1cMloadConLNodeHsize_of6kM_I_;
text: .text%__1cOMacroAssemblerSload_unsigned_byte6MpnMRegisterImpl_nHAddress__i_;
-text: .text%__1cTconvI2L_reg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNaddL_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cKstoreFNodeJnum_opnds6kM_I_;
text: .text%__1cNaddL_rRegNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cSComputeAdapterInfoJdo_double6M_v_;
-text: .text%__1cLimmUL32OperFclone6kM_pnIMachOper__;
-text: .text%__1cPloadConUL32NodeFclone6kM_pnENode__;
text: .text%__1cLLShiftLNodeJideal_reg6kM_I_;
-text: .text%__1cMtlsLoadPNodePoper_input_base6kM_I_;
text: .text%__1cPlocal_vsnprintf6FpcLpkcpnR__va_list_element__i_;
-text: .text%__1cSComputeAdapterInfoHdo_bool6M_v_;
text: .text%jio_vsnprintf;
-text: .text%__1cURethrowExceptionNodeGpinned6kM_i_;
text: .text%__1cNstoreImmINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIAndLNodeJideal_reg6kM_I_;
-text: .text%__1cURethrowExceptionNodeHtwo_adr6kM_I_;
text: .text%__1cNDispatchTableJset_entry6MirnKEntryPoint__v_;
text: .text%jio_snprintf;
text: .text%__1cNSafePointNodeKgrow_stack6MpnIJVMState_I_v_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeErule6kM_I_;
text: .text%__1cURethrowExceptionNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRsarL_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cTcompareAndSwapLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_GetCPMethodModifiers;
text: .text%__1cFStateR_sub_Op_SafePoint6MpknENode__v_;
-text: .text%__1cSsafePoint_pollNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cOCompilerOraclePshould_break_at6FnMmethodHandle__i_;
-text: .text%__1cJloadCNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cQorI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cPsarI_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLRShiftLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cKReturnNode2t6MpnENode_2222_v_;
text: .text%__1cKReturnNodeJideal_reg6kM_I_;
text: .text%__1cNinstanceKlassPadd_implementor6MpnMklassOopDesc__v_;
text: .text%__1cRPrivilegedElementKinitialize6MpnMvframeStream_pnHoopDesc_p0pnGThread__v_;
text: .text%JVM_DoPrivileged;
text: .text%__1cOGenerateOopMapXreplace_all_CTS_matches6MnNCellTypeState_1_v_;
-text: .text%__1cNIdealLoopTreeMis_loop_exit6kMpnENode_pnOPhaseIdealLoop__2_;
text: .text%__1cPpoll_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cSsafePoint_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSsafePoint_pollNodeFreloc6kM_i_;
text: .text%__1cLStrCompNodeGOpcode6kM_i_;
text: .text%__1cJOopMapSet2t6M_v_;
-text: .text%__1cKloadUBNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cNobjArrayKlassOmulti_allocate6MipiipnGThread__pnHoopDesc__;
text: .text%__1cKstoreCNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cENodeGOpcode6kM_i_;
-text: .text%__1cOLibraryCallKitNtry_to_inline6M_i_;
text: .text%__1cNFingerprinterHdo_bool6M_v_;
text: .text%__1cOPhaseIdealLoopUsplit_if_with_blocks6MrnJVectorSet_rnKNode_Stack__v_;
text: .text%__1cNmethodOopDescbDbuild_interpreter_method_data6FnMmethodHandle_pnGThread__v_;
text: .text%__1cQLibraryIntrinsicIgenerate6MpnIJVMState__2_;
text: .text%__1cLOopRecorderIoop_size6M_i_;
-text: .text%__1cHnmethodOexception_size6kM_i_;
-text: .text%__1cHnmethodPscopes_pcs_size6kM_i_;
text: .text%__1cYDebugInformationRecorderIpcs_size6M_i_;
text: .text%__1cYDebugInformationRecorderJdata_size6M_i_;
-text: .text%__1cHnmethodQscopes_data_size6kM_i_;
-text: .text%__1cHnmethodJstub_size6kM_i_;
text: .text%__1cHnmethodKtotal_size6kM_i_;
text: .text%__1cNtestU_regNodeErule6kM_I_;
text: .text%__1cJOopMapSetJheap_size6kM_i_;
-text: .text%__1cICodeBlobWfix_relocation_at_move6Ml_v_;
-text: .text%__1cKCodeBufferJcopy_code6MpnICodeBlob__v_;
-text: .text%__1cNRelocIteratorMcreate_index6FpnKCodeBuffer_pnJrelocInfo_4_4_;
-text: .text%__1cICodeBlobPallocation_size6FpnKCodeBuffer_ii_I_;
text: .text%__1cRAbstractAssemblerOcode_fill_byte6F_i_;
-text: .text%__1cICodeBlob2t6MpkcpnKCodeBuffer_iiipnJOopMapSet_i_v_;
text: .text%__1cMrdx_RegLOperEtype6kM_pknEType__;
-text: .text%__1cKCodeBufferPcopy_relocation6MpnICodeBlob__v_;
text: .text%__1cVPatchingRelocIteratorHprepass6M_v_;
text: .text%__1cVPatchingRelocIteratorIpostpass6M_v_;
text: .text%__1cJOopMapSetHcopy_to6MpC_v_;
@@ -4079,16 +2616,13 @@ text: .text%__1cINodeHash2t6Mp0_v_;
text: .text%__1cOPhaseTransform2t6Mp0nFPhaseLPhaseNumber__v_;
text: .text%__1cJAssemblerDjmp6MnHAddress__v_;
text: .text%__1cOJNIHandleBlockRrebuild_free_list6M_v_;
-text: .text%__1cSstring_compareNodeZcheck_for_anti_dependence6kM_i_;
text: .text%jni_GetObjectArrayElement: jni.o;
text: .text%__1cKCompiledICSset_to_monomorphic6MrknOCompiledICInfo__v_;
-text: .text%__1cIDivINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cVCallRuntimeDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cICmpDNodeGOpcode6kM_i_;
text: .text%__1cPcmovI_reg_gNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_AndI6MpknENode__v_;
text: .text%__1cHCompilebBregister_library_intrinsics6M_v_;
-text: .text%__1cNGrowableArray4CpnNCallGenerator__2t6Mii_v_;
text: .text%__1cETypeKInitialize6FpnHCompile__v_;
text: .text%__1cYDebugInformationRecorder2t6MpnLOopRecorder__v_;
text: .text%__1cOCompileWrapper2t6MpnHCompile__v_;
@@ -4110,12 +2644,9 @@ text: .text%__1cXPhaseAggressiveCoalesceGverify6M_v_;
text: .text%__1cJStartNodeJideal_reg6kM_I_;
text: .text%__1cHMatcher2t6MrnJNode_List__v_;
text: .text%__1cFArena2t6ML_v_;
-text: .text%__1cIPhaseCFGOschedule_early6MrnJVectorSet_rnJNode_List_rnLBlock_Array__i_;
text: .text%__1cWNode_Backward_Iterator2t6MpnENode_rnJVectorSet_rnJNode_List_rnLBlock_Array__v_;
text: .text%__1cHMatcherFmatch6M_v_;
text: .text%__1cFStateM_sub_Op_Goto6MpknENode__v_;
-text: .text%__1cIPhaseCFGNschedule_late6MrnJVectorSet_rnJNode_List_rnNGrowableArray4CI___v_;
-text: .text%__1cIPhaseCFGQFind_Inner_Loops6M_v_;
text: .text%__1cIPhaseCFGQGlobalCodeMotion6MrnHMatcher_IrnJNode_List__v_;
text: .text%__1cIPhaseCFGYEstimate_Block_Frequency6M_v_;
text: .text%__1cIPhaseCFGJbuild_cfg6M_I_;
@@ -4123,7 +2654,6 @@ text: .text%__1cHCompileICode_Gen6M_v_;
text: .text%__1cMPhaseChaitin2t6MIrnIPhaseCFG_rnHMatcher__v_;
text: .text%__1cMPhaseChaitinRRegister_Allocate6M_v_;
text: .text%__1cMPhaseChaitinGde_ssa6M_v_;
-text: .text%__1cMPhaseChaitinbGstretch_base_pointer_live_ranges6MpnMResourceArea__i_;
text: .text%__1cNPhaseRegAllocTpd_preallocate_hook6M_v_;
text: .text%__1cHMatcherPinit_spill_mask6MpnENode__v_;
text: .text%__1cHMatcherTFixup_Save_On_Entry6M_v_;
@@ -4136,30 +2666,21 @@ text: .text%__1cIPhaseCFGVschedule_pinned_nodes6MrnJVectorSet__v_;
text: .text%__1cHCompileTframe_size_in_words6kM_i_;
text: .text%__1cOCompileWrapper2T6M_v_;
text: .text%__1cHCompileYinit_scratch_buffer_blob6M_v_;
-text: .text%__1cHCompileYinit_scratch_locs_memory6M_v_;
text: .text%__1cNPhasePeephole2t6MpnNPhaseRegAlloc_rnIPhaseCFG__v_;
-text: .text%__1cJPhaseLive2T6M_v_;
-text: .text%__1cNPhasePeephole2T6M_v_;
text: .text%__1cHCompileGOutput6M_v_;
text: .text%__1cHCompileQShorten_branches6MpnFLabel_ri333_v_;
text: .text%__1cHCompileLFill_buffer6M_v_;
text: .text%__1cHCompileTFillExceptionTables6MIpI1pnFLabel__v_;
text: .text%__1cHCompileRScheduleAndBundle6M_v_;
text: .text%__1cOMachPrologNodeFreloc6kM_i_;
-text: .text%__1cNtestU_regNodePoper_input_base6kM_I_;
-text: .text%__1cWemit_exception_handler6FrnKCodeBuffer__v_;
text: .text%__1cWsize_exception_handler6F_I_;
text: .text%__1cWImplicitExceptionTableIset_size6MI_v_;
text: .text%__1cNPhasePeepholeMdo_transform6M_v_;
text: .text%__1cMPhaseChaitinMfixup_spills6M_v_;
-text: .text%__1cMPhaseChaitin2T6M_v_;
text: .text%__1cNPhaseRegAllocPalloc_node_regs6Mi_v_;
-text: .text%__1cKCodeBufferOrelocate_stubs6M_v_;
-text: .text%__1cIPhaseCFGLRemoveEmpty6M_v_;
text: .text%__1cLdo_liveness6FpnNPhaseRegAlloc_pnIPhaseCFG_pnKBlock_List_ipnFArena_pnEDict__v_: buildOopMap.o;
text: .text%__1cHCompileMBuildOopMaps6M_v_;
text: .text%__1cMPhaseChaitinbApost_allocate_copy_removal6M_v_;
-text: .text%__1cNGrowableArray4CpnJNode_List__2t6Mii_v_;
text: .text%__1cRsarL_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cOGenerateOopMapIcopy_cts6MpnNCellTypeState_2_i_;
text: .text%__1cFStateM_sub_Op_CmpL6MpknENode__v_;
@@ -4167,70 +2688,44 @@ text: .text%__1cJloadSNodeFreloc6kM_i_;
text: .text%__1cFStateN_sub_Op_LoadS6MpknENode__v_;
text: .text%__1cSInterpreterRuntimeOprofile_method6FpnKJavaThread_pC_i_;
text: .text%__1cOCompiledRFrame2t6MnFframe_pnKJavaThread_pnGRFrame__v_;
-text: .text%__1cKC2IAdapterOis_c2i_adapter6kM_i_;
text: .text%__1cOCompiledRFrameKtop_method6kM_nMmethodHandle__;
-text: .text%__1cOCompiledRFrameLis_compiled6kM_i_;
-text: .text%__1cRmethodDataOopDescKinitialize6MpnNmethodOopDesc__v_;
text: .text%__1cKoopFactoryOnew_methodData6FnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
-text: .text%__1cRmethodDataOopDescbGcompute_allocation_size_in_bytes6FpnNmethodOopDesc__i_;
text: .text%__1cPmethodDataKlassIallocate6MnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cNxorI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRmethodDataOopDescbGcompute_allocation_size_in_words6FpnNmethodOopDesc__i_;
text: .text%__1cRmethodDataOopDescPpost_initialize6MpnOBytecodeStream__v_;
text: .text%__1cHRetNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateO_sub_Op_Return6MpknENode__v_;
text: .text%__1cHRetNodeFreloc6kM_i_;
-text: .text%__1cZInterpreterMacroAssemblerNdispatch_base6MnITosState_ppCi_v_;
-text: .text%__1cZCallInterpreterDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cNloadConP0NodeFclone6kM_pnENode__;
-text: .text%__1cOClearArrayNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cKScopeValueJread_from6FpnTDebugInfoReadStream__p0_;
text: .text%__1cOcompiledVFrameScreate_stack_value6kMpnKScopeValue__pnKStackValue__;
text: .text%__1cQleaPIdxScaleNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRindIndexScaleOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cIGraphKitNallocate_heap6MpnENode_222pknITypeFunc_pC22ipknKTypeOopPtr__2_;
-text: .text%__1cPciInstanceKlassbBcompute_shared_has_subklass6M_i_;
text: .text%__1cNSignatureInfoHdo_byte6M_v_;
-text: .text%__1cQorI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cKCompiledICSset_ic_destination6MpC_v_;
-text: .text%__1cNIdealLoopTreePiteration_split6MpnOPhaseIdealLoop_rnJNode_List__v_;
text: .text%__1cNandI_rRegNodeErule6kM_I_;
-text: .text%__1cRsarI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cIMulINodeGadd_id6kM_pknEType__;
text: .text%__1cVcompiledICHolderKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cNmodI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMulINodeImul_ring6kMpknEType_3_3_;
text: .text%__1cKloadUBNodeMideal_Opcode6kM_i_;
-text: .text%__1cHBitDataKis_BitData6M_i_;
text: .text%__1cQsalI_rReg_CLNodeMideal_Opcode6kM_i_;
-text: .text%__1cNaddP_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cJAssemblerEcmpq6MnHAddress_i_v_;
text: .text%__1cNloadConP0NodeFreloc6kM_i_;
-text: .text%__1cMLinkResolverYresolve_interface_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
text: .text%__1cSmembar_acquireNodeLbottom_type6kM_pknEType__;
text: .text%__1cOMacroAssemblerKincrementq6MpnMRegisterImpl_i_v_;
text: .text%__1cRsarI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerNdispatch_next6MnITosState_i_v_;
-text: .text%__1cNGrowableArray4nMmethodHandle__2t6Mii_v_;
text: .text%__1cLConvL2INodeJideal_reg6kM_I_;
-text: .text%__1cNGrowableArray4nLKlassHandle__2t6Mii_v_;
-text: .text%__1cNmethodOopDescThas_native_function6kM_i_;
text: .text%JVM_GetClassNameUTF;
-text: .text%__1cMPrefetchNodeJideal_reg6kM_I_;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cNprefetchwNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFStateQ_sub_Op_Prefetch6MpknENode__v_;
text: .text%__1cOjmpLoopEndNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cNprefetchwNodeFreloc6kM_i_;
text: .text%__1cIAddLNodeJideal_reg6kM_I_;
text: .text%__1cILocation2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cKstoreCNodeFreloc6kM_i_;
-text: .text%__1cNdecI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNmethodOopDescWis_vanilla_constructor6kM_i_;
text: .text%__1cWCallLeafNoFPDirectNodeKmethod_set6Ml_v_;
text: .text%__1cOPhaseIdealLoopOplace_near_use6kMpnENode__2_;
text: .text%__1cHi2bNodeMideal_Opcode6kM_i_;
-text: .text%__1cNLocationValueLis_location6kM_i_;
text: .text%__1cNLocationValue2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cIMulLNodeJideal_reg6kM_I_;
text: .text%__1cNsubL_rRegNodeHtwo_adr6kM_I_;
@@ -4241,33 +2736,22 @@ text: .text%JVM_FindClassFromClass;
text: .text%__1cKcmpOpUOperEless6kM_i_;
text: .text%__1cVcompiledICHolderKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cVcompiledICHolderKlassToop_adjust_pointers6MpnHoopDesc__i_;
-text: .text%__1cKReflectionGinvoke6FnTinstanceKlassHandle_nMmethodHandle_nGHandle_inOobjArrayHandle_nJBasicType_4ipnGThread__pnHoopDesc__;
-text: .text%__1cITypeLongFwiden6kMpknEType__3_;
-text: .text%__1cQsalI_rReg_CLNodePoper_input_base6kM_I_;
text: .text%__1cbIjava_lang_reflect_AccessibleObjectIoverride6FpnHoopDesc__C_;
text: .text%__1cKReflectionDbox6FpnGjvalue_nJBasicType_pnGThread__pnHoopDesc__;
-text: .text%__1cMLinkResolverbHlinktime_resolve_interface_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
text: .text%__1cLBoxLockNodeEhash6kM_I_;
text: .text%__1cJOopMapSetMgrow_om_data6M_v_;
-text: .text%__1cRxorI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cKciTypeFlowFBlockQset_private_copy6Mi_v_;
text: .text%__1cWandI_rReg_imm65535NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cWandI_rReg_imm65535NodeErule6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerGpush_i6MpnMRegisterImpl__v_;
text: .text%__1cNcmovI_regNodeErule6kM_I_;
text: .text%__1cRsalL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNGrowableArray4CpnKInlineTree__Egrow6Mi_v_;
-text: .text%__1cSComputeAdapterInfoIdo_short6M_v_;
-text: .text%__1cNtestL_regNodeJnum_opnds6kM_I_;
text: .text%__1cLConvF2DNodeGOpcode6kM_i_;
text: .text%__1cISubLNodeLbottom_type6kM_pknEType__;
text: .text%__1cSmembar_acquireNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSmembar_acquireNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNaddP_rRegNodeLbottom_type6kM_pknEType__;
text: .text%__1cNmodL_rRegNodeErule6kM_I_;
-text: .text%__1cRsalI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerDret6Mi_v_;
-text: .text%__1cRshrI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cbDjava_lang_reflect_ConstructorPparameter_types6FpnHoopDesc__2_;
text: .text%__1cKReflectionSinvoke_constructor6FpnHoopDesc_nOobjArrayHandle_pnGThread__2_;
text: .text%__1cbDjava_lang_reflect_ConstructorFclazz6FpnHoopDesc__2_;
@@ -4298,72 +2782,40 @@ text: .text%__1cTtypeArrayKlassKlassOklass_oop_size6kM_i_;
text: .text%__1cWconstantPoolCacheKlassOklass_oop_size6kM_i_;
text: .text%__1cQconstMethodKlassOklass_oop_size6kM_i_;
text: .text%__1cPmethodDataKlassOklass_oop_size6kM_i_;
-text: .text%__1cGThreadOis_interrupted6Fp0i_i_;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
text: .text%__1cJHashtableHoops_do6MpnKOopClosure__v_;
text: .text%__1cSsafePoint_pollNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIPSOldGenHcompact6M_v_;
-text: .text%__1cSsafePoint_pollNodeJnum_opnds6kM_I_;
text: .text%__1cFJNIidHoops_do6MpnKOopClosure__v_;
-text: .text%__1cJvmSymbolsHoops_do6FpnKOopClosure_i_v_;
text: .text%__1cJHashtableGunlink6MpnRBoolObjectClosure__v_;
-text: .text%__1cSReferenceProcessorHoops_do6MpnKOopClosure__v_;
text: .text%__1cQObjectStartArrayFreset6M_v_;
text: .text%__1cIPSOldGenPadjust_pointers6M_v_;
text: .text%__1cScompP_mem_rRegNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJloadBNodeFreloc6kM_i_;
text: .text%__1cUandI_rReg_imm255NodeMideal_Opcode6kM_i_;
-text: .text%__1cNGrowableArray4CpnKciTypeFlowFBlock__Icontains6kMrk2_i_;
text: .text%__1cScompP_mem_rRegNodeFreloc6kM_i_;
-text: .text%__1cNcmovP_regNodePoper_input_base6kM_I_;
-text: .text%__1cTno_rax_rdx_RegIOperJnum_edges6kM_I_;
text: .text%__1cKciTypeFlowLStateVectorJdo_aaload6MpnQciBytecodeStream__v_;
-text: .text%__1cJAssemblerMemit_operand6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerMemit_operand6MpnRFloatRegisterImpl_pnMRegisterImpl_4nHAddressLScaleFactor_ipCrknQRelocationHolder__v_;
text: .text%__1cNaddL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cLRethrowNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cRaddI_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRsubI_rReg_memNodeHtwo_adr6kM_I_;
text: .text%__1cIModLNodeGOpcode6kM_i_;
text: .text%__1cIMaxINodeLbottom_type6kM_pknEType__;
text: .text%__1cFParseMdo_checkcast6M_v_;
text: .text%__1cIMulINodeGmul_id6kM_pknEType__;
-text: .text%__1cMloadConINodeGis_Con6kM_I_;
text: .text%__1cIregDOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cIMulDNodeGOpcode6kM_i_;
text: .text%__1cRsarL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNsubL_rRegNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cHnmethodUnumber_of_dependents6kM_i_;
-text: .text%__1cTconvI2L_reg_memNodeFreloc6kM_i_;
-text: .text%__1cSComputeAdapterInfoIdo_float6M_v_;
text: .text%__1cFParseLarray_store6MnJBasicType__v_;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc_ii_v_: nativeLookup.o;
text: .text%JVM_FindClassFromClassLoader;
text: .text%JVM_FindClassFromBootLoader;
-text: .text%__1cZCallInterpreterDirectNodeSalignment_required6kM_i_;
-text: .text%__1cZCallInterpreterDirectNodePoper_input_base6kM_I_;
-text: .text%__1cZCallInterpreterDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRmulL_rReg_immNodeMcisc_operand6kM_i_;
-text: .text%__1cNloadConI0NodeGis_Con6kM_I_;
-text: .text%__1cKstoreBNodeHtwo_adr6kM_I_;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc__v_: nativeLookup.o;
-text: .text%__1cKRegionNodeUdepends_only_on_test6kM_i_;
text: .text%__1cMMergeMemNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cFciEnvZcall_has_multiple_targets6FpnNinstanceKlass_nMsymbolHandle_3ri_i_;
-text: .text%__1cMadjust_check6FpnENode_11iipnMPhaseIterGVN__v_: ifnode.o;
-text: .text%__1cPsalI_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cTconvI2L_reg_memNodeHtwo_adr6kM_I_;
text: .text%__1cLPhaseValuesKis_IterGVN6M_pnMPhaseIterGVN__;
text: .text%__1cQciTypeArrayKlassJmake_impl6FnJBasicType__p0_;
text: .text%__1cFStateM_sub_Op_AddL6MpknENode__v_;
text: .text%__1cQciTypeArrayKlassEmake6FnJBasicType__p0_;
-text: .text%__1cUmembar_cpu_orderNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cUmembar_cpu_orderNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNSCMemProjNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cSCompareAndSwapNodeJideal_reg6kM_I_;
-text: .text%__1cFStateW_sub_Op_MemBarCPUOrder6MpknENode__v_;
text: .text%__1cKciTypeFlowLStateVectorMdo_checkcast6MpnQciBytecodeStream__v_;
-text: .text%__1cMorI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMrax_RegIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%lwp_mutex_init: os_solaris.o;
text: .text%__1cJStubQdDueueGcommit6Mi_v_;
@@ -4375,79 +2827,49 @@ text: .text%__1cOGenerateOopMapOdo_monitorexit6Mi_v_;
text: .text%__1cOGenerateOopMapLmonitor_pop6M_nNCellTypeState__;
text: .text%__1cJAssemblerEmovl6MnHAddress_i_v_;
text: .text%__1cKoopFactoryNnew_charArray6FpkcpnGThread__pnQtypeArrayOopDesc__;
-text: .text%__1cPshrI_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cQjava_lang_StringTcreate_oop_from_str6FpkcpnGThread__pnHoopDesc__;
-text: .text%__1cRmulI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cNandI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cbACallCompiledJavaDirectNodeHtwo_adr6kM_I_;
text: .text%__1cIModINodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cNinstanceKlassVis_same_class_package6MpnHoopDesc_pnNsymbolOopDesc__i_;
-text: .text%__1cbLtransform_int_divide_to_long_multiply6FpnIPhaseGVN_pnENode_i_3_: divnode.o;
text: .text%__1cTno_rax_rdx_RegIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cJAssemblerGmovzwl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cRmulL_rReg_immNodeErule6kM_I_;
text: .text%__1cZCallDynamicJavaDirectNodePoper_input_base6kM_I_;
-text: .text%__1cHTypePtrFempty6kM_i_;
-text: .text%__1cOMacroAssemblerSload_unsigned_word6MpnMRegisterImpl_nHAddress__i_;
text: .text%__1cOGenerateOopMapXdo_return_monitor_check6M_v_;
-text: .text%__1cNobjArrayKlassQarray_klass_impl6MipnGThread__pnMklassOopDesc__;
text: .text%__1cFStateP_sub_Op_ConvL2I6MpknENode__v_;
text: .text%__1cLOptoRuntimebBcomplete_monitor_enter_Type6F_pknITypeFunc__;
text: .text%__1cIGraphKitMnext_monitor6M_i_;
text: .text%__1cLBoxLockNode2t6Mi_v_;
-text: .text%__1cRmulI_rReg_immNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cJloadFNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cIplus_adr6FpnENode_l_1_: generateOptoStub.o;
text: .text%__1cIGraphKitLshared_lock6MpnENode__pnMFastLockNode__;
-text: .text%__1cHConNode2t6MpknEType__v_;
text: .text%__1cMloadConDNodeMideal_Opcode6kM_i_;
-text: .text%__1cNCompileBrokerTcreate_compile_task6FpnMCompileQdDueue_inMmethodHandle_i3ipkcii_pnLCompileTask__;
-text: .text%__1cLCompileTaskKinitialize6MinMmethodHandle_i1ipkcii_v_;
text: .text%__1cNCompileBrokerNallocate_task6F_pnLCompileTask__;
text: .text%__1cMCompileQdDueueDadd6MpnLCompileTask__v_;
text: .text%__1cRxorI_rReg_memNodeErule6kM_I_;
text: .text%__1cMCompileQdDueueDget6M_pnLCompileTask__;
text: .text%__1cRsarI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQleaPIdxScaleNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cSCompileTaskWrapper2t6MpnLCompileTask__v_;
text: .text%__1cQjava_lang_ThreadGthread6FpnHoopDesc__pnKJavaThread__;
text: .text%__1cXmembar_acquire_lockNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_MulL6MpknENode__v_;
text: .text%__1cCosPhint_no_preempt6F_v_;
text: .text%__1cJAssemblerFtestl6MpnMRegisterImpl_i_v_;
-text: .text%__1cObox_handleNodePoper_input_base6kM_I_;
text: .text%__1cNCompileBrokerJfree_task6FpnLCompileTask__v_;
text: .text%__1cSCompileTaskWrapper2T6M_v_;
text: .text%__1cLCompileTaskEfree6M_v_;
text: .text%__1cNnegI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKDictionarybAis_valid_protection_domain6MiInMsymbolHandle_nGHandle_2_i_;
text: .text%__1cMincI_memNodeMideal_Opcode6kM_i_;
text: .text%__1cRandL_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cRaddI_rReg_memNodeFreloc6kM_i_;
text: .text%__1cQjava_lang_StringXcreate_oop_from_unicode6FpHipnGThread__pnHoopDesc__;
text: .text%jni_NewString: jni.o;
-text: .text%__1cRxorI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cFStateM_sub_Op_AndL6MpknENode__v_;
text: .text%__1cKloadUBNodePoper_input_base6kM_I_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cVcompiledICHolderKlassXoop_is_compiledICHolder6kM_i_;
-text: .text%__1cJStoreNodeUdepends_only_on_test6kM_i_;
text: .text%__1cPcmovI_reg_lNodeErule6kM_I_;
-text: .text%__1cOloadConL32NodePoper_input_base6kM_I_;
text: .text%__1cNSharedRuntimebJcontinuation_for_implicit_exception6FpnKJavaThread_pCn0AVImplicitExceptionKind__3_;
-text: .text%__1cRtestI_reg_immNodeHtwo_adr6kM_I_;
text: .text%__1cIimmDOperJconstantD6kM_d_;
text: .text%__1cFParsePmerge_exception6Mi_v_;
text: .text%__1cXmembar_acquire_lockNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cNGrowableArray4CpnIciObject__2t6MpnFArena_iirk1_v_;
-text: .text%__1cICallInfoDset6MnLKlassHandle_1nMmethodHandle_2pnGThread__v_;
-text: .text%__1cZCallDynamicJavaDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cMLinkResolverbGruntime_resolve_interface_method6FrnICallInfo_nMmethodHandle_nLKlassHandle_nGHandle_4ipnGThread__v_;
-text: .text%__1cMLinkResolverWresolve_interface_call6FrnICallInfo_nGHandle_nLKlassHandle_4nMsymbolHandle_54iipnGThread__v_;
text: .text%__1cNGrowableArray4CpnIciObject__JappendAll6Mpk2_v_;
-text: .text%__1cFciEnv2t6MpnHJNIEnv__iii_v_;
-text: .text%__1cRtestP_reg_memNodeFreloc6kM_i_;
-text: .text%__1cNtestP_regNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cNGrowableArray4CpnIciMethod__2t6MpnFArena_iirk1_v_;
text: .text%__1cNGrowableArray4CpnHciKlass__2t6MpnFArena_iirk1_v_;
text: .text%__1cPciObjectFactory2t6MpnFArena_i_v_;
@@ -4461,49 +2883,36 @@ text: .text%__1cKstoreBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNCompileBrokerUpop_jni_handle_block6F_v_;
text: .text%__1cbBopt_virtual_call_RelocationLstatic_stub6M_pC_;
text: .text%__1cNinstanceKlassbFlookup_method_in_all_interfaces6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
-text: .text%__1cPcmpFastLockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateQ_sub_Op_FastLock6MpknENode__v_;
text: .text%__1cXmembar_acquire_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvD2I_reg_regNodeErule6kM_I_;
text: .text%__1cITemplateIbytecode6kM_nJBytecodesECode__;
-text: .text%__1cLOptoRuntimeRmultianewarray1_C6FpnMklassOopDesc_ipnKJavaThread__v_;
text: .text%__1cWImplicitExceptionTableCat6kMI_I_;
text: .text%__1cWImplicitExceptionTable2t6MpknHnmethod__v_;
text: .text%__1cLVtableStubsPstub_containing6FpC_pnKVtableStub__;
-text: .text%__1cLVtableStubsIcontains6FpC_i_;
text: .text%__1cNFingerprinterIdo_float6M_v_;
text: .text%__1cHnmethodbJcontinuation_for_implicit_exception6MpC_1_;
text: .text%__1cLRShiftLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cUjmpLoopEnd_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cNmodI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cUjmpLoopEnd_shortNodeMideal_Opcode6kM_i_;
text: .text%__1cKEntryPoint2t6MpC11111111_v_;
text: .text%jni_GetObjectClass: jni.o;
text: .text%__1cRappend_interfaces6FnOobjArrayHandle_ripnPobjArrayOopDesc__v_;
-text: .text%__1cRandI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubLNodeDsub6kMpknEType_3_3_;
text: .text%__1cJloadSNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cRtestI_reg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cOloadConL32NodeHtwo_adr6kM_I_;
-text: .text%__1cQshrI_rReg_CLNodePoper_input_base6kM_I_;
text: .text%__1cSstring_compareNodePoper_input_base6kM_I_;
text: .text%__1cNcmovI_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMdecI_memNodeMideal_Opcode6kM_i_;
text: .text%__1cMrax_RegLOperEtype6kM_pknEType__;
-text: .text%__1cRmulI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cIXorINodeGadd_id6kM_pknEType__;
text: .text%__1cNtestP_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPcmovI_reg_gNodeHtwo_adr6kM_I_;
-text: .text%__1cOPhaseIdealLoopKclone_loop6MpnNIdealLoopTree_rnJNode_List_i_v_;
-text: .text%__1cHi2bNodePoper_input_base6kM_I_;
-text: .text%__1cRsalL_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cKBinaryNodeGOpcode6kM_i_;
text: .text%__1cNxorI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cFStateO_sub_Op_Binary6MpknENode__v_;
text: .text%JVM_GetClassLoader;
text: .text%__1cMstoreSSPNodeMideal_Opcode6kM_i_;
-text: .text%__1cNmulL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cRxorI_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cINodeHashIround_up6FI_I_;
text: .text%__1cHCompileKinit_start6MpnJStartNode__v_;
text: .text%__1cOPhaseTransform2t6MpnFArena_nFPhaseLPhaseNumber__v_;
@@ -4511,127 +2920,63 @@ text: .text%__1cLPhaseValues2t6MpnFArena_I_v_;
text: .text%__1cRaddP_rReg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cINodeHash2t6MpnFArena_I_v_;
text: .text%__1cRaddI_rReg_memNodeHtwo_adr6kM_I_;
-text: .text%__1cIJVMState2n6FL_pv_;
text: .text%__1cOMacroAssemblerFalign6Mi_v_;
-text: .text%__1cOleaPIdxOffNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
-text: .text%__1cMdecI_memNodeJnum_opnds6kM_I_;
-text: .text%__1cIModINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMLinkResolverXresolve_invokeinterface6FrnICallInfo_nGHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%lwp_cond_init: os_solaris.o;
text: .text%__1cSmembar_releaseNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSmembar_releaseNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOPhaseIdealLoopVclone_up_backedge_goo6MpnENode_22_2_;
text: .text%__1cSInterpreterCodeletKinitialize6MpkcnJBytecodesECode__v_;
-text: .text%__1cTconvI2L_reg_regNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cNxorI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNaddP_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerZcheck_and_handle_popframe6MpnMRegisterImpl__v_;
text: .text%__1cOloadConL32NodeErule6kM_I_;
-text: .text%__1cOMacroAssemblerMcall_VM_base6MpnMRegisterImpl_22pCii_v_;
-text: .text%__1cFframeVnmethods_code_blob_do6M_v_;
text: .text%__1cHi2bNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKcmpOpUOperKless_equal6kM_i_;
-text: .text%__1cWandI_rReg_imm65535NodeJnum_opnds6kM_I_;
text: .text%__1cFParseTprofile_switch_case6Mi_v_;
text: .text%__1cKNativeJumpbEcheck_verified_entry_alignment6FpC1_v_;
text: .text%__1cFParseSjump_switch_ranges6MpnENode_pnLSwitchRange_4i_v_;
text: .text%__1cFParseOmerge_new_path6Mi_v_;
-text: .text%__1cUBytecode_tableswitchGlength6M_i_;
text: .text%__1cNandI_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cNmodL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cMloadConLNodeFclone6kM_pnENode__;
-text: .text%__1cNtestU_regNodeJnum_opnds6kM_I_;
-text: .text%__1cIimmLOperFclone6kM_pnIMachOper__;
-text: .text%__1cRandL_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cOleaPIdxOffNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKstoreBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMmatch_option6FpknMJavaVMOption_pkcp4_i_: arguments.o;
-text: .text%__1cNCompileBrokerTis_not_compile_only6FnMmethodHandle__i_;
text: .text%__1cNCompileBrokerRassign_compile_id6FnMmethodHandle_i_I_;
-text: .text%__1cNCompileBrokerTis_compile_blocking6FnMmethodHandle_i_i_;
text: .text%__1cIMulFNodeGOpcode6kM_i_;
-text: .text%__1cNIdealLoopTreeQpolicy_peel_only6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cNIdealLoopTreeSpolicy_range_check6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cQSystemDictionaryPresolve_or_fail6FnMsymbolHandle_ipnGThread__pnMklassOopDesc__;
-text: .text%__1cNIdealLoopTreeMpolicy_align6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cNIdealLoopTreeNpolicy_unroll6kMpnOPhaseIdealLoop__i_;
text: .text%__1cNtestU_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNCompileBrokerZcompilation_is_prohibited6FnMmethodHandle_i_i_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFi_vi_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorVgenerate_and_dispatch6MpnITemplate_nITosState__v_;
text: .text%__1cITemplateIgenerate6MpnZInterpreterMacroAssembler__v_;
-text: .text%__1cKC2CompilerOneeds_adapters6M_i_;
-text: .text%__1cLServiceUtilLvisible_oop6FpnHoopDesc__i_;
text: .text%__1cITemplateKinitialize6MinITosState_1pFi_vi_v_;
text: .text%__1cNObjectMonitorGEnterI6MpnGThread__v_;
-text: .text%__1cIciMethodJhas_loops6kM_i_;
-text: .text%__1cIciMethodVshould_print_assembly6M_i_;
-text: .text%__1cOMacroAssemblerOcall_VM_helper6MpnMRegisterImpl_pCii_v_;
text: .text%__1cNloadConL0NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cZInterpreterMacroAssemblerMcall_VM_base6MpnMRegisterImpl_22pCii_v_;
-text: .text%__1cMincI_memNodeJnum_opnds6kM_I_;
-text: .text%__1cNCompileBrokerOcheck_break_at6FnMmethodHandle_iii_i_;
text: .text%__1cJAssemblerEcall6MrnFLabel_nJrelocInfoJrelocType__v_;
-text: .text%__1cNCompileBrokerQset_last_compile6FpnOCompilerThread_nMmethodHandle_ii_v_;
-text: .text%__1cNCompileBrokerbAeager_compile_c2i_adapters6FpnFciEnv_pnIciMethod__v_;
-text: .text%__1cNCompileBrokerbAeager_compile_i2c_adapters6FpnFciEnv_pnIciMethod__v_;
text: .text%__1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_;
text: .text%__1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_;
-text: .text%__1cMstoreSSPNodeHis_Copy6kM_I_;
text: .text%__1cQshrI_rReg_CLNodeMideal_Opcode6kM_i_;
-text: .text%__1cFciEnvPregister_method6MpnIciMethod_iiiiiipnKCodeBuffer_ipnJOopMapSet_pnVExceptionHandlerTable_pnWImplicitExceptionTable_pnQAbstractCompiler_ii_v_;
text: .text%__1cLAccessFlagsRatomic_clear_bits6Mi_v_;
-text: .text%__1cIciMethodQbreak_at_execute6M_i_;
text: .text%__1cFciEnvbOcheck_for_system_dictionary_modification6MpnIciMethod__v_;
-text: .text%__1cFciEnvbUsystem_dictionary_modification_counter_changed6M_i_;
text: .text%__1cMelapsedTimerDadd6M0_v_;
text: .text%__1cNCompileBrokerScollect_statistics6FpnOCompilerThread_nMelapsedTimer_pnLCompileTask__v_;
-text: .text%__1cJStartNodeScalling_convention6kMpnLOptoRegPair_I_v_;
text: .text%__1cICodeHeapMinsert_after6MpnJFreeBlock_2_v_;
-text: .text%__1cKExceptionsNnew_exception6FpnGThread_nMsymbolHandle_3pnRJavaCallArguments_nGHandle_6_6_;
-text: .text%__1cFMutex2t6Mipkci_v_;
text: .text%__1cKloadUBNodeErule6kM_I_;
text: .text%__1cQsalL_rReg_CLNodeMideal_Opcode6kM_i_;
-text: .text%__1cbACallCompiledJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cbACallCompiledJavaDirectNodePoper_input_base6kM_I_;
-text: .text%__1cTbasictype2arraycopy6FnJBasicType_i_pC_;
-text: .text%__1cOLibraryCallKitQinline_arraycopy6M_i_;
text: .text%__1cPstoreImmI16NodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cLOptoRuntimeOarraycopy_Type6F_pknITypeFunc__;
-text: .text%__1cFciEnvbFpost_compiled_method_load_event6MpnHnmethod__v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cLPcDescCache2t6M_v_;
text: .text%__1cFciEnvVnum_inlined_bytecodes6kM_i_;
-text: .text%__1cHnmethodSresolve_JNIHandles6M_v_;
text: .text%__1cRmulL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cVExceptionHandlerTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
-text: .text%__1cHnmethodLnew_nmethod6FnMmethodHandle_iiiiiipnYDebugInformationRecorder_pnKCodeBuffer_ipnJOopMapSet_pnVExceptionHandlerTable_pnWImplicitExceptionTable_pnQAbstractCompiler__p0_;
text: .text%__1cPcmovI_reg_lNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHnmFlagsFclear6M_v_;
text: .text%__1cHnmethod2n6FLi_pv_;
-text: .text%__1cHnmethod2t6MpnNmethodOopDesc_iiiiiiipnYDebugInformationRecorder_pnKCodeBuffer_ipnJOopMapSet_pnVExceptionHandlerTable_pnWImplicitExceptionTable_pnQAbstractCompiler__v_;
-text: .text%__1cNaddI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cKTypeRawPtrFxdual6kM_pknEType__;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
-text: .text%__1cICodeBlobJcopy_oops6MppnI_jobject_i_v_;
-text: .text%__1cFStateN_sub_Op_LoadC6MpknENode__v_;
-text: .text%__1cJloadCNodeFreloc6kM_i_;
text: .text%__1cFParseQjump_if_fork_int6MpnENode_2nIBoolTestEmask__pnGIfNode__;
text: .text%__1cWandI_rReg_imm65535NodeHtwo_adr6kM_I_;
-text: .text%__1cNdivL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cNmethodOopDescIset_code6MpnHnmethod__v_;
text: .text%__1cINodeHashUremove_useless_nodes6MrnJVectorSet__v_;
text: .text%__1cQUnique_Node_ListUremove_useless_nodes6MrnJVectorSet__v_;
text: .text%__1cKInlineTreeWbuild_inline_tree_root6F_p0_;
-text: .text%__1cHCompile2t6MpnFciEnv_pnKC2Compiler_pnIciMethod_ii_v_;
text: .text%__1cHCompileWprint_compile_messages6M_v_;
-text: .text%__1cPClassFileParserbGparse_constant_pool_double_entry6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cQsalI_rReg_CLNodeErule6kM_I_;
text: .text%__1cHCompileRbuild_start_state6MpnJStartNode_pknITypeFunc__pnIJVMState__;
text: .text%__1cHCompileVidentify_useful_nodes6MrnQUnique_Node_List__v_;
@@ -4641,42 +2986,27 @@ text: .text%__1cHCompileUremove_useless_nodes6MrnQUnique_Node_List__v_;
text: .text%__1cSPhaseRemoveUseless2t6MpnIPhaseGVN_pnQUnique_Node_List__v_;
text: .text%__1cHCompileLFinish_Warm6M_v_;
text: .text%__1cHCompileLInline_Warm6M_i_;
-text: .text%__1cPno_rax_RegLOperJnum_edges6kM_I_;
text: .text%__1cMPhaseIterGVN2t6MpnIPhaseGVN__v_;
-text: .text%__1cJBytecodesDdef6Fn0AECode_pkc33nJBasicType_ii1_v_;
text: .text%__1cIciMethodRbuild_method_data6MnMmethodHandle__v_;
text: .text%__1cSstring_compareNodeErule6kM_I_;
text: .text%__1cbAfinal_graph_reshaping_walk6FrnKNode_Stack_pnENode_rnUFinal_Reshape_Counts__v_: compile.o;
-text: .text%__1cHCompileVfinal_graph_reshaping6M_i_;
-text: .text%__1cOcompI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cScompI_rReg_memNodeFreloc6kM_i_;
text: .text%__1cJStartNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNTemplateTableKtransition6FnITosState_1_v_;
text: .text%__1cIPhaseCCPJtransform6MpnENode__2_;
text: .text%__1cHCompileNreturn_values6MpnIJVMState__v_;
-text: .text%__1cbCAbstractInterpreterGeneratorQset_entry_points6MnJBytecodesECode__v_;
-text: .text%__1cbCAbstractInterpreterGeneratorWset_short_entry_points6MpnITemplate_rpC44444444_v_;
text: .text%__1cMPhaseIterGVN2t6Mp0_v_;
text: .text%__1cIPhaseCCP2t6MpnMPhaseIterGVN__v_;
-text: .text%__1cIPhaseCCP2T6M_v_;
text: .text%__1cIPhaseCCPHanalyze6M_v_;
text: .text%__1cIPhaseCCPMdo_transform6M_v_;
text: .text%__1cOcompI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNsubL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNloadConPcNodeMideal_Opcode6kM_i_;
-text: .text%__1cKExceptionsG_throw6FpnGThread_pkcinGHandle__v_;
-text: .text%__1cKExceptionsRspecial_exception6FpnGThread_pkcinGHandle__i_;
-text: .text%__1cGThreadVset_pending_exception6MpnHoopDesc_pkci_v_;
-text: .text%__1cNandL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLklassItableUcompute_itable_index6FpnNmethodOopDesc__i_;
text: .text%__1cWpoll_return_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cWConstantPoolCacheEntrySset_interface_call6MnMmethodHandle_i_v_;
text: .text%__1cJloadFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPClassFileParserUverify_constantvalue6MiinSconstantPoolHandle_pnGThread__v_;
-text: .text%__1cQsalI_rReg_CLNodeJnum_opnds6kM_I_;
-text: .text%__1cIMachNodeJis_MachIf6kM_pknKMachIfNode__;
text: .text%__1cPsalL_rReg_1NodeMideal_Opcode6kM_i_;
-text: .text%__1cKExceptionsRspecial_exception6FpnGThread_pkcinMsymbolHandle_4_i_;
text: .text%__1cQjava_lang_StringScreate_from_symbol6FnMsymbolHandle_pnGThread__nGHandle__;
text: .text%__1cOClearArrayNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cHMatcherbDinterpreter_frame_pointer_reg6F_i_;
@@ -4684,32 +3014,16 @@ text: .text%__1cQorI_rReg_immNodeErule6kM_I_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_53pnGThread__v_;
text: .text%__1cSInterpreterRuntimeXthrow_pending_exception6FpnKJavaThread__v_;
text: .text%__1cKcmpOpUOperHgreater6kM_i_;
-text: .text%__1cNCompileBrokerUcheck_adapter_result6FnMmethodHandle_ippnMBasicAdapter__i_;
-text: .text%__1cJloadFNodeJnum_opnds6kM_I_;
text: .text%__1cYinternal_word_RelocationEtype6M_nJrelocInfoJrelocType__;
-text: .text%__1cSMachC2IEntriesNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cbFunnecessary_membar_volatileNodePoper_input_base6kM_I_;
text: .text%__1cRmulI_rReg_immNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cQPSIsAliveClosureLdo_object_b6MpnHoopDesc__i_;
-text: .text%__1cTCallInterpreterNodeSis_CallInterpreter6kM_pk0_;
-text: .text%__1cZCallInterpreterDirectNodePcompute_padding6kMi_i_;
-text: .text%__1cSMachC2IcheckICNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cZInterpreterMacroAssemblerPdispatch_epilog6MnITosState_i_v_;
text: .text%__1cZInterpreterMacroAssemblerPdispatch_prolog6MnITosState_i_v_;
-text: .text%__1cZCallInterpreterDirectNodeKmethod_set6Ml_v_;
-text: .text%__1cXMachCallInterpreterNodePret_addr_offset6M_i_;
text: .text%__1cQjava_lang_StringPcreate_from_str6FpkcpnGThread__nGHandle__;
-text: .text%__1cLOptoRuntimeInew_Type6F_pknITypeFunc__;
text: .text%__1cLBoxLockNodeDcmp6kMrknENode__I_;
text: .text%__1cMTailCallNodeGOpcode6kM_i_;
text: .text%__1cJChunkPoolMfree_all_but6ML_v_;
-text: .text%__1cIGraphKitMnew_instance6MpnPciInstanceKlass__pnENode__;
-text: .text%__1cPcmpD_cc_regNodePoper_input_base6kM_I_;
text: .text%__1cRsalL_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cLOptoRuntimeSnew_typeArray_Type6F_pknITypeFunc__;
-text: .text%__1cObox_handleNodeMideal_Opcode6kM_i_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
-text: .text%__1cIGraphKitJnew_array6MpnENode_nJBasicType_pknEType_pknMTypeKlassPtr__2_;
text: .text%__1cNdecL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cKJavaThreadZsecurity_get_caller_class6Mi_pnMklassOopDesc__;
text: .text%__1cZCallDynamicJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -4717,23 +3031,15 @@ text: .text%__1cOemit_d64_reloc6FrnKCodeBuffer_lrknQRelocationHolder_i_v_;
text: .text%__1cRtestI_reg_immNodeErule6kM_I_;
text: .text%__1cIAddFNodeGOpcode6kM_i_;
text: .text%__1cSstring_compareNodeMideal_Opcode6kM_i_;
-text: .text%__1cNmethodOopDescWcompute_has_loops_flag6M_i_;
-text: .text%__1cKloadUBNodeJnum_opnds6kM_I_;
-text: .text%__1cNGrowableArray4CpnHoopDesc__2t6Mii_v_;
text: .text%__1cZCallDynamicJavaDirectNodeSalignment_required6kM_i_;
-text: .text%__1cXvirtual_call_RelocationJpack_data6M_i_;
text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cQorI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cUParallelScavengeHeapIcapacity6kM_L_;
text: .text%__1cJAssemblerEcmpq6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cNnegI_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cYinternal_word_RelocationJpack_data6M_i_;
-text: .text%__1cKsplit_once6FpnMPhaseIterGVN_pnENode_333_v_: cfgnode.o;
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cPDictionaryEntryVadd_protection_domain6MpnHoopDesc__v_;
text: .text%__1cbIjava_lang_reflect_AccessibleObjectMset_override6FpnHoopDesc_C_v_;
text: .text%__1cRCardTableModRefBSPclear_MemRegion6MnJMemRegion__v_;
-text: .text%__1cOleaPIdxOffNodeLbottom_type6kM_pknEType__;
text: .text%__1cNdivL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cFParsebLincrement_and_test_invocation_counter6Mi_v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
@@ -4742,28 +3048,14 @@ text: .text%__1cFParseRarray_store_check6M_v_;
text: .text%__1cNobjArrayKlassWcompute_modifier_flags6kMpnGThread__i_;
text: .text%__1cScompL_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cTmembar_volatileNodeMideal_Opcode6kM_i_;
-text: .text%__1cTCallDynamicJavaNodeSis_CallDynamicJava6kM_pk0_;
-text: .text%__1cCosHSolarisFEventEpark6M_v_;
-text: .text%__1cIMinINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cODeoptimizationYtrap_state_is_recompiled6Fi_i_;
text: .text%__1cXSignatureHandlerLibraryKinitialize6F_v_;
text: .text%__1cXSignatureHandlerLibraryDadd6FnMmethodHandle__v_;
text: .text%__1cSInterpreterRuntimeTprepare_native_call6FpnKJavaThread_pnNmethodOopDesc__v_;
text: .text%__1cNGrowableArray4CL_Efind6kMrkL_i_;
-text: .text%__1cUandI_rReg_imm255NodePoper_input_base6kM_I_;
-text: .text%__1cSReferenceProcessorZadd_to_discovered_list_mt6MppnHoopDesc_23_v_;
text: .text%__1cSInterpreterRuntimeNquicken_io_cc6FpnKJavaThread__v_;
-text: .text%__1cJBytecodesDdef6Fn0AECode_pkc33nJBasicType_ii_v_;
text: .text%__1cHOrINodeIadd_ring6kMpknEType_3_3_;
-text: .text%__1cNObjectMonitorbAEntryQdDueue_SelectSuccessor6M_pnMObjectWaiter__;
-text: .text%__1cNObjectMonitorREntryQdDueue_insert6MpnMObjectWaiter_i_v_;
text: .text%__1cSobjArrayKlassKlassXallocate_objArray_klass6MinLKlassHandle_pnGThread__pnMklassOopDesc__;
-text: .text%__1cJAssemblerEpopq6MpnMRegisterImpl__v_;
text: .text%__1cSobjArrayKlassKlassbCallocate_objArray_klass_impl6FnYobjArrayKlassKlassHandle_inLKlassHandle_pnGThread__pnMklassOopDesc__;
-text: .text%__1cISubLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cMTypeKlassPtrRcast_to_exactness6kMi_pknEType__;
-text: .text%__1cNloadConI0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cSComputeAdapterInfoHdo_char6M_v_;
text: .text%__1cKPerfMemoryFalloc6FL_pc_;
text: .text%__1cIPerfData2T6M_v_;
text: .text%__1cIPerfDataMcreate_entry6MnJBasicType_LL_v_;
@@ -4772,36 +3064,27 @@ text: .text%__1cPcmovI_reg_gNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorEfrom6F_pnMRegisterImpl__;
text: .text%__1cXJNI_ArgumentPusherVaArgHget_int6M_v_;
text: .text%__1cIPerfData2t6MnJCounterNS_pkcn0AFUnits_n0ALVariability__v_;
-text: .text%__1cPPerfDataManagerIadd_item6FpnIPerfData_i_v_;
text: .text%__1cLStrCompNodeKmatch_edge6kMI_I_;
text: .text%__1cOjmpLoopEndNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cOjmpLoopEndNodeOis_pc_relative6kM_i_;
-text: .text%__1cOjmpLoopEndNodeTmay_be_short_branch6kM_i_;
text: .text%jni_ReleaseStringUTFChars: jni.o;
text: .text%jni_GetStringUTFChars: jni.o;
text: .text%__1cFStateW_sub_Op_CountedLoopEnd6MpknENode__v_;
text: .text%__1cNFingerprinterIdo_short6M_v_;
-text: .text%__1cOcompU_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cJAssemblerEincq6MpnMRegisterImpl__v_;
text: .text%__1cFTypeDEmake6Fd_pk0_;
text: .text%__1cScompU_rReg_memNodeFreloc6kM_i_;
text: .text%__1cNtestL_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFParseLdo_newarray6MnJBasicType__v_;
text: .text%__1cWCallLeafNoFPDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMNativeLookupGlookup6FnMmethodHandle_ripnGThread__pC_;
text: .text%__1cWCallLeafNoFPDirectNodeFreloc6kM_i_;
-text: .text%__1cSstring_compareNodeJnum_opnds6kM_I_;
text: .text%__1cFStateU_sub_Op_CallLeafNoFP6MpknENode__v_;
text: .text%JVM_FindLibraryEntry;
-text: .text%__1cSObjectSynchronizerHinflate6FpnHoopDesc__pnNObjectMonitor__;
text: .text%JVM_GetMethodIxExceptionTableEntry;
text: .text%__1cNObjectMonitorHRecycle6M_v_;
text: .text%__1cISubLNodeGadd_id6kM_pknEType__;
text: .text%__1cNmodI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHMatcherOc_return_value6Fii_nLOptoRegPair__;
text: .text%__1cRxorI_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMachNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cQsarL_rReg_63NodeMideal_Opcode6kM_i_;
text: .text%__1cRmulI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIMachOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cIMachOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
@@ -4810,47 +3093,25 @@ text: .text%__1cNandI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cIDivINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNnegI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cFStateS_sub_Op_ClearArray6MpknENode__v_;
-text: .text%__1cRaddL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cFciEnvWis_dependence_violated6FpnMklassOopDesc_pnNmethodOopDesc__i_;
-text: .text%__1cHCompile2t6MpnFciEnv_pnIciMethod_i_v_;
text: .text%__1cIXorINodeJideal_reg6kM_I_;
text: .text%__1cMrep_stosNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRtestI_reg_immNodePoper_input_base6kM_I_;
-text: .text%__1cKC2CompilerPcompile_adapter6MpnFciEnv_pnIciMethod_i_v_;
-text: .text%__1cMrep_stosNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cMAdapterCacheGinsert6MpnLAdapterInfo_pnMBasicAdapter__v_;
text: .text%__1cFStateO_sub_Op_StoreL6MpknENode__v_;
-text: .text%__1cLAdapterInfoHcopy_to6Mp0_v_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%__1cPciObjArrayKlassGloader6M_pnHoopDesc__;
text: .text%__1cIMinINodeGadd_id6kM_pknEType__;
-text: .text%__1cNdecL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
text: .text%__1cKstoreLNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cGThreadLnmethods_do6M_v_;
-text: .text%__1cKmul_hiNodeMideal_Opcode6kM_i_;
text: .text%__1cKstoreLNodeFreloc6kM_i_;
text: .text%__1cMstoreSSPNodeLbottom_type6kM_pknEType__;
text: .text%__1cRsubI_rReg_memNodeFreloc6kM_i_;
-text: .text%__1cPsarL_rReg_2NodeMideal_Opcode6kM_i_;
text: .text%__1cTconvF2D_reg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cRmulL_rReg_immNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNmodL_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cRmulL_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeHtwo_adr6kM_I_;
text: .text%__1cSCompiledStaticCallSset_to_interpreted6MnMmethodHandle_pC_v_;
text: .text%__1cScompU_rReg_immNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cRInterpreterOopMapIis_empty6M_i_;
text: .text%__1cNFingerprinterHdo_char6M_v_;
-text: .text%__1cOrepush_if_args6FpnFParse_pnENode_3_v_: parse2.o;
text: .text%__1cMloadConDNodeLbottom_type6kM_pknEType__;
text: .text%__1cNGrowableArray4CpnHoopDesc__Uclear_and_deallocate6M_v_;
-text: .text%__1cMrdx_RegLOperJnum_edges6kM_I_;
text: .text%__1cLMachUEPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cZget_mirror_from_signature6FnMmethodHandle_pnPSignatureStream_pnGThread__pnHoopDesc__;
text: .text%__1cNGrowableArray4CpnJNode_List__Egrow6Mi_v_;
text: .text%__1cMciArrayKlass2t6MnLKlassHandle__v_;
-text: .text%__1cNObjectMonitorGenter26MpnGThread__v_;
text: .text%__1cKarrayKlassKjava_super6kM_pnMklassOopDesc__;
text: .text%__1cIUniverseWupdate_heap_info_at_gc6F_v_;
text: .text%__1cJCodeCacheLgc_prologue6F_v_;
@@ -4860,12 +3121,8 @@ text: .text%__1cJMarkSweepXfollow_weak_klass_links6F_v_;
text: .text%__1cJMarkSweepMadjust_marks6F_v_;
text: .text%__1cJMarkSweepNrestore_marks6F_v_;
text: .text%__1cHThreadsLgc_epilogue6F_v_;
-text: .text%__1cKDictionaryMdo_unloading6MpnRBoolObjectClosure__i_;
text: .text%__1cHThreadsLgc_prologue6F_v_;
-text: .text%__1cNGrowableArray4CpnFKlass__2t6Mii_v_;
-text: .text%__1cQSystemDictionaryMdo_unloading6FpnRBoolObjectClosure__i_;
text: .text%__1cQSystemDictionaryPplaceholders_do6FpnKOopClosure__v_;
-text: .text%__1cSReferenceProcessorPoops_do_statics6FpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryYalways_strong_classes_do6FpnKOopClosure__v_;
text: .text%__1cUPSAdaptiveSizePolicyWmajor_collection_begin6M_v_;
text: .text%__1cUPSAdaptiveSizePolicyUmajor_collection_end6MLnHGCCauseFCause__v_;
@@ -4874,69 +3131,46 @@ text: .text%__1cNGrowableArray4CpnFKlass__Uclear_and_deallocate6M_v_;
text: .text%__1cKPSYoungGenHcompact6M_v_;
text: .text%__1cKPSYoungGenPadjust_pointers6M_v_;
text: .text%__1cKPSYoungGenKprecompact6M_v_;
-text: .text%__1cLPSMarkSweepQinvoke_no_policy6Fpii_v_;
text: .text%__1cLPSMarkSweepPallocate_stacks6F_v_;
text: .text%__1cLPSMarkSweepRdeallocate_stacks6F_v_;
-text: .text%__1cLPSMarkSweepRmark_sweep_phase16Fi_v_;
text: .text%__1cLPSMarkSweepRmark_sweep_phase26F_v_;
text: .text%__1cLPSMarkSweepRmark_sweep_phase36F_v_;
text: .text%__1cLPSMarkSweepRmark_sweep_phase46F_v_;
text: .text%__1cLPSMarkSweepbAreset_millis_since_last_gc6F_v_;
text: .text%__1cUPSMarkSweepDecoratorbHset_destination_decorator_tenured6F_v_;
text: .text%__1cUPSMarkSweepDecoratorbIset_destination_decorator_perm_gen6F_v_;
-text: .text%__1cNExceptionBlobHoops_do6MpnKOopClosure__v_;
text: .text%__1cKDictionaryYalways_strong_classes_do6MpnKOopClosure__v_;
-text: .text%__1cQUncommonTrapBlobHoops_do6MpnKOopClosure__v_;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_;
text: .text%__1cIPSOldGenKprecompact6M_v_;
text: .text%__1cVLoaderConstraintTableYpurge_loader_constraints6MpnRBoolObjectClosure__v_;
-text: .text%__1cRCardTableModRefBSEis_a6MnKBarrierSetEName__i_;
text: .text%__1cJPSPermGenQcompute_new_size6ML_v_;
text: .text%__1cJPSPermGenKprecompact6M_v_;
-text: .text%__1cJCodeCacheMdo_unloading6FpnRBoolObjectClosure_pnKOopClosure_i_v_;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
-text: .text%__1cPcmpD_cc_regNodeHtwo_adr6kM_I_;
-text: .text%__1cbFunnecessary_membar_volatileNodeHtwo_adr6kM_I_;
text: .text%__1cIDivINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cIciSymbolHas_utf86M_pkc_;
text: .text%__1cQorI_rReg_memNodePoper_input_base6kM_I_;
-text: .text%__1cPfieldDescriptorSlong_initial_value6kM_x_;
-text: .text%__1cKJavaThreadLnmethods_do6M_v_;
text: .text%__1cCosTnative_java_library6F_pv_;
text: .text%__1cSTailCalljmpIndNodePoper_input_base6kM_I_;
text: .text%__1cOstackSlotPOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOstackSlotPOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cScompL_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cNandI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNinstanceKlassKfind_field6kMpnNsymbolOopDesc_2ipnPfieldDescriptor__pnMklassOopDesc__;
text: .text%__1cPciObjArrayKlass2t6MnLKlassHandle__v_;
text: .text%__1cPstoreImmI16NodeFreloc6kM_i_;
text: .text%__1cPstoreImmI16NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cCosYprint_jni_name_prefix_on6FpnMoutputStream_i_v_;
-text: .text%__1cVlookup_special_native6Fpc_pC_: nativeLookup.o;
text: .text%jni_ReleaseStringCritical: jni.o;
-text: .text%__1cMNativeLookupMlookup_style6FnMmethodHandle_pcpkciiripnGThread__pC_;
text: .text%__1cCosYprint_jni_name_suffix_on6FpnMoutputStream_i_v_;
text: .text%jni_GetStringCritical: jni.o;
-text: .text%__1cSInterpreterRuntimeTnmethod_entry_point6FpnKJavaThread_pnNmethodOopDesc_pnHnmethod__pC_;
text: .text%__1cIPSOldGenOgen_size_limit6M_L_;
-text: .text%__1cTI2CAdapterGeneratorSstd_verified_entry6FnMmethodHandle__pC_;
-text: .text%__1cTI2CAdapterGeneratorUgenerate_i2c_adapter6FnMmethodHandle__pnKI2CAdapter__;
text: .text%__1cUPSAdaptiveSizePolicybQpromo_increment_with_supplement_aligned_up6ML_L_;
-text: .text%__1cHnmethodXinterpreter_entry_point6M_pC_;
text: .text%__1cUParallelScavengeHeapOresize_old_gen6ML_v_;
text: .text%__1cUPSAdaptiveSizePolicyPpromo_increment6MLI_L_;
text: .text%__1cWandI_rReg_imm65535NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIPSOldGenGresize6ML_v_;
text: .text%__1cKConv2BNodeGOpcode6kM_i_;
-text: .text%__1cObox_handleNodeHtwo_adr6kM_I_;
text: .text%__1cKarrayKlassOset_alloc_size6MI_v_;
text: .text%__1cKarrayKlassXbase_create_array_klass6FrknKKlass_vtbl_inLKlassHandle_pnGThread__nQarrayKlassHandle__;
text: .text%__1cNstoreImmINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKarrayKlassbBcomplete_create_array_klass6FnQarrayKlassHandle_nLKlassHandle_pnGThread__v_;
text: .text%__1cLConvI2FNodeGOpcode6kM_i_;
-text: .text%__1cNmethodOopDescVparameter_annotations6kM_pnQtypeArrayOopDesc__;
-text: .text%__1cNmethodOopDescLannotations6kM_pnQtypeArrayOopDesc__;
text: .text%__1cNcmovI_regNodeHtwo_adr6kM_I_;
text: .text%__1cNmethodOopDescbGresolved_checked_exceptions_impl6Fp0pnGThread__nOobjArrayHandle__;
text: .text%__1cIGraphKitbKcombine_and_pop_all_exception_states6M_pnNSafePointNode__;
@@ -4944,71 +3178,50 @@ text: .text%__1cLRethrowNode2t6MpnENode_22222_v_;
text: .text%__1cHCompileSrethrow_exceptions6MpnIJVMState__v_;
text: .text%__1cKReflectionTget_parameter_types6FnMmethodHandle_ippnHoopDesc_pnGThread__nOobjArrayHandle__;
text: .text%__1cKReflectionTget_exception_types6FnMmethodHandle_pnGThread__nOobjArrayHandle__;
-text: .text%__1cNinstanceKlassQmethod_index_for6kMpnNmethodOopDesc_pnGThread__i_;
text: .text%__1cJAssemblerEandl6MpnMRegisterImpl_i_v_;
text: .text%__1cNmethodOopDescKklass_name6kM_pnNsymbolOopDesc__;
text: .text%__1cFStateP_sub_Op_Rethrow6MpknENode__v_;
text: .text%__1cQComputeCallStackIdo_array6Mii_v_;
-text: .text%__1cQsalL_rReg_CLNodePoper_input_base6kM_I_;
text: .text%__1cNdecL_rRegNodeErule6kM_I_;
text: .text%__1cLRethrowNodeJideal_reg6kM_I_;
-text: .text%__1cMNativeLookupLlookup_base6FnMmethodHandle_ripnGThread__pC_;
text: .text%__1cNstoreImmINodeFreloc6kM_i_;
text: .text%__1cURethrowExceptionNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMNativeLookupNpure_jni_name6FnMmethodHandle__pc_;
text: .text%__1cIPerfLong2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability__v_;
text: .text%__1cURethrowExceptionNodeFreloc6kM_i_;
-text: .text%__1cTCompareAndSwapLNode2t6MpnENode_2222_v_;
-text: .text%__1cQshrI_rReg_CLNodeJnum_opnds6kM_I_;
-text: .text%__1cSCompareAndSwapNode2t6MpnENode_2222_v_;
-text: .text%__1cTcompareAndSwapLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTcompareAndSwapLNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cOLibraryCallKitRinline_unsafe_CAS6MnJBasicType__i_;
text: .text%__1cIProjNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateX_sub_Op_CompareAndSwapL6MpknENode__v_;
text: .text%__1cNSCMemProjNodeJideal_reg6kM_I_;
text: .text%__1cTcompareAndSwapLNodeFreloc6kM_i_;
text: .text%__1cOGenerateOopMapMmonitor_push6MnNCellTypeState__v_;
text: .text%__1cOcompP_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPsarI_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOGenerateOopMapPdo_monitorenter6Mi_v_;
text: .text%__1cMmulD_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cPmethodDataKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cMaddF_regNodePoper_input_base6kM_I_;
text: .text%__1cPcmpD_cc_regNodeMideal_Opcode6kM_i_;
text: .text%__1cJLoadPNodeMstore_Opcode6kM_i_;
-text: .text%__1cbACallCompiledJavaDirectNodeKmethod_set6Ml_v_;
-text: .text%__1cYMachCallCompiledJavaNodePret_addr_offset6M_i_;
text: .text%__1cJCMoveNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cKciTypeFlowLStateVectorEtrap6MpnQciBytecodeStream_pnHciKlass_i_v_;
text: .text%__1cIDivLNodeLbottom_type6kM_pknEType__;
text: .text%__1cNobjArrayKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cJloadFNodeHtwo_adr6kM_I_;
text: .text%__1cNinstanceKlassYremove_dependent_nmethod6MpnHnmethod__v_;
text: .text%__1cOGenerateOopMapTmark_reachable_code6M_v_;
-text: .text%__1cNobjArrayKlassZcan_be_primary_super_slow6kM_i_;
text: .text%__1cOGenerateOopMapKinterp_all6M_v_;
text: .text%__1cOGenerateOopMapYrewrite_refval_conflicts6M_v_;
text: .text%__1cOGenerateOopMapRinit_basic_blocks6M_v_;
text: .text%__1cOGenerateOopMapYsetup_method_entry_state6M_v_;
text: .text%__1cFframeZinterpreter_frame_set_mdx6Ml_v_;
text: .text%__1cOGenerateOopMapbAmake_context_uninitialized6M_v_;
-text: .text%__1cQorI_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cOGenerateOopMapTmethodsig_to_effect6MpnNsymbolOopDesc_ipnNCellTypeState__i_;
text: .text%__1cOGenerateOopMapPinitialize_vars6M_v_;
text: .text%__1cNobjArrayKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cOGenerateOopMapKinit_state6M_v_;
-text: .text%__1cPClassFileParserbFparse_constant_pool_float_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cRmulL_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cOGenerateOopMapNinitialize_bb6M_v_;
text: .text%__1cOGenerateOopMapRdo_interpretation6M_v_;
-text: .text%__1cQciBytecodeStreamFtable6MnJBytecodesECode__2_;
text: .text%__1cOGenerateOopMap2t6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMapbImark_bbheaders_and_count_gc_points6M_v_;
text: .text%__1cOGenerateOopMapLcompute_map6MpnGThread__v_;
text: .text%__1cIRetTableRcompute_ret_table6MnMmethodHandle__v_;
text: .text%__1cRxorI_rReg_memNodeHtwo_adr6kM_I_;
-text: .text%__1cNmulI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cFStateM_sub_Op_XorI6MpknENode__v_;
text: .text%__1cISubLNodeJideal_reg6kM_I_;
text: .text%__1cLStrCompNodeLbottom_type6kM_pknEType__;
@@ -5017,16 +3230,11 @@ text: .text%__1cQOopMapCacheEntryRallocate_bit_mask6M_v_;
text: .text%__1cQOopMapCacheEntryTdeallocate_bit_mask6M_v_;
text: .text%__1cQOopMapCacheEntryEfill6MnMmethodHandle_i_v_;
text: .text%__1cRsalL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPsalL_rReg_1NodePoper_input_base6kM_I_;
-text: .text%__1cOstackSlotPOperJnum_edges6kM_I_;
text: .text%__1cOPhaseIdealLoopOadd_constraint6MiipnENode_22p23_v_;
text: .text%jni_IsAssignableFrom: jni.o;
text: .text%__1cOstackSlotPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cFParseWcheck_interpreter_type6MpnENode_pknEType_rpnNSafePointNode__2_;
-text: .text%__1cFParseXfetch_interpreter_state6MipknEType_pnENode__5_;
-text: .text%__1cObox_handleNodeJnum_opnds6kM_I_;
text: .text%__1cNaddP_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cSComputeAdapterInfoHdo_byte6M_v_;
text: .text%__1cPPerfDataManagerMcounter_name6Fpkc2_pc_;
text: .text%__1cOGenerateOopMapKpp_new_ref6MpnNCellTypeState_i_v_;
text: .text%__1cNcmovI_regNodeQuse_cisc_RegMask6M_v_;
@@ -5035,152 +3243,84 @@ text: .text%__1cOGenerateOopMapVresult_for_basicblock6Mi_v_;
text: .text%__1cTOopMapForCacheEntry2t6MnMmethodHandle_ipnQOopMapCacheEntry__v_;
text: .text%__1cPcmpD_cc_immNodeMideal_Opcode6kM_i_;
text: .text%__1cTOopMapForCacheEntryLcompute_map6MpnGThread__v_;
-text: .text%__1cTOopMapForCacheEntryOreport_results6kM_i_;
text: .text%__1cTconvF2D_reg_memNodePoper_input_base6kM_I_;
text: .text%__1cNdivL_rRegNodeErule6kM_I_;
text: .text%__1cRmulL_rReg_immNodeQuse_cisc_RegMask6M_v_;
text: .text%JVM_GetCallerClass;
text: .text%__1cQsalL_rReg_CLNodeErule6kM_I_;
text: .text%__1cJloadLNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNloadConP0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cXMachCallDynamicJavaNodePret_addr_offset6M_i_;
text: .text%__1cRxorI_rReg_immNodeErule6kM_I_;
text: .text%__1cZCallDynamicJavaDirectNodePcompute_padding6kMi_i_;
-text: .text%__1cFParseScreate_jump_tables6MpnENode_pnLSwitchRange_4_i_;
text: .text%__1cZCallDynamicJavaDirectNodeKmethod_set6Ml_v_;
text: .text%__1cPcmovI_reg_lNodeHtwo_adr6kM_I_;
text: .text%__1cLConvD2INodeGOpcode6kM_i_;
text: .text%__1cNcmovP_regNodeMideal_Opcode6kM_i_;
text: .text%__1cTconvI2F_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cKstorePNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cWPredictedCallGeneratorJis_inline6kM_i_;
-text: .text%__1cUjmpLoopEnd_shortNodeJis_Branch6kM_I_;
text: .text%__1cQorI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cSInterpreterRuntimeOmultianewarray6FpnKJavaThread_pi_v_;
text: .text%__1cUjmpLoopEnd_shortNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cFParseSjump_if_false_fork6MpnGIfNode_ii_v_;
-text: .text%__1cbFloadConL_0x6666666666666667NodeMideal_Opcode6kM_i_;
text: .text%__1cJAssemblerEshll6MpnMRegisterImpl_i_v_;
-text: .text%__1cOjmpLoopEndNodeUshort_branch_version6M_pnIMachNode__;
text: .text%__1cUjmpLoopEnd_shortNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPCountedLoopNodeGstride6kM_pnENode__;
-text: .text%__1cHi2bNodeJnum_opnds6kM_I_;
text: .text%__1cHTypeAryFxdual6kM_pknEType__;
text: .text%__1cOMacroAssemblerKverify_oop6MpnMRegisterImpl_pkc_v_;
-text: .text%__1cKstoreFNodeHtwo_adr6kM_I_;
text: .text%__1cNnegI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLencode_copy6FrnKCodeBuffer_ii_v_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTconvI2F_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cUCallNativeDirectNodeMideal_Opcode6kM_i_;
-text: .text%__1cKmul_hiNodePoper_input_base6kM_I_;
-text: .text%__1cKExceptionsNnew_exception6FpnGThread_nMsymbolHandle_pkcnGHandle_6_6_;
text: .text%__1cPcmpD_cc_regNodeMcisc_operand6kM_i_;
text: .text%__1cPICStubInterfaceKinitialize6MpnEStub_i_v_;
text: .text%__1cPICStubInterfaceRcode_size_to_size6kMi_i_;
text: .text%__1cPcmpD_cc_regNodeErule6kM_I_;
text: .text%__1cNtestU_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOPSPromotionLABRunallocate_object6MpnHoopDesc__i_;
-text: .text%__1cPcmpD_cc_immNodeHtwo_adr6kM_I_;
-text: .text%__1cOPhaseIdealLoopJdo_unroll6MpnNIdealLoopTree_rnJNode_List_i_v_;
text: .text%__1cRandL_rReg_immNodeErule6kM_I_;
-text: .text%__1cNloadConP0NodeGis_Con6kM_I_;
text: .text%__1cIMulINodeKmul_opcode6kM_i_;
-text: .text%__1cNdivL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cIMulINodeKadd_opcode6kM_i_;
text: .text%__1cRxorI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cPregister_native6FnLKlassHandle_nMsymbolHandle_1pCpnGThread__i_: jni.o;
text: .text%__1cTno_rax_rdx_RegLOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cOtypeArrayKlassOmulti_allocate6MipiipnGThread__pnHoopDesc__;
-text: .text%__1cTno_rax_rdx_RegLOperJnum_edges6kM_I_;
-text: .text%__1cOCallNativeNodeGOpcode6kM_i_;
text: .text%__1cQsalI_rReg_CLNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSobjArrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cJAssemblerDjmp6MpCnJrelocInfoJrelocType__v_;
text: .text%__1cLRShiftLNodeJideal_reg6kM_I_;
text: .text%jni_SetBooleanField: jni.o;
text: .text%__1cVLoaderConstraintTableWfind_constrained_klass6MnMsymbolHandle_nGHandle__pnMklassOopDesc__;
text: .text%__1cIModLNodeLbottom_type6kM_pknEType__;
text: .text%__1cRxorI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHMonitor2t6Mipkci_v_;
-text: .text%__1cGHandle2t6MpnGThread_pnHoopDesc__v_;
text: .text%__1cQorI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cODeoptimizationVtrap_state_has_reason6Fii_i_;
text: .text%__1cOloadConL32NodeMideal_Opcode6kM_i_;
text: .text%__1cNGrowableArray4Cpv_Egrow6Mi_v_;
text: .text%jni_GetFieldID: jni.o;
text: .text%__1cNGrowableArray4Cl_Egrow6Mi_v_;
-text: .text%__1cXjava_lang_ref_ReferenceOset_discovered6FpnHoopDesc_2_v_;
text: .text%__1cLResourceObj2n6FLn0APallocation_type__pv_;
text: .text%__1cFframeZinterpreter_frame_set_mdp6MpC_v_;
-text: .text%__1cJLoadPNodeUdepends_only_on_test6kM_i_;
text: .text%__1cFBlockNset_next_call6MpnENode_rnJVectorSet_rnLBlock_Array__v_;
text: .text%__1cIciObject2t6MpnHciKlass__v_;
text: .text%__1cScompL_rReg_immNodeErule6kM_I_;
text: .text%__1cQshrI_rReg_CLNodeErule6kM_I_;
-text: .text%__1cNaddL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateT_sub_Op_ThreadLocal6MpknENode__v_;
-text: .text%__1cVCallRuntimeDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cKciTypeFlowOsplit_range_at6Mi_pn0AFRange__;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
-text: .text%__1cXjvm_define_class_common6FpnHJNIEnv__pkcpnI_jobject_pkWi53pnGThread__pnH_jclass__: jvm.o;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcipnNsymbolOopDesc_4_v_;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcinMsymbolHandle_4nGHandle_6_v_;
-text: .text%__1cMmulD_immNodePoper_input_base6kM_I_;
text: .text%__1cRInlineCacheBufferRic_stub_code_size6F_i_;
text: .text%__1cMmulF_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cNGrowableArray4CpnKStackValue__2t6Mii_v_;
-text: .text%__1cZInterpreterMacroAssemblerbAget_cache_and_index_at_bcp6MpnMRegisterImpl_2i_v_;
text: .text%__1cRandL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMloadConFNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cOMacroAssemblerHcall_VM6MpnMRegisterImpl_pCi_v_;
text: .text%__1cUandI_rReg_imm255NodeErule6kM_I_;
text: .text%__1cRmulL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNcmovI_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNloadConL0NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPsarL_rReg_2NodePoper_input_base6kM_I_;
-text: .text%__1cJAssemblerGpushaq6M_v_;
text: .text%__1cOMethodLivenessKBasicBlockFsplit6Mi_p1_;
text: .text%__1cFStateP_sub_Op_RShiftL6MpknENode__v_;
-text: .text%__1cMrsi_RegPOperJnum_edges6kM_I_;
-text: .text%__1cMstoreSSPNodePoper_input_base6kM_I_;
-text: .text%__1cScompL_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cKCodeBufferWinsert_double_constant6Md_pC_;
text: .text%__1cPClassFileParserbJparse_classfile_signature_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cNaddP_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFParseHdo_irem6M_v_;
-text: .text%__1cRsarL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerEsubl6MpnMRegisterImpl_2_v_;
-text: .text%__1cHi2bNodeHtwo_adr6kM_I_;
text: .text%__1cPClassFileParserbBcheck_illegal_static_method6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cJAssemblerFmovsd6MnHAddress_pnRFloatRegisterImpl__v_;
-text: .text%__1cTCallInterpreterNodeScalling_convention6kMpnLOptoRegPair_I_v_;
-text: .text%__1cXMachCallInterpreterNodeWis_MachCallInterpreter6M_p0_;
-text: .text%__1cFStateX_sub_Op_CallInterpreter6MpknENode__v_;
-text: .text%__1cZCallInterpreterDirectNodeFreloc6kM_i_;
-text: .text%__1cMStartC2INodeScalling_convention6kMpnLOptoRegPair_I_v_;
text: .text%__1cZInterpreterMacroAssemblerYtest_method_data_pointer6MpnMRegisterImpl_rnFLabel__v_;
-text: .text%__1cMStartC2INodeKc2i_domain6FpknJTypeTuple__3_;
-text: .text%__1cHCompilebMGenerate_Compiled_To_Interpreter_Graph6MpknITypeFunc_pC_v_;
-text: .text%__1cZCallInterpreterDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFciEnvUregister_c2i_adapter6MpnIciMethod_pnJOopMapSet_pnKCodeBuffer_ii_v_;
-text: .text%__1cSMachC2IcheckICNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cSMachC2IEntriesNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRtestI_reg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHMatcherbAinterpreter_method_oop_reg6F_i_;
-text: .text%__1cHMatcherXcompiler_method_oop_reg6F_i_;
text: .text%__1cIciMethodRinterpreter_entry6M_pC_;
text: .text%__1cSTailCalljmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPcmpD_cc_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cSTailCalljmpIndNodeGpinned6kM_i_;
-text: .text%__1cSTailCalljmpIndNodeHtwo_adr6kM_I_;
text: .text%jni_SetByteArrayRegion: jni.o;
-text: .text%__1cHBoxNodeGOpcode6kM_i_;
-text: .text%__1cPcmpD_cc_regNodeJnum_opnds6kM_I_;
-text: .text%__1cKC2IAdapter2t6MpnKCodeBuffer_iIpnJOopMapSet_i_v_;
-text: .text%__1cKC2IAdapterPnew_c2i_adapter6FpnKCodeBuffer_IpnJOopMapSet_i_p0_;
-text: .text%__1cKC2IAdapter2n6FLI_pv_;
-text: .text%__1cJAssemblerFmovss6MnHAddress_pnRFloatRegisterImpl__v_;
text: .text%__1cIMulINodeJideal_reg6kM_I_;
text: .text%__1cKCMovePNodeGOpcode6kM_i_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pF_vc_v_;
@@ -5189,15 +3329,11 @@ text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorLpass_object6M_v_;
text: .text%__1cHciKlass2t6MpnIciSymbol_p0_v_;
text: .text%__1cFParseTjump_if_always_fork6Mii_v_;
text: .text%__1cKloadUBNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMmulF_immNodePoper_input_base6kM_I_;
-text: .text%__1cPcmpD_cc_immNodePoper_input_base6kM_I_;
text: .text%__1cUciInstanceKlassKlassEmake6F_p0_;
text: .text%__1cJAssemblerDhlt6M_v_;
text: .text%__1cOMacroAssemblerEstop6Mpkc_v_;
text: .text%__1cQComputeCallStackIdo_float6M_v_;
-text: .text%__1cIciObjectUis_array_klass_klass6M_i_;
text: .text%__1cKciTypeFlowLStateVectorLdo_newarray6MpnQciBytecodeStream__v_;
-text: .text%__1cWResolveOopMapConflictsRpossible_gc_point6MpnOBytecodeStream__i_;
text: .text%__1cJloadFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcmovI_reg_lNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIciSymbolHbyte_at6Mi_i_;
@@ -5205,15 +3341,9 @@ text: .text%__1cNFingerprinterHdo_byte6M_v_;
text: .text%__1cENode2t6Mp0111111_v_;
text: .text%__1cIMaxINodeGadd_id6kM_pknEType__;
text: .text%__1cRCardTableModRefBSFclear6MnJMemRegion__v_;
-text: .text%__1cOMacroAssemblerHcall_VM6MpnMRegisterImpl_pC2i_v_;
text: .text%__1cKExceptionsL_throw_args6FpnGThread_pkcinMsymbolHandle_5pnRJavaCallArguments__v_;
text: .text%__1cMmulD_immNodeErule6kM_I_;
-text: .text%__1cMnegD_regNodePoper_input_base6kM_I_;
-text: .text%__1cFframeVshould_be_deoptimized6kM_i_;
text: .text%__1cMaddF_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cbDjava_lang_reflect_ConstructorThas_signature_field6F_i_;
-text: .text%__1cbDjava_lang_reflect_ConstructorVhas_annotations_field6F_i_;
-text: .text%__1cbDjava_lang_reflect_ConstructorbFhas_parameter_annotations_field6F_i_;
text: .text%__1cbDjava_lang_reflect_ConstructorIset_slot6FpnHoopDesc_i_v_;
text: .text%__1cKReflectionPnew_constructor6FnMmethodHandle_pnGThread__pnHoopDesc__;
text: .text%__1cbDjava_lang_reflect_ConstructorPset_annotations6FpnHoopDesc_2_v_;
@@ -5226,61 +3356,35 @@ text: .text%__1cbDjava_lang_reflect_ConstructorTset_parameter_types6FpnHoopDesc_
text: .text%__1cPciInstanceKlassYprotection_domain_handle6M_pnI_jobject__;
text: .text%__1cbDjava_lang_reflect_ConstructorJset_clazz6FpnHoopDesc_2_v_;
text: .text%__1cbDjava_lang_reflect_ConstructorGcreate6FpnGThread__nGHandle__;
-text: .text%__1cKmul_hiNodeJnum_opnds6kM_I_;
text: .text%__1cKstoreFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKstoreBNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRxorI_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cNsubI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cJAssemblerExorl6MpnMRegisterImpl_2_v_;
-text: .text%__1cHMatcherXinterpreter_arg_ptr_reg6F_i_;
text: .text%__1cINegDNodeGOpcode6kM_i_;
text: .text%__1cNdecL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPjava_lang_ClassQprimitive_mirror6FnJBasicType__pnHoopDesc__;
-text: .text%__1cRsarI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
-text: .text%__1cNcmovP_regNodeJnum_opnds6kM_I_;
text: .text%__1cSCompiledStaticCallNcompute_entry6FnMmethodHandle_rnOStaticCallInfo__v_;
text: .text%__1cMloadConDNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLOptoRuntimeVresolve_static_call_C6FpnKJavaThread__pC_;
-text: .text%__1cSCompiledStaticCallIis_clean6kM_i_;
text: .text%__1cMrsi_RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cTAbstractInterpreterLdeopt_entry6FnITosState_i_pC_;
text: .text%__1cRindIndexScaleOperNconstant_disp6kM_i_;
-text: .text%__1cQorI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cRtestI_reg_immNodeJnum_opnds6kM_I_;
text: .text%jni_NewStringUTF: jni.o;
text: .text%__1cTAbstractInterpreterSBasicType_as_index6FnJBasicType__i_;
text: .text%__1cNtestI_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cZInterpreterMacroAssemblerGpush_l6MpnMRegisterImpl__v_;
-text: .text%__1cRxorI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerFpop_i6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerGpush_d6MpnRFloatRegisterImpl__v_;
-text: .text%__1cObox_handleNodeErule6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerIpush_ptr6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerGpush_f6MpnRFloatRegisterImpl__v_;
text: .text%__1cOleaPIdxOffNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQsarL_rReg_63NodePoper_input_base6kM_I_;
text: .text%__1cSCompiledStaticCallDset6MrknOStaticCallInfo__v_;
text: .text%__1cJAssemblerEcmpl6MpnMRegisterImpl_i_v_;
-text: .text%__1cHCompileRmake_vm_intrinsic6MpnIciMethod_i_pnNCallGenerator__;
text: .text%__1cNmulI_rRegNodeErule6kM_I_;
-text: .text%__1cNGrowableArray4Ci_2t6Mii_v_;
-text: .text%__1cQsalL_rReg_CLNodeJnum_opnds6kM_I_;
text: .text%__1cNGrowableArray4Ci_Uclear_and_deallocate6M_v_;
-text: .text%__1cPCountedLoopNode2t6MpnENode_2_v_;
-text: .text%__1cSCountedLoopEndNode2t6MpnENode_2ff_v_;
text: .text%__1cJloadDNodeMideal_Opcode6kM_i_;
text: .text%__1cENodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIDivLNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cMmulD_regNodePoper_input_base6kM_I_;
-text: .text%__1cTconvF2D_reg_memNodeJnum_opnds6kM_I_;
text: .text%__1cIModINodeJideal_reg6kM_I_;
text: .text%__1cYinternal_word_RelocationGtarget6M_pC_;
-text: .text%__1cObox_handleNodeLbottom_type6kM_pknEType__;
-text: .text%__1cbDreorder_based_on_method_index6FpnPobjArrayOopDesc_1ppnHoopDesc__v_: methodOop.o;
text: .text%__1cPshrL_rReg_1NodeMideal_Opcode6kM_i_;
-text: .text%__1cUverify_byte_codes_fn6F_pv_: verifier.o;
-text: .text%__1cMLinkResolverbPlinktime_resolve_interface_method_or_null6FnLKlassHandle_nMsymbolHandle_21i_nMmethodHandle__;
text: .text%JVM_GetClassCPTypes;
text: .text%__1cQComputeCallStackHdo_byte6M_v_;
text: .text%JVM_GetClassCPEntriesCount;
@@ -5291,19 +3395,14 @@ text: .text%__1cJloadBNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKmul_hiNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerEnegq6MpnMRegisterImpl__v_;
text: .text%__1cNmodL_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKloadUBNodeHtwo_adr6kM_I_;
-text: .text%__1cRxorI_rReg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cVCallRuntimeDirectNodePoper_input_base6kM_I_;
text: .text%__1cSstring_compareNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cPPerfDataManagerUcreate_long_variable6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnQPerfLongVariable__;
-text: .text%__1cNsubL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOjmpLoopEndNodeGnegate6M_v_;
text: .text%__1cQorI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVCallRuntimeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPsalL_rReg_1NodeErule6kM_I_;
text: .text%__1cPcmpD_cc_immNodeErule6kM_I_;
text: .text%__1cJAssemblerFtestl6MpnMRegisterImpl_2_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorVset_vtos_entry_points6MpnITemplate_rpC44444444_v_;
text: .text%__1cHCompileQgrow_alias_types6M_v_;
text: .text%__1cUandI_rReg_imm255NodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_CallIntMethod: jni.o;
@@ -5311,74 +3410,42 @@ text: .text%__1cNSharedRuntimeSfind_callee_method6FpnKJavaThread_pnGThread__nMme
text: .text%__1cPno_rax_RegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cMrdx_RegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNmulI_rRegNodeMcisc_operand6kM_i_;
-text: .text%__1cNxorI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTconvF2D_reg_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIUniverseWreinitialize_vtable_of6FpnFKlass_pnGThread__v_;
text: .text%__1cJLoadINodeMstore_Opcode6kM_i_;
text: .text%__1cNSharedRuntimeTreresolve_call_site6FpnKJavaThread_pnGThread__nMmethodHandle__;
text: .text%__1cbFunnecessary_membar_volatileNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cENodeEgetd6kM_d_;
text: .text%__1cICmpFNodeGOpcode6kM_i_;
-text: .text%__1cLOptoRuntimeThandle_wrong_method6FpnKJavaThread__pC_;
text: .text%__1cNGrowableArray4CpnOMethodLivenessKBasicBlock__Egrow6Mi_v_;
text: .text%__1cKstoreFNodeOmemory_operand6kM_pknIMachOper__;
text: .text%JVM_SetClassSigners;
text: .text%__1cNdivL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cScompI_rReg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cZCallDynamicJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRandL_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cOstackSlotPOperFscale6kM_i_;
-text: .text%__1cHnmethodPis_dependent_on6MpnMklassOopDesc__i_;
-text: .text%__1cMdecI_memNodeHtwo_adr6kM_I_;
-text: .text%__1cSalign_to_page_size6FL_L_: heap.o;
text: .text%__1cNmulI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cOstackSlotPOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cPsarL_rReg_2NodeErule6kM_I_;
text: .text%__1cOPhaseIdealLoopUpeeled_dom_test_elim6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%jni_NewByteArray: jni.o;
text: .text%__1cYinternal_word_RelocationFvalue6M_pC_;
-text: .text%__1cYinternal_word_RelocationWfix_relocation_at_move6Ml_v_;
text: .text%__1cFStateM_sub_Op_SubL6MpknENode__v_;
text: .text%__1cJAssemblerSemit_arith_operand6MipnMRegisterImpl_nHAddress_i_v_;
text: .text%__1cJAssemblerEcmpl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cMaddF_regNodeMcisc_operand6kM_i_;
-text: .text%__1cRsubI_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNloadConPcNodeHtwo_adr6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorYgenerate_deopt_entry_for6MnITosState_i_pC_;
-text: .text%__1cKLoadPCNodeGOpcode6kM_i_;
-text: .text%__1cTconvI2F_reg_regNodeMcisc_operand6kM_i_;
text: .text%__1cOstackSlotPOperEtype6kM_pknEType__;
-text: .text%__1cbCAbstractInterpreterGeneratorZgenerate_return_entry_for6MnITosState_i_pC_;
text: .text%__1cTconvD2I_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cMstoreSSPNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNGrowableArray4Ci_Icontains6kMrki_i_;
text: .text%__1cKstoreBNodeFreloc6kM_i_;
-text: .text%__1cObox_handleNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMjniIdPrivateGid_for6FnTinstanceKlassHandle_i_l_;
-text: .text%__1cNget_method_id6FpnHJNIEnv__pnH_jclass_pkc5ipnGThread__pnK_jmethodID__: jni.o;
text: .text%__1cQshrI_rReg_CLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQjava_lang_SystemTout_offset_in_bytes6F_i_;
-text: .text%__1cMjniIdSupportNto_jmethod_id6FpnNmethodOopDesc__pnK_jmethodID__;
text: .text%__1cNmethodOopDescKjmethod_id6M_pnK_jmethodID__;
text: .text%__1cQjava_lang_SystemSin_offset_in_bytes6F_i_;
text: .text%__1cRandL_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_2_v_;
-text: .text%__1cbACallCompiledJavaDirectNodeFreloc6kM_i_;
text: .text%__1cIAddFNodeLbottom_type6kM_pknEType__;
-text: .text%__1cUCallCompiledJavaNodeScalling_convention6kMpnLOptoRegPair_I_v_;
-text: .text%__1cFStateY_sub_Op_CallCompiledJava6MpknENode__v_;
-text: .text%__1cFciEnvUregister_i2c_adapter6MpnIciMethod_pnJOopMapSet_pnKCodeBuffer_i_v_;
-text: .text%__1cbACallCompiledJavaDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cMStartI2CNodeScalling_convention6kMpnLOptoRegPair_I_v_;
-text: .text%__1cHCompilebMGenerate_Interpreter_To_Compiled_Graph6MpknITypeFunc__v_;
text: .text%__1cPciObjectFactoryPinsert_non_perm6Mrpn0ANNonPermObject_pnHoopDesc_pnIciObject__v_;
-text: .text%__1cKI2CAdapter2n6FLI_pv_;
-text: .text%__1cKCodeBufferVinsert_float_constant6Mf_pC_;
-text: .text%__1cbACallCompiledJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKI2CAdapterPnew_i2c_adapter6FpnKCodeBuffer_pnJOopMapSet_i_p0_;
text: .text%__1cKmul_hiNodeErule6kM_I_;
-text: .text%__1cKI2CAdapter2t6MpnKCodeBuffer_pnJOopMapSet_ii_v_;
-text: .text%__1cbBinitialize_itable_for_klass6FpnMklassOopDesc__v_;
text: .text%__1cFJNIidEfind6Mi_p0_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_5pnGThread__v_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorIgenerate6ML_v_;
@@ -5388,69 +3455,40 @@ text: .text%__1cXSignatureHandlerLibraryLset_handler6FpnKCodeBuffer__pC_;
text: .text%JVM_IsPrimitiveClass;
text: .text%__1cIDivDNodeGOpcode6kM_i_;
text: .text%__1cMnegD_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cJCMoveNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cPciObjArrayKlassJmake_impl6FpnHciKlass__p0_;
-text: .text%__1cQjava_lang_ThreadJis_daemon6FpnHoopDesc__i_;
text: .text%__1cJAssemblerEcmpl6MnHAddress_i_v_;
text: .text%__1cHi2bNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLimmI_24OperJnum_edges6kM_I_;
text: .text%__1cRxorI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cFTypeDJsingleton6kM_i_;
text: .text%__1cPsalI_rReg_1NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIModLNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cUPipeline_Use_Element2t6MIIIinXPipeline_Use_Cycle_Mask__v_;
-text: .text%__1cTmembar_volatileNodePoper_input_base6kM_I_;
-text: .text%__1cNloadConPcNodePoper_input_base6kM_I_;
text: .text%__1cXPipeline_Use_Cycle_Mask2t6MI_v_;
text: .text%__1cKCompiledICMset_to_clean6M_v_;
-text: .text%__1cNdecL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cIciMethodOresolve_invoke6MpnHciKlass_2_p0_;
text: .text%__1cQChunkPoolCleanerEtask6M_v_;
text: .text%__1cICmpDNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPsalL_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_MulI6MpknENode__v_;
text: .text%__1cZCallDynamicJavaDirectNodeFreloc6kM_i_;
-text: .text%__1cQMachCallJavaNodeVis_MachCallStaticJava6M_pnWMachCallStaticJavaNode__;
-text: .text%__1cUandI_rReg_imm255NodeJnum_opnds6kM_I_;
text: .text%__1cFStateX_sub_Op_CallDynamicJava6MpknENode__v_;
-text: .text%__1cNObjectMonitorEwait6MxipnGThread__v_;
text: .text%jni_FindClass: jni.o;
text: .text%__1cKarrayKlassTallocate_arrayArray6MiipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cIMinINodeJideal_reg6kM_I_;
text: .text%__1cJCMoveNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cSObjectSynchronizerEwait6FnGHandle_xpnGThread__v_;
-text: .text%__1cNCallGeneratorSfor_predicted_call6FpnHciKlass_p03_3_;
-text: .text%__1cLTypeInstPtrRcast_to_exactness6kMi_pknEType__;
text: .text%__1cTconvI2F_reg_regNodeErule6kM_I_;
-text: .text%__1cWPredictedCallGeneratorKis_virtual6kM_i_;
-text: .text%__1cTconvF2D_reg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cNcmovP_regNodeErule6kM_I_;
-text: .text%__1cMaddF_regNodeJnum_opnds6kM_I_;
text: .text%__1cWPredictedCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%JVM_MonitorWait;
-text: .text%__1cPshrL_rReg_1NodePoper_input_base6kM_I_;
-text: .text%__1cMaddF_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNCallGeneratorQfor_virtual_call6FpnIciMethod__p0_;
text: .text%__1cUVirtualCallGeneratorIgenerate6MpnIJVMState__2_;
-text: .text%__1cLPSMarkSweepbAabsorb_live_data_from_eden6FpnUPSAdaptiveSizePolicy_pnKPSYoungGen_pnIPSOldGen__i_;
text: .text%__1cUPSMarkSweepDecoratorbDadvance_destination_decorator6F_v_;
-text: .text%__1cNmulI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNmulI_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cSOnStackReplacementPget_osr_adapter6FnFframe_nMmethodHandle__pnKOSRAdapter__;
-text: .text%__1cNGrowableArray4CpnKOSRAdapter__Hat_grow6Mirk1_1_;
text: .text%__1cPciObjArrayKlassEmake6FpnHciKlass__p0_;
text: .text%JVM_GetClassDeclaredConstructors;
-text: .text%__1cRCardTableModRefBSKinvalidate6MnJMemRegion__v_;
text: .text%__1cJLoadFNodeJideal_reg6kM_I_;
text: .text%__1cJAssemblerEaddq6MpnMRegisterImpl_2_v_;
-text: .text%__1cFTypeFJsingleton6kM_i_;
text: .text%__1cTconvF2D_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cMstoreSSPNodeErule6kM_I_;
text: .text%__1cOloadConL32NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMstoreSSPNodeHtwo_adr6kM_I_;
-text: .text%__1cMincI_memNodeHtwo_adr6kM_I_;
text: .text%__1cKcmpOpUOperFequal6kM_i_;
-text: .text%__1cTconvF2D_reg_regNodePoper_input_base6kM_I_;
text: .text%__1cHRegMask2t6M_v_;
text: .text%__1cIGraphKitPdstore_rounding6MpnENode__2_;
text: .text%__1cNGrowableArray4Ci_2t6MpnFArena_iirki_v_;
@@ -5458,13 +3496,9 @@ text: .text%__1cNloadConL0NodeHsize_of6kM_I_;
text: .text%__1cQset_lwp_priority6Fiii_i_;
text: .text%__1cJCmpD3NodeGOpcode6kM_i_;
text: .text%__1cKloadUBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPcmpD_cc_immNodeJnum_opnds6kM_I_;
text: .text%__1cLConvL2DNodeGOpcode6kM_i_;
-text: .text%__1cRmulI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerFcmovq6Mn0AJCondition_pnMRegisterImpl_3_v_;
-text: .text%__1cNminI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMmulD_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cNminI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cFStateM_sub_Op_MinI6MpknENode__v_;
text: .text%__1cCosTset_native_priority6FpnGThread_i_nIOSReturn__;
text: .text%__1cJStubQdDueueRrequest_committed6Mi_pnEStub__;
@@ -5474,7 +3508,6 @@ text: .text%__1cNCallGeneratorRfor_uncommon_trap6FpnIciMethod_nODeoptimizationLD
text: .text%__1cUandI_rReg_imm255NodeHtwo_adr6kM_I_;
text: .text%__1cJStubQdDueueMremove_first6M_v_;
text: .text%__1cOPhaseIdealLoopOdo_range_check6MpnNIdealLoopTree_rnJNode_List__v_;
-text: .text%__1cUVirtualCallGeneratorKis_virtual6kM_i_;
text: .text%__1cPICStubInterfaceIfinalize6MpnEStub__v_;
text: .text%__1cZUncommonTrapCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cPICStubInterfaceEsize6kMpnEStub__i_;
@@ -5482,27 +3515,17 @@ text: .text%__1cJAssemblerEcmpq6MpnMRegisterImpl_2_v_;
text: .text%__1cNGrowableArray4CpnIciObject__Egrow6Mi_v_;
text: .text%__1cFStateM_sub_Op_ModI6MpknENode__v_;
text: .text%__1cNObjectMonitor2t6M_v_;
-text: .text%__1cNmodI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFParseNdo_instanceof6M_v_;
text: .text%__1cPcmpD_cc_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNIdealLoopTreeXpolicy_maximally_unroll6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cTmembar_volatileNodeHtwo_adr6kM_I_;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cIGraphKitOgen_instanceof6MpnENode_2_2_;
text: .text%__1cHciKlassOsuper_of_depth6MI_p0_;
text: .text%__1cJLoadDNodeGOpcode6kM_i_;
-text: .text%__1cNcmovL_regNodePoper_input_base6kM_I_;
text: .text%__1cMdecI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRaddI_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cXNativeSignatureIteratorJdo_object6Mii_v_;
text: .text%__1cQsalL_rReg_CLNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNandI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cbFunnecessary_membar_volatileNodeLbottom_type6kM_pknEType__;
-text: .text%__1cHMatcherXpost_store_load_barrier6FpknENode__i_;
-text: .text%__1cYjava_lang_reflect_MethodThas_signature_field6F_i_;
-text: .text%__1cYjava_lang_reflect_MethodbFhas_parameter_annotations_field6F_i_;
text: .text%__1cYjava_lang_reflect_MethodZset_parameter_annotations6FpnHoopDesc_2_v_;
-text: .text%__1cYjava_lang_reflect_MethodbChas_annotation_default_field6F_i_;
text: .text%__1cJloadDNodePoper_input_base6kM_I_;
text: .text%__1cENodeEgetf6kM_f_;
text: .text%__1cYjava_lang_reflect_MethodIset_name6FpnHoopDesc_2_v_;
@@ -5510,33 +3533,19 @@ text: .text%__1cYjava_lang_reflect_MethodPset_return_type6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodJset_clazz6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodIset_slot6FpnHoopDesc_i_v_;
text: .text%__1cYjava_lang_reflect_MethodGcreate6FpnGThread__nGHandle__;
-text: .text%__1cPBytecode_invokeIis_valid6kM_i_;
-text: .text%__1cKReflectionKnew_method6FnMmethodHandle_iipnGThread__pnHoopDesc__;
-text: .text%__1cYjava_lang_reflect_MethodVhas_annotations_field6F_i_;
text: .text%__1cYjava_lang_reflect_MethodPset_annotations6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodWset_annotation_default6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodNset_modifiers6FpnHoopDesc_i_v_;
-text: .text%__1cNmethodOopDescSannotation_default6kM_pnQtypeArrayOopDesc__;
text: .text%__1cYjava_lang_reflect_MethodTset_exception_types6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodTset_parameter_types6FpnHoopDesc_2_v_;
text: .text%__1cVCallRuntimeDirectNodeKmethod_set6Ml_v_;
-text: .text%__1cTconvD2I_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cSTailCalljmpIndNodeJnum_opnds6kM_I_;
-text: .text%__1cTconvI2D_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cQorI_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cKstoreFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRaddI_mem_rRegNodePoper_input_base6kM_I_;
text: .text%__1cMmulF_immNodeErule6kM_I_;
-text: .text%__1cJAssemblerGmovlpd6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cPcmpF_cc_regNodePoper_input_base6kM_I_;
-text: .text%__1cNCompileBrokerTcompile_adapter_for6FnMmethodHandle_ii_pnMBasicAdapter__;
text: .text%__1cCosbBthread_local_storage_at_put6Fipv_v_;
-text: .text%__1cNCompileBrokerbBwait_for_adapter_completion6FpnLCompileTask__pnMBasicAdapter__;
-text: .text%__1cOjmpLoopEndNodeJis_Branch6kM_I_;
text: .text%__1cOjmpLoopEndNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cNinstanceKlassSregister_finalizer6FpnPinstanceOopDesc_pnGThread__2_;
text: .text%__1cSThreadLocalStorageNpd_set_thread6FpnGThread__v_;
-text: .text%__1cKCMoveINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cSThreadLocalStoragebBget_thread_via_cache_slowly6FLi_pnGThread__;
text: .text%__1cMrax_RegIOperEtype6kM_pknEType__;
text: .text%__1cOjmpLoopEndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -5545,7 +3554,6 @@ text: .text%jni_GetMethodID: jni.o;
text: .text%__1cSThreadLocalStorageSset_thread_in_slot6FpnGThread__v_;
text: .text%get_thread;
text: .text%__1cMincI_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cIGraphKitXinsert_mem_bar_volatile6MpnKMemBarNode_i_v_;
text: .text%__1cSThreadLocalStorageKset_thread6FpnGThread__v_;
text: .text%__1cCosHSolarisKmmap_chunk6FpcLii_2_;
text: .text%__1cbFloadConL_0x6666666666666667NodeLout_RegMask6kM_rknHRegMask__;
@@ -5555,75 +3563,52 @@ text: .text%__1cRxorI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cMmulD_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNcmovP_regNodeLbottom_type6kM_pknEType__;
text: .text%__1cJScopeDescTdecode_scope_values6Mi_pnNGrowableArray4CpnKScopeValue____;
-text: .text%__1cTAbstractInterpreterWlayout_activation_impl6FpnNmethodOopDesc_iiiipnFframe_4i_i_;
text: .text%__1cLconvI2BNodeMideal_Opcode6kM_i_;
text: .text%__1cIDivLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cQsalI_rReg_CLNodeHtwo_adr6kM_I_;
text: .text%__1cPsarL_rReg_2NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNmodL_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cScompL_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cQshrL_rReg_CLNodePoper_input_base6kM_I_;
-text: .text%__1cJCMoveNode2t6MpnENode_22pknEType__v_;
-text: .text%__1cJCMoveNodeEmake6FpnENode_222pknEType__p0_;
text: .text%__1cVLoaderConstraintTableYextend_loader_constraint6MpnVLoaderConstraintEntry_nGHandle_pnMklassOopDesc__v_;
text: .text%__1cIimmIOperJnum_edges6kM_I_;
-text: .text%__1cJAssemblerFmovss6MpnRFloatRegisterImpl_nHAddress__v_;
text: .text%__1cRtestI_reg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRandL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNGrowableArray4CpnKciTypeFlowFBlock__Gremove6Mrk2_v_;
text: .text%__1cVLoaderConstraintTablebHensure_loader_constraint_capacity6MpnVLoaderConstraintEntry_i_v_;
-text: .text%__1cPsalL_rReg_1NodeJnum_opnds6kM_I_;
-text: .text%__1cMsubD_regNodePoper_input_base6kM_I_;
-text: .text%__1cMstoreSSPNodeJnum_opnds6kM_I_;
text: .text%__1cMnegD_regNodeHtwo_adr6kM_I_;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
-text: .text%__1cPClassFileParserXverify_unqualified_name6MpcIi_i_;
text: .text%__1cMdivD_immNodeMideal_Opcode6kM_i_;
text: .text%__1cTconvI2F_reg_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cQjava_lang_ThreadMis_stillborn6FpnHoopDesc__i_;
text: .text%__1cQsarL_rReg_63NodeErule6kM_I_;
text: .text%__1cRsubL_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cMVirtualSpaceQuncommitted_size6kM_L_;
text: .text%__1cRsubL_rReg_memNodePoper_input_base6kM_I_;
-text: .text%__1cMVirtualSpaceJexpand_by6ML_i_;
text: .text%__1cNstoreImmPNodeMideal_Opcode6kM_i_;
text: .text%__1cQjava_lang_ThreadKset_thread6FpnHoopDesc_pnKJavaThread__v_;
text: .text%__1cLOopMapCache2t6M_v_;
-text: .text%__1cJloadDNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cQComputeCallStackHdo_char6M_v_;
-text: .text%__1cNdivI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cOcmovI_regUNodePoper_input_base6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerEpush6MnITosState__v_;
text: .text%__1cSvframeArrayElementDbci6kM_i_;
text: .text%__1cMaddF_regNodeErule6kM_I_;
-text: .text%__1cTconvF2D_reg_memNodeHtwo_adr6kM_I_;
text: .text%__1cNdecL_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cMdecI_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cFStateN_sub_Op_LoadF6MpknENode__v_;
text: .text%__1cIMulDNodeLbottom_type6kM_pknEType__;
text: .text%__1cNaddI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJAssemblerEdecl6MpnMRegisterImpl__v_;
-text: .text%__1cOPhaseIdealLoopVinsert_pre_post_loops6MpnNIdealLoopTree_rnJNode_List_i_v_;
text: .text%__1cJAssemblerGbswapl6MpnMRegisterImpl__v_;
text: .text%__1cRInlineCacheBufferLnew_ic_stub6F_pnGICStub__;
text: .text%__1cRInlineCacheBufferWcreate_transition_stub6FpnKCompiledIC_pnHoopDesc_pC_v_;
text: .text%__1cIAddDNodeGOpcode6kM_i_;
text: .text%__1cMincI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorIpass_int6M_v_;
-text: .text%__1cNloadConPcNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGICStubIset_stub6MpnKCompiledIC_pnHoopDesc_pC_v_;
text: .text%__1cRInlineCacheBufferXassemble_ic_buffer_code6FpCpnHoopDesc_1_v_;
text: .text%__1cTconvD2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerHpop_ptr6MpnMRegisterImpl__v_;
-text: .text%__1cGThreadbCis_hidden_from_external_view6kM_i_;
text: .text%__1cMelapsedTimer2t6M_v_;
-text: .text%__1cGThreadVis_jvmti_agent_thread6kM_i_;
text: .text%__1cMdivD_immNodeErule6kM_I_;
text: .text%__1cTconvI2D_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cFTypeFFxmeet6kMpknEType__3_;
text: .text%__1cJAssemblerEshrl6MpnMRegisterImpl_i_v_;
text: .text%__1cGICStubLdestination6kM_pC_;
-text: .text%__1cRsalL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRInlineCacheBufferVic_buffer_entry_point6FpC_1_;
text: .text%__1cPcmpD_cc_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMaddD_immNodeMideal_Opcode6kM_i_;
@@ -5636,31 +3621,21 @@ text: .text%__1cNcmovP_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cUandI_rReg_imm255NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNdivL_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cKcastPPNodePoper_input_base6kM_I_;
-text: .text%__1cMaddD_immNodePoper_input_base6kM_I_;
text: .text%__1cFTypeDFxmeet6kMpknEType__3_;
text: .text%__1cKloadUBNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cIDivLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cJloadDNodeErule6kM_I_;
-text: .text%__1cRaddI_mem_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_;
text: .text%__1cPsarL_rReg_1NodeMideal_Opcode6kM_i_;
text: .text%__1cKCompiledICMstub_address6kM_pC_;
text: .text%__1cMmulD_regNodeMcisc_operand6kM_i_;
text: .text%__1cMmulF_memNodePoper_input_base6kM_I_;
text: .text%lwp_cond_destroy: os_solaris.o;
-text: .text%__1cHnmethodNis_osr_method6kM_i_;
text: .text%lwp_mutex_destroy: os_solaris.o;
-text: .text%__1cFParseScan_rerun_bytecode6M_i_;
text: .text%__1cISubFNodeGOpcode6kM_i_;
-text: .text%__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
-text: .text%__1cFTypeDGis_nan6kM_i_;
-text: .text%__1cTconvI2F_reg_regNodeJnum_opnds6kM_I_;
text: .text%__1cOJavaAssertionsNmatch_package6Fpkc_pn0AKOptionList__;
-text: .text%__1cOJavaAssertionsHenabled6Fpkci_i_;
text: .text%__1cOJavaAssertionsLmatch_class6Fpkc_pn0AKOptionList__;
text: .text%JVM_DesiredAssertionStatus;
text: .text%__1cHTypePtrFxdual6kM_pknEType__;
-text: .text%__1cTconvI2F_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cQjava_lang_ThreadLthreadGroup6FpnHoopDesc__2_;
text: .text%__1cLConvI2FNodeLbottom_type6kM_pknEType__;
text: .text%__1cXjava_lang_reflect_FieldNset_modifiers6FpnHoopDesc_i_v_;
@@ -5671,41 +3646,25 @@ text: .text%__1cXjava_lang_reflect_FieldJset_clazz6FpnHoopDesc_2_v_;
text: .text%__1cXjava_lang_reflect_FieldIset_name6FpnHoopDesc_2_v_;
text: .text%__1cJvmSymbolsOsignature_type6FpnNsymbolOopDesc__nJBasicType__;
text: .text%__1cMloadConFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNnegI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cPcmpF_cc_regNodeHtwo_adr6kM_I_;
-text: .text%__1cKReflectionJnew_field6FpnPfieldDescriptor_ipnGThread__pnHoopDesc__;
text: .text%__1cXjava_lang_reflect_FieldIset_type6FpnHoopDesc_2_v_;
text: .text%__1cKJavaThreadbScheck_safepoint_and_suspend_for_native_trans6Fp0_v_;
text: .text%__1cXjava_lang_reflect_FieldPset_annotations6FpnHoopDesc_2_v_;
text: .text%__1cXjava_lang_reflect_FieldGcreate6FpnGThread__nGHandle__;
-text: .text%__1cXjava_lang_reflect_FieldVhas_annotations_field6F_i_;
text: .text%__1cISubDNodeGOpcode6kM_i_;
text: .text%__1cJloadFNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cSstring_compareNodeHtwo_adr6kM_I_;
text: .text%__1cPfieldDescriptorLannotations6kM_pnQtypeArrayOopDesc__;
text: .text%__1cRaddI_mem_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cXjava_lang_reflect_FieldIset_slot6FpnHoopDesc_i_v_;
-text: .text%__1cKScopeValueLis_location6kM_i_;
-text: .text%__1cXjava_lang_reflect_FieldThas_signature_field6F_i_;
text: .text%__1cMmulF_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSObjectSynchronizerGnotify6FnGHandle_pnGThread__v_;
text: .text%JVM_MonitorNotify;
text: .text%__1cQsarL_rReg_63NodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_GetStaticFieldID: jni.o;
-text: .text%__1cIModLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cPjava_lang_ClassOprimitive_type6FpnHoopDesc__nJBasicType__;
-text: .text%__1cIjniIdMapGcreate6FnTinstanceKlassHandle__p0_;
-text: .text%__1cPsarL_rReg_2NodeJnum_opnds6kM_I_;
text: .text%__1cKReflectionbFbasic_type_mirror_to_basic_type6FpnHoopDesc_pnGThread__nJBasicType__;
text: .text%__1cPcmpF_cc_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cQSystemDictionaryQjava_mirror_type6FpnHoopDesc__nJBasicType__;
-text: .text%__1cIjniIdMap2t6MpnMklassOopDesc_i_v_;
-text: .text%__1cIjniIdMapRcompute_index_cnt6FnTinstanceKlassHandle__i_;
-text: .text%__1cLjniIdBucket2t6MpnIjniIdMap_p0_v_;
text: .text%__1cNinstanceKlassKjni_id_for6Mi_pnFJNIid__;
text: .text%__1cJLoadSNodeMstore_Opcode6kM_i_;
-text: .text%__1cLTypeInstPtrLmirror_type6kM_pnGciType__;
-text: .text%__1cMsubF_regNodePoper_input_base6kM_I_;
text: .text%__1cPcmpD_cc_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMlogD_regNodeMideal_Opcode6kM_i_;
text: .text%__1cbFunnecessary_membar_volatileNodeLout_RegMask6kM_rknHRegMask__;
@@ -5715,8 +3674,6 @@ text: .text%__1cMPipeline_Use2t6MIIIpnUPipeline_Use_Element__v_;
text: .text%__1cKstorePNodeErule6kM_I_;
text: .text%__1cNsymbolOopDescWas_klass_external_name6kM_pkc_;
text: .text%__1cbFunnecessary_membar_volatileNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNloadConPcNodeErule6kM_I_;
-text: .text%__1cIPipeline2t6MIIiIIiiiipnSmachPipelineStages_2pInMPipeline_Use__v_;
text: .text%__1cRComputeEntryStackGdo_int6M_v_;
text: .text%__1cMstoreSSPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSMachBreakpointNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -5725,48 +3682,33 @@ text: .text%__1cNtestU_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPsalL_rReg_1NodeHtwo_adr6kM_I_;
text: .text%__1cNmodL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvF2D_reg_regNodeErule6kM_I_;
-text: .text%__1cJAssemblerDjmp6MpnMRegisterImpl_nJrelocInfoJrelocType__v_;
-text: .text%__1cObox_handleNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQsalI_rReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQorI_rReg_memNodeErule6kM_I_;
-text: .text%__1cLloadSSDNodePoper_input_base6kM_I_;
-text: .text%__1cNCompileBrokerbAinvoke_compiler_on_adapter6FpnLCompileTask__v_;
text: .text%__1cLConvF2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMaddF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRxorI_rReg_memNodeFreloc6kM_i_;
-text: .text%__1cMaddF_immNodePoper_input_base6kM_I_;
text: .text%__1cKCMoveLNodeGOpcode6kM_i_;
text: .text%__1cICodeHeapTmark_segmap_as_free6MLL_v_;
text: .text%__1cRaddL_rReg_memNodePoper_input_base6kM_I_;
text: .text%JVM_IsArrayClass;
text: .text%__1cJAssemblerEsbbq6MnHAddress_i_v_;
text: .text%__1cZInterpreterMacroAssemblerFpop_l6MpnMRegisterImpl__v_;
-text: .text%__1cMmulD_regNodeJnum_opnds6kM_I_;
-text: .text%__1cODeoptimizationYquery_update_method_data6FnQmethodDataHandle_in0ALDeoptReason_rIri4_pnLProfileData__;
-text: .text%__1cICodeHeapJexpand_by6ML_i_;
-text: .text%__1cMmulD_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cLConvF2DNodeLbottom_type6kM_pknEType__;
text: .text%__1cJAssemblerEaddq6MnHAddress_i_v_;
text: .text%JVM_GetClassName;
text: .text%__1cTconvF2D_reg_regNodeMcisc_operand6kM_i_;
text: .text%__1cLStringTableGintern6FpkcpnGThread__pnHoopDesc__;
-text: .text%__1cMmulD_immNodeJnum_opnds6kM_I_;
text: .text%__1cNmulI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQorI_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
text: .text%__1cQjava_lang_ThreadMset_priority6FpnHoopDesc_nOThreadPriority__v_;
text: .text%__1cRsubL_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cRaddL_rReg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cRsubL_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cRsubL_rReg_memNodeJnum_opnds6kM_I_;
text: .text%__1cPshrL_rReg_1NodeErule6kM_I_;
text: .text%__1cQshrI_rReg_CLNodeHtwo_adr6kM_I_;
text: .text%__1cFStateO_sub_Op_CMoveI6MpknENode__v_;
text: .text%__1cFStateM_sub_Op_RegD6MpknENode__v_;
text: .text%__1cQorI_rReg_memNodeHtwo_adr6kM_I_;
-text: .text%__1cUCallNativeDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cTconvI2D_reg_regNodeMcisc_operand6kM_i_;
text: .text%__1cXNativeSignatureIteratorGdo_int6M_v_;
text: .text%__1cIMaxINodeJideal_reg6kM_I_;
text: .text%__1cFJNIid2t6MpnMklassOopDesc_ip0_v_;
@@ -5774,31 +3716,18 @@ text: .text%__1cNinstanceKlassPjni_id_for_impl6FnTinstanceKlassHandle_i_pnFJNIid
text: .text%__1cJAssemblerEaddq6MpnMRegisterImpl_nHAddress__v_;
text: .text%JVM_Open;
text: .text%__1cHRegMask2t6Miiiiiii_v_;
-text: .text%__1cbFloadConL_0x6666666666666667NodeHtwo_adr6kM_I_;
text: .text%__1cNsubI_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMmulF_regNodePoper_input_base6kM_I_;
-text: .text%__1cZInterpreterMacroAssemblerVincrement_mdp_data_at6MpnMRegisterImpl_i_v_;
-text: .text%__1cQConstantIntValuePis_constant_int6kM_i_;
-text: .text%__1cRmulL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPsarL_rReg_2NodeHtwo_adr6kM_I_;
-text: .text%__1cKmul_hiNodeHtwo_adr6kM_I_;
text: .text%__1cQConstantIntValue2t6MpnTDebugInfoReadStream__v_;
-text: .text%__1cRxorI_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateM_sub_Op_ConD6MpknENode__v_;
text: .text%__1cLConvI2DNodeGOpcode6kM_i_;
text: .text%__1cVLoaderConstraintTableJnew_entry6MIpnNsymbolOopDesc_pnMklassOopDesc_ii_pnVLoaderConstraintEntry__;
-text: .text%__1cNaddP_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPcmpF_cc_regNodeMcisc_operand6kM_i_;
text: .text%__1cJAssemblerFcmovl6Mn0AJCondition_pnMRegisterImpl_3_v_;
-text: .text%__1cVscale_to_lwp_priority6Fiii_i_: os_solaris.o;
-text: .text%__1cLOptoRuntimeWresolve_virtual_call_C6FpnKJavaThread__pC_;
text: .text%__1cNPerfByteArray2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability_i_v_;
-text: .text%__1cLStrCompNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMmulF_memNodeMideal_Opcode6kM_i_;
text: .text%__1cKConv2BNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cJloadDNodeJnum_opnds6kM_I_;
text: .text%__1cFStateM_sub_Op_RegF6MpknENode__v_;
-text: .text%__1cMmulF_immNodeJnum_opnds6kM_I_;
text: .text%__1cOMacroAssemblerKnull_check6MpnMRegisterImpl_i_v_;
text: .text%__1cNcmovP_regNodeHtwo_adr6kM_I_;
text: .text%jni_GetStaticObjectField: jni.o;
@@ -5806,19 +3735,14 @@ text: .text%__1cIGraphKitSprecision_rounding6MpnENode__2_;
text: .text%__1cScompL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSTailCalljmpIndNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTconvD2F_reg_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cLCastP2LNodeUdepends_only_on_test6kM_i_;
text: .text%__1cTconvF2D_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulD_immNodeHtwo_adr6kM_I_;
text: .text%__1cOMacroAssemblerFleave6M_v_;
text: .text%__1cMloadConDNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMTailCallNode2t6MpnENode_222222_v_;
-text: .text%__1cICmpDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cXPartialSubtypeCheckNodeGOpcode6kM_i_;
text: .text%__1cSTailCalljmpIndNodeFreloc6kM_i_;
-text: .text%__1cObox_handleNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cOloadConL32NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMlogD_regNodePoper_input_base6kM_I_;
-text: .text%__1cTconvI2F_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cMnegD_regNodeErule6kM_I_;
text: .text%__1cLvframeArrayRregister_location6kMi_pC_;
text: .text%__1cQorI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -5826,10 +3750,7 @@ text: .text%__1cFStateQ_sub_Op_TailCall6MpknENode__v_;
text: .text%__1cIOSThreadNpd_initialize6M_v_;
text: .text%__1cCosScurrent_process_id6F_i_;
text: .text%__1cMaddD_immNodeErule6kM_I_;
-text: .text%__1cNmaxI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cPshrL_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cTconvI2F_reg_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cNmaxI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMaxINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cCosRinitialize_thread6F_v_;
text: .text%__1cCosHSolarisKvm_signals6F_pnIsigset_t__;
@@ -5844,7 +3765,6 @@ text: .text%__1cCosHSolarisVinit_thread_fpu_state6F_v_;
text: .text%__1cIOSThread2t6MpFpv_i1_v_;
text: .text%jni_CallStaticVoidMethod: jni.o;
text: .text%__1cCosScurrent_stack_size6F_L_;
-text: .text%__1cNPhaseRegAllocHset_oop6MpknENode_i_v_;
text: .text%__1cCosScurrent_stack_base6F_pC_;
text: .text%__1cJloadFNodeFreloc6kM_i_;
text: .text%__1cCosMstart_thread6FpnGThread__v_;
@@ -5853,14 +3773,10 @@ text: .text%__1cKstoreLNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cXNativeSignatureIteratorHdo_long6M_v_;
text: .text%__1cNcmovL_memNodeErule6kM_I_;
text: .text%__1cFStateO_sub_Op_StoreF6MpknENode__v_;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cCosPpd_start_thread6FpnGThread__v_;
text: .text%__1cNcmovL_regNodeMcisc_operand6kM_i_;
-text: .text%__1cCosNcreate_thread6FpnGThread_n0AKThreadType_L_i_;
-text: .text%__1cLconvI2BNodePoper_input_base6kM_I_;
text: .text%__1cOGenerateOopMapMdo_checkcast6M_v_;
text: .text%JVM_SetThreadPriority;
-text: .text%__1cG_start6Fpv_0_: os_solaris.o;
text: .text%__1cLOptoRuntimeMrethrow_Type6F_pknITypeFunc__;
text: .text%JVM_GetStackAccessControlContext;
text: .text%JVM_IsThreadAlive;
@@ -5868,27 +3784,16 @@ text: .text%__1cTconvL2D_reg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cSstring_compareNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNdivI_rRegNodeErule6kM_I_;
text: .text%__1cNdecL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOLibraryCallKitYinline_native_time_funcs6Mi_i_;
text: .text%__1cNGrowableArray4CpknEType__2t6MpnFArena_iirk2_v_;
text: .text%__1cFParseVcatch_call_exceptions6MrnYciExceptionHandlerStream__v_;
-text: .text%__1cTconvL2F_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cQjava_lang_ThreadIis_alive6FpnHoopDesc__i_;
text: .text%jni_CallObjectMethod: jni.o;
text: .text%__1cJAssemblerExorq6MpnMRegisterImpl_2_v_;
-text: .text%__1cNcmovL_regNodeJnum_opnds6kM_I_;
text: .text%__1cLOptoRuntimeYcurrent_time_millis_Type6F_pknITypeFunc__;
text: .text%__1cOcmovI_regUNodeMideal_Opcode6kM_i_;
-text: .text%__1cNcmovL_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cNObjectMonitorJnotifyAll6MpnGThread__v_;
text: .text%__1cMsubD_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cNloadConL0NodeFclone6kM_pnENode__;
text: .text%__1cPcmpF_cc_regNodeErule6kM_I_;
-text: .text%__1cJimmL0OperFclone6kM_pnIMachOper__;
text: .text%__1cNmodI_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPcmpF_cc_regNodeJnum_opnds6kM_I_;
-text: .text%__1cPcmpF_cc_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cbFloadConL_0x6666666666666667NodePoper_input_base6kM_I_;
-text: .text%__1cZInterpreterMacroAssemblerFpop_d6MpnRFloatRegisterImpl__v_;
text: .text%__1cTconvL2D_reg_memNodePoper_input_base6kM_I_;
text: .text%__1cLConvD2FNodeGOpcode6kM_i_;
text: .text%__1cWThreadLocalAllocBufferKinitialize6M_v_;
@@ -5896,45 +3801,30 @@ text: .text%__1cJloadDNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorEtemp6F_pnMRegisterImpl__;
text: .text%__1cMmulF_immNodeHtwo_adr6kM_I_;
text: .text%__1cQsarL_rReg_63NodeHtwo_adr6kM_I_;
-text: .text%__1cQsarL_rReg_63NodeJnum_opnds6kM_I_;
-text: .text%__1cQjava_lang_StringbHcreate_from_platform_depended_str6FpkcpnGThread__nGHandle__;
text: .text%__1cMsubF_regNodeMideal_Opcode6kM_i_;
text: .text%__1cTconvI2L_reg_regNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cWThreadLocalAllocBufferMinitial_size6F_L_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorJpass_long6M_v_;
text: .text%__1cSInterpreterRuntimeMat_safepoint6FpnKJavaThread__v_;
text: .text%__1cTconvF2I_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cRandI_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cRandI_rReg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cCosNcommit_memory6FpcL_i_;
-text: .text%__1cNdivI_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cENodeJis_MemBar6kM_pknKMemBarNode__;
-text: .text%__1cNjni_functions6F_pknTJNINativeInterface___;
-text: .text%__1cNThreadServiceKadd_thread6FpnKJavaThread_i_v_;
text: .text%JVM_NativePath;
text: .text%__1cKJavaThreadKinitialize6M_v_;
-text: .text%__1cHThreadsDadd6FpnKJavaThread_i_v_;
-text: .text%__1cGParker2t6M_v_;
text: .text%__1cOPhaseIdealLoopKdo_peeling6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%__1cUThreadSafepointStateGcreate6FpnKJavaThread__v_;
text: .text%__1cPciInstanceKlassLjava_mirror6M_pnKciInstance__;
text: .text%__1cKJavaThreadYcreate_stack_guard_pages6M_v_;
text: .text%__1cUThreadSafepointState2t6MpnKJavaThread__v_;
-text: .text%__1cCosMguard_memory6FpcL_i_;
text: .text%__1cMnegD_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cUCallNativeDirectNodePoper_input_base6kM_I_;
text: .text%__1cHnmethodTinc_decompile_count6M_v_;
text: .text%__1cIMinINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cMResourceMarkNreset_to_mark6M_v_;
text: .text%__1cQThreadStatistics2t6M_v_;
-text: .text%__1cMFlatProfilerJis_active6F_i_;
-text: .text%__1cNloadConPcNodeLbottom_type6kM_pknEType__;
text: .text%__1cMmulD_regNodeErule6kM_I_;
text: .text%__1cMdivD_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKJavaThread2t6MpFp0pnGThread__vL_v_;
text: .text%__1cPcmpD_cc_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvI2D_reg_regNodeErule6kM_I_;
-text: .text%__1cQshrL_rReg_CLNodeJnum_opnds6kM_I_;
text: .text%__1cNcmovL_memNodePoper_input_base6kM_I_;
text: .text%__1cNdivL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcmpD_cc_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -5949,38 +3839,25 @@ text: .text%__1cQsalL_rReg_CLNodeHtwo_adr6kM_I_;
text: .text%__1cVCallRuntimeDirectNodeFreloc6kM_i_;
text: .text%__1cIGraphKitIset_jvms6MpnIJVMState__v_;
text: .text%__1cKJavaThreadDrun6M_v_;
-text: .text%__1cTconvD2I_reg_regNodeJnum_opnds6kM_I_;
text: .text%__1cOsalI_mem_1NodePoper_input_base6kM_I_;
-text: .text%__1cSMachCallNativeNodePret_addr_offset6M_i_;
text: .text%__1cMLinkResolverbEresolve_interface_call_or_null6FnLKlassHandle_1nMsymbolHandle_21_nMmethodHandle__;
-text: .text%__1cZInterpreterMacroAssemblerFpop_f6MpnRFloatRegisterImpl__v_;
text: .text%__1cMrdi_RegIOperEtype6kM_pknEType__;
-text: .text%__1cVThreadStateTransitionKtransition6FpnKJavaThread_nPJavaThreadState_3_v_;
-text: .text%__1cUCallNativeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKJavaThreadRthread_main_inner6M_v_;
-text: .text%__1cQorI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cIGraphKitbAgen_stub_or_native_wrapper6MpCpkcpnIciMethod_iiiii_v_;
text: .text%__1cPsalL_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMResourceMark2t6M_v_;
text: .text%__1cQshrI_rReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJScopeDescGlocals6M_pnNGrowableArray4CpnKScopeValue____;
text: .text%__1cJScopeDescVdecode_monitor_values6Mi_pnNGrowableArray4CpnMMonitorValue____;
-text: .text%__1cSvframeArrayElementPunpack_on_stack6MiipnFframe_ii_v_;
-text: .text%__1cTAbstractInterpreterRlayout_activation6FpnNmethodOopDesc_iiiipnFframe_4i_v_;
text: .text%__1cOcompiledVFrameLexpressions6kM_pnUStackValueCollection__;
text: .text%__1cOcompiledVFrameImonitors6kM_pnNGrowableArray4CpnLMonitorInfo____;
text: .text%__1cOcompiledVFrameGmethod6kM_pnNmethodOopDesc__;
text: .text%__1cSvframeArrayElementHfill_in6MpnOcompiledVFrame__v_;
text: .text%__1cOcompiledVFrameHraw_bci6kM_i_;
-text: .text%__1cNGrowableArray4CpnLMonitorInfo__2t6Mii_v_;
text: .text%__1cPPerfDataManagerWcreate_string_constant6FnJCounterNS_pkc3pnGThread__pnSPerfStringConstant__;
text: .text%__1cOMacroAssemblerKincrementl6MpnMRegisterImpl_i_v_;
text: .text%__1cFframebCinterpreter_frame_set_locals6Mpl_v_;
text: .text%__1cFframebHinterpreter_frame_set_monitor_end6MpnPBasicObjectLock__v_;
-text: .text%__1cTAbstractInterpreterPsize_activation6FpnNmethodOopDesc_iiiii_i_;
text: .text%__1cSPerfStringConstant2t6MnJCounterNS_pkc3_v_;
-text: .text%__1cTAbstractInterpreterQcontinuation_for6FpnNmethodOopDesc_pCiiri_3_;
-text: .text%__1cZInterpreterMacroAssemblerLcall_VM_Ico6MpnMRegisterImpl_pC2i_v_;
text: .text%__1cFframebCinterpreter_frame_set_method6MpnNmethodOopDesc__v_;
text: .text%__1cMmulF_regNodeMideal_Opcode6kM_i_;
text: .text%__1cFframebBinterpreter_frame_sender_sp6kM_pl_;
@@ -5991,18 +3868,10 @@ text: .text%__1cJScopeDescImonitors6M_pnNGrowableArray4CpnMMonitorValue____;
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_i_v_;
text: .text%__1cOcompiledVFrameGlocals6kM_pnUStackValueCollection__;
text: .text%__1cJScopeDescLexpressions6M_pnNGrowableArray4CpnKScopeValue____;
-text: .text%__1cTconvF2D_reg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cSvframeArrayElementNon_stack_size6kMiiii_i_;
-text: .text%__1cMaddD_regNodePoper_input_base6kM_I_;
text: .text%__1cXjava_lang_boxing_objectJget_value6FpnHoopDesc_pnGjvalue__nJBasicType__;
-text: .text%__1cMorL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cOcmovD_regUNodePoper_input_base6kM_I_;
text: .text%__1cPcmovI_reg_gNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMdivD_immNodePoper_input_base6kM_I_;
-text: .text%__1cJloadDNodeHtwo_adr6kM_I_;
text: .text%__1cKReflectionTunbox_for_primitive6FpnHoopDesc_pnGjvalue_pnGThread__nJBasicType__;
text: .text%__1cCosMset_priority6FpnGThread_nOThreadPriority__nIOSReturn__;
-text: .text%__1cMmulF_memNodeJnum_opnds6kM_I_;
text: .text%__1cIMulDNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cODeoptimizationVtrap_state_add_reason6Fii_i_;
text: .text%__1cDhpiFclose6Fi_i_;
@@ -6012,32 +3881,22 @@ text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MpnMRegisterImpl
text: .text%__1cNcmovL_regNodeMideal_Opcode6kM_i_;
text: .text%__1cZInterpreterMacroAssemblerWupdate_mdp_by_constant6MpnMRegisterImpl_i_v_;
text: .text%__1cOtailjmpIndNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cRaddL_rReg_memNodeJnum_opnds6kM_I_;
text: .text%__1cTconvI2F_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvL2F_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cGICStubKcached_oop6kM_pnHoopDesc__;
text: .text%__1cRInlineCacheBufferUic_buffer_cached_oop6FpC_pnHoopDesc__;
-text: .text%__1cTconvD2F_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cJAssemblerFpushq6Mi_v_;
text: .text%JVM_Close;
-text: .text%__1cMnegF_regNodePoper_input_base6kM_I_;
-text: .text%__1cOcmovI_regUNodeJnum_opnds6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorRset_unimplemented6Mi_v_;
text: .text%__1cRComputeEntryStackJdo_object6Mii_v_;
text: .text%__1cMLinkResolverYresolve_interface_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cOcmovI_regUNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cGThreadMset_priority6Fp0nOThreadPriority__v_;
text: .text%jni_NewObjectV: jni.o;
text: .text%__1cKConv2BNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cQshrL_rReg_CLNodeErule6kM_I_;
text: .text%__1cTconvF2D_reg_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHnmethodbCcan_not_entrant_be_converted6M_i_;
text: .text%__1cNSafePointNodeQpeek_monitor_obj6kM_pnENode__;
text: .text%__1cOcmovI_regUNodeMcisc_operand6kM_i_;
text: .text%__1cNSafePointNodeQpeek_monitor_box6kM_pnENode__;
text: .text%__1cJLoadBNodeMstore_Opcode6kM_i_;
-text: .text%__1cVCompressedWriteStreamKwrite_long6Mx_v_;
-text: .text%__1cTconvF2I_reg_regNodePoper_input_base6kM_I_;
text: .text%__1cLConvF2INodeGOpcode6kM_i_;
text: .text%__1cPMultiBranchDataScompute_cell_count6FpnOBytecodeStream__i_;
text: .text%__1cFParsePdo_monitor_exit6M_v_;
@@ -6047,70 +3906,39 @@ text: .text%__1cRStubCodeGeneratorLstub_epilog6MpnMStubCodeDesc__v_;
text: .text%__1cRStubCodeGeneratorLstub_prolog6MpnMStubCodeDesc__v_;
text: .text%__1cKcastPPNodeErule6kM_I_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pF3_v3_v_;
-text: .text%__1cOsalI_mem_1NodeJnum_opnds6kM_I_;
text: .text%__1cKJavaThreadbFdeoptimized_wrt_marked_nmethods6M_v_;
text: .text%__1cKJavaThreadHprepare6MpnI_jobject_nOThreadPriority__v_;
-text: .text%__1cPshrL_rReg_1NodeJnum_opnds6kM_I_;
-text: .text%__1cRandI_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cRandI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cQorI_rReg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cJAssemblerGmovslq6MpnMRegisterImpl_2_v_;
text: .text%__1cRandI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cQjava_lang_ThreadJstackSize6FpnHoopDesc__x_;
text: .text%__1cRConstantLongValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%JVM_StartThread;
text: .text%__1cMthread_entry6FpnKJavaThread_pnGThread__v_: jvm.o;
-text: .text%__1cTconvF2D_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cMsubD_regNodeErule6kM_I_;
text: .text%__1cQjava_lang_ThreadIpriority6FpnHoopDesc__nOThreadPriority__;
text: .text%__1cNmulI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cIMulFNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cLRuntimeStub2n6FLI_pv_;
-text: .text%__1cLRuntimeStubQnew_runtime_stub6FpkcpnKCodeBuffer_ipnJOopMapSet_i_p0_;
-text: .text%__1cLRuntimeStub2t6MpkcpnKCodeBuffer_iipnJOopMapSet_i_v_;
-text: .text%__1cTconvF2D_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cRxorI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMmulF_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOLibraryCallKitbDis_method_invoke_or_aux_frame6MpnIJVMState__i_;
text: .text%__1cbFloadConL_0x6666666666666667NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cIAddFNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOloadConL32NodeHsize_of6kM_I_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFn0AJOperation__v4_v_;
text: .text%__1cRaddL_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivLNodeJideal_reg6kM_I_;
text: .text%__1cGICStubFclear6M_v_;
-text: .text%__1cTconvI2D_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cMsubD_regNodeJnum_opnds6kM_I_;
-text: .text%__1cMsubD_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cHCompileWget_MethodAccessorImpl6M_pnPciInstanceKlass__;
-text: .text%__1cHCompileRget_Method_invoke6M_pnIciMethod__;
text: .text%__1cNdecI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFTypeFFxdual6kM_pknEType__;
-text: .text%__1cTconvL2D_reg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cTconvI2D_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cTunsafe_intrinsic_id6FpnNsymbolOopDesc_1_nMvmIntrinsicsCID__;
-text: .text%__1cPPerfDataManagerUcreate_long_constant6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnQPerfLongConstant__;
text: .text%__1cFStateM_sub_Op_ConF6MpknENode__v_;
text: .text%__1cMloadConFNodeHsize_of6kM_I_;
text: .text%__1cPsarL_rReg_2NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQsarL_rReg_63NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPoldgetTimeNanos6F_x_;
-text: .text%__1cPno_rax_RegLOperFclone6kM_pnIMachOper__;
-text: .text%__1cTAbstractInterpreterMreturn_entry6FnITosState_i_pC_;
-text: .text%__1cPsarL_rReg_1NodePoper_input_base6kM_I_;
-text: .text%__1cMnegD_regNodeJnum_opnds6kM_I_;
text: .text%__1cKmul_hiNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJAssemblerEjccb6Mn0AJCondition_rnFLabel_nJrelocInfoJrelocType__v_;
text: .text%__1cNcmovP_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cHMonitor2T6M_v_;
text: .text%__1cINegDNodeLbottom_type6kM_pknEType__;
-text: .text%__1cLvframeArrayIallocate6FpnKJavaThread_ipnNGrowableArray4CpnOcompiledVFrame___pnLRegisterMap_nFframe_9A9A9A_p0_;
-text: .text%__1cNThreadServiceNremove_thread6FpnKJavaThread_i_v_;
text: .text%__1cQjava_lang_ThreadbGinherited_access_control_context6FpnHoopDesc__2_;
-text: .text%__1cODeoptimizationScreate_vframeArray6FpnKJavaThread_nFframe_pnLRegisterMap__pnLvframeArray__;
text: .text%__1cHThreadsGremove6FpnKJavaThread__v_;
text: .text%__1cODeoptimizationTuncommon_trap_inner6FpnKJavaThread_i_v_;
-text: .text%__1cODeoptimizationPget_method_data6FpnKJavaThread_nMmethodHandle_i_pnRmethodDataOopDesc__;
text: .text%__1cLensure_join6FpnKJavaThread__v_: thread.o;
text: .text%__1cIOSThread2T6M_v_;
text: .text%__1cODeoptimizationNuncommon_trap6FpnKJavaThread_i_pn0ALUnrollBlock__;
@@ -6118,10 +3946,7 @@ text: .text%__1cTconvI2D_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cODeoptimizationRgather_statistics6Fn0ALDeoptReason_n0ALDeoptAction_nJBytecodesECode__v_;
text: .text%__1cUThreadSafepointStateHdestroy6FpnKJavaThread__v_;
text: .text%__1cIGraphKitTdprecision_rounding6MpnENode__2_;
-text: .text%__1cNGrowableArray4CpnOcompiledVFrame__2t6Mii_v_;
text: .text%__1cOcmovI_regUNodeErule6kM_I_;
-text: .text%__1cKJavaThreadEexit6Mi_v_;
-text: .text%__1cGParker2T6M_v_;
text: .text%__1cCosLfree_thread6FpnIOSThread__v_;
text: .text%__1cXpartialSubtypeCheckNodeMideal_Opcode6kM_i_;
text: .text%JVM_GetInheritedAccessControlContext;
@@ -6135,10 +3960,6 @@ text: .text%__1cMmulD_memNodePoper_input_base6kM_I_;
text: .text%__1cRInlineCacheBufferSic_destination_for6FpnKCompiledIC__pC_;
text: .text%__1cLvframeArrayPunpack_to_stack6MrnFframe_i_v_;
text: .text%__1cOcompL_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cODeoptimizationLUnrollBlock2t6MiiiiiplppCnJBasicType__v_;
-text: .text%__1cLvframeArrayHfill_in6MpnKJavaThread_ipnNGrowableArray4CpnOcompiledVFrame___pknLRegisterMap_i_v_;
-text: .text%__SLIP.DELETER__A: thread.o;
-text: .text%__1cbIjava_security_AccessControlContextGcreate6FnOobjArrayHandle_inGHandle_pnGThread__pnHoopDesc__;
text: .text%__1cIOSThreadKpd_destroy6M_v_;
text: .text%__1cMaddF_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cODeoptimizationYfetch_unroll_info_helper6FpnKJavaThread__pn0ALUnrollBlock__;
@@ -6146,15 +3967,12 @@ text: .text%__1cODeoptimizationRlast_frame_adjust6Fii_i_;
text: .text%__1cKJavaThreadYremove_stack_guard_pages6M_v_;
text: .text%__1cODeoptimizationNunpack_frames6FpnKJavaThread_i_nJBasicType__;
text: .text%__1cNnmethodLocker2t6MpC_v_;
-text: .text%__1cTconvD2I_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cOtailjmpIndNodeMideal_Opcode6kM_i_;
text: .text%__1cLconvI2BNodeErule6kM_I_;
text: .text%__1cTconvF2I_reg_regNodeErule6kM_I_;
text: .text%__1cIciMethodVget_osr_flow_analysis6Mi_pnKciTypeFlow__;
text: .text%__1cSCallLeafDirectNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cQAbstractCompilerMsupports_osr6M_i_;
text: .text%__1cRaddL_mem_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cSCallLeafDirectNodeJnum_opnds6kM_I_;
text: .text%__1cXjava_lang_reflect_FieldJmodifiers6FpnHoopDesc__i_;
text: .text%__1cMmulL_memNodePoper_input_base6kM_I_;
text: .text%__1cODeoptimizationLUnrollBlock2T6M_v_;
@@ -6171,14 +3989,10 @@ text: .text%__1cJSubFPNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cZInterpreterMacroAssemblerNdispatch_only6MnITosState__v_;
text: .text%__1cRcmpFastUnlockNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKloadUBNodeFreloc6kM_i_;
-text: .text%__1cMStartOSRNodeScalling_convention6kMpnLOptoRegPair_I_v_;
text: .text%__1cMStartOSRNodeKosr_domain6F_pknJTypeTuple__;
-text: .text%__1cMloadConPNodeGis_Con6kM_I_;
text: .text%__1cMmulD_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cXjava_lang_reflect_FieldFclazz6FpnHoopDesc__2_;
-text: .text%__1cOPSVirtualSpaceJexpand_by6ML_i_;
text: .text%__1cNCallGeneratorHfor_osr6FpnIciMethod_i_p0_;
-text: .text%__1cFParseWload_interpreter_state6MpnENode_2_v_;
text: .text%__1cKstoreINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOstackSlotDOperKin_RegMask6kMi_pknHRegMask__;
text: .text%jni_GetFloatArrayRegion: jni.o;
@@ -6191,121 +4005,82 @@ text: .text%__1cRaddL_mem_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cIAddFNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJloadDNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMlogD_regNodeErule6kM_I_;
-text: .text%__1cXpartialSubtypeCheckNodePoper_input_base6kM_I_;
text: .text%__1cNmulI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cMdecI_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQsalL_rReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKemit_break6FrnKCodeBuffer__v_;
text: .text%jni_GetStaticMethodID: jni.o;
-text: .text%__1cOstackSlotDOperJnum_edges6kM_I_;
text: .text%__1cMsubF_regNodeMcisc_operand6kM_i_;
text: .text%__1cMdecI_memNodeFreloc6kM_i_;
-text: .text%__1cMdecI_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRCardTableModRefBSbCfind_covering_region_by_base6MpnIHeapWord__i_;
text: .text%__1cRCardTableModRefBSVresize_covered_region6MnJMemRegion__v_;
text: .text%__1cINegFNodeGOpcode6kM_i_;
text: .text%__1cRCardTableModRefBSbAlargest_prev_committed_end6kMi_pnIHeapWord__;
-text: .text%__1cLloadSSDNodeJnum_opnds6kM_I_;
text: .text%__1cSMachBreakpointNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSCardTableExtensionVresize_covered_region6MnJMemRegion__v_;
-text: .text%__1cLconvI2BNodeJnum_opnds6kM_I_;
text: .text%__1cNstoreImmPNodePoper_input_base6kM_I_;
text: .text%__1cKReflectionUarray_component_type6FpnHoopDesc_pnGThread__2_;
text: .text%__1cKoopFactoryUnew_compiledICHolder6FnMmethodHandle_nLKlassHandle_pnGThread__pnXcompiledICHolderOopDesc__;
-text: .text%__1cHCompile2t6MpnFciEnv_pF_pknITypeFunc_pCpkciiii_v_;
text: .text%__1cTconvL2F_reg_regNodeMcisc_operand6kM_i_;
-text: .text%__1cMciArrayKlassOis_array_klass6M_i_;
-text: .text%__1cNloadConPcNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cKarrayKlassWuncached_lookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cFStateM_sub_Op_CmpD6MpknENode__v_;
-text: .text%__1cNloadConL0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cUCallNativeDirectNodeKmethod_set6Ml_v_;
text: .text%__1cKcastPPNodeMideal_Opcode6kM_i_;
-text: .text%__1cNcmovL_memNodeJnum_opnds6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerUprofile_taken_branch6MpnMRegisterImpl_2_v_;
text: .text%__1cPshrL_rReg_1NodeHtwo_adr6kM_I_;
-text: .text%__1cIGraphKitIgen_stub6MpCpkciii_v_;
text: .text%__1cbDcatch_cleanup_find_cloned_def6FpnFBlock_pnENode_1rnLBlock_Array_i_3_: lcm.o;
text: .text%__1cVcompiledICHolderKlassIallocate6MpnGThread__pnXcompiledICHolderOopDesc__;
-text: .text%__1cTC2IAdapterGeneratorUmkh_unverified_entry6FnMmethodHandle__pC_;
-text: .text%__1cRaddL_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cLOptoRuntimeNgenerate_stub6FpnFciEnv_pF_pknITypeFunc_pCpkciiii_8_;
text: .text%__1cISubDNodeLbottom_type6kM_pknEType__;
text: .text%__1cbCcatch_cleanup_fix_all_inputs6FpnENode_11_v_: lcm.o;
text: .text%__1cISubFNodeLbottom_type6kM_pknEType__;
text: .text%__1cNdivI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNTemplateTableGbranch6Fii_v_;
-text: .text%__1cNstoreImmPNodeHtwo_adr6kM_I_;
-text: .text%__1cLOptoRuntimeRnew_objArray_Type6F_pknITypeFunc__;
text: .text%JVM_GetComponentType;
text: .text%__1cIMulDNodeJideal_reg6kM_I_;
-text: .text%__1cTconvF2D_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cJAssemblerEsbbq6MpnMRegisterImpl_i_v_;
text: .text%__1cNcmovL_memNodeMideal_Opcode6kM_i_;
text: .text%jni_GetStringRegion: jni.o;
text: .text%jni_EnsureLocalCapacity: jni.o;
-text: .text%__1cLloadSSDNodeHtwo_adr6kM_I_;
text: .text%__1cMaddF_memNodePoper_input_base6kM_I_;
text: .text%__1cFParseMdo_anewarray6M_v_;
text: .text%__1cLConvI2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cLconvI2BNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cOMacroAssemblerHcall_VM6MpnMRegisterImpl_pC22i_v_;
text: .text%__1cHThreadsYis_supported_jni_version6Fi_C_;
-text: .text%__1cMincL_memNodeJnum_opnds6kM_I_;
-text: .text%__1cRandL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cKarrayKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cRaddL_mem_rRegNodeJnum_opnds6kM_I_;
text: .text%JVM_NewArray;
text: .text%JVM_FreeMemory;
text: .text%JVM_TotalMemory;
-text: .text%__1cMaddD_immNodeJnum_opnds6kM_I_;
-text: .text%__1cMsubF_regNodeJnum_opnds6kM_I_;
-text: .text%__1cLloadSSINodePoper_input_base6kM_I_;
text: .text%__1cNinstanceKlassPadd_osr_nmethod6MpnHnmethod__v_;
text: .text%__1cMincI_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKReflectionRreflect_new_array6FpnHoopDesc_ipnGThread__pnMarrayOopDesc__;
-text: .text%__1cMsubF_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cMmulF_memNodeErule6kM_I_;
text: .text%__1cODeoptimizationbJupdate_method_data_from_interpreter6FnQmethodDataHandle_ii_v_;
text: .text%__1cLClassLoaderSget_system_package6FpkcpnGThread__pnHoopDesc__;
text: .text%__1cMTailJumpNodeKmatch_edge6kMI_I_;
-text: .text%__1cFStateL_sub_Op_Box6MpknENode__v_;
text: .text%__1cRaddL_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cTconvL2F_reg_regNodeErule6kM_I_;
text: .text%__1cKPSYoungGenLpost_resize6M_v_;
text: .text%__1cNcmovL_regNodeErule6kM_I_;
-text: .text%__1cOcmovD_regUNodeJnum_opnds6kM_I_;
text: .text%__1cRandI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMnegF_regNodeHtwo_adr6kM_I_;
-text: .text%__1cTAbstractInterpreterRTosState_as_index6FnITosState__i_;
text: .text%__1cHThreadsbMis_supported_jni_version_including_1_16Fi_C_;
text: .text%__1cKstoreBNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPBytecode_invokeLresult_type6kMpnGThread__nJBasicType__;
text: .text%__1cMincL_memNodeMideal_Opcode6kM_i_;
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cJloadCNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cCosPuncommit_memory6FpcL_i_;
text: .text%__1cSInterpreterRuntimeJnote_trap6FpnKJavaThread_ipnGThread__v_;
text: .text%__1cRSignatureIteratorHiterate6M_v_;
text: .text%__1cIModLNodeJideal_reg6kM_I_;
-text: .text%__1cNTemplateTableOpatch_bytecode6FnJBytecodesECode_pnMRegisterImpl_4i_v_;
text: .text%__1cLConvD2INodeLbottom_type6kM_pknEType__;
text: .text%__1cMaddF_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHBoxNodeLbottom_type6kM_pknEType__;
text: .text%__1cFStateM_sub_Op_DivL6MpknENode__v_;
text: .text%__1cTconvL2D_reg_memNodeErule6kM_I_;
text: .text%JVM_GetSystemPackage;
-text: .text%__1cCosNcommit_memory6FpcLL_i_;
text: .text%__1cOMacroAssemblerFenter6M_v_;
text: .text%__1cLConvF2DNodeJideal_reg6kM_I_;
text: .text%__1cNTemplateTableLindex_check6FpnMRegisterImpl_2_v_;
text: .text%__1cKNativeJumpUpatch_verified_entry6FpC11_v_;
text: .text%__1cLMoveL2DNodeGOpcode6kM_i_;
-text: .text%__1cMincI_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateP_sub_Op_ConvF2D6MpknENode__v_;
text: .text%__1cMmulL_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%Unsafe_DefineClass1;
-text: .text%__1cSUnsafe_DefineClass6FpnHJNIEnv__pnI_jstring_pnL_jbyteArray_iipnI_jobject_7_pnH_jclass__: unsafe.o;
text: .text%__1cFTypeDFxdual6kM_pknEType__;
text: .text%__1cMincI_memNodeFreloc6kM_i_;
text: .text%__1cPcmpF_cc_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -6314,12 +4089,8 @@ text: .text%__1cMsubF_memNodePoper_input_base6kM_I_;
text: .text%__1cTconvF2D_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%JVM_DefineClass;
text: .text%__1cMaddF_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cMmulL_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cMmulL_memNodeJnum_opnds6kM_I_;
text: .text%__1cJAssemblerEshrq6MpnMRegisterImpl_i_v_;
-text: .text%__1cTC2IAdapterGeneratorLadapter_for6FnMmethodHandle__pnKC2IAdapter__;
text: .text%__1cPcmpFastLockNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cZInterpreterMacroAssemblerQtest_mdp_data_at6MpnMRegisterImpl_i2rnFLabel__v_;
text: .text%__1cZInterpreterMacroAssemblerYprofile_not_taken_branch6MpnMRegisterImpl__v_;
text: .text%__1cTleaPIdxScaleOffNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
@@ -6327,42 +4098,29 @@ text: .text%__1cYjava_lang_reflect_MethodFclazz6FpnHoopDesc__2_;
text: .text%__1cYjava_lang_reflect_MethodEslot6FpnHoopDesc__i_;
text: .text%__1cYjava_lang_reflect_MethodLreturn_type6FpnHoopDesc__2_;
text: .text%__1cYjava_lang_reflect_MethodPparameter_types6FpnHoopDesc__2_;
-text: .text%__1cNloadConL0NodeGis_Con6kM_I_;
-text: .text%__1cMset_property6FnGHandle_pkc2pnGThread__v_: jvm.o;
text: .text%JVM_GetCPFieldModifiers;
text: .text%JVM_InvokeMethod;
text: .text%__1cFKlassWcompute_modifier_flags6kMpnGThread__i_;
-text: .text%__1cZcatch_cleanup_inter_block6FpnENode_pnFBlock_13rnLBlock_Array_i_v_: lcm.o;
text: .text%__1cOsalI_mem_1NodeMideal_Opcode6kM_i_;
-text: .text%__1cMaddF_immNodeJnum_opnds6kM_I_;
-text: .text%__1cMsubD_immNodePoper_input_base6kM_I_;
text: .text%__1cMmulF_regNodeMcisc_operand6kM_i_;
-text: .text%__1cMmulF_regNodeJnum_opnds6kM_I_;
-text: .text%__1cMmulF_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cMmulD_regNodeHtwo_adr6kM_I_;
text: .text%__1cTconvD2F_reg_regNodeMcisc_operand6kM_i_;
text: .text%jni_AllocObject: jni.o;
-text: .text%__1cCosHSolarisOset_mpss_range6FpcLL_i_;
text: .text%__1cTconvF2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFParseOdo_tableswitch6M_v_;
text: .text%__1cTmembar_volatileNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKReflectionNinvoke_method6FpnHoopDesc_nGHandle_nOobjArrayHandle_pnGThread__2_;
-text: .text%__1cMrdx_RegLOperFclone6kM_pnIMachOper__;
text: .text%__1cICmpFNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFn0AJCondition__v4_v_;
-text: .text%__1cFj_not6FnNTemplateTableJCondition__nJAssemblerJCondition__: templateTable_amd64.o;
text: .text%__1cNTemplateTableMlocals_index6FpnMRegisterImpl_i_v_;
text: .text%__1cTconvF2D_reg_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cMmulF_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%Unsafe_AllocateInstance;
text: .text%__1cZInterpreterMacroAssemblerNunlock_object6MpnMRegisterImpl__v_;
text: .text%__1cOcmovD_regUNodeMideal_Opcode6kM_i_;
-text: .text%__1cIciObjectMis_classless6kM_i_;
text: .text%__1cMsubD_immNodeMideal_Opcode6kM_i_;
text: .text%__1cRInlineCacheBufferOinit_next_stub6F_v_;
text: .text%__1cPshrL_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMsubD_immNodeErule6kM_I_;
-text: .text%__1cHTypePtrKadd_offset6kMi_pk0_;
text: .text%__1cNTemplateTableHconvert6F_v_;
text: .text%__1cMnegD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQorI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
@@ -6377,7 +4135,6 @@ text: .text%__1cTconvD2I_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cScompL_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cXpartialSubtypeCheckNodeErule6kM_I_;
text: .text%__1cOstackSlotDOperEtype6kM_pknEType__;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
text: .text%__1cLloadSSDNodeErule6kM_I_;
text: .text%__1cMsubD_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRComputeEntryStackIdo_short6M_v_;
@@ -6390,7 +4147,6 @@ text: .text%__1cMloadConFNodeKconst_size6kM_i_;
text: .text%__1cMorL_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cMmulD_memNodeMideal_Opcode6kM_i_;
text: .text%__1cMaddD_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cTconvI2D_reg_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMnegF_regNodeMideal_Opcode6kM_i_;
text: .text%__1cMloadConFNodeFreloc6kM_i_;
text: .text%__1cILogDNodeLbottom_type6kM_pknEType__;
@@ -6398,48 +4154,35 @@ text: .text%__1cLConvI2DNodeLbottom_type6kM_pknEType__;
text: .text%__1cNstoreImmPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLStrCompNodeJideal_reg6kM_I_;
text: .text%__1cMlogD_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cMaddD_regNodeMcisc_operand6kM_i_;
text: .text%__1cMaddD_regNodeErule6kM_I_;
text: .text%__1cScompL_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cIAddFNodeJideal_reg6kM_I_;
-text: .text%__1cJimmP0OperPconstant_is_oop6kM_i_;
text: .text%__1cJimmP0OperIconstant6kM_l_;
text: .text%__1cNciMethodKlassEmake6F_p0_;
-text: .text%__1cETypeJis_finite6kM_i_;
text: .text%__1cHnmethodFflush6M_v_;
text: .text%JVM_GetClassContext;
-text: .text%__1cIciObjectTis_type_array_klass6M_i_;
-text: .text%__1cNsubL_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cIregFOperFclone6kM_pnIMachOper__;
text: .text%__1cRfind_field_offset6FpnI_jobject_ipnGThread__i_;
-text: .text%__1cHBoxNodeJideal_reg6kM_I_;
text: .text%__1cXPartialSubtypeCheckNodeLbottom_type6kM_pknEType__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cPfieldDescriptorTfloat_initial_value6kM_f_;
-text: .text%__1cLloadSSDNodeMideal_Opcode6kM_i_;
text: .text%__1cMsubF_regNodeErule6kM_I_;
text: .text%__1cRsubL_rReg_memNodeFreloc6kM_i_;
-text: .text%__1cKExceptionsNnew_exception6FpnGThread_pnNsymbolOopDesc_pkc_nGHandle__;
text: .text%__1cTconvL2F_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMmulF_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJStubQdDueueKremove_all6M_v_;
text: .text%__1cIDivDNodeLbottom_type6kM_pknEType__;
text: .text%__1cLStatSamplerTget_system_property6FpkcpnGThread__2_;
-text: .text%__1cRmethodDataOopDescRbci_to_extra_data6Mii_pnLProfileData__;
text: .text%__1cICodeBlobFflush6M_v_;
text: .text%__1cVMoveF2I_reg_stackNodeMideal_Opcode6kM_i_;
-text: .text%__1cNmodL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJArgumentsQPropertyList_add6FppnOSystemProperty_2_v_;
text: .text%__1cKstoreCNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cSmembar_releaseNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cQsalI_rReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSInterpreterRuntimeQcreate_exception6FpnKJavaThread_pc3_v_;
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_2_v_;
text: .text%__1cJStubQdDueueMremove_first6Mi_v_;
text: .text%__1cQinitialize_class6FnMsymbolHandle_pnGThread__v_: thread.o;
text: .text%__1cJAssemblerFcmovq6Mn0AJCondition_pnMRegisterImpl_nHAddress__v_;
-text: .text%__1cXpartialSubtypeCheckNodeJnum_opnds6kM_I_;
text: .text%__1cMmulD_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMaddF_immNodeHtwo_adr6kM_I_;
text: .text%__1cIMulDNodeGmul_id6kM_pknEType__;
@@ -6451,20 +4194,15 @@ text: .text%__1cFStateM_sub_Op_MulD6MpknENode__v_;
text: .text%__1cFStateM_sub_Op_ModL6MpknENode__v_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_pnGThread__v_;
text: .text%__1cXjava_lang_reflect_FieldEslot6FpnHoopDesc__i_;
-text: .text%__1cPloadConUL32NodeGis_Con6kM_I_;
text: .text%__1cQshrL_rReg_CLNodeHtwo_adr6kM_I_;
text: .text%__1cKJavaThreadbOcheck_special_condition_for_native_trans6Fp0_v_;
-text: .text%__1cODeoptimizationYreset_invocation_counter6FpnJScopeDesc_i_v_;
text: .text%__1cZCallDynamicJavaDirectNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cTconvF2I_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cMmulD_memNodeJnum_opnds6kM_I_;
text: .text%__1cHOrLNodeGOpcode6kM_i_;
text: .text%__1cIMulFNodeGmul_id6kM_pknEType__;
text: .text%__1cMnegF_regNodeErule6kM_I_;
text: .text%__1cMsubF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTconvD2F_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%JVM_RawMonitorCreate;
-text: .text%__1cOresolve_symbol6Fpkc_pC_: os_solaris.o;
text: .text%__1cMMutableSpaceOobject_iterate6MpnNObjectClosure__v_;
text: .text%__1cKCMoveDNodeGOpcode6kM_i_;
text: .text%__1cFParseQdo_monitor_enter6M_v_;
@@ -6472,34 +4210,17 @@ text: .text%__1cPMultiBranchDataPpost_initialize6MpnOBytecodeStream_pnRmethodDat
text: .text%__1cXpartialSubtypeCheckNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLConvD2INodeJideal_reg6kM_I_;
text: .text%__1cKcastPPNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cZCallDynamicJavaDirectNodeJnum_opnds6kM_I_;
-text: .text%__1cMlogD_regNodeJnum_opnds6kM_I_;
text: .text%Unsafe_CompareAndSwapInt;
text: .text%__1cOstackSlotIOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOstackSlotIOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cMmatch_option6FpknMJavaVMOption_ppkc5i_i_: arguments.o;
text: .text%__1cMmulD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNmulI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKimmL32OperFclone6kM_pnIMachOper__;
-text: .text%__1cIimmFOperFclone6kM_pnIMachOper__;
text: .text%__1cOMacroAssemblerTset_last_Java_frame6MpnMRegisterImpl_22pC_v_;
-text: .text%__1cOindOffset8OperFclone6kM_pnIMachOper__;
-text: .text%__1cOMacroAssemblerVreset_last_Java_frame6MpnMRegisterImpl_i_v_;
-text: .text%__1cOloadConL32NodeFclone6kM_pnENode__;
-text: .text%__1cMloadConFNodeFclone6kM_pnENode__;
text: .text%__1cScompL_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQinstanceRefKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cNTemplateTableRlocals_index_wide6FpnMRegisterImpl__v_;
-text: .text%__1cVMoveL2D_reg_stackNodePoper_input_base6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerPset_mdp_data_at6MpnMRegisterImpl_i2_v_;
-text: .text%__1cKOSRAdapter2n6FLI_pv_;
-text: .text%__1cKOSRAdapterPnew_osr_adapter6FpnKCodeBuffer_pnJOopMapSet_ii_p0_;
text: .text%__1cJAssemblerEincl6MnHAddress__v_;
-text: .text%__1cKOSRAdapter2t6MpnKCodeBuffer_pnJOopMapSet_iii_v_;
-text: .text%__1cTconvI2D_reg_regNodeHtwo_adr6kM_I_;
-text: .text%__1cNSharedRuntimeRgenerate_osr_blob6Fi_pnKOSRAdapter__;
-text: .text%__1cMaddD_regNodeJnum_opnds6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorUset_wide_entry_point6MpnITemplate_rpC_v_;
text: .text%__1cMmulF_regNodeErule6kM_I_;
text: .text%__1cIMulFNodeJideal_reg6kM_I_;
text: .text%__1cFStateM_sub_Op_MulF6MpknENode__v_;
@@ -6507,149 +4228,85 @@ text: .text%__1cJOopMapSetQsingular_oop_map6M_pnGOopMap__;
text: .text%__1cHnmethodVmark_as_seen_on_stack6M_v_;
text: .text%__1cMloadConDNodeHsize_of6kM_I_;
text: .text%__1cOcmovI_regUNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLconvI2BNodeHtwo_adr6kM_I_;
-text: .text%__1cMorL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cQorI_rReg_memNodeFreloc6kM_i_;
text: .text%__1cMaddD_immNodeHtwo_adr6kM_I_;
text: .text%__1cMloadConDNodeKconst_size6kM_i_;
text: .text%__1cLConvL2FNodeLbottom_type6kM_pknEType__;
text: .text%__1cLConvL2DNodeLbottom_type6kM_pknEType__;
-text: .text%__1cLloadSSINodeMideal_Opcode6kM_i_;
text: .text%__1cOstackSlotDOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cTconvF2D_reg_memNodeFreloc6kM_i_;
text: .text%__1cLConvD2INodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cTconvL2D_reg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cMloadConDNodeFreloc6kM_i_;
text: .text%JVM_Lseek;
text: .text%__1cPsarL_rReg_1NodeErule6kM_I_;
text: .text%__1cPsarL_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cVcompiledICHolderKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cMaddD_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cOstackSlotDOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cMorL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cMmulF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMlogD_regNodeHtwo_adr6kM_I_;
-text: .text%__1cRaddI_mem_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cFStateM_sub_Op_AddF6MpknENode__v_;
text: .text%__1cIXorINodeIadd_ring6kMpknEType_3_3_;
-text: .text%__1cTconvL2F_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cSstring_compareNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNGrowableArray4CpnKOSRAdapter__Praw_at_put_grow6Mirk14_v_;
text: .text%__1cFStateP_sub_Op_StrComp6MpknENode__v_;
-text: .text%__1cTconvL2F_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cUInterpreterGeneratorUgenerate_fixed_frame6Mi_v_;
text: .text%__1cGciType2t6MnJBasicType__v_;
-text: .text%__1cMaddF_memNodeJnum_opnds6kM_I_;
-text: .text%__1cUInterpreterGeneratorbAgenerate_run_compiled_code6M_v_;
text: .text%__1cScompL_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cUInterpreterGeneratorZgenerate_counter_overflow6MpC_v_;
text: .text%__1cUInterpreterGeneratorVgenerate_counter_incr6MpnFLabel_22_v_;
text: .text%__1cPcmpF_cc_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cXNativeSignatureIteratorHdo_bool6M_v_;
text: .text%__1cQmulI_mem_immNodePoper_input_base6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorXbang_stack_shadow_pages6Mi_v_;
text: .text%__1cZInterpreterMacroAssemblerTnotify_method_entry6M_v_;
-text: .text%__1cNdecL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cOLibraryCallKitXinline_string_compareTo6M_i_;
-text: .text%__1cScompL_rReg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cJAssemblerEsubq6MpnMRegisterImpl_nHAddress__v_;
text: .text%jni_GetEnv;
text: .text%JVM_NanoTime;
-text: .text%__1cCosNjavaTimeNanos6F_x_;
-text: .text%__1cZInterpreterMacroAssemblerNsuper_call_VM6MpnMRegisterImpl_2pC22_v_;
-text: .text%__1cFTypeFJis_finite6kM_i_;
text: .text%__1cRmulI_rReg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOMacroAssemblerRcall_VM_leaf_base6MpCi_v_;
-text: .text%__1cScompL_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cHMulNodeGis_Mul6kM_pk0_;
text: .text%__1cETypeEmake6Fn0AFTYPES__pk0_;
text: .text%__1cQmulI_mem_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cParrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cJAssemblerLemit_data646MxnJrelocInfoJrelocType_i_v_;
text: .text%__1cJAssemblerFpushq6MnHAddress__v_;
-text: .text%__1cIGraphKitSgen_native_wrapper6MpnIciMethod__v_;
text: .text%__1cRComputeEntryStackIdo_array6Mii_v_;
text: .text%__1cPcmpD_cc_immNodeKconst_size6kM_i_;
-text: .text%__1cKLoadPCNodeJideal_reg6kM_I_;
text: .text%__1cMorL_rRegNodeErule6kM_I_;
-text: .text%__1cUCallNativeDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cScompP_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cScompP_rReg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cSvframeStreamCommonbFfill_in_compiled_inlined_sender6M_i_;
text: .text%__1cNdivI_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cKcastPPNodeJnum_opnds6kM_I_;
-text: .text%__1cTconvL2D_reg_memNodeHtwo_adr6kM_I_;
-text: .text%__1cOLibraryCallKitbNinline_native_Reflection_getCallerClass6M_i_;
-text: .text%__1cOLibraryCallKitZinline_native_Class_query6MnMvmIntrinsicsCID__i_;
text: .text%__1cMnegF_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHCompile2t6MpnFciEnv_pnKC2Compiler_pnIciMethod__v_;
text: .text%__1cKciTypeFlowLStateVectorOdo_null_assert6MpnHciKlass__v_;
text: .text%__1cMsubD_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cJLoadLNodeMstore_Opcode6kM_i_;
text: .text%__1cNGrowableArray4CpnGciType__Egrow6Mi_v_;
-text: .text%__1cMdivD_immNodeJnum_opnds6kM_I_;
-text: .text%__1cNstoreImmPNodeJnum_opnds6kM_I_;
text: .text%__1cMdivD_immNodeHtwo_adr6kM_I_;
-text: .text%__1cLloadSSINodeHtwo_adr6kM_I_;
text: .text%__1cLConvI2FNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cIciMethodMnative_entry6M_pC_;
text: .text%__1cPcmpD_cc_immNodeFreloc6kM_i_;
-text: .text%__1cUCallNativeDirectNodeFreloc6kM_i_;
-text: .text%__1cNloadConPcNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulD_memNodeErule6kM_I_;
text: .text%jni_CallVoidMethod: jni.o;
-text: .text%__1cFStateS_sub_Op_CallNative6MpknENode__v_;
-text: .text%__1cFStateO_sub_Op_LoadPC6MpknENode__v_;
-text: .text%__1cQAbstractCompilerPsupports_native6M_i_;
-text: .text%__1cQorI_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cbCAbstractInterpreterGeneratorbBgenerate_result_handler_for6MnJBasicType__pC_;
text: .text%__1cMmulF_regNodeHtwo_adr6kM_I_;
-text: .text%__1cPsalL_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cQshrI_rReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableQvolatile_barrier6FnJAssemblerQMembar_mask_bits__v_;
-text: .text%__1cNdivL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cVMoveL2D_reg_stackNodeErule6kM_I_;
text: .text%__1cRsalI_rReg_immNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNRelocIterator2t6MpnKCodeBuffer_pC3_v_;
text: .text%__1cJBasicLockHmove_to6MpnHoopDesc_p0_v_;
-text: .text%__1cYinternal_word_RelocationMforce_target6MpC_v_;
text: .text%__1cOstackSlotIOperEtype6kM_pknEType__;
-text: .text%__1cLloadSSINodeJnum_opnds6kM_I_;
text: .text%__1cKPSYoungGenRavailable_to_live6M_L_;
text: .text%__1cOstackSlotIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNcmovL_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cSstore_to_stackslot6FrnKCodeBuffer_iii_v_;
-text: .text%__1cFTypeFGis_nan6kM_i_;
text: .text%__1cQshrL_rReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTconvD2F_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorZgenerate_safept_entry_for6MnITosState_pC_2_;
text: .text%__1cUInterpreterGeneratorbDgenerate_stack_overflow_check6M_v_;
text: .text%__1cRComputeEntryStackHdo_bool6M_v_;
text: .text%__1cMmulD_immNodeFreloc6kM_i_;
text: .text%__1cQmulI_mem_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cbCAbstractInterpreterGeneratorZgenerate_continuation_for6MnITosState__pC_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%JVM_FindPrimitiveClass;
-text: .text%__1cOstackSlotIOperJnum_edges6kM_I_;
text: .text%JVM_IsSameClassPackage;
-text: .text%__1cUInterpreterGeneratorXcheck_for_compiled_code6MrnFLabel__v_;
text: .text%__1cRaddI_mem_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMaddF_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPjava_lang_ClassYcreate_basic_type_mirror6FpkcpnGThread__pnHoopDesc__;
text: .text%__1cLconvI2BNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMaddD_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMlogD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOPSVirtualSpaceJshrink_by6ML_i_;
-text: .text%__1cTconvD2F_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cRCardTableModRefBSYcommitted_unique_to_self6kMinJMemRegion__1_;
text: .text%__1cNTemplateTableEiop26Fn0AJOperation__v_;
text: .text%__1cFStateN_sub_Op_LoadD6MpknENode__v_;
text: .text%__1cTconvL2F_reg_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cZInterpreterMacroAssemblerRremove_activation6MnITosState_pnMRegisterImpl_iii_v_;
text: .text%__1cZInterpreterMacroAssemblerMdispatch_via6MnITosState_ppC_v_;
-text: .text%__1cUInterpreterGeneratorbEgenerate_asm_interpreter_entry6Mi_pC_;
text: .text%__1cPcmpF_cc_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMsubF_memNodeJnum_opnds6kM_I_;
text: .text%__1cKPSYoungGenUavailable_to_min_gen6M_L_;
text: .text%__1cJAssemblerKrepne_scan6M_v_;
text: .text%__1cJname2type6Fpkc_nJBasicType__;
@@ -6658,7 +4315,6 @@ text: .text%__1cKPSYoungGenQlimit_gen_shrink6ML_L_;
text: .text%__1cTconvI2D_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateP_sub_Op_ConvI2F6MpknENode__v_;
text: .text%__1cMmulD_immNodeKconst_size6kM_i_;
-text: .text%__1cMmulD_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cMmulF_immNodeFreloc6kM_i_;
text: .text%__1cJloadBNodeHsize_of6kM_I_;
text: .text%__1cOcompI_rRegNodeHsize_of6kM_I_;
@@ -6667,7 +4323,6 @@ text: .text%__1cJloadPNodeHsize_of6kM_I_;
text: .text%__1cOtypeArrayKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cOtypeArrayKlassNexternal_name6FnJBasicType__pkc_;
text: .text%Unsafe_StaticFieldOffset;
-text: .text%__1cFTypeFFempty6kM_i_;
text: .text%__1cNcmovL_regNodeHtwo_adr6kM_I_;
text: .text%__1cLloadSSDNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateO_sub_Op_CMoveP6MpknENode__v_;
@@ -6677,69 +4332,41 @@ text: .text%__1cVVM_ParallelGCSystemGC2t6MIInHGCCauseFCause__v_;
text: .text%__1cJCmpF3NodeGOpcode6kM_i_;
text: .text%Unsafe_GetObjectVolatile;
text: .text%__1cMsubD_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLdivL_10NodePoper_input_base6kM_I_;
-text: .text%__1cVVM_ParallelGCSystemGCEname6kM_pkc_;
-text: .text%__1cOtypeArrayKlassMcreate_klass6FnJBasicType_ipnGThread__pnMklassOopDesc__;
text: .text%Unsafe_EnsureClassInitialized;
-text: .text%__1cJAssemblerEjmpb6MrnFLabel_nJrelocInfoJrelocType__v_;
text: .text%__1cQSystemDictionaryPresolve_or_null6FnMsymbolHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cOcmovI_regUNodeHtwo_adr6kM_I_;
text: .text%__1cMaddD_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerEmovw6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cJAssemblerGmovsbl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cMrax_RegLOperFclone6kM_pnIMachOper__;
text: .text%__1cMorL_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cTconvD2F_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cUParallelScavengeHeapHcollect6MnHGCCauseFCause__v_;
text: .text%__1cJLoadDNodeJideal_reg6kM_I_;
text: .text%__1cQciTypeArrayKlass2t6MnLKlassHandle__v_;
text: .text%__1cQmulI_mem_immNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpCi_v_;
text: .text%__1cPcheckCastPPNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cJAssemblerFpopaq6M_v_;
text: .text%__1cSmembar_acquireNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKimmL10OperJnum_edges6kM_I_;
text: .text%Unsafe_StaticFieldBaseFromField;
-text: .text%__1cLcastP2LNodeHsize_of6kM_I_;
-text: .text%__1cQmulI_mem_immNodeRis_cisc_alternate6kM_i_;
text: .text%__1cMsubD_regNodeHtwo_adr6kM_I_;
-text: .text%__1cZInterpreterMacroAssemblerSnotify_method_exit6MnITosState__v_;
text: .text%__1cRsubI_rReg_memNodeHsize_of6kM_I_;
-text: .text%__1cTconvL2F_reg_regNodeHtwo_adr6kM_I_;
-text: .text%__1cNReservedSpace2t6MpcL_v_;
-text: .text%__1cKmul_hiNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cSmembar_acquireNodeJnum_opnds6kM_I_;
-text: .text%__1cQsarL_rReg_63NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerMemit_arith_b6MiipnMRegisterImpl_i_v_;
-text: .text%__1cPsarL_rReg_2NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cLdivL_10NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cNTemplateTableZjvmti_post_fast_field_mod6F_v_;
text: .text%JVM_GC;
text: .text%__1cNTemplateTablePfast_storefield6FnITosState__v_;
text: .text%__1cNTemplateTableQfast_accessfield6FnITosState__v_;
-text: .text%__1cScompP_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cIPSOldGenSexpand_to_reserved6M_i_;
-text: .text%__1cQmulI_mem_immNodeJnum_opnds6kM_I_;
-text: .text%__1cIPSOldGenJexpand_by6ML_i_;
text: .text%__1cIPSOldGenGexpand6ML_v_;
text: .text%__1cIPSOldGenXexpand_and_cas_allocate6ML_pnIHeapWord__;
text: .text%__1cPsarL_rReg_1NodeHtwo_adr6kM_I_;
text: .text%__1cJAssemblerFtestb6MpnMRegisterImpl_i_v_;
-text: .text%__1cXpartialSubtypeCheckNodeHtwo_adr6kM_I_;
text: .text%__1cMsubF_regNodeHtwo_adr6kM_I_;
-text: .text%__1cZInterpreterMacroAssemblerRget_constant_pool6MpnMRegisterImpl__v_;
text: .text%__1cRaddL_rReg_memNodeFreloc6kM_i_;
text: .text%__1cVMoveL2D_reg_stackNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cScompP_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cPsarL_rReg_1NodeJnum_opnds6kM_I_;
text: .text%__1cOGenerateOopMapGdo_jsr6Mi_v_;
text: .text%__1cMmulF_memNodeHtwo_adr6kM_I_;
-text: .text%__1cScompP_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cLPSMarkSweepGinvoke6Fpii_v_;
text: .text%__1cOcmovD_regUNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNcmovL_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cTconvF2I_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cMmulF_immNodeKconst_size6kM_i_;
text: .text%__1cZInterpreterMacroAssemblerbGget_unsigned_2_byte_index_at_bcp6MpnMRegisterImpl_i_v_;
text: .text%__1cZInterpreterMacroAssemblerRcall_VM_leaf_base6MpCi_v_;
@@ -6748,44 +4375,28 @@ text: .text%__1cMdecI_memNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cCosMuser_handler6F_pv_;
text: .text%__1cJloadDNodeFreloc6kM_i_;
text: .text%__1cMincL_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cNaddL_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cCosHSolarisSset_signal_handler6Fiii_v_;
text: .text%__1cNinstanceKlassSremove_osr_nmethod6MpnHnmethod__v_;
text: .text%__1cTconvD2F_reg_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cKMemoryPoolLadd_manager6MpnNMemoryManager__v_;
text: .text%__1cMmulD_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLClassLoaderbCupdate_class_path_entry_list6Fpkc_v_;
text: .text%__1cMsubF_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOcmovI_regUNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cTconvL2D_reg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cLOptoRuntimeRresolve_call_Type6F_pknITypeFunc__;
-text: .text%__1cHciKlassIis_klass6M_i_;
text: .text%__1cPPerfDataManagerKname_space6Fpkci_pc_;
-text: .text%__1cKScopeValuePis_constant_int6kM_i_;
text: .text%jni_RegisterNatives: jni.o;
text: .text%Unsafe_GetNativeFloat;
-text: .text%__1cMsubF_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%JVM_GetClassDeclaredFields;
text: .text%__1cMsubF_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cJMemRegion2t6M_v_;
text: .text%jni_SetStaticObjectField: jni.o;
-text: .text%__1cQsalL_rReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cCosEstat6FpkcpnEstat__i_;
-text: .text%__1cJArgumentsRverify_percentage6FLpkc_i_;
text: .text%__1cLOptoRuntimeTmultianewarray_Type6Fi_pknITypeFunc__;
text: .text%__1cRComputeEntryStackHdo_long6M_v_;
text: .text%__1cHnmethodVinvalidate_osr_method6M_v_;
-text: .text%__1cMaddF_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cNMemoryManagerIadd_pool6MpnKMemoryPool__v_;
text: .text%jni_SetObjectField: jni.o;
-text: .text%__1cLConvD2INodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cJAssemblerEcall6MpnMRegisterImpl_nJrelocInfoJrelocType__v_;
text: .text%__1cJloadDNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cLConvD2INodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cOBasicHashtable2t6Mii_v_;
-text: .text%__1cCosHSolarisOis_sig_ignored6Fi_i_;
-text: .text%__1cNandI_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cNcmovL_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cOPhaseIdealLoopJclone_iff6MpnHPhiNode_pnNIdealLoopTree__pnIBoolNode__;
text: .text%__1cMTailJumpNodeGOpcode6kM_i_;
text: .text%__1cCosHSolarisVcleanup_interruptible6FpnKJavaThread__v_;
@@ -6795,7 +4406,6 @@ text: .text%__1cMdivD_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_IsSupportedJNIVersion;
text: .text%JVM_LoadLibrary;
text: .text%JVM_Sleep;
-text: .text%__1cNReservedSpaceKinitialize6MLLipc_v_;
text: .text%__1cHOrLNodeLbottom_type6kM_pknEType__;
text: .text%__1cOstackSlotIOperFscale6kM_i_;
text: .text%__1cLConvD2FNodeLbottom_type6kM_pknEType__;
@@ -6804,7 +4414,6 @@ text: .text%jint_cmp: parse2.o;
text: .text%__1cOstackSlotIOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cLloadSSINodeErule6kM_I_;
text: .text%__1cLConvI2DNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cVMoveF2I_reg_stackNodePoper_input_base6kM_I_;
text: .text%__1cLConvL2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIDivDNodeJideal_reg6kM_I_;
text: .text%__1cRandI_rReg_memNodeFreloc6kM_i_;
@@ -6814,7 +4423,6 @@ text: .text%__1cPPerfLongVariant2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariabil
text: .text%jni_MonitorExit: jni.o;
text: .text%jni_MonitorEnter: jni.o;
text: .text%__1cHciKlass2t6MnLKlassHandle_pnIciSymbol__v_;
-text: .text%__1cPciInstanceKlassbDcompute_shared_is_initialized6M_i_;
text: .text%__1cNGrowableArray4CpnIPerfData__Praw_at_put_grow6Mirk14_v_;
text: .text%__1cFciEnvOrecord_failure6Mpkc_v_;
text: .text%__1cMciArrayKlassRbase_element_type6M_pnGciType__;
@@ -6822,14 +4430,11 @@ text: .text%__1cLConvL2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cOstackSlotDOperFscale6kM_i_;
text: .text%__1cOstackSlotDOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOcmovI_regUNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKReturnNodeUdepends_only_on_test6kM_i_;
text: .text%__1cNcmovL_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvD2F_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivDNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cTconvF2I_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvL2F_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMsubD_immNodeJnum_opnds6kM_I_;
-text: .text%__1cVMoveL2D_reg_stackNodeJnum_opnds6kM_I_;
text: .text%__1cRaddI_mem_rRegNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNTemplateTableH_return6FnITosState__v_;
text: .text%__1cNTemplateTableHif_icmp6Fn0AJCondition__v_;
@@ -6838,16 +4443,10 @@ text: .text%__1cTconvL2D_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXpartialSubtypeCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNSharedRuntimeEdrem6Fdd_d_;
text: .text%__1cRaddI_rReg_immNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMloadConDNodeFclone6kM_pnENode__;
text: .text%__1cScompP_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKC2IAdapterXreturn_from_interpreter6M_pC_;
-text: .text%__1cKC2IAdapterRsetup_stack_frame6MnFframe_pnLvframeArray__v_;
-text: .text%__1cIregDOperFclone6kM_pnIMachOper__;
text: .text%__1cJAssemblerGmovswl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cMsubF_memNodeErule6kM_I_;
-text: .text%__1cIimmDOperFclone6kM_pnIMachOper__;
text: .text%__1cOMacroAssemblerQload_signed_byte6MpnMRegisterImpl_nHAddress__i_;
-text: .text%__1cKC2IAdapterSunpack_c2i_adapter6MnFframe_1pnLvframeArray__v_;
text: .text%__1cNdivI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRMachSpillCopyNodeHsize_of6kM_I_;
text: .text%__1cFframebFset_interpreter_frame_sender_sp6Mpl_v_;
@@ -6861,26 +4460,15 @@ text: .text%__1cMsubD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulF_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulF_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cCosZvm_allocation_granularity6F_i_;
-text: .text%__1cJAssemblerFpopfq6M_v_;
-text: .text%__1cCosOreserve_memory6FLpc_1_;
text: .text%Unsafe_ObjectFieldOffset;
-text: .text%__1cUParallelScavengeHeapEkind6M_nNCollectedHeapEName__;
-text: .text%__1cKMemoryPool2t6Mpkcn0AIPoolType_LLii_v_;
text: .text%__1cNSpaceCounters2t6MpkciLpnMMutableSpace_pnSGenerationCounters__v_;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
-text: .text%__1cMaddF_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cOcompiledVFrameUresolve_monitor_lock6kMnILocation__pnJBasicLock__;
-text: .text%__1cTconvD2I_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cKCompiledICSset_to_megamorphic6MpnICallInfo_nJBytecodesECode_pnGThread__v_;
-text: .text%__1cNReservedSpaceKfirst_part6MLii_0_;
text: .text%__1cNCellTypeStateImake_any6Fi_0_;
text: .text%__1cMorL_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cNTemplateTableFaload6Fi_v_;
-text: .text%__1cISubFNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cMnegF_regNodeJnum_opnds6kM_I_;
-text: .text%__1cINegDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cKCompiledICOis_megamorphic6kM_i_;
text: .text%__1cXNativeSignatureIteratorJdo_double6M_v_;
text: .text%__1cISubDNodeGadd_id6kM_pknEType__;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorLpass_double6M_v_;
@@ -6893,47 +4481,30 @@ text: .text%__1cLMoveL2DNodeLbottom_type6kM_pknEType__;
text: .text%__1cZCompiledArgumentOopFinderDset6MinJBasicType__v_;
text: .text%__1cNstoreImmPNodeFreloc6kM_i_;
text: .text%__1cNSharedRuntimeVhandle_ic_miss_helper6FpnKJavaThread_pnGThread__nMmethodHandle__;
-text: .text%__1cLOptoRuntimebBhandle_wrong_method_ic_miss6FpnKJavaThread__pC_;
text: .text%__1cKJavaThreadUremove_monitor_chunk6MpnMMonitorChunk__v_;
text: .text%__1cKJavaThreadRadd_monitor_chunk6MpnMMonitorChunk__v_;
text: .text%__1cNReservedSpace2t6ML_v_;
text: .text%__1cPPerfDataManagerUcreate_long_variable6FnJCounterNS_pkcnIPerfDataFUnits_pnUPerfLongSampleHelper_pnGThread__pnQPerfLongVariable__;
-text: .text%__1cNmulL_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cNmulI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cTGeneratePairingInfoOreport_results6kM_i_;
text: .text%Unsafe_GetNativeByte;
text: .text%__1cbEJvmtiDynamicCodeEventCollector2T6M_v_;
text: .text%__1cFframebLprevious_monitor_in_interpreter_frame6kMpnPBasicObjectLock__2_;
text: .text%__1cbEJvmtiDynamicCodeEventCollector2t6M_v_;
-text: .text%__1cOMacroAssemblerQload_signed_word6MpnMRegisterImpl_nHAddress__i_;
-text: .text%__1cQOopMapCacheEntryPfill_for_native6M_v_;
text: .text%__1cFStateP_sub_Op_ConvD2I6MpknENode__v_;
-text: .text%__1cJAssemblerGpushfq6M_v_;
text: .text%__1cKVtableStubRpd_code_alignment6F_i_;
text: .text%__1cJAssemblerDorl6MpnMRegisterImpl_2_v_;
-text: .text%__1cIDivFNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cINegDNodeJideal_reg6kM_I_;
-text: .text%__1cODeoptimizationZtrap_state_set_recompiled6Fii_i_;
-text: .text%__1cPshrL_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTconvF2D_reg_memNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKklassKlassOset_alloc_size6MI_v_;
text: .text%__1cNandI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cTMaskFillerForNative2t6MnMmethodHandle_pLi_v_;
text: .text%__1cMsubF_memNodeHtwo_adr6kM_I_;
text: .text%__1cINegFNodeLbottom_type6kM_pknEType__;
-text: .text%__1cRaddL_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cLVtableStubsLcreate_stub6FiipnNmethodOopDesc__pC_;
text: .text%__1cMmulL_memNodeFreloc6kM_i_;
-text: .text%__1cLVtableStubsGlookup6Fiii_pnKVtableStub__;
text: .text%__1cMMonitorValue2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cFStateM_sub_Op_NegD6MpknENode__v_;
text: .text%__1cOtailjmpIndNodePoper_input_base6kM_I_;
-text: .text%__1cNStubGeneratorYgenerate_throw_exception6MpkcpCi_3_;
-text: .text%__1cISubDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cPPerfDataManagerKname_space6Fpkc2i_pc_;
-text: .text%__1cLVtableStubsOis_entry_point6FpC_i_;
text: .text%__1cNstoreImmPNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHRetNodeJnum_opnds6kM_I_;
text: .text%__1cIDivINodeJideal_reg6kM_I_;
text: .text%__1cRInvocationCounterDdef6Fn0AFState_ipFnMmethodHandle_pnGThread__pC_v_;
text: .text%__1cMNativeLookupNlong_jni_name6FnMmethodHandle__pc_;
@@ -6944,7 +4515,6 @@ text: .text%__1cOGenerateOopMapTret_jump_targets_do6MpnOBytecodeStream_pFp0ipi_v
text: .text%__1cOClassPathEntry2t6M_v_;
text: .text%__1cMorL_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cOMacroAssemblerNpop_CPU_state6M_v_;
-text: .text%__1cMmulF_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cOMacroAssemblerOpush_CPU_state6M_v_;
text: .text%__1cOMacroAssemblerNpop_FPU_state6M_v_;
text: .text%__1cOMacroAssemblerOpush_FPU_state6M_v_;
@@ -6955,8 +4525,6 @@ text: .text%__1cTconvL2D_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOMacroAssemblerSstore_check_part_16MpnMRegisterImpl__v_;
text: .text%__1cRaddL_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMaddF_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cRClassPathZipEntry2t6Mppvpc_v_;
-text: .text%__1cNTemplateTableOprepare_invoke6FpnMRegisterImpl_2inJBytecodesECode__v_;
text: .text%__1cVMoveF2I_reg_stackNodeErule6kM_I_;
text: .text%__1cJAssemblerEandq6MpnMRegisterImpl_2_v_;
text: .text%__1cFParsePdo_lookupswitch6M_v_;
@@ -6967,19 +4535,11 @@ text: .text%__1cJloadFNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cRComputeEntryStackJdo_double6M_v_;
text: .text%__1cMaddD_regNodeHtwo_adr6kM_I_;
text: .text%__1cLConvD2FNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cNTemplateTablebAload_invoke_cp_cache_entry6FipnMRegisterImpl_22ii_v_;
-text: .text%__1cNTemplateTableZload_field_cp_cache_entry6FipnMRegisterImpl_22i_v_;
text: .text%__1cJAssemblerEcmpb6MnHAddress_i_v_;
text: .text%__1cCosGsignal6Fipv_1_;
-text: .text%__1cLClassLoaderSget_canonical_path6Fpc1i_i_;
-text: .text%__1cLClassLoaderXcreate_class_path_entry6FpcnEstat_ppnOClassPathEntry__v_;
text: .text%__1cMsubD_immNodeHtwo_adr6kM_I_;
-text: .text%__1cLklassVtableTis_miranda_entry_at6Mi_i_;
text: .text%__1cKPSScavengeZclean_up_failed_promotion6F_v_;
-text: .text%__1cNTemplateTableJfloat_cmp6Fii_v_;
text: .text%JVM_Available;
-text: .text%__1cJAssemblerHucomiss6MpnRFloatRegisterImpl_2_v_;
-text: .text%__1cZInterpreterMacroAssemblerRprofile_checkcast6MipnMRegisterImpl__v_;
text: .text%__1cIAddDNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJAssemblerFimulq6MpnMRegisterImpl_2_v_;
text: .text%__1cIRetTableUfind_jsrs_for_target6Mi_pnNRetTableEntry__;
@@ -6992,73 +4552,44 @@ text: .text%__1cNTemplateTableGlstore6Fi_v_;
text: .text%__1cNRegisterSaverTsave_live_registers6FpnOMacroAssembler_ipi_pnGOopMap__;
text: .text%__1cNTemplateTableGistore6Fi_v_;
text: .text%__1cIRetTableHadd_jsr6Mii_v_;
-text: .text%__1cMincL_memNodeHtwo_adr6kM_I_;
text: .text%__1cKPSYoungGenOobject_iterate6MpnNObjectClosure__v_;
-text: .text%__1cNGrowableArray4CpnLmarkOopDesc__2t6Mii_v_;
-text: .text%__1cUCompressedReadStreamJread_long6M_x_;
text: .text%__1cISubDNodeJideal_reg6kM_I_;
-text: .text%__1cWNonPrintingResourceObj2n6FLnLResourceObjPallocation_type__pv_;
text: .text%__1cNTemplateTableFdload6Fi_v_;
text: .text%__1cNTemplateTableFfload6Fi_v_;
-text: .text%__1cPaddress_of_flag6FnXCommandLineFlagWithType__pnEFlag__: globals.o;
text: .text%__1cNTemplateTableFlload6Fi_v_;
text: .text%__1cNTemplateTableFiload6Fi_v_;
text: .text%__1cMmulI_memNodePoper_input_base6kM_I_;
-text: .text%__1cOcompL_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cNGrowableArray4CpnLmarkOopDesc__Uclear_and_deallocate6M_v_;
text: .text%__1cMLinkResolverbBlookup_method_in_interfaces6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
-text: .text%__1cOcompI_rRegNodeFclone6kM_pnENode__;
-text: .text%__1cRsubI_rReg_memNodeFclone6kM_pnENode__;
-text: .text%__1cLcastP2LNodeFclone6kM_pnENode__;
text: .text%__1cKExceptionsK_throw_oop6FpnGThread_pkcipnHoopDesc__v_;
text: .text%__1cRaddL_rReg_memNodeErule6kM_I_;
text: .text%__1cOMacroAssemblerLstore_check6MpnMRegisterImpl__v_;
-text: .text%__1cOsalI_mem_1NodeHtwo_adr6kM_I_;
text: .text%__1cHRetNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cVMoveL2D_reg_stackNodeHtwo_adr6kM_I_;
-text: .text%__1cRaddL_mem_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cJloadPNodeFclone6kM_pnENode__;
-text: .text%__1cJloadBNodeFclone6kM_pnENode__;
text: .text%__1cRaddL_rReg_memNodeHtwo_adr6kM_I_;
text: .text%__1cMmulF_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMaddF_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerEmovb6MnHAddress_i_v_;
-text: .text%__1cIAddDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%Unsafe_AllocateMemory;
text: .text%__1cVMoveF2I_reg_stackNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerHfxrstor6MnHAddress__v_;
text: .text%__1cJAssemblerGfxsave6MnHAddress__v_;
-text: .text%__1cHCompilePget_invoke_name6M_pnIciSymbol__;
text: .text%__1cJAssemblerEsetb6Mn0AJCondition_pnMRegisterImpl__v_;
-text: .text%__1cNxorI_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cMVM_OperationNdoit_prologue6M_i_;
text: .text%__1cNGCTaskManagerGthread6MI_pnMGCTaskThread__;
text: .text%__1cRConstantLongValue2t6MpnTDebugInfoReadStream__v_;
-text: .text%__1cRConstantLongValueQis_constant_long6kM_i_;
-text: .text%__1cKScopeValuePis_constant_oop6kM_i_;
-text: .text%__1cKScopeValueSis_constant_double6kM_i_;
text: .text%__1cMmulD_memNodeHtwo_adr6kM_I_;
-text: .text%__1cVMoveF2I_reg_stackNodeHtwo_adr6kM_I_;
text: .text%jni_CallStaticObjectMethod: jni.o;
text: .text%__1cNcmovL_memNodeHtwo_adr6kM_I_;
text: .text%__1cFStateM_sub_Op_AddD6MpknENode__v_;
text: .text%__1cMmulI_memNodeMideal_Opcode6kM_i_;
text: .text%__1cScompL_rReg_memNodeFreloc6kM_i_;
text: .text%__1cLloadSSINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNGrowableArray4CpnIPerfData__2t6Mii_v_;
-text: .text%__1cOCompilerThreadSis_Compiler_thread6kM_i_;
text: .text%__1cTjava_lang_ThrowableLset_message6FpnHoopDesc_2_v_;
text: .text%__1cMPerfDataList2T6M_v_;
-text: .text%__1cLVtableStubsFenter6FiiipnKVtableStub__v_;
text: .text%__1cMmulI_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOcmovD_regUNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNCompileBrokerUmake_compiler_thread6FpkcpnMCompileQdDueue_pnQCompilerCounters_pnGThread__pnOCompilerThread__;
text: .text%__1cNnegI_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cbCAbstractInterpreterGeneratorbHgenerate_exception_handler_common6Mpkc2i_pC_;
-text: .text%__1cSCommandLineFlagsExKis_default6FnPCommandLineFlag__i_;
text: .text%__1cJAssemblerEnegl6MpnMRegisterImpl__v_;
-text: .text%__1cUConstantOopReadValuePis_constant_oop6kM_i_;
-text: .text%__1cHMatcherNlogDSupported6F_ki_;
text: .text%__1cOGenerateOopMapRdo_multianewarray6Mii_v_;
text: .text%__1cLconvI2BNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUPSGenerationCounters2t6MpkciipnOPSVirtualSpace__v_;
@@ -7066,86 +4597,59 @@ text: .text%__1cMPerfDataList2t6Mi_v_;
text: .text%__1cFStateP_sub_Op_ConvI2D6MpknENode__v_;
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cJCodeCachebCmake_marked_nmethods_zombies6F_v_;
-text: .text%__1cNVM_DeoptimizeEname6kM_pkc_;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC2_v_;
text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
-text: .text%__1cSCommandLineFlagsExJboolAtPut6FnXCommandLineFlagWithType_i_v_;
-text: .text%__1cMmulI_memNodeJnum_opnds6kM_I_;
text: .text%__1cFStateM_sub_Op_CmpF6MpknENode__v_;
text: .text%__1cODeoptimizationVdeoptimize_dependents6F_i_;
-text: .text%__1cOtailjmpIndNodeGpinned6kM_i_;
-text: .text%__1cQshrL_rReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerGmovzbl6MpnMRegisterImpl_2_v_;
text: .text%__1cILogDNodeJideal_reg6kM_I_;
-text: .text%__1cMmulI_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cRaddL_mem_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMincL_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateO_sub_Op_Conv2B6MpknENode__v_;
text: .text%__1cNcmovL_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_CallStaticObjectMethodV: jni.o;
-text: .text%__1cMOopTaskQdDueueKinitialize6M_v_;
text: .text%__1cMmulD_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMOopTaskQdDueue2t6M_v_;
-text: .text%__1cOLibraryCallKitbBinline_native_currentThread6M_i_;
text: .text%__1cNMemoryManager2t6M_v_;
text: .text%__1cMaddF_immNodeKconst_size6kM_i_;
text: .text%__1cVMoveL2D_reg_stackNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOLibraryCallKitSinline_math_native6MnMvmIntrinsicsCID__i_;
text: .text%__1cFciEnvbNArrayIndexOutOfBoundsException_instance6M_pnKciInstance__;
text: .text%__1cMsubD_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMaddF_immNodeFreloc6kM_i_;
text: .text%__1cMaddD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOCompilerThreadbCis_hidden_from_external_view6kM_i_;
-text: .text%__1cNReservedSpaceJlast_part6ML_0_;
text: .text%__1cMnegF_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMaddD_immNodeFreloc6kM_i_;
text: .text%jni_IsInstanceOf: jni.o;
text: .text%__1cMaddD_immNodeKconst_size6kM_i_;
text: .text%jni_Throw: jni.o;
-text: .text%__1cRmulI_rReg_immNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cOsalI_mem_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSPSPromotionManager2t6M_v_;
-text: .text%__1cFKlassUoop_is_objArrayKlass6kM_i_;
text: .text%__1cOMacroAssemblerLstore_check6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cOLibraryCallKitXgenerate_current_thread6MrpnENode__2_;
text: .text%__1cMsubF_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJAssemblerFmovss6MpnRFloatRegisterImpl_2_v_;
text: .text%JVM_GetLastErrorString;
-text: .text%__1cJAssemblerFmovsd6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerTprofile_switch_case6MpnMRegisterImpl_22_v_;
text: .text%__1cZInterpreterMacroAssemblerWprofile_switch_default6MpnMRegisterImpl__v_;
text: .text%__1cFStateM_sub_Op_SubF6MpknENode__v_;
-text: .text%__1cLVtableStubsScreate_vtable_stub6Fii_pnKVtableStub__;
text: .text%JVM_GetInterfaceVersion;
text: .text%__1cKstoreBNodeErule6kM_I_;
text: .text%__1cKVtableStub2n6FLi_pv_;
text: .text%__1cJAssemblerEdecq6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerUprofile_virtual_call6MpnMRegisterImpl_22_v_;
text: .text%__1cOtailjmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cCosFyield6F_v_;
-text: .text%__1cRaddI_mem_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOPSVirtualSpace2t6MnNReservedSpace_L_v_;
-text: .text%__1cOLibraryCallKitMinline_trans6MnMvmIntrinsicsCID__i_;
text: .text%Unsafe_SetMemory;
text: .text%__1cCosIjvm_path6Fpci_v_;
text: .text%__1cJTimeStamp2t6M_v_;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MpnMRegisterImpl_2i_v_;
-text: .text%__1cLconvI2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorKpass_float6M_v_;
text: .text%__1cISubFNodeJideal_reg6kM_I_;
text: .text%__1cNGrowableArray4CpnIPerfData__Egrow6Mi_v_;
text: .text%__1cMSysClassPathNreset_item_at6Mi_v_;
text: .text%__1cFStateM_sub_Op_LogD6MpknENode__v_;
-text: .text%__1cFTypeDFempty6kM_i_;
-text: .text%__1cZInterpreterMacroAssemblerVincrement_mdp_data_at6MpnMRegisterImpl_2i_v_;
-text: .text%__1cJlookupOne6FpnHJNIEnv__pkcpnGThread__pnH_jclass__: jni.o;
text: .text%__1cLloadSSINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cCosGgetenv6Fpkcpci_i_;
text: .text%__1cZInterpreterMacroAssemblerLlock_object6MpnMRegisterImpl__v_;
-text: .text%__1cOtypeArrayKlassQarray_klass_impl6MipnGThread__pnMklassOopDesc__;
text: .text%__1cISubFNodeGadd_id6kM_pknEType__;
-text: .text%__1cJArgumentsMbuild_string6Fppcpkc_v_;
text: .text%__1cFStateM_sub_Op_SubD6MpknENode__v_;
text: .text%JVM_RegisterSignal;
text: .text%JVM_FindSignal;
@@ -7156,12 +4660,10 @@ text: .text%__1cKConv2BNodeJideal_reg6kM_I_;
text: .text%__1cXNativeSignatureIteratorIdo_float6M_v_;
text: .text%jni_GetDoubleArrayRegion: jni.o;
text: .text%__1cLloadSSDNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cVMoveF2I_reg_stackNodeJnum_opnds6kM_I_;
text: .text%__1cJArgumentsObuild_jvm_args6Fpkc_v_;
text: .text%__1cOLibraryCallKitMpop_math_arg6M_pnENode__;
text: .text%__1cZInterpreterMacroAssemblerRgen_subtype_check6MpnMRegisterImpl_rnFLabel__v_;
text: .text%__1cFStateO_sub_Op_CMoveL6MpknENode__v_;
-text: .text%__1cJArgumentsMadd_property6Fpkc_i_;
text: .text%__1cMVM_OperationNdoit_epilogue6M_v_;
text: .text%__1cOCompilerThread2t6MpnMCompileQdDueue_pnQCompilerCounters__v_;
text: .text%__1cRaddI_mem_rRegNodeFreloc6kM_i_;
@@ -7169,7 +4671,6 @@ text: .text%__1cSInterpreterRuntimebKthrow_ArrayIndexOutOfBoundsException6FpnKJa
text: .text%__1cVMoveF2I_reg_stackNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNTemplateTableGfconst6Fi_v_;
text: .text%__1cNCompileBrokerUcompiler_thread_loop6F_v_;
-text: .text%__1cOtailjmpIndNodeHtwo_adr6kM_I_;
text: .text%__1cQmulI_mem_immNodeFreloc6kM_i_;
text: .text%__1cNincI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNVM_DeoptimizeEdoit6M_v_;
@@ -7177,104 +4678,64 @@ text: .text%__1cLMoveF2INodeLbottom_type6kM_pknEType__;
text: .text%__1cUConstantOopReadValue2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cRaddI_mem_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMdivD_immNodeKconst_size6kM_i_;
-text: .text%__1cMmulD_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cQObjectStartArrayKinitialize6MnJMemRegion__v_;
text: .text%__1cQObjectStartArraySset_covered_region6MnJMemRegion__v_;
-text: .text%__1cMsubF_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cUGcThreadCountClosureJdo_thread6MpnGThread__v_;
text: .text%__1cNGrowableArray4CpnTDerivedPointerEntry__Egrow6Mi_v_;
-text: .text%__1cOtailjmpIndNodeJnum_opnds6kM_I_;
text: .text%__1cPGCMemoryManagerXinitialize_gc_stat_info6M_v_;
text: .text%__1cPGCMemoryManager2t6M_v_;
text: .text%__1cKGCStatInfo2t6Mi_v_;
text: .text%__1cTMaskFillerForNativeLpass_object6M_v_;
text: .text%__1cTMaskFillerForNativeJpass_long6M_v_;
-text: .text%__1cJMarkSweepUAdjustPointerClosure2t6Mi_v_;
text: .text%__1cCosHrealloc6FpvL_1_;
text: .text%__1cCosWactive_processor_count6F_i_;
-text: .text%__1cSestimate_path_freq6FpnENode__f_: loopnode.o;
text: .text%__1cCosNsigexitnum_pd6F_i_;
text: .text%__1cMLinkResolverbEvtable_index_of_miranda_method6FnLKlassHandle_nMsymbolHandle_2pnGThread__i_;
-text: .text%__1cOLibraryCallKitVinline_fp_conversions6MnMvmIntrinsicsCID__i_;
-text: .text%__1cZcatch_cleanup_intra_block6FpnENode_1pnFBlock_ii_v_: lcm.o;
-text: .text%__1cCosbCis_thread_cpu_time_supported6F_i_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
-text: .text%__1cNdefaultStreamMhas_log_file6M_i_;
-text: .text%__1cNcmovL_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cRalign_object_size6Fl_l_;
-text: .text%__1cMarrayOopDescLheader_size6FnJBasicType__i_;
text: .text%__1cNstoreImmBNodeErule6kM_I_;
text: .text%__1cNstoreImmINodeErule6kM_I_;
-text: .text%__1cLloadSSDNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cFParseMjump_if_join6MpnENode_2_2_;
text: .text%__1cKJNIHandlesQmake_weak_global6FnGHandle__pnI_jobject__;
-text: .text%__1cLloadSSINodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cQJNI_FastGetFieldbEgenerate_fast_get_float_field06FnJBasicType__pC_;
text: .text%__1cFParseRdo_multianewarray6M_v_;
-text: .text%__1cMloadConDNodeGis_Con6kM_I_;
text: .text%jni_NewWeakGlobalRef: jni.o;
-text: .text%__1cPfilename_to_pid6Fpkc_i_: perfMemory_solaris.o;
-text: .text%__1cTis_directory_secure6Fpkc_i_: perfMemory_solaris.o;
text: .text%jni_CallStaticVoidMethodV: jni.o;
text: .text%jni_CallStaticBooleanMethod: jni.o;
text: .text%__1cNGrowableArray4CpnNmethodOopDesc__Egrow6Mi_v_;
-text: .text%__1cRInvocationCounterMreinitialize6Fi_v_;
-text: .text%__1cXpartialSubtypeCheckNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cTconvF2I_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cUInterpreterGeneratorVgenerate_native_entry6Mi_pC_;
text: .text%__1cUInterpreterGeneratorLlock_method6M_v_;
text: .text%__1cNGrowableArray4CpC_Egrow6Mi_v_;
text: .text%__1cNGrowableArray4CL_Egrow6Mi_v_;
-text: .text%__1cObox_handleNodeHsize_of6kM_I_;
-text: .text%__1cPsarL_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIPSOldGenKinitialize6MnNReservedSpace_Lpkci_v_;
text: .text%__1cIPSOldGenYinitialize_virtual_space6MnNReservedSpace_L_v_;
text: .text%__1cIPSOldGenPinitialize_work6Mpkci_v_;
-text: .text%__1cNdivI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cbCAbstractInterpreterGeneratorTgenerate_error_exit6Mpkc_pC_;
text: .text%__1cTAbstractInterpreterKinitialize6F_v_;
text: .text%__1cZInterpreterMacroAssemblerLprofile_ret6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerSprofile_final_call6MpnMRegisterImpl__v_;
text: .text%__1cZInterpreterMacroAssemblerMprofile_call6MpnMRegisterImpl__v_;
text: .text%__1cOPSVirtualSpace2t6M_v_;
-text: .text%__1cOPSVirtualSpaceKinitialize6MnNReservedSpace_L_i_;
text: .text%__1cZInterpreterMacroAssemblerSupdate_mdp_for_ret6MpnMRegisterImpl__v_;
text: .text%__1cZInterpreterMacroAssemblerPset_mdp_flag_at6MpnMRegisterImpl_i_v_;
text: .text%__1cZInterpreterMacroAssemblerWdispatch_only_noverify6MnITosState__v_;
text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpCpnMRegisterImpl__v_;
text: .text%__1cKReflectionbFbasic_type_arrayklass_to_mirror6FpnMklassOopDesc_pnGThread__pnHoopDesc__;
-text: .text%__1cMAdapterCache2t6M_v_;
-text: .text%__1cSComputeAdapterInfoIdo_array6Mii_v_;
-text: .text%__1cGatomll6Fpkcpx_i_: arguments.o;
-text: .text%__1cJArgumentsRcheck_memory_size6Fxx_n0AJArgsRange__;
text: .text%__1cJArgumentsVset_parallel_gc_flags6F_v_;
-text: .text%__1cYalign_to_allocation_size6FL_L_: heap.o;
-text: .text%__1cJArgumentsRparse_memory_size6Fpkcpxx_n0AJArgsRange__;
-text: .text%__1cJArgumentsXPropertyList_unique_add6FppnOSystemProperty_pkcpc_v_;
text: .text%__1cQAgentLibraryList2t6M_v_;
-text: .text%__1cFKlassVoop_is_typeArrayKlass6kM_i_;
text: .text%__1cMmulF_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJAssemblerGmovsbl6MpnMRegisterImpl_2_v_;
text: .text%__1cJAssemblerGmovswl6MpnMRegisterImpl_2_v_;
-text: .text%__1cLOptoRuntimebDlazy_c2i_adapter_generation_C6FpnKJavaThread__pC_;
-text: .text%__1cLOptoRuntimeVgenerate_handler_blob6FpCi_pnNSafepointBlob__;
text: .text%__1cRaddL_mem_rRegNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJAssemblerGmovzwl6MpnMRegisterImpl_2_v_;
-text: .text%__1cJAssemblerFmovdq6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
text: .text%__1cRComputeEntryStackIdo_float6M_v_;
text: .text%__1cJAssemblerFcmovl6Mn0AJCondition_pnMRegisterImpl_nHAddress__v_;
-text: .text%__1cSReferenceProcessor2t6MnJMemRegion_iii_v_;
text: .text%__1cJAssemblerEaddl6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cOGenerateOopMapTadd_to_ref_init_set6Mi_v_;
text: .text%__1cJAssemblerEcmpq6MpnMRegisterImpl_i_v_;
-text: .text%__1cJAssemblerHucomisd6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cJAssemblerFidivl6MpnMRegisterImpl__v_;
text: .text%__1cJAssemblerFidivq6MpnMRegisterImpl__v_;
text: .text%__1cJAssemblerEcdql6M_v_;
text: .text%__1cJAssemblerEcdqq6M_v_;
text: .text%__1cJAssemblerEleal6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cJAssemblerDorq6MnHAddress_i_v_;
-text: .text%__1cWStubGenerator_generate6FpnKCodeBuffer_i_v_;
text: .text%__1cJStubQdDueue2t6MpnNStubInterface_ipnFMutex_pkc_v_;
text: .text%__1cMGCTaskThreadDrun6M_v_;
text: .text%__1cMGCTaskThreadFstart6M_v_;
@@ -7284,12 +4745,9 @@ text: .text%__1cISubFNodeDsub6kMpknEType_3_3_;
text: .text%__1cJAssemblerFxaddl6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cNGCTaskManagerKset_thread6MIpnMGCTaskThread__v_;
text: .text%__1cJAssemblerHldmxcsr6MnHAddress__v_;
-text: .text%__1cJAssemblerFxorps6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cKcastPPNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cMPeriodicTask2t6ML_v_;
text: .text%__1cMPeriodicTaskGenroll6M_v_;
-text: .text%__1cPOopTaskQdDueueSetOregister_queue6MipnMOopTaskQdDueue__v_;
-text: .text%__1cOMacroAssemblerHcall_VM6MpnMRegisterImpl_pC222i_v_;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC_v_;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC22_v_;
text: .text%__1cNTemplateTableJfloat_cmp6Fi_v_;
@@ -7297,14 +4755,9 @@ text: .text%__1cNTemplateTableKdouble_cmp6Fi_v_;
text: .text%__1cNTemplateTableKinitialize6F_v_;
text: .text%__1cNTemplateTableGlconst6Fi_v_;
text: .text%__1cNTemplateTableGdconst6Fi_v_;
-text: .text%__1cNTemplateTableDldc6Fi_v_;
text: .text%__1cNTemplateTableHcastore6F_v_;
-text: .text%__1cPdouble_quadword6Fpxxx_0_: templateTable_amd64.o;
text: .text%__1cNTemplateTableKif_nullcmp6Fn0AJCondition__v_;
text: .text%__1cNTemplateTableHif_acmp6Fn0AJCondition__v_;
-text: .text%__1cNTemplateTableSgetfield_or_static6Fii_v_;
-text: .text%__1cNTemplateTableUjvmti_post_field_mod6Fii_v_;
-text: .text%__1cNTemplateTableSputfield_or_static6Fii_v_;
text: .text%__1cNTemplateTableUinvokevirtual_helper6FpnMRegisterImpl_22_v_;
text: .text%__1cEMIN24CL_6FTA0_0_;
text: .text%__1cRCardTableModRefBSbCpar_chunk_heapword_alignment6F_L_;
@@ -7312,8 +4765,6 @@ text: .text%__1cOMacroAssemblerPcorrected_idivl6MpnMRegisterImpl__i_;
text: .text%__1cOMacroAssemblerPcorrected_idivq6MpnMRegisterImpl__i_;
text: .text%__1cLNamedThread2t6M_v_;
text: .text%__1cLNamedThreadIset_name6MpkcE_v_;
-text: .text%__1cOMacroAssemblerQserialize_memory6MpnMRegisterImpl_22_v_;
-text: .text%__1cIDivDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cIDivDNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cFStatebB_sub_Op_PartialSubtypeCheck6MpknENode__v_;
text: .text%__1cFStateM_sub_Op_DivI6MpknENode__v_;
@@ -7322,24 +4773,17 @@ text: .text%__1cFStateP_sub_Op_ConvL2F6MpknENode__v_;
text: .text%__1cFStateP_sub_Op_ConvL2D6MpknENode__v_;
text: .text%__1cFStateP_sub_Op_ConvF2I6MpknENode__v_;
text: .text%__1cFStateP_sub_Op_ConvD2F6MpknENode__v_;
-text: .text%__1cRcheck_if_clipping6FpknKRegionNode_rpnGIfNode_5_i_: cfgnode.o;
-text: .text%__1cWcheck_compare_clipping6FipnGIfNode_pnHConNode_rpnENode__i_: cfgnode.o;
-text: .text%__1cIciObjectOis_array_klass6M_i_;
text: .text%__1cScompP_rReg_memNodeFreloc6kM_i_;
text: .text%__1cKCastPPNodeJideal_reg6kM_I_;
text: .text%__1cLMoveF2INodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cFTypeDJis_finite6kM_i_;
text: .text%__1cLMoveL2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cTconvL2D_reg_memNodeFreloc6kM_i_;
text: .text%__1cMdivD_immNodeFreloc6kM_i_;
text: .text%__1cMmulF_memNodeFreloc6kM_i_;
text: .text%__1cMaddF_memNodeFreloc6kM_i_;
-text: .text%__1cLConvF2INodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cLConvF2INodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cLConvD2FNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cOcompP_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cKciTypeFlowLStateVectorRdo_multianewarray6MpnQciBytecodeStream__v_;
-text: .text%__1cMorI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cRCollectorCounters2t6Mpkci_v_;
text: .text%Unsafe_CompareAndSwapObject;
text: .text%__1cNSafepointBlob2n6FLI_pv_;
@@ -7347,8 +4791,6 @@ text: .text%__1cNSafepointBlobGcreate6FpnKCodeBuffer_pnJOopMapSet_i_p0_;
text: .text%__1cNSafepointBlob2t6MpnKCodeBuffer_ipnJOopMapSet_i_v_;
text: .text%__1cINegFNodeJideal_reg6kM_I_;
text: .text%__1cMVirtualSpace2t6M_v_;
-text: .text%__1cMVirtualSpaceKinitialize6MnNReservedSpace_L_i_;
-text: .text%__1cHMatcherQconvL2FSupported6F_ki_;
text: .text%__1cLConvD2FNodeJideal_reg6kM_I_;
text: .text%__1cLConvF2INodeJideal_reg6kM_I_;
text: .text%__1cLConvL2DNodeJideal_reg6kM_I_;
@@ -7364,29 +4806,17 @@ text: .text%__1cJAssemblerEsubl6MpnMRegisterImpl_i_v_;
text: .text%__1cJAssemblerEsubq6MnHAddress_i_v_;
text: .text%__1cLOptoRuntimeIgenerate6FpnFciEnv__v_;
text: .text%__1cMmulD_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cYSurvivorMutableSpacePool2t6MpnKPSYoungGen_pkcnKMemoryPoolIPoolType_i_v_;
text: .text%__1cParrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
-text: .text%__1cFKlassUoop_is_instanceKlass6kM_i_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: arguments.o;
text: .text%__1cJArgumentsWPropertyList_get_value6FpnOSystemProperty_pkc_4_;
text: .text%__1cJArgumentsFparse6FpknOJavaVMInitArgs__i_;
text: .text%__1cKNoopGCTaskQcreate_on_c_heap6F_p0_;
-text: .text%__1cJArgumentsbSparse_java_tool_options_environment_variable6FpnMSysClassPath_pi_i_;
-text: .text%__1cWResolveOopMapConflictsOreport_results6kM_i_;
-text: .text%__1cMCodeHeapPool2t6MpnICodeHeap_pkci_v_;
text: .text%__1cJAssemblerFxchgl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cJArgumentsbNparse_java_options_environment_variable6FpnMSysClassPath_pi_i_;
text: .text%__1cJAssemblerFxchgq6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cJArgumentsVfinalize_vm_init_args6FpnMSysClassPath_i_i_;
-text: .text%__1cJArgumentsWparse_each_vm_init_arg6FpknOJavaVMInitArgs_pnMSysClassPath_pi_i_;
text: .text%__1cJArgumentsSparse_vm_init_args6FpknOJavaVMInitArgs__i_;
text: .text%__1cJAssemblerIcmpxchgl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cINegFNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cJArgumentsZcheck_vm_args_consistency6F_i_;
text: .text%__1cICodeHeap2t6M_v_;
-text: .text%__1cJArgumentsbOparse_java_compiler_environment_variable6F_v_;
text: .text%__1cHVM_ExitNset_vm_exited6F_i_;
-text: .text%__1cICodeHeapHreserve6MLLL_i_;
text: .text%__1cQRelocationHolder2t6M_v_;
text: .text%__1cICodeHeapFclear6M_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: relocInfo.o;
@@ -7395,15 +4825,12 @@ text: .text%__1cJArgumentsSset_bytecode_flags6F_v_;
text: .text%__1cJArgumentsUset_ergonomics_flags6F_v_;
text: .text%__1cJArgumentsbBset_cms_and_parnew_gc_flags6F_v_;
text: .text%__1cJArgumentsTset_parnew_gc_flags6F_v_;
-text: .text%__1cQno_shared_spaces6F_v_: arguments.o;
text: .text%__1cJArgumentsMget_property6Fpkc_2_;
text: .text%__1cLsymbolKlassOset_alloc_size6MI_v_;
text: .text%__1cLsymbolKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
-text: .text%__1cJArgumentsVprocess_settings_file6Fpkcii_i_;
text: .text%__1cNGCTaskManagerKthreads_do6MpnNThreadClosure__v_;
text: .text%__1cNGCTaskManagerKinitialize6M_v_;
text: .text%__1cNGCTaskManager2t6MI_v_;
-text: .text%__1cXSynchronizedGCTaskQdDueue2t6MpnLGCTaskQdDueue_pnFMutex__v_;
text: .text%__1cDhpiKinitialize6F_i_;
text: .text%__1cDhpiZinitialize_socket_library6F_i_;
text: .text%__1cDhpiYinitialize_get_interface6FpnIvm_calls__v_;
@@ -7421,74 +4848,39 @@ text: .text%__1cLicache_init6F_v_;
text: .text%__1cYGCAdaptivePolicyCounters2t6MpkciipnSAdaptiveSizePolicy__v_;
text: .text%__1cHVM_ExitbJwait_for_threads_in_native_to_block6F_i_;
text: .text%__1cJAssemblerHstmxcsr6MnHAddress__v_;
-text: .text%__1cJAssemblerFaddss6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerFsubss6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cTICacheStubGeneratorVgenerate_icache_flush6MppFpCii_i_v_;
text: .text%__1cMSysClassPath2t6Mpkc_v_;
text: .text%__1cJArgumentsWinit_system_properties6F_v_;
-text: .text%__1cJAssemblerFmulss6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerFdivss6MpnRFloatRegisterImpl_2_v_;
-text: .text%__1cJAssemblerFaddsd6MpnRFloatRegisterImpl_nHAddress__v_;
text: .text%__1cFChunkbDstart_chunk_pool_cleaner_task6F_v_;
-text: .text%__1cJAssemblerFsubsd6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cOchunkpool_init6F_v_;
-text: .text%__1cJAssemblerFmulsd6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerFdivsd6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cQSystemDictionarybAcompute_java_system_loader6FpnGThread__v_;
-text: .text%__1cJAssemblerGsqrtsd6MpnRFloatRegisterImpl_nHAddress__v_;
text: .text%__1cHVM_ExitEdoit6M_v_;
-text: .text%__1cRArgumentOopFinderDset6MinJBasicType__v_;
text: .text%__1cWAdjoiningVirtualSpaces2t6MnNReservedSpace_LLL_v_;
text: .text%__1cUAdjoiningGenerations2t6MnNReservedSpace_LLLLLLL_v_;
text: .text%__1cHOrLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cZCompiledArgumentOopFinderRhandle_oop_offset6M_v_;
-text: .text%__1cJAssemblerFxorps6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerFxorpd6MpnRFloatRegisterImpl_2_v_;
-text: .text%__1cJAssemblerFxorpd6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerJcvtsi2ssl6MpnRFloatRegisterImpl_pnMRegisterImpl__v_;
-text: .text%__1cJAssemblerJcvtsi2ssq6MpnRFloatRegisterImpl_pnMRegisterImpl__v_;
-text: .text%__1cJAssemblerJcvtsi2sdl6MpnRFloatRegisterImpl_pnMRegisterImpl__v_;
-text: .text%__1cFframebAoops_compiled_arguments_do6MnMsymbolHandle_ipknLRegisterMap_pnKOopClosure__v_;
-text: .text%__1cJAssemblerJcvtsi2sdq6MpnRFloatRegisterImpl_pnMRegisterImpl__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: adaptiveSizePolicy.o;
-text: .text%__1cSAdaptiveSizePolicy2t6ML_v_;
-text: .text%__1cFframebDoops_interpreted_arguments_do6MnMsymbolHandle_ipnKOopClosure__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: regmask.o;
-text: .text%__1cJAssemblerKcvttss2sil6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
-text: .text%__1cJAssemblerKcvttss2siq6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: indexSet.o;
-text: .text%__1cJAssemblerKcvttsd2sil6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
text: .text%__1cFframeVinterpreter_frame_mdp6kM_pC_;
text: .text%__1cPvm_init_globals6F_v_;
-text: .text%__1cJAssemblerKcvttsd2siq6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
text: .text%__1cQSystemDictionaryKclasses_do6FpFpnMklassOopDesc__v_v_;
text: .text%__1cQSystemDictionaryKmethods_do6FpFpnNmethodOopDesc__v_v_;
text: .text%__1cQSystemDictionaryKinitialize6FpnGThread__v_;
text: .text%__1cQSystemDictionarybCinitialize_preloaded_classes6FpnGThread__v_;
-text: .text%__1cQSystemDictionarybDinitialize_basic_type_mirrors6FpnGThread__v_;
-text: .text%__1cJAssemblerIcvtss2sd6MpnRFloatRegisterImpl_2_v_;
-text: .text%__1cJAssemblerIcvtsd2ss6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cMinit_globals6F_i_;
text: .text%__1cMexit_globals6F_v_;
text: .text%__1cOMacroAssemblerKdecrementl6MpnMRegisterImpl_i_v_;
-text: .text%__1cHVM_ExitEname6kM_pkc_;
text: .text%__1cKcastPPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: fprofiler.o;
text: .text%__1cNMemoryServiceRset_universe_heap6FpnNCollectedHeap__v_;
text: .text%__1cMPeriodicTask2T5B6M_v_;
-text: .text%__1cMPeriodicTaskLis_enrolled6kM_i_;
text: .text%__1cNMemoryServicebFadd_parallel_scavenge_heap_info6FpnUParallelScavengeHeap__v_;
text: .text%__1cMPeriodicTaskJdisenroll6M_v_;
text: .text%__1cSset_init_completed6F_v_;
-text: .text%__1cMadapter_init6F_v_;
-text: .text%__1cTI2CAdapterGeneratorKinitialize6F_v_;
text: .text%__1cNMemoryServiceXadd_psYoung_memory_pool6FpnKPSYoungGen_pnNMemoryManager_4_v_;
-text: .text%__1cTC2IAdapterGeneratorKinitialize6F_v_;
-text: .text%__1cOstackSlotPOperFclone6kM_pnIMachOper__;
-text: .text%__1cObox_handleNodeFclone6kM_pnENode__;
text: .text%__1cTAbstract_VM_VersionHvm_name6F_pkc_;
text: .text%__1cTAbstract_VM_VersionJvm_vendor6F_pkc_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: ad_amd64_pipeline.o;
text: .text%__1cSobjArrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC222_v_;
text: .text%__1cKmutex_init6F_v_;
@@ -7505,7 +4897,6 @@ text: .text%__1cSinstanceKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vm_version.o;
text: .text%__1cStemplateTable_init6F_v_;
text: .text%__1cNTemplateTableNpd_initialize6F_v_;
-text: .text%__1cSinstanceKlassKlassUoop_is_instanceKlass6kM_i_;
text: .text%__1cNTemplateTableDnop6F_v_;
text: .text%__1cNTemplateTableSshouldnotreachhere6F_v_;
text: .text%__1cNTemplateTableLaconst_null6F_v_;
@@ -7543,7 +4934,6 @@ text: .text%__1cNTemplateTableGsaload6F_v_;
text: .text%__1cSReferenceProcessorMinit_statics6F_v_;
text: .text%__1cXreferenceProcessor_init6F_v_;
text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpCpnMRegisterImpl_33_v_;
-text: .text%__1cURecompilationMonitorbGstart_recompilation_monitor_task6F_v_;
text: .text%__1cZInterpreterMacroAssemblerUdispatch_only_normal6MnITosState__v_;
text: .text%__1cNTemplateTableHaload_06F_v_;
text: .text%__1cNTemplateTableGistore6F_v_;
@@ -7588,8 +4978,6 @@ text: .text%__1cNTemplateTableElrem6F_v_;
text: .text%__1cNTemplateTableElshl6F_v_;
text: .text%__1cNTemplateTableElshr6F_v_;
text: .text%__1cNTemplateTableFlushr6F_v_;
-text: .text%__1cRaddL_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cRaddL_mem_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableEineg6F_v_;
text: .text%__1cNTemplateTableElneg6F_v_;
text: .text%__1cLVtableStubsKinitialize6F_v_;
@@ -7597,7 +4985,6 @@ text: .text%__1cNTemplateTableEfneg6F_v_;
text: .text%__1cNTemplateTableEdneg6F_v_;
text: .text%__1cNTemplateTableEiinc6F_v_;
text: .text%__1cNTemplateTableJwide_iinc6F_v_;
-text: .text%__1cMincL_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableElcmp6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psScavenge.o;
text: .text%__1cKPSScavengeKinitialize6F_v_;
@@ -7612,19 +4999,12 @@ text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableRfast_linearswitch6F_v_;
text: .text%__1cNTemplateTableRfast_binaryswitch6F_v_;
text: .text%__1cbCAbstractInterpreterGeneratorMgenerate_all6M_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorbEset_entry_points_for_all_bytes6M_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorbCset_safepoints_for_all_bytes6M_v_;
-text: .text%__1cOsalI_mem_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSPSPromotionManagerKinitialize6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: memoryService.o;
text: .text%__1cNTemplateTableIgetfield6Fi_v_;
text: .text%__1cNTemplateTableJgetstatic6Fi_v_;
-text: .text%__1cNGrowableArray4CpnNMemoryManager__2t6Mii_v_;
-text: .text%__1cNGrowableArray4CpnKMemoryPool__2t6Mii_v_;
text: .text%__1cNTemplateTableIputfield6Fi_v_;
text: .text%__1cNTemplateTableJputstatic6Fi_v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psPromotionLAB.o;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: interpreter.o;
text: .text%__1cJPSPermGen2t6MnNReservedSpace_LLLLpkci_v_;
text: .text%__1cXNativeSignatureIteratorHdo_byte6M_v_;
text: .text%__1cIPSOldGen2t6MLLLpkci_v_;
@@ -7647,7 +5027,6 @@ text: .text%__1cNTemplateTableLmonitorexit6F_v_;
text: .text%__1cNTemplateTableEwide6F_v_;
text: .text%__1cNTemplateTableOmultianewarray6F_v_;
text: .text%__1cIPSOldGen2t6MnNReservedSpace_LLLLpkci_v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: tenuredGeneration.o;
text: .text%__1cQvtableStubs_init6F_v_;
text: .text%__1cQaccessFlags_init6F_v_;
text: .text%__1cSInterpreterRuntimeYthrow_ClassCastException6FpnKJavaThread_pnHoopDesc__v_;
@@ -7655,17 +5034,9 @@ text: .text%__1cSInterpreterRuntimeSupdate_mdp_for_ret6FpnKJavaThread_i_v_;
text: .text%__1cNeventlog_init6F_v_;
text: .text%__1cOMacroAssemblerGc2bool6MpnMRegisterImpl__v_;
text: .text%__1cPmethodDataKlassOset_alloc_size6MI_v_;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psMarkSweep.o;
-text: .text%__1cTPSAlwaysTrueClosure2t6M_v_: psMarkSweep.o;
text: .text%__1cXSignatureHandlerLibraryQset_handler_blob6F_pC_;
-text: .text%__1cNGrowableArray4CpC_2t6Mii_v_;
-text: .text%__1cNGrowableArray4CL_2t6Mii_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorbJgenerate_StackOverflowError_handler6M_pC_;
text: .text%__1cOMacroAssemblerRsign_extend_short6MpnMRegisterImpl__v_;
-text: .text%__1cbCAbstractInterpreterGeneratorbMgenerate_ArrayIndexOutOfBounds_handler6Mpkc_pC_;
-text: .text%__1cbCAbstractInterpreterGeneratorbJgenerate_ClassCastException_handler6M_pC_;
-text: .text%__1cGThreadWset_as_starting_thread6M_i_;
text: .text%__1cLPSMarkSweepKinitialize6F_v_;
text: .text%__1cbBcreate_initial_thread_group6FpnGThread__nGHandle__: thread.o;
text: .text%__1cVcreate_initial_thread6FnGHandle_pnKJavaThread_pnGThread__pnHoopDesc__: thread.o;
@@ -7678,12 +5049,9 @@ text: .text%__1cNWatcherThreadDrun6M_v_;
text: .text%__1cNWatcherThreadFstart6F_v_;
text: .text%__1cNWatcherThreadEstop6F_v_;
text: .text%__1cOMacroAssemblerQsign_extend_byte6MpnMRegisterImpl__v_;
-text: .text%__1cKJavaThread2t6M_v_;
text: .text%__1cHRetDataJfixup_ret6MinQmethodDataHandle__pC_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cLmethodKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cbAPSGCAdaptivePolicyCounters2t6MpkciipnUPSAdaptiveSizePolicy__v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psAdaptiveSizePolicy.o;
text: .text%__1cKDictionaryKmethods_do6MpFpnNmethodOopDesc__v_v_;
text: .text%__1cKDictionaryKclasses_do6MpFpnMklassOopDesc__v_v_;
text: .text%__1cbCAbstractInterpreterGeneratorbFgenerate_slow_signature_handler6M_pC_;
@@ -7695,20 +5063,15 @@ text: .text%__1cUInterpreterGeneratorXgenerate_accessor_entry6M_pC_;
text: .text%__1cKDictionary2t6Mi_v_;
text: .text%__1cJBytecodesKinitialize6F_v_;
text: .text%__1cObytecodes_init6F_v_;
-text: .text%__1cUPSAdaptiveSizePolicy2t6MLLLLLddI_v_;
text: .text%__1cJBytecodesNpd_initialize6F_v_;
text: .text%__1cHCompileRpd_compiler2_init6F_v_;
text: .text%__1cKC2CompilerKinitialize6M_v_;
text: .text%__1cFStateQ_sub_Op_TailJump6MpknENode__v_;
-text: .text%__1cMorL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cbCAbstractInterpreterGeneratorYgenerate_throw_exception6M_v_;
text: .text%__1cUInterpreterGenerator2t6MpnJStubQdDueue__v_;
text: .text%__1cWinvocationCounter_init6F_v_;
text: .text%__1cQPlaceholderTable2t6Mi_v_;
-text: .text%__1cHThreadsJcreate_vm6FpnOJavaVMInitArgs_pi_i_;
text: .text%__1cFStateL_sub_Op_OrL6MpknENode__v_;
text: .text%__1cFStateM_sub_Op_NegF6MpknENode__v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: ad_amd64_expand.o;
text: .text%__1cQprint_statistics6F_v_;
text: .text%__1cLbefore_exit6FpnKJavaThread__v_;
text: .text%__1cFStateP_sub_Op_MoveL2D6MpknENode__v_;
@@ -7720,7 +5083,6 @@ text: .text%__1cVjava_lang_ThreadGroupPcompute_offsets6F_v_;
text: .text%__1cbIjava_lang_reflect_AccessibleObjectPcompute_offsets6F_v_;
text: .text%__1cYjava_lang_reflect_MethodPcompute_offsets6F_v_;
text: .text%__1cOThreadCriticalKinitialize6F_v_;
-text: .text%__1cRAllocateTLSOffset6F_v_: threadLS_solaris_amd64.o;
text: .text%__1cSThreadLocalStoragebCgenerate_code_for_get_thread6F_v_;
text: .text%__1cYjava_lang_reflect_MethodNset_signature6FpnHoopDesc_2_v_;
text: .text%__1cbDjava_lang_reflect_ConstructorPcompute_offsets6F_v_;
@@ -7738,7 +5100,6 @@ text: .text%__1cLJavaClassesbAcompute_hard_coded_offsets6F_v_;
text: .text%__1cLJavaClassesPcompute_offsets6F_v_;
text: .text%__1cPGlobalTLABStats2t6M_v_;
text: .text%__1cQjavaClasses_init6F_v_;
-text: .text%__1cMTailJumpNode2t6MpnENode_22222_v_;
text: .text%jni_ToReflectedMethod: jni.o;
text: .text%__1cSThreadLocalStorageEinit6F_v_;
text: .text%__1cNThreadServiceEinit6F_v_;
@@ -7752,29 +5113,17 @@ text: .text%__1cWjni_GetFloatField_addr6F_pC_;
text: .text%__1cRCardTableModRefBS2t6MnJMemRegion_i_v_;
text: .text%__1cXjni_GetDoubleField_addr6F_pC_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: phase.o;
-text: .text%__1cJTimeStampMmilliseconds6kM_x_;
text: .text%__1cTConstantDoubleValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cKPerfMemoryUdelete_memory_region6F_v_;
text: .text%__1cKPerfMemoryUcreate_memory_region6FL_v_;
text: .text%__1cRCardTableModRefBSbBct_max_alignment_constraint6F_L_;
-text: .text%__1cUdelete_shared_memory6FpcL_v_: perfMemory_solaris.o;
-text: .text%__1cUcreate_shared_memory6FL_pc_: perfMemory_solaris.o;
text: .text%__1cOtailjmpIndNodeFreloc6kM_i_;
-text: .text%__1cSmmap_create_shared6FL_pc_: perfMemory_solaris.o;
text: .text%__1cETypeRInitialize_shared6FpnHCompile__v_;
text: .text%__1cWconstantPoolCacheKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
-text: .text%__1cbAcreate_sharedmem_resources6Fpkc1L_i_: perfMemory_solaris.o;
text: .text%__1cWconstantPoolCacheKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
-text: .text%__1cRmake_user_tmp_dir6Fpkc_i_: perfMemory_solaris.o;
-text: .text%__1cbBcleanup_sharedmem_resources6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cMciArrayKlass2t6MpnIciSymbol_ipnHciKlass__v_;
-text: .text%__1cLremove_file6Fpkc_v_: perfMemory_solaris.o;
-text: .text%__1cWget_sharedmem_filename6Fpkci_pc_: perfMemory_solaris.o;
-text: .text%__1cNget_user_name6Fi_pc_: perfMemory_solaris.o;
-text: .text%__1cQget_user_tmp_dir6Fpkc_pc_: perfMemory_solaris.o;
text: .text%__1cRconstantPoolKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cFciEnvXget_or_create_exception6MrpnI_jobject_nMsymbolHandle__pnKciInstance__;
-text: .text%__1cMloadConFNodeGis_Con6kM_I_;
text: .text%__1cRconstantPoolKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cKPerfMemoryHdestroy6F_v_;
text: .text%__1cQconstMethodKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
@@ -7794,7 +5143,6 @@ text: .text%__1cPPerfDataManagerHdestroy6F_v_;
text: .text%__1cMsubD_immNodeFreloc6kM_i_;
text: .text%__1cMsubF_memNodeFreloc6kM_i_;
text: .text%lookupDirectBufferClasses: jni.o;
-text: .text%__1cbDinitializeDirectBufferSupport6FpnHJNIEnv___i_: jni.o;
text: .text%__1cVquicken_jni_functions6F_v_;
text: .text%JNI_CreateJavaVM;
text: .text%__1cFParseWprofile_null_checkcast6M_v_;
@@ -7813,7 +5161,6 @@ text: .text%__1cRaddL_mem_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMincL_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQJNI_FastGetFieldbDgenerate_fast_get_float_field6F_pC_;
text: .text%__1cQJNI_FastGetFieldbEgenerate_fast_get_double_field6F_pC_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jniFastGetField_amd64.o;
text: .text%__1cNcmovL_memNodeFreloc6kM_i_;
text: .text%__1cKJNIHandlesKinitialize6F_v_;
text: .text%__1cQjni_handles_init6F_v_;
@@ -7821,34 +5168,22 @@ text: .text%JVM_InitProperties;
text: .text%JVM_Halt;
text: .text%JVM_MaxMemory;
text: .text%JVM_GetClassDeclaredMethods;
-text: .text%__1cKCMoveDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOsalI_mem_1NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHRetDataKis_RetData6M_i_;
text: .text%JVM_InitializeSocketLibrary;
text: .text%JVM_Socket;
text: .text%__1cPciObjArrayKlass2t6MpnIciSymbol_pnHciKlass_i_v_;
-text: .text%__1cPOopTaskQdDueueSet2t6Mi_v_;
text: .text%__1cbEinitialize_converter_functions6F_v_;
text: .text%JVM_SupportsCX8;
text: .text%__1cUciObjArrayKlassKlassEmake6F_p0_;
text: .text%__1cTcompilerOracle_init6F_v_;
-text: .text%__1cOCompilerOracleRparse_from_string6Fpkc_v_;
text: .text%__1cOCompilerOraclePparse_from_file6F_v_;
-text: .text%__1cHcc_file6F_pkc_: compilerOracle.o;
-text: .text%__1cKTypeOopPtrEmake6FnHTypePtrDPTR_i_pk0_;
text: .text%__1cKTypeOopPtrFxdual6kM_pknEType__;
-text: .text%__1cOCompilerOracleOread_from_line6Fpc_v_;
text: .text%__1cPciObjectFactoryTinit_shared_objects6M_v_;
text: .text%__1cVcompiledICHolderKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cVcompiledICHolderKlassOset_alloc_size6MI_v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiEnvBase.o;
text: .text%__1cVcompiledICHolderKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
-text: .text%__1cNGrowableArray4CpnMJvmtiEnvBase__2t6Mii_v_;
text: .text%__1cRJvmtiEventEnabled2t6M_v_;
-text: .text%__1cRciArrayKlassKlassUis_array_klass_klass6M_i_;
text: .text%__1cRJvmtiEventEnabledFclear6M_v_;
-text: .text%__1cNGrowableArray4CpnOCompilerThread__2t6Mii_v_;
-text: .text%__1cFParseNfetch_monitor6MipnENode_2_2_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
text: .text%__1cNGrowableArray4CpnIciMethod__Egrow6Mi_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
@@ -7856,10 +5191,7 @@ text: .text%__1cUJvmtiEventControllerIvm_start6F_v_;
text: .text%__1cPGenerationSizerQinitialize_flags6M_v_;
text: .text%__1cUJvmtiEventControllerHvm_init6F_v_;
text: .text%__1cUJvmtiEventControllerIvm_death6F_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
-text: .text%__1cUParallelScavengeHeapbCsupports_inline_contig_alloc6kM_i_;
text: .text%__1cUParallelScavengeHeapItop_addr6kM_ppnIHeapWord__;
-text: .text%__1cNCompileBrokerQcompilation_init6FpnQAbstractCompiler__v_;
text: .text%__1cUParallelScavengeHeapIend_addr6kM_ppnIHeapWord__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiEventController.o;
text: .text%__1cLJvmtiExportRenter_start_phase6F_v_;
@@ -7868,23 +5200,19 @@ text: .text%__1cUParallelScavengeHeapNgc_threads_do6kMpnNThreadClosure__v_;
text: .text%__1cUParallelScavengeHeapYpermanent_object_iterate6MpnNObjectClosure__v_;
text: .text%__1cLJvmtiExportQenter_live_phase6F_v_;
text: .text%__1cLJvmtiExportNpost_vm_start6F_v_;
-text: .text%__1cOcompiler2_init6F_v_;
text: .text%__1cLJvmtiExportTpost_vm_initialized6F_v_;
text: .text%__1cLJvmtiExportNpost_vm_death6F_v_;
text: .text%__1cLJvmtiExportbMtransition_pending_onload_raw_monitors6F_v_;
text: .text%__1cUParallelScavengeHeapMmax_capacity6kM_L_;
text: .text%__1cUJvmtiPendingMonitorsXtransition_raw_monitors6F_v_;
-text: .text%__1cMaddF_regNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cUParallelScavengeHeapPpost_initialize6M_v_;
text: .text%__1cUParallelScavengeHeapKinitialize6M_i_;
-text: .text%__1cHoopDescLheader_size6F_i_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compilationPolicy.o;
text: .text%__1cPClassFileParserbFjava_lang_ref_Reference_fix_pre6MpnPtypeArrayHandle_nSconstantPoolHandle_pnUFieldAllocationCount_pnGThread__v_;
text: .text%__1cPClassFileParserXjava_lang_Class_fix_pre6MpnOobjArrayHandle_pnUFieldAllocationCount_pnGThread__v_;
text: .text%__1cPClassFileParserYjava_lang_Class_fix_post6Mpi_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: parGCAllocBuffer.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiImpl.o;
-text: .text%__1cNGrowableArray4CpnPJvmtiRawMonitor__2t6Mii_v_;
text: .text%__1cNGrowableArray4CpnPJvmtiRawMonitor__Uclear_and_deallocate6M_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiTagMap.o;
text: .text%__1cRCompilationPolicyUcompleted_vm_startup6F_v_;
@@ -7893,7 +5221,6 @@ text: .text%__SLIP.DELETER__C: ostream.o;
text: .text%__1cWcompilationPolicy_init6F_v_;
text: .text%__1cMostream_exit6F_v_;
text: .text%__1cTtypeArrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
-text: .text%__1cTtypeArrayKlassKlassVoop_is_typeArrayKlass6kM_i_;
text: .text%__1cbCTwoGenerationCollectorPolicyMrem_set_name6M_nJGenRemSetEName__;
text: .text%__1cTtypeArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cQostream_init_log6F_v_;
@@ -7902,14 +5229,12 @@ text: .text%__1cIUniverseHgenesis6FpnGThread__v_;
text: .text%__1cIUniverseNfixup_mirrors6FpnGThread__v_;
text: .text%__1cMostream_init6F_v_;
text: .text%__1cNdefaultStreamEinit6M_v_;
-text: .text%__1cIUniverseUreinitialize_itables6F_v_;
text: .text%__1cKklassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cKklassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cNuniverse_init6F_i_;
text: .text%__1cIUniversePinitialize_heap6F_i_;
text: .text%__1cLClassLoaderbBsetup_bootstrap_search_path6F_v_;
text: .text%__1cOuniverse2_init6F_v_;
-text: .text%__1cSuniverse_post_init6F_v_;
text: .text%__1cIUniverseYcompute_base_vtable_size6F_v_;
text: .text%__1cCosXnon_memory_address_word6F_pc_;
text: .text%__1cCosGinit_26F_i_;
@@ -7919,24 +5244,18 @@ text: .text%__1cCosHSolarisUsynchronization_init6F_v_;
text: .text%Unsafe_SetNativeLong;
text: .text%__1cCosHSolarisOlibthread_init6F_v_;
text: .text%__1cJLoadFNodeMstore_Opcode6kM_i_;
-text: .text%__1cOisT2_libthread6F_i_;
text: .text%Unsafe_FreeMemory;
text: .text%__1cCosHSolarisXinstall_signal_handlers6F_v_;
text: .text%Unsafe_PageSize;
text: .text%__1cRlwp_priocntl_init6F_i_: os_solaris.o;
text: .text%__1cNpriocntl_stub6FinGidtype_iipc_l_: os_solaris.o;
-text: .text%__1cCosHSolarisRmpss_sanity_check6F_v_;
-text: .text%__1cOLibraryCallKitWinline_native_hashcode6Mii_i_;
text: .text%__1cbCTwoGenerationCollectorPolicyQinitialize_flags6M_v_;
-text: .text%__1cCosOrelease_memory6FpcL_i_;
text: .text%__1cCosLsignal_wait6F_i_;
text: .text%JVM_RegisterUnsafeMethods;
-text: .text%__1cVcheck_pending_signals6Fi_i_: os_solaris.o;
text: .text%__1cCosNsignal_notify6Fi_v_;
text: .text%__1cCosOsignal_init_pd6F_v_;
text: .text%__1cLClassLoaderQload_zip_library6F_v_;
text: .text%__1cLClassLoaderZcreate_package_info_table6F_v_;
-text: .text%__1cNmulI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cLClassLoaderKinitialize6F_v_;
text: .text%__1cLClassLoaderVcompute_Object_vtable6F_i_;
text: .text%__1cCosHSolarisPinit_signal_mem6F_v_;
@@ -7947,19 +5266,12 @@ text: .text%__1cCosSget_temp_directory6F_pkc_;
text: .text%__1cVLoaderConstraintTable2t6Mi_v_;
text: .text%__1cCosbDallocate_thread_local_storage6F_i_;
text: .text%__1cOcodeCache_init6F_v_;
-text: .text%__1cVverificationType_init6F_v_;
-text: .text%__1cVverificationType_exit6F_v_;
-text: .text%__1cQVerificationTypeKinitialize6F_v_;
-text: .text%__1cQVerificationTypeIfinalize6F_v_;
text: .text%__1cJCodeCacheKinitialize6F_v_;
text: .text%__1cNIdealLoopTreeQsplit_outer_loop6MpnOPhaseIdealLoop__v_;
text: .text%__1cKfix_parent6FpnNIdealLoopTree_1_v_: loopnode.o;
text: .text%__1cCosHSolarisQsignal_sets_init6F_v_;
text: .text%__1cTClassLoadingServiceEinit6F_v_;
-text: .text%__1cTClassLoadingServiceVnotify_class_unloaded6FpnNinstanceKlass_i_v_;
-text: .text%__1cCosScreate_main_thread6FpnGThread__i_;
text: .text%__1cNIdealLoopTreeUmerge_many_backedges6MpnOPhaseIdealLoop__v_;
-text: .text%__1cQcreate_os_thread6FpnGThread_I_pnIOSThread__: os_solaris.o;
text: .text%__1cRLowMemoryDetectorKinitialize6F_v_;
text: .text%__1cLmethodKlassOset_alloc_size6MI_v_;
text: .text%__1cNExceptionBlob2n6FLI_pv_;
@@ -7971,13 +5283,10 @@ text: .text%__1cQUncommonTrapBlob2t6MpnKCodeBuffer_ipnJOopMapSet_i_v_;
text: .text%__1cSDeoptimizationBlob2n6FLI_pv_;
text: .text%__1cSDeoptimizationBlobGcreate6FpnKCodeBuffer_pnJOopMapSet_iiii_p0_;
text: .text%__1cSDeoptimizationBlob2t6MpnKCodeBuffer_ipnJOopMapSet_iiii_v_;
-text: .text%__1cRLowMemoryDetectorUhas_pending_requests6F_i_;
text: .text%__1cCosbDinit_system_properties_values6F_v_;
text: .text%__1cCosHSolarisWinitialize_system_info6F_v_;
text: .text%__1cCosPphysical_memory6F_X_;
-text: .text%__1cMFastLockNodeLis_FastLock6kM_pk0_;
text: .text%__1cRLowMemoryDetectorbGlow_memory_detector_thread_entry6FpnKJavaThread_pnGThread__v_;
-text: .text%__1cXLowMemoryDetectorThreadbCis_hidden_from_external_view6kM_i_;
text: .text%__1cSThreadLocalStorageHpd_init6F_v_;
text: .text%__1cLmethodKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: machnode.o;
@@ -7985,28 +5294,16 @@ text: .text%__1cPmanagement_init6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: cmsAdaptiveSizePolicy.o;
text: .text%__1cKManagementEinit6F_v_;
text: .text%__1cKManagementKinitialize6FpnGThread__v_;
-text: .text%__1cKManagementWrecord_vm_startup_time6Fxx_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: management.o;
text: .text%__1cOmarksweep_init6F_v_;
-text: .text%__1cCosXis_server_class_machine6F_i_;
-text: .text%__1cJMarkSweepQKeepAliveClosure2t6M_v_: markSweep.o;
-text: .text%__1cNReservedSpace2t6MLLipc_v_;
-text: .text%__1cJMarkSweepOIsAliveClosure2t6M_v_: markSweep.o;
text: .text%__1cCosZset_memory_serialize_page6FpC_v_;
-text: .text%__1cCosNset_boot_path6Fcc_i_;
-text: .text%__1cJMarkSweepSFollowStackClosure2t6M_v_: markSweep.o;
text: .text%__1cNReservedSpaceUpage_align_size_down6FL_L_;
text: .text%__1cNReservedSpaceYallocation_align_size_up6FL_L_;
-text: .text%__1cNGrowableArray4CpnKOSRAdapter__2t6Mii_v_;
-text: .text%__1cXonStackReplacement_init6F_v_;
-text: .text%__1cSOnStackReplacementKinitialize6F_v_;
-text: .text%__1cJMarkSweepRFollowRootClosure2t6M_v_: markSweep.o;
text: .text%__1cCosLinit_random6Fl_v_;
text: .text%__1cHOrLNodeJideal_reg6kM_I_;
text: .text%__1cOvmStructs_init6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vmStructs.o;
text: .text%__1cJvmSymbolsKinitialize6FpnGThread__v_;
-text: .text%__1cJMarkSweepSMarkAndPushClosure2t6M_v_: markSweep.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: markSweep.o;
text: .text%__1cQVMOperationQdDueue2t6M_v_;
text: .text%__1cCosGstrdup6Fpkc_pc_;
@@ -8017,13 +5314,9 @@ text: .text%__1cMsubD_immNodeKconst_size6kM_i_;
text: .text%__1cTsignal_thread_entry6FpnKJavaThread_pnGThread__v_: os.o;
text: .text%__1cOtailjmpIndNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSobjArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
-text: .text%__1cHMatcherVfind_callee_arguments6FpnNsymbolOopDesc_ipi_pnLOptoRegPair__;
text: .text%__1cIVMThreadGcreate6F_v_;
text: .text%__1cIVMThread2t6M_v_;
-text: .text%__1cNSharedRuntimeUlookup_function_DD_D6FrpFpnHJNIEnv__pnH_jclass_dd_dpkc_v_;
-text: .text%__1cNSharedRuntimebIinitialize_StrictMath_entry_points6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: sharedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: sharedHeap.o;
text: .text%__1cIVMThreadDrun6M_v_;
text: .text%__1cWResolveOopMapConflictsUdo_potential_rewrite6MpnGThread__nMmethodHandle__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: generateOopMap.o;
@@ -8031,43 +5324,25 @@ text: .text%__1cNCellTypeStateImake_top6F_0_;
text: .text%__1cJAssemblerEandl6MpnMRegisterImpl_2_v_;
text: .text%__1cNCellTypeStateLmake_bottom6F_0_;
text: .text%__1cNcmovL_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cRcheck_basic_types6F_v_;
-text: .text%__1cLOptoRuntimeYgenerate_arraycopy_stubs6F_v_;
-text: .text%__1cSobjArrayKlassKlassUoop_is_objArrayKlass6kM_i_;
text: .text%__1cNSharedRuntimebBgenerate_class_cast_message6FpnKJavaThread_pkc_pc_;
-text: .text%__1cNSharedRuntimebBgenerate_class_cast_message6Fpkc2_pc_;
-text: .text%__1cLOptoRuntimebPgenerate_polling_page_return_handler_blob6F_v_;
text: .text%__1cIVMThreadEloop6M_v_;
-text: .text%__1cLOptoRuntimebSgenerate_polling_page_safepoint_handler_blob6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: matcher.o;
-text: .text%__1cLOptoRuntimeUsetup_exception_blob6F_v_;
-text: .text%__1cLOptoRuntimeWfill_in_exception_blob6F_v_;
text: .text%__1cNMemoryManagerbDget_code_cache_memory_manager6F_p0_;
text: .text%__1cNMemoryManagerbDget_psScavenge_memory_manager6F_pnPGCMemoryManager__;
text: .text%__1cNMemoryManagerbEget_psMarkSweep_memory_manager6F_pnPGCMemoryManager__;
-text: .text%__1cQPSGenerationPool2t6MpnIPSOldGen_pkcnKMemoryPoolIPoolType_i_v_;
text: .text%__1cJAssemblerFimull6MpnMRegisterImpl_2_v_;
-text: .text%__1cLOptoRuntimebBgenerate_uncommon_trap_blob6F_v_;
text: .text%__1cNSharedRuntimeTgenerate_deopt_blob6F_v_;
-text: .text%__1cQPSGenerationPool2t6MpnJPSPermGen_pkcnKMemoryPoolIPoolType_i_v_;
text: .text%__1cNRegisterSaverYrestore_result_registers6FpnOMacroAssembler__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: runtimeService.o;
text: .text%__1cORuntimeServiceYrecord_application_start6F_v_;
text: .text%__1cJGenRemSetYmax_alignment_constraint6Fn0AEName__L_;
-text: .text%__1cICarSpaceEinit6F_v_;
-text: .text%__1cNcarSpace_init6F_v_;
text: .text%__1cORuntimeServiceEinit6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: genCollectedHeap.o;
-text: .text%__1cRAlwaysTrueClosure2t6M_v_: genCollectedHeap.o;
-text: .text%__1cLOptoRuntimeVhandle_exception_Type6F_pknITypeFunc__;
-text: .text%__1cLOptoRuntimeSfetch_monitor_Type6F_pknITypeFunc__;
text: .text%__1cJAssemblerDorl6MpnMRegisterImpl_i_v_;
text: .text%__1cLStatSamplerKinitialize6F_v_;
text: .text%__1cLStatSamplerGengage6F_v_;
text: .text%__1cLStatSamplerJdisengage6F_v_;
text: .text%__1cLStatSamplerHdestroy6F_v_;
-text: .text%__1cSCommandLineFlagsExKuintxAtPut6FnXCommandLineFlagWithType_L_v_;
text: .text%__1cSobjArrayKlassKlassbEallocate_system_objArray_klass6MpnGThread__pnMklassOopDesc__;
text: .text%__1cLOptoRuntimeUmultianewarray5_Type6F_pknITypeFunc__;
text: .text%__1cLStatSamplerbMcreate_system_property_instrumentation6FpnGThread__v_;
@@ -8079,14 +5354,7 @@ text: .text%__1cJAssemblerEsarq6MpnMRegisterImpl__v_;
text: .text%__1cLOptoRuntimeUmultianewarray4_Type6F_pknITypeFunc__;
text: .text%__1cJAssemblerEshll6MpnMRegisterImpl__v_;
text: .text%__1cJAssemblerEshlq6MpnMRegisterImpl__v_;
-text: .text%__1cUEdenMutableSpacePool2t6MpnKPSYoungGen_pnMMutableSpace_pkcnKMemoryPoolIPoolType_i_v_;
text: .text%__1cNStubGeneratorQgenerate_initial6M_v_;
-text: .text%__1cNStubGeneratorXgenerate_atomic_add_ptr6M_pC_;
-text: .text%__1cNStubGeneratorTgenerate_atomic_add6M_pC_;
-text: .text%__1cNStubGeneratorbCgenerate_atomic_cmpxchg_long6M_pC_;
-text: .text%__1cNStubGeneratorXgenerate_atomic_cmpxchg6M_pC_;
-text: .text%__1cNStubGeneratorYgenerate_atomic_xchg_ptr6M_pC_;
-text: .text%__1cNStubGeneratorUgenerate_atomic_xchg6M_pC_;
text: .text%__1cNStubGeneratorYgenerate_catch_exception6M_pC_;
text: .text%__1cNStubGeneratorSgenerate_call_stub6MrpC_1_;
text: .text%__1cNStubGeneratorbAgenerate_forward_exception6M_pC_;
@@ -8098,18 +5366,12 @@ text: .text%__1cNStubGeneratorSgenerate_f2i_fixup6M_pC_;
text: .text%__1cLOptoRuntimeUmultianewarray3_Type6F_pknITypeFunc__;
text: .text%__1cNStubGeneratorTgenerate_verify_oop6M_pC_;
text: .text%__1cNStubGeneratorVgenerate_verify_mxcsr6M_pC_;
-text: .text%__1cNStubGeneratorYgenerate_get_previous_fp6M_pC_;
-text: .text%__1cNStubGeneratorbIgenerate_handler_for_unsafe_access6M_pC_;
text: .text%__1cMStubRoutinesLinitialize16F_v_;
text: .text%__1cMStubRoutinesLinitialize26F_v_;
text: .text%__1cSstubRoutines_init16F_v_;
text: .text%__1cSstubRoutines_init26F_v_;
text: .text%__1cLMoveL2DNodeJideal_reg6kM_I_;
-text: .text%__1cNGrowableArray4CpnTDerivedPointerEntry__2t6Mii_v_;
text: .text%__1cLMoveF2INodeJideal_reg6kM_I_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
-text: .text%__1cNGrowableArray4CpnHMonitor__2t6Mii_v_;
text: .text%__1cLOptoRuntimeUmultianewarray2_Type6F_pknITypeFunc__;
-text: .text%__1cLOptoRuntimeUmultianewarray1_Type6F_pknITypeFunc__;
-text: .text%__1cQDoNothingClosure2t6M_v_: oopMap.o;
text: .text%__1cJAssemblerEshrl6MpnMRegisterImpl__v_;
diff --git a/hotspot/make/solaris/makefiles/reorder_TIERED_i486 b/hotspot/make/solaris/makefiles/reorder_TIERED_i486
index 4edb5a22610..89ac4da3beb 100644
--- a/hotspot/make/solaris/makefiles/reorder_TIERED_i486
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_i486
@@ -2,7 +2,6 @@ data = R0x2000;
text = LOAD ?RXO;
-text: .text%__1cNinstanceKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cQIndexSetIteratorQadvance_and_next6M_I_;
text: .text%__1cNSharedRuntimeElrem6Fxx_x_;
text: .text%__1cCosOjavaTimeMillis6F_x_;
@@ -19,7 +18,6 @@ text: .text%__1cDLRGOcompute_degree6kMr0_i_;
text: .text%__1cIIndexSetWalloc_block_containing6MI_pn0AIBitBlock__;
text: .text%__1cENodeEjvms6kM_pnIJVMState__;
text: .text%__1cHRegMaskJis_bound16kM_i_;
-text: .text%__1cNobjArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cETypeDcmp6Fkpk03_i_;
text: .text%__1cHRegMaskJis_bound26kM_i_;
text: .text%__1cHRegMaskESize6kM_I_;
@@ -36,8 +34,6 @@ text: .text%__1cENodeHadd_req6Mp0_v_;
text: .text%__1cKTypeOopPtrFklass6kM_pnHciKlass__: type.o;
text: .text%__1cMPhaseChaitinTinterfere_with_live6MIpnIIndexSet__v_;
text: .text%__1cETypeFuhash6Fkpk0_i_;
-text: .text%__1cOlower_pressure6FpnDLRG_IpnFBlock_pI4_v_: ifg.o;
-text: .text%__1cMget_live_bit6Fpii_i_: buildOopMap.o;
text: .text%__1cMPhaseChaitinLskip_copies6MpnENode__2_;
text: .text%__1cICallNodeKmatch_edge6kMI_I_;
text: .text%__1cHPhiNodeGOpcode6kM_i_;
@@ -47,15 +43,12 @@ text: .text%__1cIPhaseIFGQeffective_degree6kMI_i_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
text: .text%__1cIPhaseIFGLremove_node6MI_pnIIndexSet__;
text: .text%__1cIPhaseIFGJre_insert6MI_v_;
-text: .text%__1cJraw_score6Fdd_d_: chaitin.o;
text: .text%__1cDLRGFscore6kM_d_;
text: .text%__1cETypeIhashcons6M_pk0_;
text: .text%__1cPClassFileStreamGget_u26MpnGThread__H_;
text: .text%__1cENodeEhash6kM_I_;
text: .text%__1cHNTarjanEEVAL6M_p0_;
text: .text%__1cMMachCallNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cMset_live_bit6Fpii_v_: buildOopMap.o;
-text: .text%__1cOPhaseIdealLoopUbuild_loop_late_post6MpnENode_pk0_v_;
text: .text%__1cIProjNodeGOpcode6kM_i_;
text: .text%__1cNobjArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cNobjArrayKlassToop_follow_contents6MpnHoopDesc__v_;
@@ -64,7 +57,6 @@ text: .text%__1cDfh16FI_i_;
text: .text%__1cNIdealLoopTreeJis_member6kMpk0_i_;
text: .text%__1cIConINodeGOpcode6kM_i_;
text: .text%__1cGIfNodeGOpcode6kM_i_;
-text: .text%__1cOtypeArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cHTypePtrEhash6kM_i_;
text: .text%__1cENode2t6MI_v_;
text: .text%JVM_ArrayCopy;
@@ -79,11 +71,9 @@ text: .text%__1cKIfTrueNodeGOpcode6kM_i_;
text: .text%__1cIAddPNodeGOpcode6kM_i_;
text: .text%__1cPDictionaryEntrybDprotection_domain_set_oops_do6MpnKOopClosure__v_: dictionary.o;
text: .text%__1cHTypeIntEhash6kM_i_;
-text: .text%__1cSPSPromotionManagerUflush_prefetch_queue6M_v_: psPromotionManager.o;
text: .text%__1cMMachProjNodeLbottom_type6kM_pknEType__;
text: .text%__1cMPhaseIterGVNNtransform_old6MpnENode__2_;
text: .text%__1cMMachProjNodeGOpcode6kM_i_;
-text: .text%__1cMclr_live_bit6Fpii_v_: buildOopMap.o;
text: .text%__1cJCProjNodeNis_block_proj6kM_pknENode__: cfgnode.o;
text: .text%__1cJPhaseLiveGgetset6MpnFBlock__pnIIndexSet__;
text: .text%__1cHConNodeGOpcode6kM_i_;
@@ -223,7 +213,6 @@ text: .text%__1cFframeYinterpreter_frame_method6kM_pnNmethodOopDesc__;
text: .text%__1cENodeHdel_req6MI_v_;
text: .text%__1cETypeEhash6kM_i_;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cIHaltNodeGOpcode6kM_i_;
text: .text%__1cMPhaseIterGVNZremove_globally_dead_node6MpnENode__v_;
text: .text%__1cIParmNodeGOpcode6kM_i_;
@@ -310,7 +299,6 @@ text: .text%__1cHMatcherKmatch_tree6MpknENode__pnIMachNode__;
text: .text%__1cIIndexSetSpopulate_free_list6F_v_;
text: .text%__1cMloadConINodeLout_RegMask6kM_rknHRegMask__;
text: .text%JVM_ReleaseUTF;
-text: .text%__1cKutf8_write6FpCH_0_: utf8.o;
text: .text%__1cKNode_ArrayGremove6MI_v_;
text: .text%__1cKRegionNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cMPhaseIterGVNMsubsume_node6MpnENode_2_v_;
@@ -359,7 +347,6 @@ text: .text%__1cHPhiNodeHsize_of6kM_I_: cfgnode.o;
text: .text%__1cJTypeTupleGfields6FI_ppknEType__;
text: .text%__1cMPhaseChaitinFUnion6MpknENode_3_v_;
text: .text%__1cKRegionNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cLrecord_bias6FpknIPhaseIFG_ii_v_: coalesce.o;
text: .text%__1cMPhaseChaitinSget_spillcopy_wide6MpnENode_2I_2_;
text: .text%__1cKNativeCallLdestination6kM_pC_;
text: .text%__1cICallNodeIIdentity6MpnOPhaseTransform__pnENode__: callnode.o;
@@ -415,7 +402,6 @@ text: .text%__1cNmethodOopDescLresult_type6kM_nJBasicType__;
text: .text%__1cFStateM_sub_Op_ConI6MpknENode__v_;
text: .text%__1cNRelocIteratorKset_limits6MpC1_v_;
text: .text%__1cIsplit_if6FpnGIfNode_pnMPhaseIterGVN__pnENode__: ifnode.o;
-text: .text%__1cTremove_useless_bool6FpnGIfNode_pnIPhaseGVN__pnENode__: ifnode.o;
text: .text%__1cJeRegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cSInterpreterRuntimeJanewarray6FpnKJavaThread_pnTconstantPoolOopDesc_ii_v_;
text: .text%__1cHAddNodeEhash6kM_I_;
@@ -478,7 +464,6 @@ text: .text%__1cMMergeMemNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cLMachNopNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cKRegionNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cMObjectLocker2T6M_v_;
-text: .text%__1cWConstantPoolCacheEntryRset_initial_state6Mi_v_;
text: .text%__1cOPhaseIdealLoopOidom_no_update6kMpnENode__2_: loopTransform.o;
text: .text%__1cRmethodDataOopDescPinitialize_data6MpnOBytecodeStream_i_i_;
text: .text%__1cRmethodDataOopDescTbytecode_cell_count6FnJBytecodesECode__i_;
@@ -516,7 +501,6 @@ text: .text%__1cMLinkResolverYlookup_method_in_klasses6FrnMmethodHandle_nLKlassH
text: .text%__1cMMergeMemNodePset_base_memory6MpnENode__v_;
text: .text%__1cNLoadKlassNodeGOpcode6kM_i_;
text: .text%__1cKTypeRawPtrEhash6kM_i_;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cPPerfLongVariantGsample6M_v_;
text: .text%__1cIAndINodeGOpcode6kM_i_;
text: .text%__1cVCompressedWriteStream2t6Mi_v_;
@@ -552,7 +536,6 @@ text: .text%__1cCosMvm_page_size6F_i_;
text: .text%__1cENodeDcmp6kMrk0_I_;
text: .text%__1cNloadRangeNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_RegI6MpknENode__v_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cFStateM_sub_Op_AddP6MpknENode__v_;
text: .text%__1cIGraphKitMsaved_ex_oop6FpnNSafePointNode__pnENode__;
text: .text%__1cIciObjectJset_ident6MI_v_;
@@ -654,7 +637,6 @@ text: .text%__1cFParseFBlockRsuccessor_for_bci6Mi_p1_;
text: .text%JVM_CurrentThread;
text: .text%__1cKBranchDataKcell_count6M_i_: ciMethodData.o;
text: .text%__1cLOopMapCacheIentry_at6kMi_pnQOopMapCacheEntry__;
-text: .text%__1cHOopFlowEmake6FpnFArena_i_p0_;
text: .text%__1cOGenerateOopMapKcheck_type6MnNCellTypeState_1_v_;
text: .text%__1cMMergeMemNodeNgrow_to_match6Mpk0_v_;
text: .text%__1cHTypeIntFxdual6kM_pknEType__;
@@ -734,8 +716,6 @@ text: .text%__1cWconstantPoolCacheKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cWconstantPoolCacheKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cFframebFinterpreter_frame_monitor_begin6kM_pnPBasicObjectLock__;
text: .text%__1cGGCTask2t6M_v_;
-text: .text%__1cETypeFwiden6kMpk0_2_: type.o;
-text: .text%__1cIAddPNodeQmach_bottom_type6FpknIMachNode__pknEType__;
text: .text%__1cJLoadBNodeGOpcode6kM_i_;
text: .text%__1cOPhaseIdealLoopGspinup6MpnENode_2222pnLsmall_cache__2_;
text: .text%__1cPCountedLoopNodeGOpcode6kM_i_;
@@ -762,8 +742,6 @@ text: .text%__1cNSignatureInfoJdo_object6Mii_v_: bytecode.o;
text: .text%__1cHCompileKTracePhase2T6M_v_;
text: .text%__1cILoadNodeHsize_of6kM_I_;
text: .text%__1cVjava_lang_ClassLoaderbBnon_reflection_class_loader6FpnHoopDesc__2_;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJBytecodesECode__pnNmethodOopDesc__;
text: .text%__1cNCatchProjNodeLbottom_type6kM_pknEType__: cfgnode.o;
text: .text%__1cNCatchProjNodeHsize_of6kM_I_: cfgnode.o;
@@ -838,7 +816,6 @@ text: .text%__1cCosEfree6Fpv_v_;
text: .text%__1cKInlineTreeJcallee_at6kMipnIciMethod__p0_;
text: .text%__1cQSystemDictionarybCfind_instance_or_array_klass6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cMVirtualSpaceOcommitted_size6kM_I_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
text: .text%__1cGRFrame2t6MnFframe_pnKJavaThread_kp0_v_;
text: .text%__1cYCallStaticJavaDirectNodeFreloc6kM_i_;
text: .text%__1cKciTypeFlowLStateVectorJcopy_into6kMp1_v_;
@@ -847,7 +824,6 @@ text: .text%__1cKciTypeFlowQadd_to_work_list6Mpn0AFBlock__v_;
text: .text%__1cKciTypeFlowOwork_list_next6M_pn0AFBlock__;
text: .text%__1cKciTypeFlowKflow_block6Mpn0AFBlock_pn0ALStateVector_pn0AGJsrSet__v_;
text: .text%__1cWConstantPoolCacheEntryKset_method6MnJBytecodesECode_nMmethodHandle_i_v_;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cLOptoRuntimeSuncommon_trap_Type6F_pknITypeFunc__;
text: .text%__1cIHaltNode2t6MpnENode_2_v_;
text: .text%__1cLPCTableNodeLbottom_type6kM_pknEType__;
@@ -887,12 +863,10 @@ text: .text%__1cRindIndexScaleOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cOGenerateOopMapFppush6MpnNCellTypeState__v_;
text: .text%__1cIConLNodeGOpcode6kM_i_;
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
-text: .text%__1cHTypeIntFwiden6kMpknEType__3_;
text: .text%__1cNCallGenerator2t6MpnIciMethod__v_;
text: .text%__1cIGraphKit2t6M_v_;
text: .text%__1cHMulNodeEhash6kM_I_;
text: .text%__1cFStateM_sub_Op_ConP6MpknENode__v_;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cIAddLNodeGOpcode6kM_i_;
text: .text%__1cIGraphKitNset_map_clone6MpnNSafePointNode__v_;
text: .text%__1cIGraphKitOreplace_in_map6MpnENode_2_v_;
@@ -917,7 +891,6 @@ text: .text%__1cIAddINodeJideal_reg6kM_I_: classes.o;
text: .text%__1cOPhaseIdealLoopIsink_use6MpnENode_2_v_;
text: .text%__1cKMemoryPoolYrecord_peak_memory_usage6M_v_;
text: .text%__1cNinstanceKlassKlink_class6MpnGThread__v_;
-text: .text%__1cTStackWalkCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%__1cKMemBarNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNinstanceKlassPinitialize_impl6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cTconstantPoolOopDescbBbasic_type_for_signature_at6Mi_nJBasicType__;
@@ -935,8 +908,6 @@ text: .text%__1cISubINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKReturnNodeKmatch_edge6kMI_I_;
text: .text%__1cKReturnNodeGOpcode6kM_i_;
text: .text%__1cKHandleAreaHoops_do6MpnKOopClosure__v_;
-text: .text%__1cNchunk_oops_do6FpnKOopClosure_pnFChunk_pc_I_: handles.o;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKstorePNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cLStringTableGintern6FpnNsymbolOopDesc_pnGThread__pnHoopDesc__;
text: .text%__1cNsymbolOopDescKas_unicode6kMri_pH_;
@@ -964,7 +935,6 @@ text: .text%__1cPmethodDataKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cPmethodDataKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cRMachNullCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cICodeHeapLheader_size6F_I_;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cJTypeTupleKmake_range6FpnLciSignature__pk0_;
text: .text%__1cJStoreNodeSIdeal_masked_input6MpnIPhaseGVN_I_pnENode__;
text: .text%__1cIAddINodeIadd_ring6kMpknEType_3_3_;
@@ -1003,7 +973,6 @@ text: .text%__1cQCallLeafNoFPNodeGOpcode6kM_i_;
text: .text%__1cIciMethodTcall_profile_at_bci6Mi_nNciCallProfile__;
text: .text%__1cRInterpretedRFrame2t6MnFframe_pnKJavaThread_kpnGRFrame__v_;
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cFParseHdo_call6M_v_;
text: .text%__1cIGraphKitWround_double_arguments6MpnIciMethod__v_;
text: .text%__1cIGraphKitTround_double_result6MpnIciMethod__v_;
@@ -1057,12 +1026,10 @@ text: .text%__1cLOpaque1NodeGOpcode6kM_i_;
text: .text%__1cSObjectSynchronizerJslow_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cLnaxRegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cbAjni_check_async_exceptions6FpnKJavaThread__v_: jni.o;
text: .text%__1cKciTypeFlowLStateVectorStype_meet_internal6FpnGciType_3p0_3_;
text: .text%__1cJFieldTypeSskip_optional_size6FpnNsymbolOopDesc_pi_v_;
text: .text%__1cQjmpCon_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cSobjArrayKlassKlassIoop_size6kMpnHoopDesc__i_: objArrayKlassKlass.o;
-text: .text%__1cIGraphKitTset_all_memory_call6MpnENode__v_;
text: .text%__1cJloadSNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKjmpDirNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIBoolNodeDcmp6kMrknENode__I_;
@@ -1090,7 +1057,6 @@ text: .text%__1cXPhaseAggressiveCoalesceYinsert_copy_with_overlap6MpnFBlock_pnEN
text: .text%__1cJAssemblerKemit_arith6MiipnMRegisterImpl_i_v_;
text: .text%__1cFStateN_sub_Op_LoadP6MpknENode__v_;
text: .text%__1cTconstantPoolOopDescbDresolve_string_constants_impl6FnSconstantPoolHandle_pnGThread__v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
text: .text%__1cJloadINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFArenaRdestruct_contents6M_v_;
text: .text%__1cFStateM_sub_Op_CmpI6MpknENode__v_;
@@ -1098,7 +1064,6 @@ text: .text%__1cIAddPNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cJAssemblerDjcc6Mn0AJCondition_rnFLabel_nJrelocInfoJrelocType__v_;
text: .text%__1cHi2sNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOGenerateOopMapJdo_method6Miiii_v_;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
text: .text%__1cNdecI_eRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIciObjectFklass6M_pnHciKlass__;
text: .text%__1cQPSGenerationPoolQget_memory_usage6M_nLMemoryUsage__;
@@ -1106,7 +1071,6 @@ text: .text%__1cLRShiftLNodeGOpcode6kM_i_;
text: .text%__1cKMemBarNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cMURShiftLNodeGOpcode6kM_i_;
text: .text%__1cIMulINodeGOpcode6kM_i_;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cIConDNodeGOpcode6kM_i_;
text: .text%__1cNSignatureInfoGdo_int6M_v_: bytecode.o;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
@@ -1138,13 +1102,11 @@ text: .text%__1cPStatSamplerTaskEtask6M_v_: statSampler.o;
text: .text%__1cMPeriodicTaskMtime_to_wait6F_I_: thread.o;
text: .text%jni_GetByteArrayRegion: jni.o;
text: .text%__1cQPlaceholderTableKfind_entry6MiInMsymbolHandle_nGHandle__pnNsymbolOopDesc__;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cKstorePNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateP_sub_Op_LShiftI6MpknENode__v_;
text: .text%jni_GetArrayLength: jni.o;
text: .text%__1cICodeHeapIcapacity6kM_I_;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cIPipelinePoperand_latency6kMIpk0_I_;
text: .text%__1cIMachOperEtype6kM_pknEType__;
@@ -1221,19 +1183,16 @@ text: .text%__1cPJavaCallWrapper2t6MnMmethodHandle_nGHandle_pnJJavaValue_pnGThre
text: .text%__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_;
text: .text%__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cRJavaCallArgumentsKparameters6M_pi_;
-text: .text%__1cRruntime_type_from6FpnJJavaValue__nJBasicType__: javaCalls.o;
text: .text%__1cTAbstractInterpreterbFsize_top_interpreter_activation6FpnNmethodOopDesc__i_;
text: .text%__1cJMultiNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPJavaCallWrapper2T6M_v_;
text: .text%__1cITypeFuncFxdual6kM_pknEType__;
-text: .text%__1cKInlineTree2t6MpnHCompile_pk0pnIciMethod_pnIJVMState_if_v_;
text: .text%__1cMLinkResolverXresolve_klass_no_update6FrnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cHciField2t6MpnPciInstanceKlass_i_v_;
text: .text%__1cTconstantPoolOopDescbCklass_ref_at_if_loaded_check6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
text: .text%__1cNloadKlassNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOGenerateOopMapCpp6MpnNCellTypeState_2_v_;
text: .text%__1cSObjectSynchronizerXidentity_hash_value_for6FnGHandle__i_;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%__1cHoopDescSslow_identity_hash6M_i_;
text: .text%__1cIMulINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cGciType2t6MnLKlassHandle__v_;
@@ -1242,8 +1201,6 @@ text: .text%__1cLRShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cKInlineTreeYcompute_callee_frequency6kMi_f_;
text: .text%__1cKInlineTreebCbuild_inline_tree_for_callee6MpnIciMethod_pnIJVMState_i_p0_;
text: .text%__1cIciMethodbBinterpreter_call_site_count6Mi_i_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
-text: .text%__1cJGC_lockerNlock_critical6FpnKJavaThread__v_: jni.o;
text: .text%__1cJAssemblerElock6M_v_;
text: .text%__1cFKlassTarray_klass_or_null6Mi_pnMklassOopDesc__;
text: .text%__1cRandI_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
@@ -1265,12 +1222,10 @@ text: .text%__1cSInterpreterRuntimeMmonitorenter6FpnKJavaThread_pnPBasicObjectLo
text: .text%__1cPciInstanceKlass2t6MnLKlassHandle__v_;
text: .text%jni_GetPrimitiveArrayCritical: jni.o;
text: .text%jni_ReleasePrimitiveArrayCritical: jni.o;
-text: .text%__1cWConstantPoolCacheEntryPbytecode_number6FnJBytecodesECode__i_: cpCacheOop.o;
text: .text%__1cOMethodLivenessKBasicBlockIload_two6Mi_v_;
text: .text%__1cMCreateExNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cFArena2t6M_v_;
text: .text%__1cHMulNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cLsymbolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cMCreateExNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cSInterpreterRuntimeLmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cIJVMState2t6Mi_v_;
@@ -1284,9 +1239,7 @@ text: .text%__1cEDict2T6M_v_;
text: .text%__1cNCatchProjNodeDcmp6kMrknENode__I_;
text: .text%__1cSCountedLoopEndNodeKstride_con6kM_i_;
text: .text%__1cRmethodDataOopDescKmileage_of6FpnNmethodOopDesc__i_;
-text: .text%__1cQconstMethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cHCompileXin_preserve_stack_slots6M_I_;
-text: .text%__1cLmethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cKTypeRawPtrFxmeet6kMpknEType__3_;
text: .text%__1cTJvmtiEventCollectorYunset_jvmti_thread_state6M_v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2T6M_v_;
@@ -1298,7 +1251,6 @@ text: .text%__1cFStateM_sub_Op_CmpU6MpknENode__v_;
text: .text%__1cSPSKeepAliveClosureGdo_oop6MppnHoopDesc__v_: psScavenge.o;
text: .text%__1cFTypeDEmake6Fd_pk0_;
text: .text%jni_IsSameObject: jni.o;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cKMemoryPoolHoops_do6MpnKOopClosure__v_;
text: .text%__1cNstoreImmBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJloadPNodeIpipeline6kM_pknIPipeline__;
@@ -1351,7 +1303,6 @@ text: .text%__1cNstoreImmBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOGenerateOopMapIdo_field6Miiii_v_;
text: .text%__1cOGenerateOopMapRsigchar_to_effect6McipnNCellTypeState__2_;
text: .text%__1cJAssemblerFtestl6MpnMRegisterImpl_2_v_;
-text: .text%__1cIGraphKitZset_results_for_java_call6MpnMCallJavaNode__pnENode__;
text: .text%JVM_GetMethodIxModifiers;
text: .text%__1cNSCMemProjNodeGOpcode6kM_i_;
text: .text%__1cJleaP8NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -1363,8 +1314,6 @@ text: .text%__1cFStateM_sub_Op_RegL6MpknENode__v_;
text: .text%__1cRMachNullCheckNodeLout_RegMask6kM_rknHRegMask__: machnode.o;
text: .text%__1cRshrI_eReg_immNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cScompP_mem_eRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cLLShiftLNodeGOpcode6kM_i_;
text: .text%__1cTciConstantPoolCacheGinsert6Mipv_v_;
text: .text%__1cSobjArrayKlassKlassToop_adjust_pointers6MpnHoopDesc__i_;
@@ -1376,7 +1325,6 @@ text: .text%__1cUreloc_java_to_interp6F_I_;
text: .text%__1cTsize_java_to_interp6F_I_;
text: .text%__1cKstoreINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cScompU_eReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cIGraphKitTcreate_and_xform_if6MpnENode_2ff_pnGIfNode__: graphKit.o;
text: .text%__1cSCallLeafDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQComputeCallStackHdo_void6M_v_: generateOopMap.o;
text: .text%__1cHciField2t6MpnPfieldDescriptor__v_;
@@ -1401,11 +1349,9 @@ text: .text%__1cFParseQarray_addressing6MnJBasicType_ippknEType__pnENode__;
text: .text%__1cHCompileSregister_intrinsic6MpnNCallGenerator__v_;
text: .text%__1cMeADXRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cRcmpFastUnlockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cXcopy_u2_with_conversion6FpH0i_v_: classFileParser.o;
text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHandle_pnGThread__1_;
text: .text%__1cMLinkResolverbCresolve_special_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cPciInstanceKlassLfind_method6MpnIciSymbol_2_pnIciMethod__;
-text: .text%__1cNCallGeneratorPfor_direct_call6FpnIciMethod__p0_;
text: .text%__1cTDirectCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cMWarmCallInfoLalways_cold6F_p0_;
text: .text%__1cFciEnvRfind_system_klass6MpnIciSymbol__pnHciKlass__;
@@ -1444,10 +1390,7 @@ text: .text%__1cNloadKlassNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cIGraphKitPpush_pair_local6Mi_v_: parse2.o;
text: .text%__1cNMemoryServiceXtrack_memory_pool_usage6FpnKMemoryPool__v_;
text: .text%__1cMLinkResolverUresolve_invokestatic6FrnICallInfo_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cKklassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cXcmpL_reg_flags_LTGENodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNinstanceKlassScopy_static_fields6MpnSPSPromotionManager__v_;
-text: .text%__1cSinstanceKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cKoopFactoryYnew_permanent_shortArray6FipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cFStateR_sub_Op_LoadRange6MpknENode__v_;
text: .text%__1cOcompU_eRegNodeIpipeline6kM_pknIPipeline__;
@@ -1466,8 +1409,6 @@ text: .text%__1cIGraphKitTuse_exception_state6MpnNSafePointNode__pnENode__;
text: .text%__1cKstoreINodeFreloc6kM_i_;
text: .text%__1cRCardTableModRefBSPdirty_MemRegion6MnJMemRegion__v_;
text: .text%__1cPcheckCastPPNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cTStackWalkCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
-text: .text%__1cRCompilationPolicybJreset_counter_for_back_branch_event6MnMmethodHandle__v_;
text: .text%__1cKciTypeFlowHdo_flow6M_v_;
text: .text%__1cKciTypeFlowKmap_blocks6M_v_;
text: .text%__1cKciTypeFlowKflow_types6M_v_;
@@ -1509,14 +1450,12 @@ text: .text%__1cJrelocInfoKset_format6Mi_v_;
text: .text%__1cPfieldDescriptorRint_initial_value6kM_i_;
text: .text%__1cJTimeStampSticks_since_update6kM_x_;
text: .text%__1cISubLNodeGOpcode6kM_i_;
-text: .text%__1cRconstantPoolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cICodeBlobMset_oop_maps6MpnJOopMapSet__v_;
text: .text%__1cJCodeCacheIallocate6Fi_pnICodeBlob__;
text: .text%__1cQVMOperationQdDueueSqueue_remove_front6Mi_pnMVM_Operation__;
text: .text%__1cMorI_eRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cScompI_eReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVAdaptivePaddedAverageGsample6Mf_v_;
-text: .text%__1cNPrefetchQdDueueFclear6M_v_: psPromotionManager.o;
text: .text%__1cSPSPromotionManagerFreset6M_v_;
text: .text%__1cSPSPromotionManagerKflush_labs6M_v_;
text: .text%__1cJloadSNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -1608,10 +1547,8 @@ text: .text%__1cKDictionaryJnew_entry6MIpnMklassOopDesc_pnHoopDesc__pnPDictionar
text: .text%__1cIAndINodeKadd_opcode6kM_i_: classes.o;
text: .text%__1cIAndINodeKmul_opcode6kM_i_: classes.o;
text: .text%__1cRandI_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRshrI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJLoadSNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cLProfileDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_: ciMethodData.o;
-text: .text%__1cRaddI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOPhaseIdealLoopMdominated_by6MpnENode_2_v_;
text: .text%__1cPRoundDoubleNodeGOpcode6kM_i_;
text: .text%__1cRsarI_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
@@ -1619,7 +1556,6 @@ text: .text%__1cJAssemblerEandl6MpnMRegisterImpl_i_v_;
text: .text%__1cLklassVtableQfill_in_mirandas6Mri_v_;
text: .text%__1cCosXthread_local_storage_at6Fi_pv_;
text: .text%__1cSThreadLocalStoragePget_thread_slow6F_pnGThread__;
-text: .text%__1cQinstanceRefKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cLregFPR1OperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNstoreImmBNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKstoreINodeOmemory_operand6kM_pknIMachOper__;
@@ -1640,8 +1576,6 @@ text: .text%__1cPClassFileStream2t6MpCipc_v_;
text: .text%__1cNinstanceKlassSprocess_interfaces6MpnGThread__v_;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
text: .text%__1cNinstanceKlassbBdo_local_static_fields_impl6FnTinstanceKlassHandle_pFpnPfieldDescriptor_pnGThread__v5_v_;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cLklassVtableQget_num_mirandas6FpnMklassOopDesc_pnPobjArrayOopDesc_4_i_;
text: .text%__1cLklassItableZsetup_itable_offset_table6FnTinstanceKlassHandle__v_;
text: .text%__1cIUniverseTflush_dependents_on6FnTinstanceKlassHandle__v_;
@@ -1649,7 +1583,6 @@ text: .text%__1cJCodeCachebKnumber_of_nmethods_with_dependencies6F_i_;
text: .text%__1cPClassFileParserbBparse_constant_pool_entries6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cQSystemDictionaryQadd_to_hierarchy6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cNinstanceKlassWdo_local_static_fields6MpFpnPfieldDescriptor_pnGThread__v4_v_;
-text: .text%__1cPClassFileParserUcompute_oop_map_size6MnTinstanceKlassHandle_ii_i_;
text: .text%__1cPClassFileParserVset_precomputed_flags6MnTinstanceKlassHandle__v_;
text: .text%__1cPClassFileParserTparse_constant_pool6MpnGThread__nSconstantPoolHandle__;
text: .text%__1cPClassFileParserbDcompute_transitive_interfaces6MnTinstanceKlassHandle_nOobjArrayHandle_pnGThread__2_;
@@ -1664,8 +1597,6 @@ text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__p
text: .text%__1cSThreadProfilerMark2T6M_v_;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
text: .text%__1cQSystemDictionaryRfind_shared_class6FnMsymbolHandle__pnMklassOopDesc__;
text: .text%__1cQSystemDictionaryRload_shared_class6FnMsymbolHandle_nGHandle_pnGThread__nTinstanceKlassHandle__;
@@ -1704,7 +1635,6 @@ text: .text%__1cNmulL_eRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cYciExceptionHandlerStreamPcount_remaining6M_i_;
text: .text%__1cJLoadLNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cPshrI_eReg_1NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cWconstantPoolCacheKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cYmulI_imm_RShift_highNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cUBytecode_tableswitchOdest_offset_at6kMi_i_;
text: .text%__1cSObjectSynchronizerJnotifyall6FnGHandle_pnGThread__v_;
@@ -1731,9 +1661,6 @@ text: .text%__1cIXorINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cNSafepointBlobbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_: codeBlob.o;
text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cIPSOldGenPupdate_counters6M_v_;
-text: .text%__1cNSharedRuntimebOraw_exception_handler_for_return_address6FpC_1_;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
-text: .text%__1cNaddI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHOrINodeGadd_id6kM_pknEType__: classes.o;
text: .text%signalHandler;
text: .text%JVM_handle_solaris_signal;
@@ -1800,7 +1727,6 @@ text: .text%__1cFKlassTarray_klass_or_null6M_pnMklassOopDesc__;
text: .text%__1cNdecI_eRegNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cICodeHeapLmerge_right6MpnJFreeBlock__v_;
text: .text%__1cIregDOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cNsubI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIPhaseIFGYCompute_Effective_Degree6M_v_;
text: .text%__1cMPhaseChaitinISimplify6M_v_;
text: .text%__1cMPhaseChaitinGSelect6M_I_;
@@ -1809,7 +1735,6 @@ text: .text%__1cJScopeDescJstream_at6kMi_pnTDebugInfoReadStream__;
text: .text%__1cLOptoRuntimeJstub_name6FpC_pkc_;
text: .text%__1cSvframeStreamCommonZsecurity_get_caller_frame6Mi_v_;
text: .text%__1cENodeHrm_prec6MI_v_;
-text: .text%__1cUjni_invoke_nonstatic6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cWflagsReg_long_EQdDNEOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKciTypeFlowPflow_exceptions6MpnNGrowableArray4Cpn0AFBlock___pnNGrowableArray4CpnPciInstanceKlass___pn0ALStateVector__v_;
text: .text%__1cXmembar_release_lockNodeIadr_type6kM_pknHTypePtr__;
@@ -1820,7 +1745,6 @@ text: .text%__1cMPhaseChaitinZcompress_uf_map_for_nodes6M_v_;
text: .text%__1cZPhaseConservativeCoalesceGverify6M_v_;
text: .text%__1cHTypePtrFxmeet6kMpknEType__3_;
text: .text%__1cSsafePoint_pollNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cJScopeDesc2t6MpknHnmethod_i_v_;
text: .text%__1cOcompiledVFrame2t6MpknFframe_pknLRegisterMap_pnKJavaThread_pnJScopeDesc__v_;
text: .text%__1cNSignatureInfoHdo_long6M_v_: bytecode.o;
text: .text%__1cXvirtual_call_RelocationJfirst_oop6M_pC_;
@@ -1844,7 +1768,6 @@ text: .text%__1cWflagsReg_long_LEGTOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cSThreadLocalStorageTpd_getTlsAccessMode6F_n0AQpd_tlsAccessMode__;
text: .text%__1cOMacroAssemblerKget_thread6MpnMRegisterImpl__v_;
text: .text%__1cLRethrowNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cRcmpFastUnlockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIGraphKitNshared_unlock6MpnENode_2_v_;
text: .text%__1cNSafePointNodeLpop_monitor6M_v_;
text: .text%__1cLOptoRuntimebAcomplete_monitor_exit_Type6F_pknITypeFunc__;
@@ -1877,7 +1800,6 @@ text: .text%__1cNobjArrayKlassIallocate6MipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cMeBCXRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cRsubI_eReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cIJumpDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_;
-text: .text%__1cMalloc_object6FpnH_jclass_pnGThread__pnPinstanceOopDesc__: jni.o;
text: .text%__1cHOrINodeJideal_reg6kM_I_: classes.o;
text: .text%__1cKTypeRawPtrEmake6FnHTypePtrDPTR__pk0_;
text: .text%__1cKTypeAryPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
@@ -1900,7 +1822,6 @@ text: .text%__1cYinternal_word_RelocationLunpack_data6M_v_;
text: .text%__1cMorI_eRegNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%jni_NewObject: jni.o;
text: .text%__1cMTailCallNodeKmatch_edge6kMI_I_;
-text: .text%__1cIciMethodRinstructions_size6M_i_;
text: .text%__1cKStoreFNodeGOpcode6kM_i_;
text: .text%__1cFStateO_sub_Op_StoreC6MpknENode__v_;
text: .text%__1cFciEnvKcompile_id6M_I_;
@@ -1939,7 +1860,6 @@ text: .text%__1cXmembar_release_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__
text: .text%__1cXcmpL_reg_flags_LTGENodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJloadBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cMLinkResolverOresolve_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cNincI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadLNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNandL_eRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cSciExceptionHandlerLcatch_klass6M_pnPciInstanceKlass__;
@@ -1958,8 +1878,6 @@ text: .text%jni_NewGlobalRef: jni.o;
text: .text%__1cKPSYoungGenRcapacity_in_bytes6kM_I_;
text: .text%__1cMVirtualSpaceNreserved_size6kM_I_;
text: .text%__1cHNTarjanIsetdepth6MIpI_v_;
-text: .text%__1cOPhaseIdealLoopPbuild_loop_late6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
-text: .text%__1cOPhaseIdealLoopQbuild_loop_early6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
text: .text%__1cOPhaseIdealLoopKDominators6M_v_;
text: .text%__1cHNTarjanDDFS6Fp0rnJVectorSet_pnOPhaseIdealLoop_pI_i_;
text: .text%__1cOPhaseIdealLoopRinit_dom_lca_tags6M_v_;
@@ -1994,7 +1912,6 @@ text: .text%__1cICmpDNodeGOpcode6kM_i_;
text: .text%__1cLRuntimeStubbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_: codeBlob.o;
text: .text%__1cNDispatchTableJset_entry6MirnKEntryPoint__v_;
text: .text%__1cNmethodOopDescVclear_native_function6M_v_;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cJLoadBNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cSSetupItableClosureEdoit6MpnMklassOopDesc_i_v_: klassVtable.o;
text: .text%__1cLeAXRegIOperKin_RegMask6kMi_pknHRegMask__;
@@ -2010,7 +1927,6 @@ text: .text%jni_DeleteGlobalRef: jni.o;
text: .text%__1cOPhaseIdealLoopLdo_split_if6MpnENode__v_;
text: .text%__1cRsubI_eReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNaddI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKTypeOopPtrSmake_from_constant6FpnIciObject__pk0_;
text: .text%__1cMURShiftLNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%jni_GetObjectArrayElement: jni.o;
text: .text%__1cQSystemDictionaryRpreloaded_oops_do6FpnKOopClosure__v_;
@@ -2023,7 +1939,6 @@ text: .text%__1cQVMOperationQdDueueHoops_do6MpnKOopClosure__v_;
text: .text%__1cKManagementHoops_do6FpnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollectorXoops_do_for_all_threads6FpnKOopClosure__v_;
text: .text%__1cQPlaceholderTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cKJNIHandlesMweak_oops_do6FpnRBoolObjectClosure_pnKOopClosure__v_;
@@ -2040,7 +1955,6 @@ text: .text%__1cIAndLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%jio_vsnprintf;
text: .text%__1cLRethrowNodeEhash6kM_I_: classes.o;
text: .text%__1cWCallLeafNoFPDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRsalI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRsalI_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJAssemblerDjmp6MnHAddress__v_;
text: .text%jio_snprintf;
@@ -2057,8 +1971,6 @@ text: .text%__1cRLowMemoryDetectorRdetect_low_memory6F_v_;
text: .text%__1cbAPSGCAdaptivePolicyCountersbBupdate_counters_from_policy6M_v_;
text: .text%__1cWThreadLocalAllocBufferQresize_all_tlabs6F_v_;
text: .text%__1cUParallelScavengeHeapbFaccumulate_statistics_all_tlabs6M_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cNMemoryServiceStrack_memory_usage6F_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
text: .text%__1cQSystemDictionaryHoops_do6FpnKOopClosure__v_;
@@ -2094,7 +2006,6 @@ text: .text%__1cORuntimeServiceWrecord_safepoint_begin6F_v_;
text: .text%__1cSObjectSynchronizerVdeflate_idle_monitors6F_v_;
text: .text%__1cJloadFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMCounterDecayFdecay6F_v_;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cRInlineCacheBufferUupdate_inline_caches6F_v_;
text: .text%__1cUSafepointSynchronizeDend6F_v_;
text: .text%__1cORuntimeServiceUrecord_safepoint_end6F_v_;
@@ -2241,7 +2152,6 @@ text: .text%__1cFStateM_sub_Op_ConL6MpknENode__v_;
text: .text%__1cSmembar_acquireNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cHRetNodeFreloc6kM_i_;
text: .text%__1cIConFNodeGOpcode6kM_i_;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cJCodeCacheNalive_nmethod6FpnICodeBlob__pnHnmethod__;
text: .text%__1cQLibraryIntrinsicIgenerate6MpnIJVMState__2_;
text: .text%__1cOcompP_eRegNodeLout_RegMask6kM_rknHRegMask__;
@@ -2249,9 +2159,7 @@ text: .text%__1cFStateM_sub_Op_CmpL6MpknENode__v_;
text: .text%__1cKCompiledICSset_ic_destination6MpC_v_;
text: .text%__1cLConvL2INodeJideal_reg6kM_I_: classes.o;
text: .text%__1cZInterpreterMacroAssemblerNdispatch_next6MnITosState_i_v_;
-text: .text%__1cPshlI_eReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSmembar_releaseNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cNdecI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNandL_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNdecI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJLoadDNodeGOpcode6kM_i_;
@@ -2267,13 +2175,9 @@ text: .text%__1cXmembar_acquire_lockNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRxorI_eReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateR_sub_Op_SafePoint6MpknENode__v_;
text: .text%__1cMciMethodDataStrap_recompiled_at6MpnLProfileData__i_;
-text: .text%__1cSsafePoint_pollNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSsafePoint_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSsafePoint_pollNodeFreloc6kM_i_;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cNandI_eRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRandI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cHi2sNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHi2sNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateL_sub_Op_OrI6MpknENode__v_;
text: .text%JVM_GetClassNameUTF;
@@ -2311,14 +2215,12 @@ text: .text%__1cTshrL_eReg_32_63NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLOptoRuntimebBcomplete_monitor_enter_Type6F_pknITypeFunc__;
text: .text%__1cIMaxINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cFStateQ_sub_Op_FastLock6MpknENode__v_;
-text: .text%__1cPcmpFastLockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIGraphKitLshared_lock6MpnENode__pnMFastLockNode__;
text: .text%__1cQjava_lang_ThreadGthread6FpnHoopDesc__pnKJavaThread__;
text: .text%__1cEUTF8Ounicode_length6Fpkc_i_;
text: .text%__1cPCallRuntimeNodeGOpcode6kM_i_;
text: .text%__1cFParseFBlockMadd_new_path6M_i_;
text: .text%JVM_FindClassFromClass;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc_ii_v_: nativeLookup.o;
text: .text%__1cIMulINodeGmul_id6kM_pknEType__: classes.o;
text: .text%__1cPshlI_eReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cbDjava_lang_reflect_ConstructorFclazz6FpnHoopDesc__2_;
@@ -2327,8 +2229,6 @@ text: .text%__1cbDjava_lang_reflect_ConstructorPparameter_types6FpnHoopDesc__2_;
text: .text%__1cbDjava_lang_reflect_ConstructorEslot6FpnHoopDesc__i_;
text: .text%__1cLConvI2LNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cKReflectionSinvoke_constructor6FpnHoopDesc_nOobjArrayHandle_pnGThread__2_;
-text: .text%__1cMorI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc__v_: nativeLookup.o;
text: .text%__1cMtlsLoadPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cYmulI_imm_RShift_highNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFParseFBlockNstack_type_at6kMi_pknEType__;
@@ -2361,12 +2261,10 @@ text: .text%__1cQjava_lang_StringXcreate_oop_from_unicode6FpHipnGThread__pnHoopD
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_i_v_;
text: .text%__1cXmembar_acquire_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMMergeMemNodeIadr_type6kM_pknHTypePtr__: memnode.o;
-text: .text%__1cITypeLongFwiden6kMpknEType__3_;
text: .text%__1cIModINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cQjava_lang_StringTcreate_oop_from_str6FpkcpnGThread__pnHoopDesc__;
text: .text%__1cKoopFactoryNnew_charArray6FpkcpnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cScompP_mem_eRegNodeFreloc6kM_i_;
-text: .text%__1cMadjust_check6FpnENode_11iipnMPhaseIterGVN__v_: ifnode.o;
text: .text%__1cNtestU_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateP_sub_Op_ConvI2L6MpknENode__v_;
text: .text%__1cJScopeDescGsender6kM_p0_;
@@ -2443,7 +2341,6 @@ text: .text%__1cNmaxI_eRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_AddL6MpknENode__v_;
text: .text%__1cJAssemblerEsubl6MpnMRegisterImpl_i_v_;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cENodeEgetd6kM_d_;
text: .text%__1cFStateM_sub_Op_AndL6MpknENode__v_;
text: .text%__1cKConv2BNodeGOpcode6kM_i_;
@@ -2483,16 +2380,13 @@ text: .text%__1cNCompileBrokerScollect_statistics6FpnOCompilerThread_nMelapsedTi
text: .text%__1cLConvI2FNodeGOpcode6kM_i_;
text: .text%__1cQComputeCallStackIdo_short6M_v_: generateOopMap.o;
text: .text%__1cICodeHeapMinsert_after6MpnJFreeBlock_2_v_;
-text: .text%__1cHnmFlagsFclear6M_v_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
text: .text%__1cVExceptionHandlerTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cHnmethod2n6FIi_pv_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cFciEnvVnum_inlined_bytecodes6kM_i_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cQorI_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHCompileUremove_useless_nodes6MrnQUnique_Node_List__v_;
text: .text%__1cIciMethodRbuild_method_data6MnMmethodHandle__v_;
@@ -2511,7 +2405,6 @@ text: .text%__1cIPhaseCCPHanalyze6M_v_;
text: .text%__1cIPhaseCCPMdo_transform6M_v_;
text: .text%__1cHCompileNreturn_values6MpnIJVMState__v_;
text: .text%__1cKInlineTreeWbuild_inline_tree_root6F_p0_;
-text: .text%__1cbAfinal_graph_reshaping_walk6FrnKNode_Stack_pnENode_rnUFinal_Reshape_Counts__v_: compile.o;
text: .text%__1cIPhaseCCPJtransform6MpnENode__2_;
text: .text%__1cHCompileLFinish_Warm6M_v_;
text: .text%__1cMPhaseIterGVN2t6Mp0_v_;
@@ -2535,7 +2428,6 @@ text: .text%__1cXSignatureHandlerLibraryKinitialize6F_v_;
text: .text%__1cXSignatureHandlerLibraryDadd6FnMmethodHandle__v_;
text: .text%__1cIAddFNodeGOpcode6kM_i_;
text: .text%__1cJAssemblerFffree6Mi_v_;
-text: .text%__1cKExceptionsG_throw6FpnGThread_pkcinGHandle__v_;
text: .text%__1cQjava_lang_StringPcreate_from_str6FpkcpnGThread__nGHandle__;
text: .text%__1cOGenerateOopMapIppop_any6Mi_v_;
text: .text%__1cXroundDouble_mem_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -2551,7 +2443,6 @@ text: .text%__1cCosLelapsedTime6F_d_;
text: .text%__1cKJavaThreadZsecurity_get_caller_class6Mi_pnMklassOopDesc__;
text: .text%jni_GetStringUTFChars: jni.o;
text: .text%jni_ReleaseStringUTFChars;
-text: .text%__1cNloadConI0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSInterpreterRuntimeXthrow_pending_exception6FpnKJavaThread__v_;
text: .text%__1cXcmpL_reg_flags_LEGTNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOClearArrayNodeIIdentity6MpnOPhaseTransform__pnENode__;
@@ -2572,18 +2463,14 @@ text: .text%__1cFParsebLincrement_and_test_invocation_counter6Mi_v_;
text: .text%__1cQsalI_eReg_CLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSshrL_eReg_1_31NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJleaP8NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cXcmpL_reg_flags_LTGENodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNcmpL_LTGENodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFParsePmerge_exception6Mi_v_;
text: .text%__1cFStateS_sub_Op_ClearArray6MpknENode__v_;
text: .text%__1cMrep_stosNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMrep_stosNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOcompI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFTypeFEmake6Ff_pk0_;
text: .text%__1cKstoreLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSInterpreterRuntimeOmultianewarray6FpnKJavaThread_pi_v_;
text: .text%__1cIDivINodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cPmethodDataKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cLStrCompNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cXJNI_ArgumentPusherVaArgHget_int6M_v_: jni.o;
text: .text%__1cNtestP_regNodeIpipeline6kM_pknIPipeline__;
@@ -2602,11 +2489,8 @@ text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMs
text: .text%__1cFParseLdo_newarray6MnJBasicType__v_;
text: .text%__1cSsafePoint_pollNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKstoreLNodeFreloc6kM_i_;
-text: .text%__1cGThreadLnmethods_do6M_v_;
text: .text%__1cPRoundDoubleNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cCosTnative_java_library6F_pv_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
text: .text%__1cIModLNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cScompP_eReg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQjava_lang_StringScreate_from_symbol6FnMsymbolHandle_pnGThread__nGHandle__;
@@ -2615,13 +2499,11 @@ text: .text%__1cRmulI_eReg_immNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cCosYprint_jni_name_suffix_on6FpnMoutputStream_i_v_;
text: .text%__1cCosYprint_jni_name_prefix_on6FpnMoutputStream_i_v_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_53pnGThread__v_;
-text: .text%__1cVlookup_special_native6Fpc_pC_: nativeLookup.o;
text: .text%__1cPciObjArrayKlassGloader6M_pnHoopDesc__: ciObjArrayKlass.o;
text: .text%__1cPDictionaryEntryVadd_protection_domain6MpnHoopDesc__v_;
text: .text%__1cRxorI_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
-text: .text%__1cPshrI_eReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cKarrayKlassbBcomplete_create_array_klass6FnQarrayKlassHandle_nLKlassHandle_pnGThread__v_;
text: .text%__1cKarrayKlassXbase_create_array_klass6FrknKKlass_vtbl_inLKlassHandle_pnGThread__nQarrayKlassHandle__;
text: .text%__1cIPerfLong2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability__v_;
@@ -2642,7 +2524,6 @@ text: .text%__1cPfieldDescriptorSlong_initial_value6kM_x_;
text: .text%__1cRsubI_eReg_memNodeFreloc6kM_i_;
text: .text%__1cKstoreBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJLoadPNodeMstore_Opcode6kM_i_: classes.o;
-text: .text%__1cKJavaThreadLnmethods_do6M_v_;
text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNcmovI_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cZCallDynamicJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2651,17 +2532,14 @@ text: .text%__1cOGenerateOopMapXreplace_all_CTS_matches6MnNCellTypeState_1_v_;
text: .text%__1cNstoreImmINodeFreloc6kM_i_;
text: .text%__1cNobjArrayKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cRsarI_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRsarI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cWCallLeafNoFPDirectNodeFreloc6kM_i_;
text: .text%__1cNobjArrayKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: objArrayKlass.o;
text: .text%jni_GetStringCritical: jni.o;
text: .text%jni_ReleaseStringCritical: jni.o;
text: .text%__1cPciObjArrayKlass2t6MnLKlassHandle__v_;
-text: .text%__1cPsarI_eReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPsarI_eReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPconvF2D_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPPerfDataManagerMcounter_name6Fpkc2_pc_;
-text: .text%__1cRaddL_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHCompileSrethrow_exceptions6MpnIJVMState__v_;
text: .text%__1cLRethrowNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cURethrowExceptionNodeLout_RegMask6kM_rknHRegMask__;
@@ -2682,9 +2560,7 @@ text: .text%__1cFParseTprofile_switch_case6Mi_v_;
text: .text%__1cKJavaThreadLgc_epilogue6M_v_;
text: .text%__1cFParseOmerge_new_path6Mi_v_;
text: .text%__1cFParseSjump_switch_ranges6MpnENode_pnLSwitchRange_4i_v_;
-text: .text%__1cNxorI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%jni_NewByteArray: jni.o;
-text: .text%__1cNmulL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMstoreSSINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKReflectionTget_parameter_types6FnMmethodHandle_ippnHoopDesc_pnGThread__nOobjArrayHandle__;
text: .text%__1cNmethodOopDescbGresolved_checked_exceptions_impl6Fp0pnGThread__nOobjArrayHandle__;
@@ -2698,13 +2574,11 @@ text: .text%__1cPstoreImmI16NodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOcmpD_cc_P6NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRandI_eReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNObjectMonitorHRecycle6M_v_;
-text: .text%__1cNandL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFBlockNset_next_call6MpnENode_rnJVectorSet_rnLBlock_Array__v_;
text: .text%__1cJloadSNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorEmove6Mii_v_;
text: .text%__1cENode2t6Mp0111111_v_;
text: .text%__1cFStateP_sub_Op_RShiftL6MpknENode__v_;
-text: .text%__1cMloadConLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIAddDNodeGOpcode6kM_i_;
text: .text%__1cNmodL_eRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKarrayKlassTallocate_arrayArray6MiipnGThread__pnPobjArrayOopDesc__;
@@ -2729,8 +2603,6 @@ text: .text%__1cPshrI_eReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_GetFieldID: jni.o;
text: .text%jni_IsAssignableFrom: jni.o;
text: .text%__1cNnegI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNnegI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cSobjArrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cFParseWcheck_interpreter_type6MpnENode_pknEType_rpnNSafePointNode__2_;
text: .text%__1cJAssemblerEaddl6MnHAddress_i_v_;
text: .text%__1cTsarL_eReg_32_63NodeLout_RegMask6kM_rknHRegMask__;
@@ -2745,9 +2617,7 @@ text: .text%__1cFStateX_sub_Op_CompareAndSwapL6MpknENode__v_;
text: .text%__1cSloadL_volatileNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNtestU_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSloadL_volatileNodeFreloc6kM_i_;
-text: .text%__1cTcompareAndSwapLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubLNodeGadd_id6kM_pknEType__: classes.o;
-text: .text%__1cFframeVnmethods_code_blob_do6M_v_;
text: .text%__1cOPhaseIdealLoopUpeeled_dom_test_elim6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%__1cJAssemblerDhlt6M_v_;
text: .text%__1cYcmpL_zero_flags_LEGTNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2761,11 +2631,8 @@ text: .text%jni_SetBooleanField: jni.o;
text: .text%__1cTconvD2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateT_sub_Op_ThreadLocal6MpknENode__v_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pF_vc_v_;
-text: .text%__1cMtlsLoadPNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIciObject2t6MpnHciKlass__v_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorDbox6Mii_v_;
-text: .text%__1cKsplit_once6FpnMPhaseIterGVN_pnENode_333_v_: cfgnode.o;
-text: .text%__1cYmulI_imm_RShift_highNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPRoundDoubleNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cKloadUBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMURShiftLNodeJideal_reg6kM_I_: classes.o;
@@ -2775,8 +2642,6 @@ text: .text%__1cPClassFileParserbBcheck_illegal_static_method6FnTinstanceKlassHa
text: .text%__1cGciType2t6MpnHciKlass__v_;
text: .text%__1cHciKlass2t6MpnIciSymbol_p0_v_;
text: .text%__1cIciMethodRinterpreter_entry6M_pC_;
-text: .text%__1cXjvm_define_class_common6FpnHJNIEnv__pkcpnI_jobject_pkWi53pnGThread__pnH_jclass__: jvm.o;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cUciInstanceKlassKlassEmake6F_p0_;
text: .text%__1cLLShiftLNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cIciSymbolHbyte_at6Mi_i_;
@@ -2785,12 +2650,10 @@ text: .text%__1cZCallDynamicJavaDirectNodeKmethod_set6Mi_v_;
text: .text%__1cIModINodeJideal_reg6kM_I_: classes.o;
text: .text%__1cSTailCalljmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXMachCallDynamicJavaNodePret_addr_offset6M_i_;
-text: .text%__1cNcmpL_EQdDNENodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOGenerateOopMapOdo_monitorexit6Mi_v_;
text: .text%__1cOGenerateOopMapLmonitor_pop6M_nNCellTypeState__;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cOmulIS_eRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSalign_to_page_size6FI_I_: heap.o;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcinMsymbolHandle_4nGHandle_6_v_;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcipnNsymbolOopDesc_4_v_;
text: .text%__1cPciInstanceKlassYprotection_domain_handle6M_pnI_jobject__;
@@ -2810,7 +2673,6 @@ text: .text%__1cJMarkSweepSFollowStackClosureHdo_void6M_v_: markSweep.o;
text: .text%__1cPICStubInterfaceRcode_size_to_size6kMi_i_: icBuffer.o;
text: .text%__1cPICStubInterfaceKinitialize6MpnEStub_i_v_: icBuffer.o;
text: .text%__1cSleaP_eReg_immINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNcmpL_LEGTNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateQ_sub_Op_URShiftL6MpknENode__v_;
text: .text%__1cIModLNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cJAssemblerEcmpl6MpnMRegisterImpl_i_v_;
@@ -2844,10 +2706,8 @@ text: .text%__1cIMulINodeKmul_opcode6kM_i_: classes.o;
text: .text%__1cNsubL_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVCallRuntimeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cODeoptimizationVtrap_state_has_reason6Fii_i_;
-text: .text%__1cNaddL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadBNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cRmulI_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cS__ieee754_rem_pio26Fdpd_i_: sharedRuntimeTrig.o;
text: .text%__1cSThreadLocalStorageNpd_set_thread6FpnGThread__v_;
text: .text%__1cSThreadLocalStorageKset_thread6FpnGThread__v_;
text: .text%__1cSThreadLocalStoragebBget_thread_via_cache_slowly6FIi_pnGThread__;
@@ -2870,7 +2730,6 @@ text: .text%__1cICmpDNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIDivDNodeGOpcode6kM_i_;
text: .text%__1cHCompileQgrow_alias_types6M_v_;
text: .text%JVM_GetClassCPTypes;
-text: .text%__1cUverify_byte_codes_fn6F_pv_: verifier.o;
text: .text%JVM_GetClassMethodsCount;
text: .text%JVM_GetClassCPEntriesCount;
text: .text%JVM_GetClassFieldsCount;
@@ -2878,7 +2737,6 @@ text: .text%__1cKstoreBNodeFreloc6kM_i_;
text: .text%__1cPconvI2F_SSFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQjava_lang_ThreadKset_thread6FpnHoopDesc_pnKJavaThread__v_;
text: .text%__1cMdecI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPconvI2L_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOMacroAssemblerKverify_FPU6Mipkc_v_;
text: .text%__1cJLoadFNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cMloadConDNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2920,7 +2778,6 @@ text: .text%__1cRandL_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMloadConFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_MinI6MpknENode__v_;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_;
-text: .text%__1cNminI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFMutex2T6M_v_;
text: .text%lwp_mutex_destroy: os_solaris.o;
text: .text%__1cHMonitor2T6M_v_;
@@ -2942,7 +2799,6 @@ text: .text%__1cXroundDouble_mem_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__
text: .text%__1cJCodeCacheFfirst6F_pnICodeBlob__;
text: .text%__1cNaddP_eRegNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cICodeHeapLfirst_block6kM_pnJHeapBlock__;
-text: .text%__1cXcmpL_reg_flags_LEGTNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPciObjectFactoryPinsert_non_perm6Mrpn0ANNonPermObject_pnHoopDesc_pnIciObject__v_;
text: .text%__1cKloadUBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cISubDNodeGOpcode6kM_i_;
@@ -2951,7 +2807,6 @@ text: .text%__1cSObjectSynchronizerGnotify6FnGHandle_pnGThread__v_;
text: .text%__1cOcmpD_cc_P6NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLConvD2FNodeGOpcode6kM_i_;
text: .text%__1cTmembar_volatileNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cSshrL_eReg_1_31NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_MonitorNotify;
text: .text%__1cFParseNdo_instanceof6M_v_;
text: .text%__1cJAssemblerEshrl6MpnMRegisterImpl_i_v_;
@@ -2967,7 +2822,6 @@ text: .text%__1cYjava_lang_reflect_MethodWset_annotation_default6FpnHoopDesc_2_v
text: .text%__1cZCallDynamicJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMulFNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cFStateN_sub_Op_LoadF6MpknENode__v_;
-text: .text%__1cNandI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cWPredictedCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cYjava_lang_reflect_MethodGcreate6FpnGThread__nGHandle__;
text: .text%__1cYjava_lang_reflect_MethodJset_clazz6FpnHoopDesc_2_v_;
@@ -2985,7 +2839,6 @@ text: .text%__1cINegDNodeGOpcode6kM_i_;
text: .text%__1cNCallGeneratorRfor_uncommon_trap6FpnIciMethod_nODeoptimizationLDeoptReason_n0CLDeoptAction__p0_;
text: .text%__1cNmodI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateP_sub_Op_LShiftL6MpknENode__v_;
-text: .text%__1cNmodI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLConvI2DNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cIGraphKitJpush_pair6MpnENode__v_: callGenerator.o;
text: .text%__1cZUncommonTrapCallGeneratorIgenerate6MpnIJVMState__2_;
@@ -2995,9 +2848,7 @@ text: .text%__1cJAssemblerFfld_d6MnHAddress__v_;
text: .text%__1cJloadFNodeFreloc6kM_i_;
text: .text%__1cMincI_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cVCallRuntimeDirectNodeKmethod_set6Mi_v_;
-text: .text%__1cRaddI_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOGenerateOopMapKinit_state6M_v_;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cOGenerateOopMapTmark_reachable_code6M_v_;
text: .text%__1cOGenerateOopMapPinitialize_vars6M_v_;
text: .text%__1cNinstanceKlassSregister_finalizer6FpnPinstanceOopDesc_pnGThread__2_;
@@ -3013,7 +2864,6 @@ text: .text%__1cMmulD_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQjava_lang_SystemSin_offset_in_bytes6F_i_;
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cQjava_lang_SystemTout_offset_in_bytes6F_i_;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cNmulI_eRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIRetTableRcompute_ret_table6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMapLcompute_map6MpnGThread__v_;
@@ -3032,7 +2882,6 @@ text: .text%__1cQjava_lang_ThreadMset_priority6FpnHoopDesc_nOThreadPriority__v_;
text: .text%__1cIMulDNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cOmulF24_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOGenerateOopMapPdo_monitorenter6Mi_v_;
-text: .text%__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cOjmpLoopEndNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cOjmpLoopEndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOGenerateOopMapMmonitor_push6MnNCellTypeState__v_;
@@ -3054,7 +2903,6 @@ text: .text%__1cNinstanceKlassYremove_dependent_nmethod6MpnHnmethod__v_;
text: .text%__1cNsubI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cTcmovII_reg_LEGTNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cJAssemblerFfld_s6MnHAddress__v_;
-text: .text%__1cVscale_to_lwp_priority6Fiii_i_: os_solaris.o;
text: .text%__1cNxorI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJMemRegionMintersection6kMk0_0_;
text: .text%__1cMincI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3098,7 +2946,6 @@ text: .text%jni_NewObjectArray: jni.o;
text: .text%__1cKCompiledICKcached_oop6kM_pnHoopDesc__;
text: .text%__1cFStateM_sub_Op_MulI6MpknENode__v_;
text: .text%__1cCosPpd_start_thread6FpnGThread__v_;
-text: .text%__1cNsubL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPRoundDoubleNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cXjava_lang_reflect_FieldIset_slot6FpnHoopDesc_i_v_;
text: .text%__1cKReflectionInew_type6FnMsymbolHandle_nLKlassHandle_pnGThread__nGHandle__;
@@ -3144,9 +2991,7 @@ text: .text%jni_GetFloatArrayRegion: jni.o;
text: .text%__1cKJavaThreadDrun6M_v_;
text: .text%__1cKJavaThreadRthread_main_inner6M_v_;
text: .text%__1cKReflectionbFbasic_type_mirror_to_basic_type6FpnHoopDesc_pnGThread__nJBasicType__;
-text: .text%__1cM__kernel_cos6Fdd_d_: sharedRuntimeTrig.o;
text: .text%__1cJAssemblerFcmovl6Mn0AJCondition_pnMRegisterImpl_3_v_;
-text: .text%__1cM__kernel_sin6Fddi_d_: sharedRuntimeTrig.o;
text: .text%__1cSleaP_eReg_immINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOPhaseIdealLoopJclone_iff6MpnHPhiNode_pnNIdealLoopTree__pnIBoolNode__;
text: .text%__1cGThreadFstart6Fp0_v_;
@@ -3154,7 +2999,6 @@ text: .text%__1cNSharedRuntimeEdsin6Fd_d_;
text: .text%__1cNSharedRuntimeEdcos6Fd_d_;
text: .text%jni_CallStaticVoidMethod: jni.o;
text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
-text: .text%__1cSshlL_eReg_1_31NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNsymbolOopDescWas_klass_external_name6kM_pkc_;
text: .text%__1cNdecI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cTconvF2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -3165,7 +3009,6 @@ text: .text%JVM_IsArrayClass;
text: .text%__1cHTypePtrFxdual6kM_pknEType__;
text: .text%__1cSMachBreakpointNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cQshrI_eReg_CLNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cRmulI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_GetClassName;
text: .text%__1cSsarL_eReg_1_31NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLStringTableGintern6FpkcpnGThread__pnHoopDesc__;
@@ -3184,7 +3027,6 @@ text: .text%__1cJArrayDataKcell_count6M_i_: ciMethodData.o;
text: .text%JVM_Open;
text: .text%__1cQjava_lang_ThreadIpriority6FpnHoopDesc__nOThreadPriority__;
text: .text%__1cQjava_lang_ThreadJstackSize6FpnHoopDesc__x_;
-text: .text%__1cYcmpL_zero_flags_EQdDNENodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNObjectMonitorJnotifyAll6MpnGThread__v_;
text: .text%__1cNPerfByteArray2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability_i_v_;
text: .text%JVM_StartThread;
@@ -3192,9 +3034,7 @@ text: .text%__1cQComputeCallStackIdo_array6Mii_v_: generateOopMap.o;
text: .text%__1cMthread_entry6FpnKJavaThread_pnGThread__v_: jvm.o;
text: .text%__1cOMacroAssemblerKnull_check6MpnMRegisterImpl_i_v_;
text: .text%__1cGICStubLdestination6kM_pC_;
-text: .text%__1cYcmpL_zero_flags_LEGTNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLConvD2INodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cRxorI_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRInlineCacheBufferVic_buffer_entry_point6FpC_1_;
text: .text%__1cKJavaThreadHprepare6MpnI_jobject_nOThreadPriority__v_;
text: .text%jni_GetStaticObjectField: jni.o;
@@ -3250,13 +3090,11 @@ text: .text%__1cFStateO_sub_Op_StoreF6MpknENode__v_;
text: .text%__1cQaddD_reg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTsarL_eReg_32_63NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_CallObjectMethod: jni.o;
-text: .text%__1cNaddP_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNaddP_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLOptoRuntimeMrethrow_Type6F_pknITypeFunc__;
text: .text%__1cMstoreSSPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRandI_eReg_memNodeFreloc6kM_i_;
text: .text%__1cRCardTableModRefBSPclear_MemRegion6MnJMemRegion__v_;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
text: .text%__1cRInlineCacheBufferLnew_ic_stub6F_pnGICStub__;
text: .text%__1cRInlineCacheBufferWcreate_transition_stub6FpnKCompiledIC_pnHoopDesc_pC_v_;
text: .text%__1cRInlineCacheBufferXassemble_ic_buffer_code6FpCpnHoopDesc_1_v_;
@@ -3276,7 +3114,6 @@ text: .text%__1cMsubD_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%JVM_MonitorNotifyAll;
text: .text%__1cLConvI2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cKConv2BNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cNmaxI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSvframeArrayElementDbci6kM_i_;
text: .text%__1cIDivDNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cMloadConFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3289,15 +3126,12 @@ text: .text%__1cXJNI_ArgumentPusherVaArgJget_float6M_v_: jni.o;
text: .text%__1cTcmovII_reg_LTGENodeQuse_cisc_RegMask6M_v_;
text: .text%__1cSPerfStringConstant2t6MnJCounterNS_pkc3_v_;
text: .text%__1cIMulDNodeGmul_id6kM_pknEType__: classes.o;
-text: .text%__1cQorI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPPerfDataManagerWcreate_string_constant6FnJCounterNS_pkc3pnGThread__pnSPerfStringConstant__;
text: .text%__1cOMacroAssemblerFleave6M_v_;
text: .text%JVM_GetInheritedAccessControlContext;
text: .text%JVM_NativePath;
text: .text%__1cQjava_lang_ThreadbGinherited_access_control_context6FpnHoopDesc__2_;
text: .text%__1cVLoaderConstraintTableJnew_entry6MIpnNsymbolOopDesc_pnMklassOopDesc_ii_pnVLoaderConstraintEntry__;
-text: .text%__1cVloadConL_low_onlyNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cQsalI_eReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateT_sub_Op_CallRuntime6MpknENode__v_;
text: .text%__1cCosXnon_memory_address_word6F_pc_;
text: .text%__1cQsalI_eReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3307,7 +3141,6 @@ text: .text%__1cNandI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVCallRuntimeDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOmulF24_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cRandL_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTshrL_eReg_32_63NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOaddF24_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cNcmovP_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKCompiledICOset_cached_oop6MpnHoopDesc__v_;
@@ -3319,7 +3152,6 @@ text: .text%__1cKCompiledICMstub_address6kM_pC_;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MpnMRegisterImpl_i_v_;
text: .text%__1cKstoreFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSaddD_reg_roundNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMdecI_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPciInstanceKlassLjava_mirror6M_pnKciInstance__;
text: .text%__1cISubDNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKReflectionTunbox_for_primitive6FpnHoopDesc_pnGjvalue_pnGThread__nJBasicType__;
@@ -3342,13 +3174,11 @@ text: .text%__1cLConvI2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cQsalL_eReg_CLNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cNSafePointNodeQpeek_monitor_obj6kM_pnENode__;
text: .text%__1cVcompiledICHolderKlassToop_adjust_pointers6MpnHoopDesc__i_;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cPoldgetTimeNanos6F_x_: os_solaris.o;
text: .text%__1cVcompiledICHolderKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cIDivLNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFn0AJOperation__v4_v_;
text: .text%__1cYinternal_word_RelocationGtarget6M_pC_;
-text: .text%__1cRxorI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerEsarl6MpnMRegisterImpl_i_v_;
text: .text%__1cIModLNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cFParsePdo_monitor_exit6M_v_;
@@ -3368,7 +3198,6 @@ text: .text%__1cFParseMdo_anewarray6M_v_;
text: .text%__1cJLoadDNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cXjava_lang_reflect_FieldFclazz6FpnHoopDesc__2_;
text: .text%__1cMsubD_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cOcmpD_cc_P6NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTcmovII_reg_EQdDNENodeQuse_cisc_RegMask6M_v_;
text: .text%__1cFStateM_sub_Op_CmpD6MpknENode__v_;
text: .text%__1cXjava_lang_reflect_FieldJmodifiers6FpnHoopDesc__i_;
@@ -3391,7 +3220,6 @@ text: .text%__1cKEntryPoint2t6M_v_;
text: .text%__1cKstoreINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cXcmpL_reg_flags_LTGENodeIpipeline6kM_pknIPipeline__;
text: .text%__1cSMachBreakpointNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQshrI_eReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cKemit_break6FrnKCodeBuffer__v_;
text: .text%__1cQshrI_eReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIciMethodVget_osr_flow_analysis6Mi_pnKciTypeFlow__;
@@ -3443,7 +3271,6 @@ text: .text%__1cOcompiledVFrameImonitors6kM_pnNGrowableArray4CpnLMonitorInfo____
text: .text%__1cRsubL_eReg_memNodeFreloc6kM_i_;
text: .text%__1cMTailJumpNodeKmatch_edge6kMI_I_;
text: .text%__1cFStateP_sub_Op_ConvF2D6MpknENode__v_;
-text: .text%__1cNdivL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNinstanceKlassPadd_osr_nmethod6MpnHnmethod__v_;
text: .text%__1cHThreadsbMis_supported_jni_version_including_1_16Fi_C_;
text: .text%__1cFStateM_sub_Op_DivL6MpknENode__v_;
@@ -3458,7 +3285,6 @@ text: .text%__1cNmodI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cLStrCompNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cJAssemblerGfrstor6MnHAddress__v_;
text: .text%JVM_GetCPFieldModifiers;
-text: .text%__1cSUnsafe_DefineClass6FpnHJNIEnv__pnI_jstring_pnL_jbyteArray_iipnI_jobject_7_pnH_jclass__: unsafe.o;
text: .text%__1cJBasicLockHmove_to6MpnHoopDesc_p0_v_;
text: .text%__1cSObjectSynchronizerOinflate_helper6FpnHoopDesc__pnNObjectMonitor__: synchronizer.o;
text: .text%__1cSdivD_reg_roundNodeLout_RegMask6kM_rknHRegMask__;
@@ -3480,15 +3306,10 @@ text: .text%__1cLPSMarkSweepRmark_sweep_phase46F_v_;
text: .text%__1cYjava_lang_reflect_MethodPparameter_types6FpnHoopDesc__2_;
text: .text%__1cLPSMarkSweepbAreset_millis_since_last_gc6F_v_;
text: .text%__1cUPSAdaptiveSizePolicyUmajor_collection_end6MInHGCCauseFCause__v_;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cJCodeCacheLgc_epilogue6F_v_;
text: .text%__1cJMarkSweepNrestore_marks6F_v_;
-text: .text%__1cQUncommonTrapBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNExceptionBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cYinternal_word_RelocationFvalue6M_pC_: relocInfo.o;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
-text: .text%__1cMset_property6FnGHandle_pkc2pnGThread__v_: jvm.o;
text: .text%__1cJCodeCacheLgc_prologue6F_v_;
text: .text%__1cHJNIEnv_JNewObject6MpnH_jclass_pnK_jmethodID_E_pnI_jobject__: jni.o;
text: .text%__1cLPSMarkSweepPallocate_stacks6F_v_;
@@ -3501,7 +3322,6 @@ text: .text%__1cMincI_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cUPSAdaptiveSizePolicyWmajor_collection_begin6M_v_;
text: .text%__1cJMarkSweepMadjust_marks6F_v_;
text: .text%__1cJMarkSweepXfollow_weak_klass_links6F_v_;
-text: .text%__1cNmodL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%jni_AllocObject: jni.o;
text: .text%__1cPcmpFastLockNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQSystemDictionaryYalways_strong_classes_do6FpnKOopClosure__v_;
@@ -3512,7 +3332,6 @@ text: .text%__1cUPSMarkSweepDecoratorbHset_destination_decorator_tenured6F_v_;
text: .text%JVM_InvokeMethod;
text: .text%__1cQSystemDictionaryValways_strong_oops_do6FpnKOopClosure__v_;
text: .text%__1cFKlassWcompute_modifier_flags6kMpnGThread__i_;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
text: .text%__1cIPSOldGenKprecompact6M_v_;
text: .text%__1cHThreadsLgc_epilogue6F_v_;
text: .text%__1cHThreadsLgc_prologue6F_v_;
@@ -3522,9 +3341,7 @@ text: .text%__1cHi2bNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQSystemDictionaryPplaceholders_do6FpnKOopClosure__v_;
text: .text%__1cFStateM_sub_Op_ModL6MpknENode__v_;
text: .text%__1cJPSPermGenKprecompact6M_v_;
-text: .text%__1cHi2bNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTleaPIdxScaleOffNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMincI_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cKDictionaryYalways_strong_classes_do6MpnKOopClosure__v_;
text: .text%__1cNTemplateTableMlocals_index6FpnMRegisterImpl_i_v_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFn0AJCondition__v4_v_;
@@ -3533,7 +3350,6 @@ text: .text%__1cOaddF24_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNcmovI_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJStubQdDueueMremove_first6Mi_v_;
text: .text%__1cSsarL_eReg_1_31NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNloadConL0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_NewArray;
text: .text%__1cLConvF2INodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cOcmpF_cc_P6NodeLout_RegMask6kM_rknHRegMask__;
@@ -3545,7 +3361,6 @@ text: .text%__1cNTemplateTableHconvert6F_v_;
text: .text%__1cZInterpreterMacroAssemblerNunlock_object6MpnMRegisterImpl__v_;
text: .text%__1cSmulF24_reg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivDNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cTconvD2I_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMulFNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cFStateP_sub_Op_ConvD2I6MpknENode__v_;
text: .text%__1cLMoveF2INodeGOpcode6kM_i_;
@@ -3575,13 +3390,11 @@ text: .text%JVM_GetSystemPackage;
text: .text%__1cLStatSamplerTget_system_property6FpkcpnGThread__2_;
text: .text%__1cPconvL2D_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cXPartialSubtypeCheckNodeLbottom_type6kM_pknEType__: classes.o;
-text: .text%__1cOresolve_symbol6Fpkc_pC_: os_solaris.o;
text: .text%__1cPMultiBranchDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_;
text: .text%JVM_RawMonitorCreate;
text: .text%__1cQConstantIntValue2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cOMacroAssemblerTset_last_Java_frame6MpnMRegisterImpl_22pC_v_;
text: .text%__1cOMacroAssemblerRcall_VM_leaf_base6MpCi_v_;
-text: .text%__1cSstring_compareNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubFNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cFStateP_sub_Op_StrComp6MpknENode__v_;
text: .text%__1cFStateP_sub_Op_ConvI2F6MpknENode__v_;
@@ -3599,13 +3412,10 @@ text: .text%__1cQinstanceRefKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread
text: .text%__1cLvframeArrayPunpack_to_stack6MrnFframe_i_v_;
text: .text%__1cLvframeArrayZdeallocate_monitor_chunks6M_v_;
text: .text%__1cOstoreF_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cVcompiledICHolderKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNcmovI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cImulINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQsalL_eReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_CompareAndSwapInt;
text: .text%__1cZInterpreterMacroAssemblerPset_mdp_data_at6MpnMRegisterImpl_i2_v_;
-text: .text%__1cRsubI_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cQsalL_eReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMsubD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMnegD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3634,7 +3444,6 @@ text: .text%__1cODeoptimizationYfetch_unroll_info_helper6FpnKJavaThread__pn0ALUn
text: .text%__1cOMacroAssemblerFenter6M_v_;
text: .text%Unsafe_GetNativeByte;
text: .text%__1cOMacroAssemblerNpop_FPU_state6M_v_;
-text: .text%__1cTsarL_eReg_32_63NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPconvL2F_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKCMoveLNodeGOpcode6kM_i_;
text: .text%JVM_NanoTime;
@@ -3657,10 +3466,8 @@ text: .text%__1cFStateP_sub_Op_ConvI2D6MpknENode__v_;
text: .text%__1cJAssemblerEmovw6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cQshrL_eReg_CLNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cFStateM_sub_Op_AddF6MpknENode__v_;
-text: .text%__1cParrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%jint_cmp: parse2.o;
text: .text%__1cJAssemblerExorl6MpnMRegisterImpl_i_v_;
-text: .text%__1cPBytecode_invokeLresult_type6kMpnGThread__nJBasicType__;
text: .text%jni_CallVoidMethod: jni.o;
text: .text%__1cOsubF24_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOstoreF_immNodeOmemory_operand6kM_pknIMachOper__;
@@ -3683,7 +3490,6 @@ text: .text%__1cPmovI_nocopyNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJAssemblerFfwait6M_v_;
text: .text%__1cJAssemblerKrepne_scan6M_v_;
text: .text%__1cNRegisterSaverWrestore_live_registers6FpnOMacroAssembler__v_;
-text: .text%__1cRandL_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNcmovL_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerMdispatch_via6MnITosState_ppC_v_;
text: .text%__1cImulINodeOmemory_operand6kM_pknIMachOper__;
@@ -3702,12 +3508,10 @@ text: .text%__1cJCmpF3NodeGOpcode6kM_i_;
text: .text%__1cIAddDNodeIIdentity6MpnOPhaseTransform__pnENode__: classes.o;
text: .text%__1cJAssemblerFtestb6MpnMRegisterImpl_i_v_;
text: .text%__1cNTemplateTableQfast_accessfield6FnITosState__v_;
-text: .text%__1cOmulIS_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_StaticFieldBaseFromField;
text: .text%__1cNTemplateTableZjvmti_post_fast_field_mod6F_v_;
text: .text%__1cNTemplateTablePfast_storefield6FnITosState__v_;
text: .text%Unsafe_StaticFieldOffset;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%Unsafe_GetObjectVolatile;
text: .text%__1cHnmethodFflush6M_v_;
text: .text%__1cHnmethodSflush_dependencies6MpnRBoolObjectClosure__v_;
@@ -3717,7 +3521,6 @@ text: .text%__1cQciTypeArrayKlass2t6MnLKlassHandle__v_;
text: .text%__1cNaddP_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIMachOperNbase_position6kM_i_;
text: .text%__1cZInterpreterMacroAssemblerGf2ieee6M_v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%Unsafe_EnsureClassInitialized;
text: .text%__1cIciSymbolHas_utf86M_pkc_;
text: .text%__1cOtypeArrayKlassNexternal_name6FnJBasicType__pkc_;
@@ -3728,7 +3531,6 @@ text: .text%__1cIciMethodMnative_entry6M_pC_;
text: .text%__1cNdivI_eRegNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJAssemblerHfincstp6M_v_;
text: .text%__1cETypeFxdual6kM_pk0_;
-text: .text%__1cQorI_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOMacroAssemblerEfpop6M_v_;
text: .text%__1cLOptoRuntimeTmultianewarray_Type6Fi_pknITypeFunc__;
text: .text%__1cOGenerateOopMapGdo_jsr6Mi_v_;
@@ -3741,7 +3543,6 @@ text: .text%jni_RegisterNatives: jni.o;
text: .text%__1cSmulF24_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cSaddF24_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%JVM_GetClassDeclaredFields;
-text: .text%stat: os_solaris.o;
text: .text%JVM_IsSameClassPackage;
text: .text%__1cCosMuser_handler6F_pv_;
text: .text%__1cQSystemDictionaryPresolve_or_null6FnMsymbolHandle_pnGThread__pnMklassOopDesc__;
@@ -3793,9 +3594,7 @@ text: .text%JVM_LoadLibrary;
text: .text%JVM_IsSupportedJNIVersion;
text: .text%__1cOstoreF_immNodeFreloc6kM_i_;
text: .text%__1cPPerfLongVariant2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability_pnUPerfLongSampleHelper__v_;
-text: .text%__1cNmulI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerGfild_d6MnHAddress__v_;
-text: .text%__1cRmulI_imm_highNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_ObjectFieldOffset;
text: .text%__1cRaddL_eReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerEincl6MnHAddress__v_;
@@ -3835,20 +3634,14 @@ text: .text%__1cHnmethodbJcontinuation_for_implicit_exception6MpC_1_;
text: .text%__1cWImplicitExceptionTable2t6MpknHnmethod__v_;
text: .text%__1cPPerfDataManagerUcreate_long_variable6FnJCounterNS_pkcnIPerfDataFUnits_pnUPerfLongSampleHelper_pnGThread__pnQPerfLongVariable__;
text: .text%__1cKExceptionsK_throw_oop6FpnGThread_pkcipnHoopDesc__v_;
-text: .text%__1cNdivI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLVtableStubsPstub_containing6FpC_pnKVtableStub__;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
text: .text%__1cFStateP_sub_Op_ConvF2I6MpknENode__v_;
-text: .text%__1cODeoptimizationYreset_invocation_counter6FpnJScopeDesc_i_v_;
text: .text%__1cQshrL_eReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTconvF2I_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNCellTypeStateImake_any6Fi_0_: generateOopMap.o;
text: .text%__1cJAssemblerEmovb6MnHAddress_i_v_;
text: .text%__1cPPerfDataManagerKname_space6Fpkc2i_pc_;
-text: .text%__1cTshlL_eReg_32_63NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cWImplicitExceptionTableCat6kMI_I_;
-text: .text%__1cQshrL_eReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cSsarL_eReg_1_31NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerFfinit6M_v_;
text: .text%__1cFParseRjump_if_true_fork6MpnGIfNode_ii_v_;
text: .text%__1cKVtableStubRpd_code_alignment6F_i_;
@@ -3889,7 +3682,6 @@ text: .text%__1cIRetTableHadd_jsr6Mii_v_;
text: .text%__1cNTemplateTableFfload6Fi_v_;
text: .text%__1cNTemplateTableFlload6Fi_v_;
text: .text%__1cNcmovI_memNodeFreloc6kM_i_;
-text: .text%__1cPaddress_of_flag6FnXCommandLineFlagWithType__pnEFlag__: globals.o;
text: .text%__1cNTemplateTableFiload6Fi_v_;
text: .text%__1cOGenerateOopMapTret_jump_targets_do6MpnOBytecodeStream_pFp0ipi_vi4_v_;
text: .text%__1cNdivI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3951,14 +3743,11 @@ text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cJAssemblerEandl6MpnMRegisterImpl_2_v_;
text: .text%__1cNCompileBrokerUmake_compiler_thread6FpkcpnMCompileQdDueue_pnQCompilerCounters_pnGThread__pnOCompilerThread__;
text: .text%__1cNCompileBrokerUcompiler_thread_loop6F_v_;
-text: .text%__1cOcmpF_cc_P6NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerEcdql6M_v_;
text: .text%__1cUInterpreterGeneratorbDgenerate_stack_overflow_check6M_v_;
text: .text%__1cRCardTableModRefBSbCfind_covering_region_by_base6MpnIHeapWord__i_;
-text: .text%__1cIci2bNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRCardTableModRefBSbAlargest_prev_committed_end6kMi_pnIHeapWord__;
text: .text%__1cMSysClassPathNreset_item_at6Mi_v_: arguments.o;
-text: .text%__1cLconvI2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateM_sub_Op_CmpF6MpknENode__v_;
text: .text%__1cRCardTableModRefBSVresize_covered_region6MnJMemRegion__v_;
text: .text%__1cJAssemblerDorl6MpnMRegisterImpl_nHAddress__v_;
@@ -3973,7 +3762,6 @@ text: .text%__1cOtailjmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVcompiler_thread_entry6FpnKJavaThread_pnGThread__v_: thread.o;
text: .text%__1cOCompilerThread2t6MpnMCompileQdDueue_pnQCompilerCounters__v_;
text: .text%__1cNSafepointBlob2t6MpnKCodeBuffer_ipnJOopMapSet_i_v_;
-text: .text%__1cJlookupOne6FpnHJNIEnv__pkcpnGThread__pnH_jclass__: jni.o;
text: .text%__1cUPSGenerationCounters2t6MpkciipnOPSVirtualSpace__v_;
text: .text%__1cNSafepointBlob2n6FII_pv_;
text: .text%__1cQmulD_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3992,7 +3780,6 @@ text: .text%__1cPmovP_nocopyNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_CallStaticObjectMethodV: jni.o;
text: .text%__1cIci2bNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cZInterpreterMacroAssemblerRgen_subtype_check6MpnMRegisterImpl_rnFLabel__v_;
-text: .text%__1cRaddI_mem_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_Available;
text: .text%__1cCosIjvm_path6Fpci_v_;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MpnMRegisterImpl_2i_v_;
@@ -4032,7 +3819,6 @@ text: .text%__1cFStateL_sub_Op_OrL6MpknENode__v_;
text: .text%__1cFStateM_sub_Op_SubF6MpknENode__v_;
text: .text%__1cMPeriodicTaskGenroll6M_v_;
text: .text%__1cMPeriodicTask2t6MI_v_;
-text: .text%__1cSestimate_path_freq6FpnENode__f_: loopnode.o;
text: .text%__1cFStateP_sub_Op_MoveL2D6MpknENode__v_;
text: .text%__1cNincI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNTemplateTableHcastore6F_v_;
@@ -4068,17 +3854,13 @@ text: .text%__1cHnmethodVinvalidate_osr_method6M_v_;
text: .text%__1cQAgentLibraryList2t6M_v_: arguments.o;
text: .text%__1cJAssemblerEmovb6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
-text: .text%__1cPconvL2D_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cPconvD2F_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNmulI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cINegFNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cSInterpreterRuntimeMat_safepoint6FpnKJavaThread__v_;
text: .text%__1cOGenerateOopMapTadd_to_ref_init_set6Mi_v_;
text: .text%__1cIPSOldGenOgen_size_limit6M_I_;
text: .text%__1cIPSOldGenGresize6MI_v_;
-text: .text%__1cQorl_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNciMethodKlassEmake6F_p0_;
-text: .text%__1cPconvL2F_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cUParallelScavengeHeapItop_addr6kM_ppnIHeapWord__: parallelScavengeHeap.o;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cMGCTaskThread2t6MpnNGCTaskManager_II_v_;
@@ -4086,13 +3868,10 @@ text: .text%__1cMGCTaskThreadFstart6M_v_;
text: .text%__1cMGCTaskThreadDrun6M_v_;
text: .text%__1cJLoadFNodeMstore_Opcode6kM_i_: classes.o;
text: .text%__1cUInterpreterGeneratorLlock_method6M_v_;
-text: .text%__1cXpartialSubtypeCheckNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubFNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cISubFNodeGadd_id6kM_pknEType__: classes.o;
text: .text%__1cIPSOldGenPinitialize_work6Mpkci_v_;
-text: .text%lstat: perfMemory_solaris.o;
text: .text%__1cRComputeEntryStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cPfilename_to_pid6Fpkc_l_: perfMemory_solaris.o;
text: .text%Unsafe_CompareAndSwapObject;
text: .text%__1cJCodeCachebGmake_marked_nmethods_not_entrant6F_v_;
text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpCpnMRegisterImpl__v_;
@@ -4198,7 +3977,6 @@ text: .text%__1cIVMThreadDrun6M_v_;
text: .text%__1cSThreadLocalStoragebCgenerate_code_for_get_thread6F_v_;
text: .text%__1cTtypeArrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cKTypeOopPtrFxdual6kM_pknEType__;
-text: .text%__1cKTypeOopPtrEmake6FnHTypePtrDPTR_i_pk0_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vm_version.o;
text: .text%__1cKVM_VersionWget_processor_features6F_v_;
text: .text%__1cKVM_VersionKinitialize6F_v_;
@@ -4239,9 +4017,7 @@ text: .text%__1cbAcall_initializeSystemClass6FpnGThread__v_: thread.o;
text: .text%__1cWreset_vm_info_property6FpnGThread__v_: thread.o;
text: .text%JVM_RegisterUnsafeMethods;
text: .text%__1cQvtableStubs_init6F_v_;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cTtypeArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: typeArrayKlassKlass.o;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cIUniversePcheck_alignment6FIIpkc_v_;
text: .text%__1cSinstanceKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cFJNIidKdeallocate6Fp0_v_;
@@ -4292,7 +4068,6 @@ text: .text%__1cNCellTypeStateImake_top6F_0_: generateOopMap.o;
text: .text%__1cWResolveOopMapConflictsUdo_potential_rewrite6MpnGThread__nMmethodHandle__;
text: .text%__1cJGenRemSetYmax_alignment_constraint6Fn0AEName__I_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: genCollectedHeap.o;
text: .text%__1cKNoopGCTaskQcreate_on_c_heap6F_p0_;
text: .text%__1cNGCTaskManagerKthreads_do6MpnNThreadClosure__v_;
text: .text%__1cNGCTaskManagerKinitialize6M_v_;
@@ -4398,9 +4173,6 @@ text: .text%__1cHi2sNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHi2bNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKstoreBNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOtailjmpIndNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRaddL_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cLconvP2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cIcp2bNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTconvI2F_SSF_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cQmulD_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOtailjmpIndNodeFreloc6kM_i_;
@@ -4410,7 +4182,6 @@ text: .text%__1cQaccessFlags_init6F_v_;
text: .text%__1cPconvI2L_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJArgumentsbBset_cms_and_parnew_gc_flags6F_v_;
text: .text%__1cJArgumentsTset_parnew_gc_flags6F_v_;
-text: .text%__1cQno_shared_spaces6F_v_: arguments.o;
text: .text%__1cJArgumentsMget_property6Fpkc_2_;
text: .text%__1cMSysClassPathQadd_jars_to_path6Fpcpkc_1_;
text: .text%__1cMSysClassPathPexpand_endorsed6M_v_;
@@ -4446,13 +4217,11 @@ text: .text%__1cQconstMethodKlassOset_alloc_size6MI_v_: constMethodKlass.o;
text: .text%__1cQconstMethodKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cTcompilerOracle_init6F_v_;
text: .text%__1cOCompilerOraclePparse_from_file6F_v_;
-text: .text%__1cHcc_file6F_pkc_: compilerOracle.o;
text: .text%__1cVcompiledICHolderKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: compiledICHolderKlass.o;
text: .text%__1cVcompiledICHolderKlassOset_alloc_size6MI_v_: compiledICHolderKlass.o;
text: .text%__1cVcompiledICHolderKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
text: .text%__1cSDeoptimizationBlobGcreate6FpnKCodeBuffer_pnJOopMapSet_iiii_p0_;
text: .text%__1cRCardTableModRefBSbBct_max_alignment_constraint6F_I_;
text: .text%__1cRCardTableModRefBS2t6MnJMemRegion_i_v_;
@@ -4508,20 +4277,13 @@ text: .text%__1cLStatSamplerJdisengage6F_v_;
text: .text%__1cLStatSamplerGengage6F_v_;
text: .text%__1cLStatSamplerKinitialize6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: sharedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: sharedHeap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psMarkSweep.o;
-text: .text%__1cTPSAlwaysTrueClosure2t6M_v_: psMarkSweep.o;
text: .text%__1cLPSMarkSweepKinitialize6F_v_;
text: .text%__1cbAPSGCAdaptivePolicyCounters2t6MpkciipnUPSAdaptiveSizePolicy__v_;
text: .text%__1cQPlaceholderTable2t6Mi_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: phase.o;
text: .text%__1cKPerfMemoryUdelete_memory_region6F_v_;
text: .text%__1cKPerfMemoryUcreate_memory_region6FI_v_;
-text: .text%__1cUdelete_shared_memory6FpcI_v_: perfMemory_solaris.o;
-text: .text%__1cUcreate_shared_memory6FI_pc_: perfMemory_solaris.o;
-text: .text%__1cSmmap_create_shared6FI_pc_: perfMemory_solaris.o;
-text: .text%__1cbAcreate_sharedmem_resources6Fpkc1I_i_: perfMemory_solaris.o;
-text: .text%__1cbBcleanup_sharedmem_resources6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cIPSOldGen2t6MnNReservedSpace_IIIIpkci_v_;
text: .text%__1cSReferenceProcessorMinit_statics6F_v_;
text: .text%__1cXreferenceProcessor_init6F_v_;
@@ -4602,7 +4364,6 @@ text: .text%__1cMPeriodicTask2T5B6M_v_;
text: .text%__1cQSystemDictionarybCinitialize_preloaded_classes6FpnGThread__v_;
text: .text%__1cQSystemDictionaryKinitialize6FpnGThread__v_;
text: .text%__1cQSystemDictionaryKclasses_do6FpFpnMklassOopDesc__v_v_;
-text: .text%__1cLremove_file6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cNMemoryServicebFadd_parallel_scavenge_heap_info6FpnUParallelScavengeHeap__v_;
text: .text%__1cNMemoryServiceRset_universe_heap6FpnNCollectedHeap__v_;
text: .text%__1cNMemoryManagerbEget_psMarkSweep_memory_manager6F_pnPGCMemoryManager__;
@@ -4610,11 +4371,6 @@ text: .text%__1cNMemoryManagerbDget_psScavenge_memory_manager6F_pnPGCMemoryManag
text: .text%__1cNMemoryManagerbDget_code_cache_memory_manager6F_p0_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: matcher.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: markSweep.o;
-text: .text%__1cJMarkSweepSMarkAndPushClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepRFollowRootClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepSFollowStackClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepOIsAliveClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepQKeepAliveClosure2t6M_v_: markSweep.o;
text: .text%__1cOmarksweep_init6F_v_;
text: .text%__1cNMemoryServiceXadd_psYoung_memory_pool6FpnKPSYoungGen_pnNMemoryManager_4_v_;
text: .text%__1cKmutex_init6F_v_;
@@ -4666,9 +4422,6 @@ text: .text%__1cCosEinit6F_v_;
text: .text%__1cCosHSolarisUsynchronization_init6F_v_;
text: .text%__1cCosHSolarisOlibthread_init6F_v_;
text: .text%__1cUParallelScavengeHeapYpermanent_object_iterate6MpnNObjectClosure__v_;
-text: .text%__1cWget_sharedmem_filename6Fpkci_pc_: perfMemory_solaris.o;
-text: .text%__1cNget_user_name6Fl_pc_: perfMemory_solaris.o;
-text: .text%__1cQget_user_tmp_dir6Fpkc_pc_: perfMemory_solaris.o;
text: .text%__1cKPerfMemoryHdestroy6F_v_;
text: .text%__1cKPerfMemoryKinitialize6F_v_;
text: .text%__1cPperfMemory_exit6F_v_;
@@ -4689,7 +4442,6 @@ text: .text%__1cCosXterminate_signal_thread6F_v_;
text: .text%__1cCosLsignal_init6F_v_;
text: .text%__1cTsignal_thread_entry6FpnKJavaThread_pnGThread__v_: os.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
-text: .text%__1cQDoNothingClosure2t6M_v_: oopMap.o;
text: .text%__1cSobjArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: objArrayKlassKlass.o;
text: .text%__1cSobjArrayKlassKlassbEallocate_system_objArray_klass6MpnGThread__pnMklassOopDesc__;
text: .text%__1cSobjArrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
@@ -4703,7 +4455,6 @@ text: .text%__1cCosHSolarisPinit_signal_mem6F_v_;
text: .text%__1cCosSget_temp_directory6F_pkc_;
text: .text%__1cCosbDallocate_thread_local_storage6F_i_;
text: .text%__1cCosHSolarisQsignal_sets_init6F_v_;
-text: .text%__1cQcreate_os_thread6FpnGThread_I_pnIOSThread__: os_solaris.o;
text: .text%__1cCosbDinit_system_properties_values6F_v_;
text: .text%__1cCosHSolarisWinitialize_system_info6F_v_;
text: .text%__1cCosPphysical_memory6F_X_;
diff --git a/hotspot/make/solaris/makefiles/reorder_TIERED_sparc b/hotspot/make/solaris/makefiles/reorder_TIERED_sparc
index 15c03b78514..08abc3b4377 100644
--- a/hotspot/make/solaris/makefiles/reorder_TIERED_sparc
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_sparc
@@ -4,7 +4,6 @@ text = LOAD ?RXO;
text: .text%__1cCosOjavaTimeMillis6F_x_;
text: .text%__1cQIndexSetIteratorQadvance_and_next6M_I_;
-text: .text%__1cNinstanceKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNinstanceKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cNinstanceKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cOtypeArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
@@ -33,7 +32,6 @@ text: .text%__1cETypeFuhash6Fkpk0_i_;
text: .text%__1cQIndexSetIteratorEnext6M_I_: chaitin.o;
text: .text%__1cENodeIout_grow6MI_v_;
text: .text%__1cOloadConI13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cNobjArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cENodeHadd_req6Mp0_v_;
text: .text%__1cJMarkSweepUAdjustPointerClosureGdo_oop6MppnHoopDesc__v_: markSweep.o;
text: .text%__1cNobjArrayKlassToop_follow_contents6MpnHoopDesc__v_;
@@ -45,7 +43,6 @@ text: .text%__1cHPhiNodeGOpcode6kM_i_;
text: .text%__1cKbranchNodeNis_block_proj6kM_pknENode__: ad_sparc_misc.o;
text: .text%__1cIProjNodeGOpcode6kM_i_;
text: .text%__1cETypeIhashcons6M_pk0_;
-text: .text%__1cOPhaseIdealLoopUbuild_loop_late_post6MpnENode_pk0_v_;
text: .text%__1cMPhaseChaitinTinterfere_with_live6MIpnIIndexSet__v_;
text: .text%__1cWNode_Backward_IteratorEnext6M_pnENode__;
text: .text%__1cNIdealLoopTreeJis_member6kMpk0_i_;
@@ -154,7 +151,6 @@ text: .text%__1cETypeFxmeet6kMpk0_2_;
text: .text%__1cILRG_ListGextend6MII_v_;
text: .text%__1cJVectorSet2F6kMI_i_;
text: .text%__1cENodeQIdeal_DU_postCCP6MpnIPhaseCCP__p0_;
-text: .text%__1cOtypeArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cIProjNodeEhash6kM_I_;
text: .text%__1cIAddINodeGOpcode6kM_i_;
text: .text%__1cIIndexSet2t6Mp0_v_;
@@ -168,7 +164,6 @@ text: .text%__1cICmpPNodeGOpcode6kM_i_;
text: .text%__1cKNode_ArrayGremove6MI_v_;
text: .text%__1cHPhiNodeEhash6kM_I_;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cKmethodOperJnum_edges6kM_I_: ad_sparc.o;
text: .text%__1cJStartNodeLbottom_type6kM_pknEType__;
text: .text%__1cHTypeIntFxmeet6kMpknEType__3_;
@@ -502,7 +497,6 @@ text: .text%__1cNObjectMonitorFenter6MpnGThread__v_;
text: .text%__1cENodeKreplace_by6Mp0_v_;
text: .text%__1cSObjectSynchronizerJslow_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cMMergeMemNodePiteration_setup6Mpk0_v_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cKDictionaryEfind6MiInMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cRMachSpillCopyNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKRegionNodeIIdentity6MpnOPhaseTransform__pnENode__;
@@ -605,7 +599,6 @@ text: .text%__1cMTypeKlassPtrEhash6kM_i_;
text: .text%__1cMCallLeafNodeGOpcode6kM_i_;
text: .text%__1cSCallLeafDirectNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHPhiNodeEmake6FpnENode_2pknEType_pknHTypePtr__p0_;
-text: .text%__1cIAddPNodeQmach_bottom_type6FpknIMachNode__pknEType__;
text: .text%__1cOcompU_iRegNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJiRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNflagsRegPOperKin_RegMask6kMi_pknHRegMask__;
@@ -640,7 +633,6 @@ text: .text%__1cJStartNodeGOpcode6kM_i_;
text: .text%__1cQregF_to_stkINodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cENodeDcmp6kMrk0_I_;
text: .text%__1cHTypeIntFxdual6kM_pknEType__;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cMmerge_region6FpnKRegionNode_pnIPhaseGVN__pnENode__: cfgnode.o;
text: .text%__1cJAssemblerOpatched_branch6Fiii_i_;
text: .text%__1cJAssemblerSbranch_destination6Fii_i_;
@@ -738,10 +730,7 @@ text: .text%__1cMLinkResolverOresolve_invoke6FrnICallInfo_nGHandle_nSconstantPoo
text: .text%__1cIBoolNodeJideal_reg6kM_I_: subnode.o;
text: .text%__1cHCmpNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cRloadConP_pollNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cETypeFwiden6kMpk0_2_: type.o;
text: .text%__1cLstoreI0NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cMloadConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJBytecodesECode__pnNmethodOopDesc__;
text: .text%__1cKDictionaryKfind_class6MiInMsymbolHandle_nGHandle__pnMklassOopDesc__;
@@ -755,7 +744,6 @@ text: .text%__1cSInterpreterRuntimeMmonitorenter6FpnKJavaThread_pnPBasicObjectLo
text: .text%__1cSInterpreterRuntimePresolve_get_put6FpnKJavaThread_nJBytecodesECode__v_;
text: .text%__1cQsubI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cXmembar_acquire_lockNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cQaddP_reg_regNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cPCountedLoopNodeGOpcode6kM_i_;
text: .text%__1cSInterpreterRuntimeLmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cIAndLNodeGOpcode6kM_i_;
@@ -826,7 +814,6 @@ text: .text%__1cURethrowExceptionNodeNis_block_proj6kM_pknENode__: ad_sparc_misc
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cQsubI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadBNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cQaddP_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKmethodOperGmethod6kM_i_: ad_sparc.o;
text: .text%__1cFKlassIsubklass6kM_p0_;
@@ -946,7 +933,6 @@ text: .text%__1cIGraphKitOreplace_in_map6MpnENode_2_v_;
text: .text%__1cNinstanceKlassLfind_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cHCompileKTracePhase2T6M_v_;
text: .text%__1cMPhaseChaitinLclone_projs6MpnFBlock_IpnENode_4rI_i_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
text: .text%__1cIJVMState2t6MpnIciMethod_p0_v_;
text: .text%__1cIHaltNode2t6MpnENode_2_v_;
text: .text%__1cLOptoRuntimeSuncommon_trap_Type6F_pknITypeFunc__;
@@ -954,7 +940,6 @@ text: .text%__1cJloadLNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cSsafePoint_pollNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cINodeHashJhash_find6MpknENode__p1_;
text: .text%__1cQmulL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cSaddP_reg_imm13NodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cOMethodLivenessKBasicBlock2t6Mp0ii_v_;
text: .text%__1cOMethodLivenessKBasicBlockQcompute_gen_kill6MpnIciMethod__v_;
text: .text%__1cOGenerateOopMapFppush6MpnNCellTypeState__v_;
@@ -987,7 +972,6 @@ text: .text%__1cFParseHdo_call6M_v_;
text: .text%__1cNloadConP0NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cHMulNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMPhaseIterGVNJtransform6MpnENode__2_;
-text: .text%__1cHTypeIntFwiden6kMpknEType__3_;
text: .text%__1cSsafePoint_pollNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadSNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKarrayKlassLobject_size6kMi_i_;
@@ -1019,7 +1003,6 @@ text: .text%__1cIBoolNodeHsize_of6kM_I_;
text: .text%__1cSobjArrayKlassKlassIoop_size6kMpnHoopDesc__i_: objArrayKlassKlass.o;
text: .text%__1cPcompP_iRegPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJloadPNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cNSignatureInfoGdo_int6M_v_: bytecode.o;
text: .text%__1cOstackSlotLOperKin_RegMask6kMi_pknHRegMask__;
@@ -1038,9 +1021,7 @@ text: .text%__1cMloadConINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGIfNodeHsize_of6kM_I_: classes.o;
text: .text%__1cPconvL2I_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIimmLOperJconstantL6kM_x_: ad_sparc_clone.o;
-text: .text%__1cTStackWalkCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%jni_GetByteArrayRegion: jni.o;
-text: .text%__1cIGraphKitTset_all_memory_call6MpnENode__v_;
text: .text%__1cSHighResTimeSamplerLtake_sample6M_x_: statSampler.o;
text: .text%__1cHCompileFstart6kM_pnJStartNode__;
text: .text%__1cPStatSamplerTaskEtask6M_v_: statSampler.o;
@@ -1082,7 +1063,6 @@ text: .text%__1cXinitialize_static_field6FpnPfieldDescriptor_pnGThread__v_: clas
text: .text%__1cURethrowExceptionNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOJNIHandleBlockOallocate_block6FpnGThread__p0_;
text: .text%__1cNSignatureInfoHdo_bool6M_v_: bytecode.o;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cSandI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIAddINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cLTypeInstPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
@@ -1095,7 +1075,6 @@ text: .text%__1cPorI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLRethrowNodeGOpcode6kM_i_;
text: .text%__1cJloadSNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cICodeHeapIcapacity6kM_I_;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cPcmpFastLockNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
@@ -1136,7 +1115,6 @@ text: .text%__1cJloadSNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cIJumpDataKcell_count6M_i_: ciMethodData.o;
text: .text%__1cObranchConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cITypeFuncFxdual6kM_pknEType__;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%__1cFStateM_sub_Op_CmpI6MpknENode__v_;
text: .text%__1cJcmpOpOperFccode6kM_i_: ad_sparc_clone.o;
text: .text%__1cGciType2t6MnLKlassHandle__v_;
@@ -1200,7 +1178,6 @@ text: .text%__1cQmulL_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cLstoreP0NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLRethrowNodeKmatch_edge6kMI_I_;
text: .text%__1cFTypeFEhash6kM_i_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cFStateM_sub_Op_AddI6MpknENode__v_;
text: .text%__1cOParseGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cFParseQcreate_entry_map6M_pnNSafePointNode__;
@@ -1213,17 +1190,13 @@ text: .text%__1cFParsePdo_method_entry6M_v_;
text: .text%__1cNCallGeneratorKfor_inline6FpnIciMethod_f_p0_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2t6M_v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2T6M_v_;
-text: .text%__1cQconstMethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cRciVirtualCallDataOtranslate_from6MpnLProfileData__v_;
text: .text%jni_IsSameObject: jni.o;
text: .text%__1cMloadConINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNbranchConNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cNbranchConNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQandL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cLmethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cLsymbolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cIciObjectFklass6M_pnHciKlass__;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
text: .text%__1cPThreadLocalNodeGOpcode6kM_i_;
text: .text%__1cZPhaseConservativeCoalesceKupdate_ifg6MIIpnIIndexSet_2_v_;
text: .text%__1cZPhaseConservativeCoalesceMunion_helper6MpnENode_2II222pnFBlock_I_v_;
@@ -1244,7 +1217,6 @@ text: .text%__1cRshrP_reg_imm5NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQandI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIciMethodbBinterpreter_call_site_count6Mi_i_;
text: .text%__1cGBitMapIset_from6M0_v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
text: .text%__1cTconstantPoolOopDescbDresolve_string_constants_impl6FnSconstantPoolHandle_pnGThread__v_;
text: .text%__1cHSubNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cFChunk2n6FII_pv_;
@@ -1278,7 +1250,6 @@ text: .text%__1cNCatchProjNodeDcmp6kMrknENode__I_;
text: .text%__1cKTypeOopPtrEhash6kM_i_;
text: .text%__1cIMinINodeGOpcode6kM_i_;
text: .text%__1cMURShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cKTypeRawPtrFxmeet6kMpknEType__3_;
text: .text%JVM_GetMethodIxModifiers;
text: .text%__1cIMulLNodeLbottom_type6kM_pknEType__: classes.o;
@@ -1325,7 +1296,6 @@ text: .text%__1cSconvI2D_helperNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
text: .text%__1cUcompI_iReg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOMacroAssemblerNverify_thread6M_v_;
-text: .text%__1cIGraphKitZset_results_for_java_call6MpnMCallJavaNode__pnENode__;
text: .text%__1cSbranchCon_longNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHnmethodVcleanup_inline_caches6M_v_;
text: .text%__1cTciConstantPoolCacheGinsert6Mipv_v_;
@@ -1356,12 +1326,9 @@ text: .text%__1cKoopFactoryTnew_system_objArray6FipnGThread__pnPobjArrayOopDesc_
text: .text%__1cbDcatch_cleanup_find_cloned_def6FpnFBlock_pnENode_1rnLBlock_Array_i_3_: lcm.o;
text: .text%__1cQxorI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cOClearArrayNodeKmatch_edge6kMI_I_;
text: .text%__1cPconvL2I_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJloadSNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cSFixupMirrorClosureJdo_object6MpnHoopDesc__v_: universe.o;
text: .text%__1cFStateP_sub_Op_LShiftI6MpknENode__v_;
text: .text%__1cQandL_reg_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -1387,7 +1354,6 @@ text: .text%__1cOAbstractICacheQinvalidate_range6FpCi_v_;
text: .text%__1cKstorePNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMaxINodeGOpcode6kM_i_;
text: .text%__1cTDirectCallGeneratorIgenerate6MpnIJVMState__2_;
-text: .text%__1cNCallGeneratorPfor_direct_call6FpnIciMethod__p0_;
text: .text%__1cMWarmCallInfoLalways_cold6F_p0_;
text: .text%__1cIimmDOperJconstantD6kM_d_: ad_sparc_clone.o;
text: .text%__1cIPhaseIFGEinit6MI_v_;
@@ -1512,7 +1478,6 @@ text: .text%__1cPciObjectFactoryMvm_symbol_at6Fi_pnIciSymbol__;
text: .text%__1cKDictionaryJadd_klass6MnMsymbolHandle_nGHandle_nLKlassHandle__v_;
text: .text%__1cVshrL_reg_imm6_L2INodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cZCallDynamicJavaDirectNodePoper_input_base6kM_I_: ad_sparc_misc.o;
-text: .text%__1cIGraphKitTcreate_and_xform_if6MpnENode_2ff_pnGIfNode__: graphKit.o;
text: .text%__1cWImplicitExceptionTableGappend6MII_v_;
text: .text%__1cRMachNullCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLProfileDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_: ciMethodData.o;
@@ -1534,14 +1499,12 @@ text: .text%__1cFKlassMset_subklass6MpnMklassOopDesc__v_;
text: .text%__1cOGenerateOopMapLmerge_state6Fp0ipi_v_;
text: .text%__1cMTypeKlassPtrFxdual6kM_pknEType__;
text: .text%__1cQSystemDictionaryVdefine_instance_class6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cPClassFileParserbBcheck_final_method_override6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cJCodeCachebKnumber_of_nmethods_with_dependencies6F_i_;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
text: .text%__1cPClassFileStream2t6MpCipc_v_;
text: .text%__1cNinstanceKlassSprocess_interfaces6MpnGThread__v_;
text: .text%__1cNinstanceKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cNinstanceKlassWdo_local_static_fields6MpFpnPfieldDescriptor_pnGThread__v4_v_;
text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nPtypeArrayHandle__;
text: .text%__1cFKlassKsuperklass6kM_pnNinstanceKlass__;
@@ -1561,22 +1524,17 @@ text: .text%__1cISubINodeJideal_reg6kM_I_: classes.o;
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_: instanceKlass.o;
text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlass.o;
text: .text%__1cHMemNodeHsize_of6kM_I_;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cSThreadProfilerMark2T6M_v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cQSystemDictionaryRload_shared_class6FnTinstanceKlassHandle_nGHandle_pnGThread__1_;
-text: .text%__1cKklassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cPClassFileParserbKparse_classfile_sourcefile_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cQmodI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLRShiftINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKCMoveINodeGOpcode6kM_i_;
text: .text%__1cLLShiftLNodeGOpcode6kM_i_;
text: .text%__1cYcompareAndSwapL_boolNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cSinstanceKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cNinstanceKlassScopy_static_fields6MpnSPSPromotionManager__v_;
text: .text%__1cMtlsLoadPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateQ_sub_Op_URShiftI6MpknENode__v_;
text: .text%__1cKcmpOpUOperGnegate6M_v_: ad_sparc_clone.o;
@@ -1626,7 +1584,6 @@ text: .text%__1cTOopMapForCacheEntryZfill_stackmap_for_opcodes6MpnOBytecodeStrea
text: .text%__1cSaddL_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQshrL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
text: .text%__1cILoopNodeHsize_of6kM_I_: classes.o;
text: .text%__1cHMatcherLfind_shared6MpnENode__v_;
text: .text%__1cJStartNodeHsize_of6kM_I_;
@@ -1643,8 +1600,6 @@ text: .text%__1cRcompL_reg_conNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cMLinkResolverbHlookup_instance_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cMnegF_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cNSharedRuntimebWnative_method_throw_unsatisfied_link_error_entry6F_pC_;
-text: .text%__1cTStackWalkCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
-text: .text%__1cRCompilationPolicybJreset_counter_for_back_branch_event6MnMmethodHandle__v_;
text: .text%__1cOMethodLivenessQcompute_liveness6M_v_;
text: .text%__1cOMethodLiveness2t6MpnFArena_pnIciMethod__v_;
text: .text%__1cOMethodLivenessNinit_gen_kill6M_v_;
@@ -1654,7 +1609,6 @@ text: .text%__1cIGraphKitHopt_iff6MpnENode_2_2_;
text: .text%__1cLRShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJTimeStampGupdate6M_v_;
text: .text%__1cRmethodDataOopDescKmileage_of6FpnNmethodOopDesc__i_;
-text: .text%__1cWconstantPoolCacheKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cMloadConDNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseQarray_addressing6MnJBasicType_ippknEType__pnENode__;
text: .text%__1cNloadConP0NodeLout_RegMask6kM_rknHRegMask__;
@@ -1673,7 +1627,6 @@ text: .text%__1cWstatic_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInf
text: .text%__1cNflagsRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cYciExceptionHandlerStreamPcount_remaining6M_i_;
text: .text%__1cFParseXcatch_inline_exceptions6MpnNSafePointNode__v_;
-text: .text%__1cRconstantPoolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNobjArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cKcmpOpUOperNgreater_equal6kM_i_: ad_sparc_clone.o;
text: .text%JVM_GetFieldIxModifiers;
@@ -1698,7 +1651,6 @@ text: .text%__1cKo0RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cIregDOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%__1cNSharedRuntimeXfind_callee_info_helper6FpnKJavaThread_rnMvframeStream_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cLRethrowNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSPSKeepAliveClosureGdo_oop6MppnHoopDesc__v_: psScavenge.o;
text: .text%__1cFParseFBlockRsuccessor_for_bci6Mi_p1_;
@@ -1736,7 +1688,6 @@ text: .text%__1cJCodeCacheMfind_nmethod6Fpv_pnHnmethod__;
text: .text%__1cOPhaseIdealLoopMdominated_by6MpnENode_2_v_;
text: .text%__1cQshlI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cFParseNthrow_to_exit6MpnNSafePointNode__v_;
-text: .text%__1cQinstanceRefKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cVConstantOopWriteValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cJVectorSetGslamin6Mrk0_v_;
text: .text%JVM_Clone;
@@ -1772,7 +1723,6 @@ text: .text%__1cXmembar_release_lockNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cJNode_ListEyank6MpnENode__v_;
text: .text%__1cMPhaseChaitinISimplify6M_v_;
text: .text%__1cNIdealLoopTreeIset_nest6MI_i_;
-text: .text%__1cSCallLeafDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMulLNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cMStartOSRNodeGOpcode6kM_i_;
text: .text%__1cSCallLeafDirectNodeLout_RegMask6kM_rknHRegMask__;
@@ -1792,7 +1742,6 @@ text: .text%__1cSMemBarVolatileNodeGOpcode6kM_i_;
text: .text%__1cLstoreB0NodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cRshrI_reg_imm5NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc__pc_;
-text: .text%__1cRcmpFastUnlockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNSafePointNodeLpop_monitor6M_v_;
text: .text%__1cMPhaseChaitinVfind_base_for_derived6MppnENode_2rI_2_;
text: .text%__1cLOptoRuntimebAcomplete_monitor_exit_Type6F_pknITypeFunc__;
@@ -1824,8 +1773,6 @@ text: .text%__1cOGenerateOopMapGdo_ldc6Mii_v_;
text: .text%__1cJCMoveNodeLis_cmove_id6FpnOPhaseTransform_pnENode_44pnIBoolNode__4_;
text: .text%__1cKTypeAryPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
text: .text%__1cOPhaseIdealLoopKDominators6M_v_;
-text: .text%__1cOPhaseIdealLoopPbuild_loop_late6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
-text: .text%__1cOPhaseIdealLoopQbuild_loop_early6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
text: .text%jni_NewGlobalRef: jni.o;
text: .text%__1cTciConstantPoolCache2t6MpnFArena_i_v_;
text: .text%__1cIAndINodeJideal_reg6kM_I_: classes.o;
@@ -1981,10 +1928,8 @@ text: .text%__1cFciEnvKcompile_id6M_I_;
text: .text%__1cPmethodDataKlassIallocate6MnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cKoopFactoryOnew_methodData6FnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cIAndLNodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cVshrL_reg_imm6_L2INodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLConvL2INodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cIciMethodRinstructions_size6M_i_;
text: .text%__1cSmulI_reg_imm13NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cCosXthread_local_storage_at6Fi_pv_;
text: .text%__1cMindIndexOperNconstant_disp6kM_i_: ad_sparc.o;
@@ -2013,7 +1958,6 @@ text: .text%__1cLOpaque2NodeLbottom_type6kM_pknEType__: connode.o;
text: .text%__1cSconvI2D_helperNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUPSGenerationCountersKupdate_all6M_v_: psGenerationCounters.o;
text: .text%__1cQComputeCallStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cKTypeOopPtrSmake_from_constant6FpnIciObject__pk0_;
text: .text%__1cQregP_to_stkPNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOGenerateOopMapHppstore6MpnNCellTypeState_i_v_;
text: .text%__1cJTimeStampSticks_since_update6kM_x_;
@@ -2038,7 +1982,6 @@ text: .text%__1cIXorINodeGadd_id6kM_pknEType__: classes.o;
text: .text%__1cFStateM_sub_Op_AndI6MpknENode__v_;
text: .text%__1cVshrL_reg_imm6_L2INodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKcmpOpFOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cTmembar_volatileNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateL_sub_Op_OrI6MpknENode__v_;
@@ -2066,7 +2009,6 @@ text: .text%__1cJttyLockerbCbreak_tty_lock_for_safepoint6Fi_v_;
text: .text%__1cSmembar_acquireNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cPorI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIPhaseCFGOinsert_goto_at6MII_v_;
-text: .text%__1cITypeLongFwiden6kMpknEType__3_;
text: .text%__1cSThreadLocalStoragePget_thread_slow6F_pnGThread__;
text: .text%__1cPCallRuntimeNodeGOpcode6kM_i_;
text: .text%__1cJcmpOpOperNgreater_equal6kM_i_: ad_sparc_clone.o;
@@ -2097,7 +2039,6 @@ text: .text%__1cSTailCalljmpIndNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cGIfNodeMdominated_by6MpnENode_pnMPhaseIterGVN__v_;
text: .text%__1cOcompiledVFrame2t6MpknFframe_pknLRegisterMap_pnKJavaThread_pnJScopeDesc__v_;
-text: .text%__1cJScopeDesc2t6MpknHnmethod_i_v_;
text: .text%__1cQshlI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOGenerateOopMapJdo_astore6Mi_v_;
text: .text%__1cbFunnecessary_membar_volatileNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -2127,7 +2068,6 @@ text: .text%__1cLBoxLockNode2t6Mi_v_;
text: .text%__1cPconvF2D_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLOptoRuntimebBcomplete_monitor_enter_Type6F_pknITypeFunc__;
text: .text%__1cIGraphKitLshared_lock6MpnENode__pnMFastLockNode__;
-text: .text%__1cPcmpFastLockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNloadConP0NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRorI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKcmpOpUOperEless6kM_i_: ad_sparc_clone.o;
@@ -2135,7 +2075,6 @@ text: .text%__1cQaddF_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%lwp_mutex_init: os_solaris.o;
text: .text%__1cRsubI_zero_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cQjava_lang_ThreadGthread6FpnHoopDesc__pnKJavaThread__;
text: .text%__1cQnotemp_iRegIOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cITemplateIbytecode6kM_nJBytecodesECode__;
@@ -2178,7 +2117,6 @@ text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cIPSOldGenPupdate_counters6M_v_;
text: .text%__1cQshrI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cNinstanceKlassbFlookup_method_in_all_interfaces6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cTloadL_unalignedNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cJloadLNodeOmemory_operand6kM_pknIMachOper__;
@@ -2249,11 +2187,9 @@ text: .text%__1cSmembar_acquireNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
text: .text%__1cVExceptionHandlerTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
text: .text%__1cFciEnvVnum_inlined_bytecodes6kM_i_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cIciMethodRbuild_method_data6M_v_;
text: .text%__1cHCompileIOptimize6M_v_;
text: .text%__1cHCompileLFinish_Warm6M_v_;
@@ -2365,7 +2301,6 @@ text: .text%__1cQmulF_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cQxorI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cWCallLeafNoFPDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLcmpD_ccNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cWCallLeafNoFPDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadINodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cbBopt_virtual_call_RelocationLstatic_stub6M_pC_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFi_vi_v_;
@@ -2392,8 +2327,6 @@ text: .text%__1cSandI_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIimmLOperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cFParseOmerge_new_path6Mi_v_;
text: .text%__1cQregP_to_stkPNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%__1cQjava_lang_StringScreate_from_symbol6FnMsymbolHandle_pnGThread__nGHandle__;
text: .text%__1cSmembar_releaseNodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_NewByteArray: jni.o;
@@ -2402,7 +2335,6 @@ text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMs
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cFParseLdo_newarray6MnJBasicType__v_;
-text: .text%__1cPmethodDataKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNmethodOopDescKklass_name6kM_pnNsymbolOopDesc__;
text: .text%__1cSconvI2D_helperNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cLstoreP0NodeLout_RegMask6kM_rknHRegMask__;
@@ -2454,7 +2386,6 @@ text: .text%__1cJScopeDescGsender6kM_p0_;
text: .text%__1cSxorI_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOcompiledVFrameGsender6kM_pnGvframe__;
text: .text%__1cZInterpreterMacroAssemblerDpop6MnITosState__v_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cQPlaceholderTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cXJvmtiCurrentBreakpointsHoops_do6FpnKOopClosure__v_;
text: .text%__1cNMemoryServiceHoops_do6FpnKOopClosure__v_;
@@ -2462,7 +2393,6 @@ text: .text%__1cNThreadServiceHoops_do6FpnKOopClosure__v_;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryRpreloaded_oops_do6FpnKOopClosure__v_;
text: .text%__1cLJvmtiExportHoops_do6FpnKOopClosure__v_;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKJNIHandlesMweak_oops_do6FpnRBoolObjectClosure_pnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
text: .text%__1cMFlatProfilerHoops_do6FpnKOopClosure__v_;
@@ -2510,8 +2440,6 @@ text: .text%__1cMTypeKlassPtrFxmeet6kMpknEType__3_;
text: .text%__1cKPSYoungGenPupdate_counters6M_v_;
text: .text%__1cWThreadLocalAllocBufferbFaccumulate_statistics_before_gc6F_v_;
text: .text%__1cWThreadLocalAllocBufferQresize_all_tlabs6F_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cRLowMemoryDetectorRdetect_low_memory6F_v_;
text: .text%__1cNMemoryServiceStrack_memory_usage6F_v_;
text: .text%__1cbAPSGCAdaptivePolicyCountersPupdate_counters6M_v_;
@@ -2527,7 +2455,6 @@ text: .text%__1cORuntimeServicebDrecord_safepoint_synchronized6F_v_;
text: .text%__1cQaddF_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
text: .text%__1cKarrayKlassTallocate_arrayArray6MiipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cCosbAmake_polling_page_readable6F_v_;
text: .text%__1cUSafepointSynchronizeDend6F_v_;
text: .text%__1cOcmovII_immNodeErule6kM_I_: ad_sparc_misc.o;
@@ -2539,7 +2466,6 @@ text: .text%JVM_GetCallerClass;
text: .text%__1cNSignatureInfoHdo_byte6M_v_: bytecode.o;
text: .text%__1cOcmovPP_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKstoreBNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSobjArrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cLstoreC0NodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cTloadL_unalignedNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cICmpFNodeGOpcode6kM_i_;
@@ -2551,7 +2477,6 @@ text: .text%jni_IsAssignableFrom: jni.o;
text: .text%jni_GetFieldID: jni.o;
text: .text%__1cJLoadPNodeMstore_Opcode6kM_i_: classes.o;
text: .text%__1cLstoreB0NodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cZInterpreterMacroAssemblerbAget_cache_and_index_at_bcp6MpnMRegisterImpl_2i_v_;
text: .text%__1cHTypeAryFxdual6kM_pknEType__;
text: .text%__1cMtlsLoadPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIVMThreadHexecute6FpnMVM_Operation__v_;
@@ -2626,9 +2551,7 @@ text: .text%__1cJloadSNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRloadConP_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNObjectMonitorHRecycle6M_v_;
text: .text%__1cNSharedRuntimeSfind_callee_method6FpnKJavaThread_pnGThread__nMmethodHandle__;
-text: .text%__1cMloadConLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadDNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cQstkI_to_regFNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQregP_to_stkPNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cZInterpreterMacroAssemblerFpop_i6MpnMRegisterImpl__v_;
@@ -2636,7 +2559,6 @@ text: .text%__1cIMaxINodeGadd_id6kM_pknEType__: classes.o;
text: .text%__1cNSharedRuntimeTreresolve_call_site6FpnKJavaThread_pnGThread__nMmethodHandle__;
text: .text%__1cYcompareAndSwapL_boolNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNSCMemProjNodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cYcompareAndSwapL_boolNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIProjNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIPSOldGenMmax_gen_size6M_I_: psOldGen.o;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcipnNsymbolOopDesc_4_v_;
@@ -2855,7 +2777,6 @@ text: .text%__1cOstackSlotPOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%jni_GetMethodID: jni.o;
text: .text%__1cQshlL_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMulINodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cNminI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRshlI_reg_imm5NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOloadConL13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
@@ -2877,7 +2798,6 @@ text: .text%__1cQcmovI_reg_ltNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNloadConL0NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cKo1RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cSsubL_reg_reg_1NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cQshrL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cRsarL_reg_imm6NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJloadFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2948,7 +2868,6 @@ text: .text%__1cFStateM_sub_Op_SubL6MpknENode__v_;
text: .text%__1cKCompiledICMstub_address6kM_pC_;
text: .text%__1cJvmSymbolsOsignature_type6FpnNsymbolOopDesc__nJBasicType__;
text: .text%__1cQsubL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQmodI_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubDNodeGOpcode6kM_i_;
text: .text%__1cQmodI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPfieldDescriptorLannotations6kM_pnQtypeArrayOopDesc__;
@@ -2986,7 +2905,6 @@ text: .text%__1cRtestI_reg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJMemRegionMintersection6kMk0_0_;
text: .text%__1cKJavaThread2t6MpFp0pnGThread__vI_v_;
text: .text%__1cKJavaThreadDrun6M_v_;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cPjava_lang_ClassOprimitive_type6FpnHoopDesc__nJBasicType__;
text: .text%JVM_IsArrayClass;
text: .text%jni_CallStaticVoidMethod: jni.o;
@@ -3017,14 +2935,12 @@ text: .text%__1cXNativeSignatureIteratorGdo_int6M_v_: interpreterRT_sparc.o;
text: .text%__1cINodeHashEgrow6M_v_;
text: .text%__1cOGenerateOopMapPdo_monitorenter6Mi_v_;
text: .text%__1cOcmovPP_regNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
-text: .text%__1cMloadConDNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMaxINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cJloadSNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOGenerateOopMapLcompute_map6MpnGThread__v_;
text: .text%__1cLConvF2DNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%JVM_Open;
text: .text%__1cRInvocationCounterFreset6M_v_;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMap2t6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMapRdo_interpretation6M_v_;
text: .text%__1cIRetTableRcompute_ret_table6MnMmethodHandle__v_;
@@ -3144,7 +3060,6 @@ text: .text%__1cLstoreF0NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIMinINodeIadd_ring6kMpknEType_3_3_;
text: .text%JVM_GetInheritedAccessControlContext;
text: .text%__1cPPerfDataManagerWcreate_string_constant6FnJCounterNS_pkc3pnGThread__pnSPerfStringConstant__;
-text: .text%__1cNmaxI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_NativePath;
text: .text%__1cOMacroAssemblerNflush_windows6M_v_;
text: .text%__1cSsubD_regD_regDNodeIpipeline6kM_pknIPipeline__;
@@ -3157,13 +3072,11 @@ text: .text%__1cVinline_cache_regPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKstorePNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cQObjectStartArrayFreset6M_v_;
text: .text%__1cPconvI2D_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
text: .text%__1cQaddD_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLConvF2INodeGOpcode6kM_i_;
text: .text%__1cVCallRuntimeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJHashtableGunlink6MpnRBoolObjectClosure__v_;
text: .text%__1cIPSOldGenPadjust_pointers6M_v_;
-text: .text%__1cVCallRuntimeDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOcmovPI_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cIPSOldGenHcompact6M_v_;
text: .text%__1cMtlsLoadPNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -3177,7 +3090,6 @@ text: .text%__1cOcmovLL_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%jni_GetStaticMethodID: jni.o;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MipnMRegisterImpl__v_;
text: .text%__1cRtestI_reg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cPconvF2D_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOPhaseIdealLoopKdo_peeling6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%__1cOcmovLL_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -3290,7 +3202,6 @@ text: .text%__1cINegDNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cLConvI2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cOcmovLL_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRorI_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTloadL_unalignedNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTloadL_unalignedNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cKloadUBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cXconvI2D_regDHi_regDNodeIpipeline6kM_pknIPipeline__;
@@ -3371,7 +3282,6 @@ text: .text%__1cYjava_lang_reflect_MethodEslot6FpnHoopDesc__i_;
text: .text%__1cYjava_lang_reflect_MethodFclazz6FpnHoopDesc__2_;
text: .text%__1cYinternal_word_RelocationGtarget6M_pC_;
text: .text%__1cJStubQdDueueKremove_all6M_v_;
-text: .text%__1cMloadConFNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPconvI2D_memNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPorL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerLindex_check6MpnMRegisterImpl_2i22_v_;
@@ -3405,12 +3315,10 @@ text: .text%__1cSInterpreterRuntimeQcreate_exception6FpnKJavaThread_pc3_v_;
text: .text%__1cQComputeCallStackIdo_array6Mii_v_: generateOopMap.o;
text: .text%__1cKPSYoungGenKprecompact6M_v_;
text: .text%__1cXjava_lang_reflect_FieldEslot6FpnHoopDesc__i_;
-text: .text%__1cSconvD2I_helperNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMnegF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHThreadsLgc_prologue6F_v_;
text: .text%__1cHThreadsLgc_epilogue6F_v_;
text: .text%__1cPconvI2L_regNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cPconvD2I_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_pnGThread__v_;
text: .text%__1cUParallelScavengeHeapHcollect6MnHGCCauseFCause__v_;
text: .text%__1cRCardTableModRefBSFclear6MnJMemRegion__v_;
@@ -3449,10 +3357,6 @@ text: .text%__1cKPSYoungGenHcompact6M_v_;
text: .text%JVM_GetSystemPackage;
text: .text%__1cPfieldDescriptorTfloat_initial_value6kM_f_;
text: .text%__1cKPSYoungGenPadjust_pointers6M_v_;
-text: .text%__1cQUncommonTrapBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNExceptionBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
text: .text%__1cJCodeCacheLgc_prologue6F_v_;
text: .text%__1cJCodeCacheLgc_epilogue6F_v_;
text: .text%__1cIXorINodeIadd_ring6kMpknEType_3_3_;
@@ -3508,16 +3412,13 @@ text: .text%__1cSstring_compareNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_GetEnv;
text: .text%__1cJloadDNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cQstkI_to_regINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSstring_compareNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cXNativeSignatureIteratorHdo_bool6M_v_: interpreterRT_sparc.o;
text: .text%Unsafe_GetNativeByte;
text: .text%JVM_NanoTime;
text: .text%__1cCosNjavaTimeNanos6F_x_;
text: .text%__1cOMacroAssemblerOrestore_thread6MkpnMRegisterImpl__v_;
-text: .text%__1cVcompiledICHolderKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cQandL_reg_regNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIimmFOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
text: .text%__1cKcmpOpFOperGnegate6M_v_: ad_sparc_clone.o;
text: .text%__1cICodeBlobFflush6M_v_;
text: .text%__1cFParseMdo_anewarray6M_v_;
@@ -3537,8 +3438,6 @@ text: .text%__1cHnmethodSflush_dependencies6MpnRBoolObjectClosure__v_;
text: .text%__1cKo2RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cQregI_to_stkINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cbCAbstractInterpreterGeneratorVgenerate_method_entry6MnTAbstractInterpreterKMethodKind__pC_;
-text: .text%__1cParrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cWloadConI_x43300000NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseQdo_monitor_enter6M_v_;
text: .text%__1cPorL_reg_regNodeIpipeline6kM_pknIPipeline__;
@@ -3547,13 +3446,11 @@ text: .text%JVM_FindPrimitiveClass;
text: .text%__1cVMoveL2D_stack_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNTemplateTableEiop26Fn0AJOperation__v_;
text: .text%__1cZInterpreterMacroAssemblerMdispatch_via6MnITosState_ppC_v_;
-text: .text%__1cSmodL_reg_imm13NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRshrI_reg_imm5NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cSsubL_reg_reg_2NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cUmulL_reg_imm13_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivDNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cPconvI2F_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNinstanceKlassUfind_interface_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__pnMklassOopDesc__;
text: .text%__1cOstackSlotFOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cUdivL_reg_imm13_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3561,7 +3458,6 @@ text: .text%__1cRSignatureIteratorHiterate6M_v_;
text: .text%__1cOcmovLL_regNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%__1cJname2type6Fpkc_nJBasicType__;
text: .text%__1cSmulL_reg_imm13NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPBytecode_invokeLresult_type6kMpnGThread__nJBasicType__;
text: .text%__1cOloadConL13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKcmpOpFOperHgreater6kM_i_: ad_sparc_clone.o;
text: .text%__1cIDivDNodeJideal_reg6kM_I_: classes.o;
@@ -3589,7 +3485,6 @@ text: .text%__1cNTemplateTableQfast_accessfield6FnITosState__v_;
text: .text%__1cKCompiledICSset_to_megamorphic6MpnICallInfo_nJBytecodesECode_pnGThread__v_;
text: .text%Unsafe_StaticFieldOffset;
text: .text%__1cQmulI_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cQaddI_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cOcmovLI_regNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%JVM_GetClassContext;
@@ -3725,7 +3620,6 @@ text: .text%__1cQmulD_reg_regNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%Unsafe_AllocateMemory;
text: .text%__1cSandL_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_GetLastErrorString;
-text: .text%__1cQmodL_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableElop26Fn0AJOperation__v_;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cNTemplateTableEfop26Fn0AJOperation__v_;
@@ -3738,7 +3632,6 @@ text: .text%__1cNTemplateTableGlstore6Fi_v_;
text: .text%__1cLConvF2INodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cRcompL_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
-text: .text%__1cLconvI2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLConvD2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSconvD2I_helperNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRsubI_zero_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
@@ -3775,7 +3668,6 @@ text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC22_v_;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cTjava_lang_ThrowableLset_message6FpnHoopDesc_2_v_;
text: .text%__1cOGenerateOopMapTret_jump_targets_do6MpnOBytecodeStream_pFp0ipi_vi4_v_;
-text: .text%__1cPconvI2D_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_SetMemory;
text: .text%__1cKstfSSFNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerOthrow_if_not_x6MnJAssemblerJCondition_pCpnMRegisterImpl__v_;
@@ -3798,7 +3690,6 @@ text: .text%__1cRMachSpillCopyNodeHsize_of6kM_I_: ad_sparc.o;
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cOGenerateOopMapRdo_multianewarray6Mii_v_;
text: .text%__1cNCompileBrokerUcompiler_thread_loop6F_v_;
-text: .text%__1cbFpartialSubtypeCheck_vs_zeroNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%jni_CallStaticObjectMethodV: jni.o;
text: .text%__1cNTemplateTableMfast_xaccess6FnITosState__v_;
text: .text%__1cJMemRegionFminus6kMk0_0_;
@@ -3857,13 +3748,10 @@ text: .text%__1cLstoreF0NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerWprofile_switch_default6MpnMRegisterImpl__v_;
text: .text%__1cTAbstract_VM_VersionOvm_info_string6F_pkc_;
text: .text%__1cJStubQdDueue2t6MpnNStubInterface_ipnFMutex_pkc_v_;
-text: .text%__1cSconvF2I_helperNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
-text: .text%__1cbAconvL2D_reg_slow_fxtofNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOstackSlotFOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotFOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotFOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
-text: .text%__1cPconvF2I_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableGlconst6Fi_v_;
text: .text%__1cLstoreC0NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cMPeriodicTaskGenroll6M_v_;
@@ -3913,7 +3801,6 @@ text: .text%__1cLMoveF2INodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cLOptoRuntimeIl2f_Type6F_pknITypeFunc__;
text: .text%__1cOMacroAssemblerUcalc_mem_param_words6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerLprofile_ret6MnITosState_pnMRegisterImpl_3_v_;
-text: .text%__1cZInterpreterMacroAssemblerUprofile_virtual_call6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerMprofile_call6MpnMRegisterImpl__v_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
text: .text%__1cZInterpreterMacroAssemblerSupdate_mdp_for_ret6MnITosState_pnMRegisterImpl__v_;
@@ -4001,16 +3888,13 @@ text: .text%__1cSThreadLocalStorageHpd_init6F_v_;
text: .text%__1cVMoveF2I_stack_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVMoveL2D_stack_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cWinvocationCounter_init6F_v_;
-text: .text%__1cKTypeOopPtrEmake6FnHTypePtrDPTR_i_pk0_;
text: .text%__1cKTypeOopPtrFxdual6kM_pknEType__;
text: .text%__1cFParseMjump_if_join6MpnENode_2_2_;
text: .text%__1cSinstanceKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cSinstanceKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlassKlass.o;
-text: .text%__1cLconvP2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cETypeRInitialize_shared6FpnHCompile__v_;
text: .text%__1cQinstanceRefKlassZupdate_nonstatic_oop_maps6FpnMklassOopDesc__v_;
text: .text%__1cVInterfaceSupport_init6F_v_;
-text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cPGenerationSizerQinitialize_flags6M_v_: parallelScavengeHeap.o;
text: .text%__1cZInterpreterMacroAssemblerPdispatch_normal6MnITosState__v_;
text: .text%__1cJTimeStampMmilliseconds6kM_x_;
@@ -4103,11 +3987,9 @@ text: .text%__1cLmethodKlassOset_alloc_size6MI_v_: methodKlass.o;
text: .text%__1cQvtableStubs_init6F_v_;
text: .text%__1cKi0RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKg1RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cLmethodKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: methodKlass.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: methodLiveness.o;
text: .text%__1cMMutableSpaceOobject_iterate6MpnNObjectClosure__v_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cKmutex_init6F_v_;
text: .text%__1cQaccessFlags_init6F_v_;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC222_v_;
@@ -4440,7 +4322,6 @@ text: .text%__1cNTemplateTableLtableswitch6F_v_;
text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableRfast_linearswitch6F_v_;
text: .text%__1cNTemplateTableRfast_binaryswitch6F_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
text: .text%__1cJPSPermGen2t6MnNReservedSpace_IIIIpkci_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
diff --git a/hotspot/make/solaris/makefiles/reorder_TIERED_sparcv9 b/hotspot/make/solaris/makefiles/reorder_TIERED_sparcv9
index 15c03b78514..cc44a252232 100644
--- a/hotspot/make/solaris/makefiles/reorder_TIERED_sparcv9
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_sparcv9
@@ -2,9 +2,7 @@ data = R0x2000;
text = LOAD ?RXO;
-text: .text%__1cCosOjavaTimeMillis6F_x_;
text: .text%__1cQIndexSetIteratorQadvance_and_next6M_I_;
-text: .text%__1cNinstanceKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNinstanceKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cNinstanceKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cOtypeArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
@@ -18,11 +16,9 @@ text: .text%__1cENodeHlatency6MI_I_;
text: .text%__1cHRegMaskJis_bound16kM_i_;
text: .text%__1cDff16FI_i_;
text: .text%__1cHRegMaskESize6kM_I_;
-text: .text%__1cXresource_allocate_bytes6FI_pc_;
text: .text%__1cENodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJVectorSet2R6MI_rnDSet__;
text: .text%__1cHRegMaskJis_bound26kM_i_;
-text: .text%__1cNSharedRuntimeElmul6Fxx_x_;
text: .text%__1cIMachNodeGOpcode6kM_i_;
text: .text%__1cJiRegIOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cIIndexSetKinitialize6MI_v_;
@@ -33,7 +29,6 @@ text: .text%__1cETypeFuhash6Fkpk0_i_;
text: .text%__1cQIndexSetIteratorEnext6M_I_: chaitin.o;
text: .text%__1cENodeIout_grow6MI_v_;
text: .text%__1cOloadConI13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cNobjArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cENodeHadd_req6Mp0_v_;
text: .text%__1cJMarkSweepUAdjustPointerClosureGdo_oop6MppnHoopDesc__v_: markSweep.o;
text: .text%__1cNobjArrayKlassToop_follow_contents6MpnHoopDesc__v_;
@@ -45,7 +40,6 @@ text: .text%__1cHPhiNodeGOpcode6kM_i_;
text: .text%__1cKbranchNodeNis_block_proj6kM_pknENode__: ad_sparc_misc.o;
text: .text%__1cIProjNodeGOpcode6kM_i_;
text: .text%__1cETypeIhashcons6M_pk0_;
-text: .text%__1cOPhaseIdealLoopUbuild_loop_late_post6MpnENode_pk0_v_;
text: .text%__1cMPhaseChaitinTinterfere_with_live6MIpnIIndexSet__v_;
text: .text%__1cWNode_Backward_IteratorEnext6M_pnENode__;
text: .text%__1cNIdealLoopTreeJis_member6kMpk0_i_;
@@ -56,7 +50,6 @@ text: .text%__1cOPhaseIdealLoopYsplit_if_with_blocks_pre6MpnENode__2_;
text: .text%__1cOPhaseIdealLoopZsplit_if_with_blocks_post6MpnENode__v_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
text: .text%__1cDLRGOcompute_degree6kMr0_i_;
-text: .text%__1cFArenaIArealloc6MpvII_1_;
text: .text%__1cIConINodeGOpcode6kM_i_;
text: .text%__1cETypeEmeet6kMpk0_2_;
text: .text%__1cENode2t6MI_v_;
@@ -91,7 +84,6 @@ text: .text%__1cOPhaseIdealLoopEsort6MpnNIdealLoopTree_2_2_;
text: .text%__1cMMachProjNodeLbottom_type6kM_pknEType__;
text: .text%JVM_ArrayCopy;
text: .text%__1cOtypeArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
-text: .text%__1cNSharedRuntimeDl2f6Fx_f_;
text: .text%__1cPjava_lang_ClassLas_klassOop6FpnHoopDesc__pnMklassOopDesc__;
text: .text%__1cHConNodeGOpcode6kM_i_;
text: .text%__1cMPhaseIterGVNWadd_users_to_worklist06MpnENode__v_;
@@ -129,7 +121,6 @@ text: .text%__1cMMachProjNodeLout_RegMask6kM_rknHRegMask__: classes.o;
text: .text%__1cRMachSpillCopyNodeKin_RegMask6kMI_rknHRegMask__: ad_sparc.o;
text: .text%__1cbAfinal_graph_reshaping_impl6FpnENode_rnUFinal_Reshape_Counts__v_: compile.o;
text: .text%__1cOtypeArrayKlassIallocate6MipnGThread__pnQtypeArrayOopDesc__;
-text: .text%__1cUParallelScavengeHeapVlarge_typearray_limit6M_I_: parallelScavengeHeap.o;
text: .text%__1cIPhaseCCPOtransform_once6MpnENode__2_;
text: .text%__1cGciTypeEmake6FnJBasicType__p0_;
text: .text%__1cKoopFactoryNnew_typeArray6FnJBasicType_ipnGThread__pnQtypeArrayOopDesc__;
@@ -154,7 +145,6 @@ text: .text%__1cETypeFxmeet6kMpk0_2_;
text: .text%__1cILRG_ListGextend6MII_v_;
text: .text%__1cJVectorSet2F6kMI_i_;
text: .text%__1cENodeQIdeal_DU_postCCP6MpnIPhaseCCP__p0_;
-text: .text%__1cOtypeArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cIProjNodeEhash6kM_I_;
text: .text%__1cIAddINodeGOpcode6kM_i_;
text: .text%__1cIIndexSet2t6Mp0_v_;
@@ -168,7 +158,6 @@ text: .text%__1cICmpPNodeGOpcode6kM_i_;
text: .text%__1cKNode_ArrayGremove6MI_v_;
text: .text%__1cHPhiNodeEhash6kM_I_;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cKmethodOperJnum_edges6kM_I_: ad_sparc.o;
text: .text%__1cJStartNodeLbottom_type6kM_pknEType__;
text: .text%__1cHTypeIntFxmeet6kMpknEType__3_;
@@ -206,11 +195,7 @@ text: .text%__1cKSchedulingPAddNodeToBundle6MpnENode_pknFBlock__v_;
text: .text%__1cICallNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cTconstantPoolOopDescNklass_at_impl6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
text: .text%__1cJLoadPNodeGOpcode6kM_i_;
-text: .text%__1cMMutableSpaceIallocate6MI_pnIHeapWord__;
-text: .text%__1cJPSPermGenSallocate_permanent6MI_pnIHeapWord__;
-text: .text%__1cUParallelScavengeHeapWpermanent_mem_allocate6MI_pnIHeapWord__;
text: .text%__1cIMachNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMMutableSpaceMcas_allocate6MI_pnIHeapWord__;
text: .text%__1cNflagsRegPOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cHPhiNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMMachTypeNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
@@ -235,7 +220,6 @@ text: .text%__1cICmpUNodeGOpcode6kM_i_;
text: .text%__1cOPhaseIdealLoopbIdom_lca_for_get_late_ctrl_internal6MpnENode_22_2_;
text: .text%__1cXPipeline_Use_Cycle_MaskCOr6Mrk0_v_;
text: .text%__1cILoadNodeEhash6kM_I_;
-text: .text%__1cKTypeAryPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cKHandleMarkKinitialize6MpnGThread__v_;
text: .text%__1cKHandleMark2T6M_v_;
text: .text%__1cZPhaseConservativeCoalesceIcoalesce6MpnFBlock__v_;
@@ -263,7 +247,6 @@ text: .text%__1cJMultiNodeIproj_out6kMI_pnIProjNode__;
text: .text%__1cPindOffset13OperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cUcompI_iReg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cODataRelocationJset_value6MpC_v_: relocInfo.o;
-text: .text%__1cKRelocationRpd_set_data_value6MpCi_v_;
text: .text%__1cKCastPPNodeGOpcode6kM_i_;
text: .text%__1cOoop_RelocationFvalue6M_pC_: relocInfo.o;
text: .text%__1cOoop_RelocationGoffset6M_i_: relocInfo.o;
@@ -284,7 +267,6 @@ text: .text%__1cNbranchConNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOoop_RelocationSfix_oop_relocation6M_v_;
text: .text%__1cRSignatureIteratorSiterate_parameters6M_v_;
text: .text%__1cIAddPNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cGBitMap2t6MpII_v_;
text: .text%__1cPClassFileStreamGget_u46MpnGThread__I_;
text: .text%__1cMMachCallNodeLbottom_type6kM_pknEType__;
text: .text%__1cFParsePdo_one_bytecode6M_v_;
@@ -292,7 +274,6 @@ text: .text%__1cFParseNdo_exceptions6M_v_;
text: .text%__1cHPhiNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cHMatcherKmatch_tree6MpknENode__pnIMachNode__;
text: .text%__1cMPhaseIterGVNKis_IterGVN6M_p0_: phaseX.o;
-text: .text%__1cKimmI13OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cCosVcurrent_stack_pointer6F_pC_;
text: .text%__1cEDict2F6kMpkv_pv_;
text: .text%__1cKRegionNodeLbottom_type6kM_pknEType__: classes.o;
@@ -320,7 +301,6 @@ text: .text%__1cRSignatureIteratorSiterate_returntype6M_v_;
text: .text%__1cSaddP_reg_imm13NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cIMachNodeHtwo_adr6kM_I_: ad_sparc.o;
text: .text%__1cNSafePointNodeHsize_of6kM_I_;
-text: .text%__1cLTypeInstPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cHCmpNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cPcheckCastPPNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNLoadRangeNodeGOpcode6kM_i_;
@@ -371,9 +351,7 @@ text: .text%__1cRshlI_reg_imm5NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIMachOperDreg6kMpnNPhaseRegAlloc_pknENode__i_;
text: .text%__1cNPhaseCoalesceRcombine_these_two6MpnENode_2_v_;
text: .text%__1cKcmpOpPOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cKTypeRawPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cMloadConINodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cFArenaEgrow6MI_pv_;
text: .text%__1cMPhaseChaitinLinsert_proj6MpnFBlock_IpnENode_I_v_;
text: .text%__1cILoadNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cJStoreNodeLbottom_type6kM_pknEType__;
@@ -383,7 +361,6 @@ text: .text%__1cQaddP_reg_regNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cIHaltNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPCheckCastPPNodeGOpcode6kM_i_;
text: .text%__1cKStorePNodeGOpcode6kM_i_;
-text: .text%__1cKRelocationLunpack_data6M_v_: relocInfo.o;
text: .text%__1cNflagsRegUOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cNinstanceKlassGvtable6kM_pnLklassVtable__;
text: .text%__1cPcheckCastPPNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
@@ -465,7 +442,6 @@ text: .text%__1cFChunkJnext_chop6M_v_;
text: .text%__1cMMergeMemNodeEhash6kM_I_;
text: .text%__1cKSchedulingbFComputeRegisterAntidependencies6MpnFBlock__v_;
text: .text%__1cKSchedulingPComputeUseCount6MpknFBlock__v_;
-text: .text%__1cHTypePtrHget_con6kM_i_;
text: .text%__1cNinstanceKlassRprotection_domain6M_pnHoopDesc__: instanceKlass.o;
text: .text%__1cIMachNodePcompute_padding6kMi_i_: ad_sparc.o;
text: .text%__1cIMachNodeSalignment_required6kM_i_: ad_sparc.o;
@@ -477,13 +453,10 @@ text: .text%__1cObranchConUNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cFBlockJfind_node6kMpknENode__I_;
text: .text%__1cUArgumentSizeComputerDset6MinJBasicType__v_: frame.o;
text: .text%__1cHCmpNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cNCollectedHeapXallocate_from_tlab_slow6FpnGThread_I_pnIHeapWord__;
text: .text%__1cWThreadLocalAllocBufferXclear_before_allocation6M_v_;
text: .text%__1cHTypePtrEhash6kM_i_;
text: .text%__1cNinstanceKlassRallocate_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cSObjectSynchronizerKslow_enter6FnGHandle_pnJBasicLock_pnGThread__v_;
-text: .text%__1cWThreadLocalAllocBufferEfill6MpnIHeapWord_2I_v_;
-text: .text%__1cUParallelScavengeHeapRallocate_new_tlab6MI_pnIHeapWord__;
text: .text%__1cYNoJvmtiVMObjectAllocMark2t6M_v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2T6M_v_;
text: .text%__1cFBlockLfind_remove6MpknENode__v_;
@@ -502,7 +475,6 @@ text: .text%__1cNObjectMonitorFenter6MpnGThread__v_;
text: .text%__1cENodeKreplace_by6Mp0_v_;
text: .text%__1cSObjectSynchronizerJslow_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cMMergeMemNodePiteration_setup6Mpk0_v_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cKDictionaryEfind6MiInMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cRMachSpillCopyNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKRegionNodeIIdentity6MpnOPhaseTransform__pnENode__;
@@ -513,8 +485,6 @@ text: .text%__1cIGraphKitJclone_map6M_pnNSafePointNode__;
text: .text%__1cKIfTrueNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cRMemBarReleaseNodeGOpcode6kM_i_;
text: .text%__1cKbranchNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cIMachOperIconstant6kM_i_;
-text: .text%__1cWMutableSpaceUsedHelperLtake_sample6M_x_: spaceCounters.o;
text: .text%__1cGPcDescHreal_pc6kMpknHnmethod__pC_;
text: .text%__1cRPSOldPromotionLABFflush6M_v_;
text: .text%__1cTconstantPoolOopDescMklass_ref_at6MipnGThread__pnMklassOopDesc__;
@@ -526,7 +496,6 @@ text: .text%__1cKTypeRawPtrEhash6kM_i_;
text: .text%__1cIBoolNodeKmatch_edge6kMI_I_: subnode.o;
text: .text%__1cMMergeMemNodePset_base_memory6MpnENode__v_;
text: .text%__1cLIfFalseNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cCosPelapsed_counter6F_x_;
text: .text%__1cGBitMapOset_difference6M0_v_;
text: .text%__1cNSafePointNodeEjvms6kM_pnIJVMState__: callnode.o;
text: .text%__1cOoop_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
@@ -534,7 +503,6 @@ text: .text%__1cMMergeMemNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%JVM_GetMethodIxLocalsCount;
text: .text%__1cNloadRangeNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%JVM_CurrentThread;
-text: .text%__1cENodeHget_ptr6kM_i_;
text: .text%__1cRcmpFastUnlockNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIAndINodeGOpcode6kM_i_;
text: .text%__1cPClassFileParserYverify_legal_method_name6MnMsymbolHandle_pnGThread__v_;
@@ -569,7 +537,6 @@ text: .text%__1cQaddP_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQaddP_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cMLinkResolverZcheck_klass_accessability6FnLKlassHandle_1pnGThread__v_;
text: .text%__1cIJVMStateIof_depth6kMi_p0_;
-text: .text%__1cNSharedRuntimeElrem6Fxx_x_;
text: .text%__1cRconstantPoolKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cMciMethodDataLbci_to_data6Mi_pnLProfileData__;
text: .text%__1cRMemBarAcquireNodeGOpcode6kM_i_;
@@ -579,7 +546,6 @@ text: .text%__1cObranchConUNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJVectorSet2t6MpnFArena__v_;
text: .text%__1cKTypeAryPtrFxmeet6kMpknEType__3_;
text: .text%__1cVcompP_iRegP_imm13NodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cRSignatureIteratorSiterate_parameters6MX_v_;
text: .text%__1cICallNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cJTraceTime2T6M_v_;
text: .text%__1cITypeNodeFValue6kMpnOPhaseTransform__pknEType__;
@@ -605,7 +571,6 @@ text: .text%__1cMTypeKlassPtrEhash6kM_i_;
text: .text%__1cMCallLeafNodeGOpcode6kM_i_;
text: .text%__1cSCallLeafDirectNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHPhiNodeEmake6FpnENode_2pknEType_pknHTypePtr__p0_;
-text: .text%__1cIAddPNodeQmach_bottom_type6FpknIMachNode__pknEType__;
text: .text%__1cOcompU_iRegNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJiRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNflagsRegPOperKin_RegMask6kMi_pknHRegMask__;
@@ -640,7 +605,6 @@ text: .text%__1cJStartNodeGOpcode6kM_i_;
text: .text%__1cQregF_to_stkINodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cENodeDcmp6kMrk0_I_;
text: .text%__1cHTypeIntFxdual6kM_pknEType__;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cMmerge_region6FpnKRegionNode_pnIPhaseGVN__pnENode__: cfgnode.o;
text: .text%__1cJAssemblerOpatched_branch6Fiii_i_;
text: .text%__1cJAssemblerSbranch_destination6Fii_i_;
@@ -653,7 +617,6 @@ text: .text%__1cWMachCallStaticJavaNodePret_addr_offset6M_i_;
text: .text%__1cITypeFuncEmake6FpknJTypeTuple_3_pk0_;
text: .text%__1cMloadConDNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cSCallLeafDirectNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cKTypeOopPtrHget_con6kM_i_;
text: .text%__1cQsubI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIRootNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cJloadLNodeErule6kM_I_: ad_sparc_misc.o;
@@ -729,7 +692,6 @@ text: .text%__1cOGenerateOopMapEpush6MnNCellTypeState__v_;
text: .text%__1cJloadSNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKStoreCNodeGOpcode6kM_i_;
text: .text%__1cOGenerateOopMapRdo_exception_edge6MpnOBytecodeStream__v_;
-text: .text%__1cMstringStreamFwrite6MpkcI_v_;
text: .text%__1cOGenerateOopMapDpop6M_nNCellTypeState__;
text: .text%__1cHRetNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cPcmpFastLockNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -738,10 +700,7 @@ text: .text%__1cMLinkResolverOresolve_invoke6FrnICallInfo_nGHandle_nSconstantPoo
text: .text%__1cIBoolNodeJideal_reg6kM_I_: subnode.o;
text: .text%__1cHCmpNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cRloadConP_pollNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cETypeFwiden6kMpk0_2_: type.o;
text: .text%__1cLstoreI0NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cMloadConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJBytecodesECode__pnNmethodOopDesc__;
text: .text%__1cKDictionaryKfind_class6MiInMsymbolHandle_nGHandle__pnMklassOopDesc__;
@@ -755,7 +714,6 @@ text: .text%__1cSInterpreterRuntimeMmonitorenter6FpnKJavaThread_pnPBasicObjectLo
text: .text%__1cSInterpreterRuntimePresolve_get_put6FpnKJavaThread_nJBytecodesECode__v_;
text: .text%__1cQsubI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cXmembar_acquire_lockNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cQaddP_reg_regNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cPCountedLoopNodeGOpcode6kM_i_;
text: .text%__1cSInterpreterRuntimeLmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cIAndLNodeGOpcode6kM_i_;
@@ -765,13 +723,10 @@ text: .text%__1cVjava_lang_ClassLoaderbBnon_reflection_class_loader6FpnHoopDesc_
text: .text%__1cFParseFBlockKinit_graph6Mp0_v_;
text: .text%__1cMTypeKlassPtrEmake6FnHTypePtrDPTR_pnHciKlass_i_pk0_;
text: .text%__1cKRelocationLspec_simple6FnJrelocInfoJrelocType__nQRelocationHolder__;
-text: .text%__1cCosGmalloc6FI_pv_;
text: .text%__1cSInterpreterRuntimeOresolve_invoke6FpnKJavaThread_nJBytecodesECode__v_;
text: .text%__1cIGraphKitTadd_exception_state6MpnNSafePointNode__v_;
-text: .text%__1cIimmPOperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cIregDOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cKstoreINodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cICodeHeapLheader_size6F_I_;
text: .text%__1cWConstantPoolCacheEntryKset_method6MnJBytecodesECode_nMmethodHandle_i_v_;
text: .text%__1cNloadRangeNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseMdo_one_block6M_v_;
@@ -794,7 +749,6 @@ text: .text%__1cHMatcherKmatch_sfpt6MpnNSafePointNode__pnIMachNode__;
text: .text%__1cMFastLockNodeGOpcode6kM_i_;
text: .text%__1cLConvL2INodeGOpcode6kM_i_;
text: .text%__1cIXorINodeGOpcode6kM_i_;
-text: .text%__1cMVirtualSpaceOcommitted_size6kM_I_;
text: .text%__1cOcompU_iRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPorI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKTypeAryPtrFklass6kM_pnHciKlass__;
@@ -812,23 +766,17 @@ text: .text%__1cPcompP_iRegPNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cPsp_ptr_RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cPClassFileParserbCverify_legal_field_signature6MnMsymbolHandle_1pnGThread__v_;
text: .text%__1cPClassFileParserXverify_legal_field_name6MnMsymbolHandle_pnGThread__v_;
-text: .text%__1cRshrP_reg_imm5NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLBoxLockNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cITypeLongEmake6Fxxi_pk0_;
text: .text%__1cNloadKlassNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%JVM_GetCPMethodNameUTF;
text: .text%__1cMtlsLoadPNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLstoreB0NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cIimmIOperIconstant6kM_i_: ad_sparc_clone.o;
-text: .text%__1cNSharedRuntimeEldiv6Fxx_x_;
text: .text%__1cHBitDataKcell_count6M_i_: ciMethodData.o;
text: .text%__1cURethrowExceptionNodeNis_block_proj6kM_pknENode__: ad_sparc_misc.o;
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cQsubI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadBNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cQaddP_reg_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKmethodOperGmethod6kM_i_: ad_sparc.o;
text: .text%__1cFKlassIsubklass6kM_p0_;
text: .text%__1cNinstanceKlassbBallocate_permanent_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cXInterpreterFrameClosureJoffset_do6Mi_v_: frame.o;
@@ -885,7 +833,6 @@ text: .text%__1cIConLNodeGOpcode6kM_i_;
text: .text%JVM_GetCPFieldSignatureUTF;
text: .text%__1cENodeLnonnull_req6kM_p0_;
text: .text%__1cYCallStaticJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cYCallStaticJavaDirectNodeKmethod_set6Mi_v_;
text: .text%__1cMelapsedTimerFstart6M_v_;
text: .text%__1cMelapsedTimerEstop6M_v_;
text: .text%__1cMURShiftINodeLbottom_type6kM_pknEType__: classes.o;
@@ -946,7 +893,6 @@ text: .text%__1cIGraphKitOreplace_in_map6MpnENode_2_v_;
text: .text%__1cNinstanceKlassLfind_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cHCompileKTracePhase2T6M_v_;
text: .text%__1cMPhaseChaitinLclone_projs6MpnFBlock_IpnENode_4rI_i_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
text: .text%__1cIJVMState2t6MpnIciMethod_p0_v_;
text: .text%__1cIHaltNode2t6MpnENode_2_v_;
text: .text%__1cLOptoRuntimeSuncommon_trap_Type6F_pknITypeFunc__;
@@ -954,7 +900,6 @@ text: .text%__1cJloadLNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cSsafePoint_pollNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cINodeHashJhash_find6MpknENode__p1_;
text: .text%__1cQmulL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cSaddP_reg_imm13NodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cOMethodLivenessKBasicBlock2t6Mp0ii_v_;
text: .text%__1cOMethodLivenessKBasicBlockQcompute_gen_kill6MpnIciMethod__v_;
text: .text%__1cOGenerateOopMapFppush6MpnNCellTypeState__v_;
@@ -966,7 +911,6 @@ text: .text%__1cTCreateExceptionNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cLstoreB0NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cMtlsLoadPNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLBoxLockNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cITypeLongEmake6Fx_pk0_;
text: .text%__1cHciFieldPinitialize_from6MpnPfieldDescriptor__v_;
text: .text%__1cKimmI13OperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cJloadBNodeIpipeline6kM_pknIPipeline__;
@@ -987,7 +931,6 @@ text: .text%__1cFParseHdo_call6M_v_;
text: .text%__1cNloadConP0NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cHMulNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMPhaseIterGVNJtransform6MpnENode__2_;
-text: .text%__1cHTypeIntFwiden6kMpknEType__3_;
text: .text%__1cSsafePoint_pollNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadSNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKarrayKlassLobject_size6kMi_i_;
@@ -1019,36 +962,26 @@ text: .text%__1cIBoolNodeHsize_of6kM_I_;
text: .text%__1cSobjArrayKlassKlassIoop_size6kMpnHoopDesc__i_: objArrayKlassKlass.o;
text: .text%__1cPcompP_iRegPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJloadPNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cNSignatureInfoGdo_int6M_v_: bytecode.o;
text: .text%__1cOstackSlotLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKInlineTreeMok_to_inline6MpnIciMethod_pnIJVMState_rnNciCallProfile_pnMWarmCallInfo__8_;
text: .text%__1cOGenerateOopMapbAget_basic_block_containing6kMi_pnKBasicBlock__;
-text: .text%__1cICodeHeapSallocated_capacity6kM_I_;
-text: .text%__1cICHeapObj2n6FI_pv_;
text: .text%__1cQsubL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cWCallLeafNoFPDirectNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cFTypeDEhash6kM_i_;
-text: .text%__1cKTypeRawPtrHget_con6kM_i_;
text: .text%__1cJStartNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%jni_ExceptionOccurred: jni.o;
text: .text%__1cKciTypeFlowLStateVectorStype_meet_internal6FpnGciType_3p0_3_;
text: .text%__1cMloadConINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGIfNodeHsize_of6kM_I_: classes.o;
text: .text%__1cPconvL2I_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cIimmLOperJconstantL6kM_x_: ad_sparc_clone.o;
-text: .text%__1cTStackWalkCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%jni_GetByteArrayRegion: jni.o;
-text: .text%__1cIGraphKitTset_all_memory_call6MpnENode__v_;
-text: .text%__1cSHighResTimeSamplerLtake_sample6M_x_: statSampler.o;
text: .text%__1cHCompileFstart6kM_pnJStartNode__;
text: .text%__1cPStatSamplerTaskEtask6M_v_: statSampler.o;
-text: .text%__1cMPeriodicTaskOreal_time_tick6FI_v_;
text: .text%__1cQPlaceholderTableKfind_entry6MiInMsymbolHandle_nGHandle__pnNsymbolOopDesc__;
text: .text%__1cIParmNodeJideal_reg6kM_I_;
text: .text%__1cQandL_reg_regNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cIMachNodeRget_base_and_disp6kMrirpknHTypePtr__pknENode__;
text: .text%__1cQSystemDictionarybBresolve_array_class_or_null6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cIregFOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cRbranchLoopEndNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -1072,7 +1005,6 @@ text: .text%__1cUcompU_iReg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%JVM_RawMonitorEnter;
text: .text%JVM_RawMonitorExit;
text: .text%__1cOMachReturnNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cMTypeKlassPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cWShouldNotReachHereNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcmpFastLockNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cETypeRget_typeflow_type6FpnGciType__pk0_;
@@ -1082,7 +1014,6 @@ text: .text%__1cXinitialize_static_field6FpnPfieldDescriptor_pnGThread__v_: clas
text: .text%__1cURethrowExceptionNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOJNIHandleBlockOallocate_block6FpnGThread__p0_;
text: .text%__1cNSignatureInfoHdo_bool6M_v_: bytecode.o;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cSandI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIAddINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cLTypeInstPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
@@ -1094,16 +1025,10 @@ text: .text%__1cNLoadKlassNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPorI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLRethrowNodeGOpcode6kM_i_;
text: .text%__1cJloadSNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cICodeHeapIcapacity6kM_I_;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
-text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cPcmpFastLockNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cFArena2T6M_v_;
text: .text%__1cKMemBarNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
-text: .text%__1cOCallRelocationFvalue6M_pC_: relocInfo.o;
-text: .text%__1cHoopDescSslow_identity_hash6M_i_;
-text: .text%__1cSObjectSynchronizerXidentity_hash_value_for6FnGHandle__i_;
text: .text%__1cLPCTableNodeEhash6kM_I_;
text: .text%__1cHConNodeLout_RegMask6kM_rknHRegMask__: classes.o;
text: .text%__1cXPhaseAggressiveCoalesceYinsert_copy_with_overlap6MpnFBlock_pnENode_II_v_;
@@ -1136,7 +1061,6 @@ text: .text%__1cJloadSNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cIJumpDataKcell_count6M_i_: ciMethodData.o;
text: .text%__1cObranchConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cITypeFuncFxdual6kM_pknEType__;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%__1cFStateM_sub_Op_CmpI6MpknENode__v_;
text: .text%__1cJcmpOpOperFccode6kM_i_: ad_sparc_clone.o;
text: .text%__1cGciType2t6MnLKlassHandle__v_;
@@ -1175,7 +1099,6 @@ text: .text%jni_ReleasePrimitiveArrayCritical: jni.o;
text: .text%__1cPconvI2L_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNMemoryServiceXtrack_memory_pool_usage6FpnKMemoryPool__v_;
text: .text%__1cSmembar_releaseNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cJimmU5OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cPciInstanceKlass2t6MnLKlassHandle__v_;
text: .text%__1cLOpaque1NodeEhash6kM_I_;
text: .text%__1cJStoreNodeZIdeal_sign_extended_input6MpnIPhaseGVN_i_pnENode__;
@@ -1200,11 +1123,9 @@ text: .text%__1cQmulL_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cLstoreP0NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLRethrowNodeKmatch_edge6kMI_I_;
text: .text%__1cFTypeFEhash6kM_i_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cFStateM_sub_Op_AddI6MpknENode__v_;
text: .text%__1cOParseGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cFParseQcreate_entry_map6M_pnNSafePointNode__;
-text: .text%__1cFArenaEused6kM_I_;
text: .text%__1cFParseLbuild_exits6M_v_;
text: .text%__1cFParseIdo_exits6M_v_;
text: .text%__1cFParse2t6MpnIJVMState_pnIciMethod_f_v_;
@@ -1213,17 +1134,13 @@ text: .text%__1cFParsePdo_method_entry6M_v_;
text: .text%__1cNCallGeneratorKfor_inline6FpnIciMethod_f_p0_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2t6M_v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2T6M_v_;
-text: .text%__1cQconstMethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cRciVirtualCallDataOtranslate_from6MpnLProfileData__v_;
text: .text%jni_IsSameObject: jni.o;
text: .text%__1cMloadConINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNbranchConNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cNbranchConNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQandL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cLmethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cLsymbolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cIciObjectFklass6M_pnHciKlass__;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
text: .text%__1cPThreadLocalNodeGOpcode6kM_i_;
text: .text%__1cZPhaseConservativeCoalesceKupdate_ifg6MIIpnIIndexSet_2_v_;
text: .text%__1cZPhaseConservativeCoalesceMunion_helper6MpnENode_2II222pnFBlock_I_v_;
@@ -1240,14 +1157,11 @@ text: .text%__1cKCastPPNodeQIdeal_DU_postCCP6MpnIPhaseCCP__pnENode__;
text: .text%__1cKstorePNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOPhaseIdealLoopOsplit_thru_phi6MpnENode_2i_2_;
text: .text%__1cENodeGOpcode6kM_i_;
-text: .text%__1cRshrP_reg_imm5NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQandI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIciMethodbBinterpreter_call_site_count6Mi_i_;
text: .text%__1cGBitMapIset_from6M0_v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
text: .text%__1cTconstantPoolOopDescbDresolve_string_constants_impl6FnSconstantPoolHandle_pnGThread__v_;
text: .text%__1cHSubNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cFChunk2n6FII_pv_;
text: .text%__1cTCallDynamicJavaNodeGOpcode6kM_i_;
text: .text%__1cKstoreBNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cILoadNodeDcmp6kMrknENode__I_;
@@ -1261,7 +1175,6 @@ text: .text%__1cHOrINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cFframeLreal_sender6kMpnLRegisterMap__0_;
text: .text%__1cGRFrameGcaller6M_p0_;
text: .text%__1cPCheckCastPPNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cRshrP_reg_imm5NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cXmembar_release_lockNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cJloadINodeOmemory_operand6kM_pknIMachOper__;
@@ -1278,7 +1191,6 @@ text: .text%__1cNCatchProjNodeDcmp6kMrknENode__I_;
text: .text%__1cKTypeOopPtrEhash6kM_i_;
text: .text%__1cIMinINodeGOpcode6kM_i_;
text: .text%__1cMURShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cKTypeRawPtrFxmeet6kMpknEType__3_;
text: .text%JVM_GetMethodIxModifiers;
text: .text%__1cIMulLNodeLbottom_type6kM_pknEType__: classes.o;
@@ -1289,8 +1201,6 @@ text: .text%JVM_IsInterface;
text: .text%__1cPorI_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIDivINodeGOpcode6kM_i_;
text: .text%__1cOGenerateOopMapTmerge_state_into_bb6MpnKBasicBlock__v_;
-text: .text%__1cICodeHeapIallocate6MI_pv_;
-text: .text%__1cICodeHeapPsearch_freelist6MI_pnJFreeBlock__;
text: .text%__1cLOpaque1NodeLbottom_type6kM_pknEType__: connode.o;
text: .text%__1cNloadRangeNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cLRShiftLNodeGOpcode6kM_i_;
@@ -1315,7 +1225,6 @@ text: .text%__1cParrayKlassKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cParrayKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cIGraphKitYcombine_exception_states6MpnNSafePointNode_2_v_;
text: .text%__1cQmulL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cRshrP_reg_imm5NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSconstMethodOopDescYchecked_exceptions_start6kM_pnXCheckedExceptionElement__;
text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHandle_pnGThread__1_;
text: .text%__1cKstoreLNodePoper_input_base6kM_I_: ad_sparc_misc.o;
@@ -1325,7 +1234,6 @@ text: .text%__1cSconvI2D_helperNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
text: .text%__1cUcompI_iReg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOMacroAssemblerNverify_thread6M_v_;
-text: .text%__1cIGraphKitZset_results_for_java_call6MpnMCallJavaNode__pnENode__;
text: .text%__1cSbranchCon_longNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHnmethodVcleanup_inline_caches6M_v_;
text: .text%__1cTciConstantPoolCacheGinsert6Mipv_v_;
@@ -1356,12 +1264,9 @@ text: .text%__1cKoopFactoryTnew_system_objArray6FipnGThread__pnPobjArrayOopDesc_
text: .text%__1cbDcatch_cleanup_find_cloned_def6FpnFBlock_pnENode_1rnLBlock_Array_i_3_: lcm.o;
text: .text%__1cQxorI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cOClearArrayNodeKmatch_edge6kMI_I_;
text: .text%__1cPconvL2I_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJloadSNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cSFixupMirrorClosureJdo_object6MpnHoopDesc__v_: universe.o;
text: .text%__1cFStateP_sub_Op_LShiftI6MpknENode__v_;
text: .text%__1cQandL_reg_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -1381,13 +1286,11 @@ text: .text%__1cRshlL_reg_imm6NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cQandI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cSandI_reg_imm13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cRCardTableModRefBSPdirty_MemRegion6MnJMemRegion__v_;
-text: .text%__1cZresource_reallocate_bytes6FpcII_0_;
text: .text%__1cLConvL2INodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cOAbstractICacheQinvalidate_range6FpCi_v_;
text: .text%__1cKstorePNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMaxINodeGOpcode6kM_i_;
text: .text%__1cTDirectCallGeneratorIgenerate6MpnIJVMState__2_;
-text: .text%__1cNCallGeneratorPfor_direct_call6FpnIciMethod__p0_;
text: .text%__1cMWarmCallInfoLalways_cold6F_p0_;
text: .text%__1cIimmDOperJconstantD6kM_d_: ad_sparc_clone.o;
text: .text%__1cIPhaseIFGEinit6MI_v_;
@@ -1415,7 +1318,6 @@ text: .text%__1cJloadPNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cMoutputStream2t6Mi_v_;
text: .text%__1cMstringStreamJas_string6M_pc_;
text: .text%__1cMstringStream2T6M_v_;
-text: .text%__1cMstringStream2t6MI_v_;
text: .text%__1cIGraphKitMreset_memory6M_pnENode__;
text: .text%__1cZCallDynamicJavaDirectNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKstorePNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -1472,7 +1374,6 @@ text: .text%__1cSInterpreterRuntimebFexception_handler_for_exception6FpnKJavaThr
text: .text%__1cOPhaseIdealLoopPis_counted_loop6MpnENode_pnNIdealLoopTree__2_;
text: .text%__1cQComputeCallStackHdo_void6M_v_: generateOopMap.o;
text: .text%__1cFKlassRinitialize_supers6MpnMklassOopDesc_pnGThread__v_;
-text: .text%__1cKKlass_vtbl2n6FIrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cFKlassVbase_create_klass_oop6FrnLKlassHandle_irknKKlass_vtbl_pnGThread__pnMklassOopDesc__;
text: .text%__1cQjava_lang_StringLutf8_length6FpnHoopDesc__i_;
text: .text%jni_GetStringUTFLength: jni.o;
@@ -1494,7 +1395,6 @@ text: .text%__1cQjava_lang_StringRas_unicode_string6FpnHoopDesc_ri_pH_;
text: .text%JVM_InternString;
text: .text%__1cLStringTableGintern6FpnHoopDesc_pnGThread__2_;
text: .text%__1cCosGrandom6F_l_;
-text: .text%__1cKimmP13OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cVcompP_iRegP_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKoopFactoryXnew_permanent_byteArray6FipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cRcompL_reg_regNodeIpipeline6kM_pknIPipeline__;
@@ -1512,7 +1412,6 @@ text: .text%__1cPciObjectFactoryMvm_symbol_at6Fi_pnIciSymbol__;
text: .text%__1cKDictionaryJadd_klass6MnMsymbolHandle_nGHandle_nLKlassHandle__v_;
text: .text%__1cVshrL_reg_imm6_L2INodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cZCallDynamicJavaDirectNodePoper_input_base6kM_I_: ad_sparc_misc.o;
-text: .text%__1cIGraphKitTcreate_and_xform_if6MpnENode_2ff_pnGIfNode__: graphKit.o;
text: .text%__1cWImplicitExceptionTableGappend6MII_v_;
text: .text%__1cRMachNullCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLProfileDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_: ciMethodData.o;
@@ -1534,14 +1433,12 @@ text: .text%__1cFKlassMset_subklass6MpnMklassOopDesc__v_;
text: .text%__1cOGenerateOopMapLmerge_state6Fp0ipi_v_;
text: .text%__1cMTypeKlassPtrFxdual6kM_pknEType__;
text: .text%__1cQSystemDictionaryVdefine_instance_class6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cPClassFileParserbBcheck_final_method_override6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cJCodeCachebKnumber_of_nmethods_with_dependencies6F_i_;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
text: .text%__1cPClassFileStream2t6MpCipc_v_;
text: .text%__1cNinstanceKlassSprocess_interfaces6MpnGThread__v_;
text: .text%__1cNinstanceKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cNinstanceKlassWdo_local_static_fields6MpFpnPfieldDescriptor_pnGThread__v4_v_;
text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nPtypeArrayHandle__;
text: .text%__1cFKlassKsuperklass6kM_pnNinstanceKlass__;
@@ -1561,22 +1458,17 @@ text: .text%__1cISubINodeJideal_reg6kM_I_: classes.o;
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_: instanceKlass.o;
text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlass.o;
text: .text%__1cHMemNodeHsize_of6kM_I_;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cSThreadProfilerMark2T6M_v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cQSystemDictionaryRload_shared_class6FnTinstanceKlassHandle_nGHandle_pnGThread__1_;
-text: .text%__1cKklassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cPClassFileParserbKparse_classfile_sourcefile_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cQmodI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLRShiftINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKCMoveINodeGOpcode6kM_i_;
text: .text%__1cLLShiftLNodeGOpcode6kM_i_;
text: .text%__1cYcompareAndSwapL_boolNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cSinstanceKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cNinstanceKlassScopy_static_fields6MpnSPSPromotionManager__v_;
text: .text%__1cMtlsLoadPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateQ_sub_Op_URShiftI6MpknENode__v_;
text: .text%__1cKcmpOpUOperGnegate6M_v_: ad_sparc_clone.o;
@@ -1619,14 +1511,12 @@ text: .text%__1cLklassItableTcompute_itable_size6FnOobjArrayHandle__i_;
text: .text%__1cQandI_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIXorINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cRmethodDataOopDescLbci_to_data6Mi_pnLProfileData__;
-text: .text%__1cFframeZinterpreter_frame_set_bcx6Mi_v_;
text: .text%__1cMnegF_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLstoreI0NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTOopMapForCacheEntryZfill_stackmap_for_opcodes6MpnOBytecodeStream_pnNCellTypeState_4i_v_;
text: .text%__1cSaddL_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQshrL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
text: .text%__1cILoopNodeHsize_of6kM_I_: classes.o;
text: .text%__1cHMatcherLfind_shared6MpnENode__v_;
text: .text%__1cJStartNodeHsize_of6kM_I_;
@@ -1643,8 +1533,6 @@ text: .text%__1cRcompL_reg_conNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cMLinkResolverbHlookup_instance_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cMnegF_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cNSharedRuntimebWnative_method_throw_unsatisfied_link_error_entry6F_pC_;
-text: .text%__1cTStackWalkCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
-text: .text%__1cRCompilationPolicybJreset_counter_for_back_branch_event6MnMmethodHandle__v_;
text: .text%__1cOMethodLivenessQcompute_liveness6M_v_;
text: .text%__1cOMethodLiveness2t6MpnFArena_pnIciMethod__v_;
text: .text%__1cOMethodLivenessNinit_gen_kill6M_v_;
@@ -1654,7 +1542,6 @@ text: .text%__1cIGraphKitHopt_iff6MpnENode_2_2_;
text: .text%__1cLRShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJTimeStampGupdate6M_v_;
text: .text%__1cRmethodDataOopDescKmileage_of6FpnNmethodOopDesc__i_;
-text: .text%__1cWconstantPoolCacheKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cMloadConDNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseQarray_addressing6MnJBasicType_ippknEType__pnENode__;
text: .text%__1cNloadConP0NodeLout_RegMask6kM_rknHRegMask__;
@@ -1666,14 +1553,11 @@ text: .text%__1cQcmovI_reg_ltNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cRsubI_zero_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cJcmpOpOperFequal6kM_i_: ad_sparc_clone.o;
text: .text%__1cHCompilebAvarargs_C_out_slots_killed6kM_I_;
-text: .text%__1cXJNI_ArgumentPusherVaArgHiterate6MX_v_: jni.o;
-text: .text%__1cbBjava_lang_ref_SoftReferenceFclock6F_x_;
text: .text%__1cOPhaseIdealLoopQset_subtree_ctrl6MpnENode__v_;
text: .text%__1cWstatic_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNflagsRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cYciExceptionHandlerStreamPcount_remaining6M_i_;
text: .text%__1cFParseXcatch_inline_exceptions6MpnNSafePointNode__v_;
-text: .text%__1cRconstantPoolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNobjArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cKcmpOpUOperNgreater_equal6kM_i_: ad_sparc_clone.o;
text: .text%JVM_GetFieldIxModifiers;
@@ -1698,7 +1582,6 @@ text: .text%__1cKo0RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cIregDOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%__1cNSharedRuntimeXfind_callee_info_helper6FpnKJavaThread_rnMvframeStream_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cLRethrowNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSPSKeepAliveClosureGdo_oop6MppnHoopDesc__v_: psScavenge.o;
text: .text%__1cFParseFBlockRsuccessor_for_bci6Mi_p1_;
@@ -1724,7 +1607,6 @@ text: .text%__1cLMachNopNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOPhaseIdealLoopNreorg_offsets6MpnNIdealLoopTree__v_;
text: .text%__1cRshrL_reg_imm6NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cNmethodOopDescVset_signature_handler6MpC_v_;
-text: .text%__1cbBjava_lang_ref_SoftReferenceJtimestamp6FpnHoopDesc__x_;
text: .text%__1cPcompP_iRegPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSxorI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOPhaseIdealLoopRsplit_thru_region6MpnENode_2_2_;
@@ -1736,7 +1618,6 @@ text: .text%__1cJCodeCacheMfind_nmethod6Fpv_pnHnmethod__;
text: .text%__1cOPhaseIdealLoopMdominated_by6MpnENode_2_v_;
text: .text%__1cQshlI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cFParseNthrow_to_exit6MpnNSafePointNode__v_;
-text: .text%__1cQinstanceRefKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cVConstantOopWriteValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cJVectorSetGslamin6Mrk0_v_;
text: .text%JVM_Clone;
@@ -1772,7 +1653,6 @@ text: .text%__1cXmembar_release_lockNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cJNode_ListEyank6MpnENode__v_;
text: .text%__1cMPhaseChaitinISimplify6M_v_;
text: .text%__1cNIdealLoopTreeIset_nest6MI_i_;
-text: .text%__1cSCallLeafDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMulLNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cMStartOSRNodeGOpcode6kM_i_;
text: .text%__1cSCallLeafDirectNodeLout_RegMask6kM_rknHRegMask__;
@@ -1792,7 +1672,6 @@ text: .text%__1cSMemBarVolatileNodeGOpcode6kM_i_;
text: .text%__1cLstoreB0NodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cRshrI_reg_imm5NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc__pc_;
-text: .text%__1cRcmpFastUnlockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNSafePointNodeLpop_monitor6M_v_;
text: .text%__1cMPhaseChaitinVfind_base_for_derived6MppnENode_2rI_2_;
text: .text%__1cLOptoRuntimebAcomplete_monitor_exit_Type6F_pknITypeFunc__;
@@ -1813,7 +1692,6 @@ text: .text%__1cMindirectOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o
text: .text%__1cMindirectOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cNSafePointNodeMpush_monitor6MpknMFastLockNode__v_;
text: .text%__1cSCallLeafDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cSCallLeafDirectNodeKmethod_set6Mi_v_;
text: .text%__1cIDivINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cJLoadBNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cJloadBNodeOmemory_operand6kM_pknIMachOper__;
@@ -1824,8 +1702,6 @@ text: .text%__1cOGenerateOopMapGdo_ldc6Mii_v_;
text: .text%__1cJCMoveNodeLis_cmove_id6FpnOPhaseTransform_pnENode_44pnIBoolNode__4_;
text: .text%__1cKTypeAryPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
text: .text%__1cOPhaseIdealLoopKDominators6M_v_;
-text: .text%__1cOPhaseIdealLoopPbuild_loop_late6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
-text: .text%__1cOPhaseIdealLoopQbuild_loop_early6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
text: .text%jni_NewGlobalRef: jni.o;
text: .text%__1cTciConstantPoolCache2t6MpnFArena_i_v_;
text: .text%__1cIAndINodeJideal_reg6kM_I_: classes.o;
@@ -1838,7 +1714,6 @@ text: .text%__1cZPhaseConservativeCoalesceGverify6M_v_;
text: .text%__1cRcmpFastUnlockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQshlI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cXmembar_release_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKPSYoungGenNused_in_bytes6kM_I_;
text: .text%__1cOMachEpilogNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKCompiledICSset_to_monomorphic6MrknOCompiledICInfo__v_;
text: .text%__1cJloadFNodeIpipeline6kM_pknIPipeline__;
@@ -1851,8 +1726,6 @@ text: .text%JVM_FillInStackTrace;
text: .text%__1cKJavaThreadGactive6F_p0_;
text: .text%__1cKstoreFNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cQjava_lang_StringOchar_converter6FnGHandle_HHpnGThread__1_;
-text: .text%__1cMVirtualSpaceNreserved_size6kM_I_;
-text: .text%__1cICodeHeapMmax_capacity6kM_I_;
text: .text%__1cRsubI_zero_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cHTypePtrFxmeet6kMpknEType__3_;
text: .text%__1cNflagsRegFOperEtype6kM_pknEType__: ad_sparc.o;
@@ -1860,7 +1733,6 @@ text: .text%__1cIMinINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cFParseWensure_phis_everywhere6M_v_;
text: .text%__1cLRethrowNodeEhash6kM_I_: classes.o;
text: .text%__1cIDivLNodeGOpcode6kM_i_;
-text: .text%__1cPlocal_vsnprintf6FpcIpkcpv_i_;
text: .text%__1cNDispatchTableJset_entry6MirnKEntryPoint__v_;
text: .text%__1cNmethodOopDescVclear_native_function6M_v_;
text: .text%__1cOloadConL13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -1933,7 +1805,6 @@ text: .text%__1cIPhaseCFGQGlobalCodeMotion6MrnHMatcher_IrnJNode_List__v_;
text: .text%__1cHMatcherTFixup_Save_On_Entry6M_v_;
text: .text%__1cHMatcherPinit_spill_mask6MpnENode__v_;
text: .text%__1cHCompileICode_Gen6M_v_;
-text: .text%__1cFArena2t6MI_v_;
text: .text%__1cUDebugInfoWriteStream2t6MpnYDebugInformationRecorder_i_v_;
text: .text%__1cHMatcherVinit_first_stack_mask6M_v_;
text: .text%__1cFArenaNmove_contents6Mp0_1_;
@@ -1972,7 +1843,6 @@ text: .text%__1cRsubI_zero_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHRetNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIConDNodeGOpcode6kM_i_;
text: .text%__1cObranchConFNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cTresource_free_bytes6FpcI_v_;
text: .text%__1cNmethodOopDescbDbuild_interpreter_method_data6FnMmethodHandle_pnGThread__v_;
text: .text%__1cRcompL_reg_conNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNMemoryManagerHoops_do6MpnKOopClosure__v_;
@@ -1981,10 +1851,8 @@ text: .text%__1cFciEnvKcompile_id6M_I_;
text: .text%__1cPmethodDataKlassIallocate6MnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cKoopFactoryOnew_methodData6FnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cIAndLNodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cVshrL_reg_imm6_L2INodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLConvL2INodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cIciMethodRinstructions_size6M_i_;
text: .text%__1cSmulI_reg_imm13NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cCosXthread_local_storage_at6Fi_pv_;
text: .text%__1cMindIndexOperNconstant_disp6kM_i_: ad_sparc.o;
@@ -2013,10 +1881,8 @@ text: .text%__1cLOpaque2NodeLbottom_type6kM_pknEType__: connode.o;
text: .text%__1cSconvI2D_helperNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUPSGenerationCountersKupdate_all6M_v_: psGenerationCounters.o;
text: .text%__1cQComputeCallStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cKTypeOopPtrSmake_from_constant6FpnIciObject__pk0_;
text: .text%__1cQregP_to_stkPNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOGenerateOopMapHppstore6MpnNCellTypeState_i_v_;
-text: .text%__1cJTimeStampSticks_since_update6kM_x_;
text: .text%__1cQmodI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cIMulINodeImul_ring6kMpknEType_3_3_;
text: .text%__1cURethrowExceptionNodeIpipeline6kM_pknIPipeline__;
@@ -2027,18 +1893,15 @@ text: .text%__1cSaddI_reg_imm13NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIModINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKklassKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cJcmpOpOperHgreater6kM_i_: ad_sparc_clone.o;
-text: .text%__1cJimmL0OperJconstantL6kM_x_: ad_sparc_clone.o;
text: .text%__1cJimmI0OperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cFStateM_sub_Op_ConL6MpknENode__v_;
text: .text%__1cOloadConL13NodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cNObjectMonitorHis_busy6kM_i_;
text: .text%JVM_GetClassNameUTF;
text: .text%__1cKloadUBNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIXorINodeGadd_id6kM_pknEType__: classes.o;
text: .text%__1cFStateM_sub_Op_AndI6MpknENode__v_;
text: .text%__1cVshrL_reg_imm6_L2INodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKcmpOpFOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cTmembar_volatileNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateL_sub_Op_OrI6MpknENode__v_;
@@ -2059,14 +1922,11 @@ text: .text%__1cNloadConL0NodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cFTypeFEmake6Ff_pk0_;
text: .text%__1cIimmFOperJconstantF6kM_f_: ad_sparc_clone.o;
text: .text%__1cEUTF8Ounicode_length6Fpkc_i_;
-text: .text%__1cCosRcurrent_thread_id6F_i_;
text: .text%__1cUSafepointSynchronizeFblock6FpnKJavaThread__v_;
text: .text%__1cOGenerateOopMapJppdupswap6Mipkc_v_;
-text: .text%__1cJttyLockerbCbreak_tty_lock_for_safepoint6Fi_v_;
text: .text%__1cSmembar_acquireNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cPorI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIPhaseCFGOinsert_goto_at6MII_v_;
-text: .text%__1cITypeLongFwiden6kMpknEType__3_;
text: .text%__1cSThreadLocalStoragePget_thread_slow6F_pnGThread__;
text: .text%__1cPCallRuntimeNodeGOpcode6kM_i_;
text: .text%__1cJcmpOpOperNgreater_equal6kM_i_: ad_sparc_clone.o;
@@ -2074,7 +1934,6 @@ text: .text%__1cMindIndexOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o
text: .text%__1cMindIndexOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cMindIndexOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%JVM_FindClassFromClass;
-text: .text%__1cRshrP_reg_imm5NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cObranchConFNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cQshrI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cbDjava_lang_reflect_ConstructorFclazz6FpnHoopDesc__2_;
@@ -2092,12 +1951,10 @@ text: .text%__1cSciExceptionHandlerLcatch_klass6M_pnPciInstanceKlass__;
text: .text%__1cMloadConFNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cKcmpOpPOperNgreater_equal6kM_i_: ad_sparc_clone.o;
text: .text%__1cLRShiftLNodeLbottom_type6kM_pknEType__: classes.o;
-text: .text%__1cKimmL13OperJconstantL6kM_x_: ad_sparc_clone.o;
text: .text%__1cSTailCalljmpIndNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cGIfNodeMdominated_by6MpnENode_pnMPhaseIterGVN__v_;
text: .text%__1cOcompiledVFrame2t6MpknFframe_pknLRegisterMap_pnKJavaThread_pnJScopeDesc__v_;
-text: .text%__1cJScopeDesc2t6MpknHnmethod_i_v_;
text: .text%__1cQshlI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOGenerateOopMapJdo_astore6Mi_v_;
text: .text%__1cbFunnecessary_membar_volatileNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -2127,7 +1984,6 @@ text: .text%__1cLBoxLockNode2t6Mi_v_;
text: .text%__1cPconvF2D_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLOptoRuntimebBcomplete_monitor_enter_Type6F_pknITypeFunc__;
text: .text%__1cIGraphKitLshared_lock6MpnENode__pnMFastLockNode__;
-text: .text%__1cPcmpFastLockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNloadConP0NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRorI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKcmpOpUOperEless6kM_i_: ad_sparc_clone.o;
@@ -2135,7 +1991,6 @@ text: .text%__1cQaddF_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%lwp_mutex_init: os_solaris.o;
text: .text%__1cRsubI_zero_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cQjava_lang_ThreadGthread6FpnHoopDesc__pnKJavaThread__;
text: .text%__1cQnotemp_iRegIOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cITemplateIbytecode6kM_nJBytecodesECode__;
@@ -2174,11 +2029,9 @@ text: .text%jni_GetObjectClass: jni.o;
text: .text%__1cSxorI_reg_imm13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOMacroAssemblerFalign6Mi_v_;
text: .text%__1cRappend_interfaces6FnOobjArrayHandle_ripnPobjArrayOopDesc__v_;
-text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cIPSOldGenPupdate_counters6M_v_;
text: .text%__1cQshrI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cNinstanceKlassbFlookup_method_in_all_interfaces6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cTloadL_unalignedNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cJloadLNodeOmemory_operand6kM_pknIMachOper__;
@@ -2222,7 +2075,6 @@ text: .text%__1cMLinkResolverXresolve_invokeinterface6FrnICallInfo_nGHandle_nSco
text: .text%__1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_;
text: .text%JVM_GetClassLoader;
text: .text%__1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_;
-text: .text%__1cCosRelapsed_frequency6F_x_;
text: .text%__1cFStateP_sub_Op_ConvL2I6MpknENode__v_;
text: .text%__1cOPhaseIdealLoopLdo_split_if6MpnENode__v_;
text: .text%__1cLAccessFlagsRatomic_clear_bits6Mi_v_;
@@ -2249,11 +2101,9 @@ text: .text%__1cSmembar_acquireNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
text: .text%__1cVExceptionHandlerTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
text: .text%__1cFciEnvVnum_inlined_bytecodes6kM_i_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cIciMethodRbuild_method_data6M_v_;
text: .text%__1cHCompileIOptimize6M_v_;
text: .text%__1cHCompileLFinish_Warm6M_v_;
@@ -2287,7 +2137,6 @@ text: .text%__1cTmembar_volatileNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cNloadConL0NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQComputeCallStackGdo_int6M_v_: generateOopMap.o;
text: .text%__1cXmembar_acquire_lockNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cKPSYoungGenRcapacity_in_bytes6kM_I_;
text: .text%__1cNSafepointBlobbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_: codeBlob.o;
text: .text%__1cOloadConI13NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJloadSNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2299,7 +2148,6 @@ text: .text%__1cNSignatureInfoIdo_short6M_v_: bytecode.o;
text: .text%__1cLBoxLockNodeDcmp6kMrknENode__I_;
text: .text%__1cSCompiledStaticCallSset_to_interpreted6MnMmethodHandle_pC_v_;
text: .text%__1cSCompiledStaticCallJfind_stub6M_pC_;
-text: .text%__1cRNativeMovConstRegIset_data6Mi_v_;
text: .text%__1cFParsebLincrement_and_test_invocation_counter6Mi_v_;
text: .text%__1cSsafePoint_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMTailCallNodeGOpcode6kM_i_;
@@ -2325,7 +2173,6 @@ text: .text%__1cKScopeValueJread_from6FpnTDebugInfoReadStream__p0_;
text: .text%__1cKPerfMemoryMmark_updated6F_v_;
text: .text%__1cSobjArrayKlassKlassbCallocate_objArray_klass_impl6FnYobjArrayKlassKlassHandle_inLKlassHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cIPerfData2t6MnJCounterNS_pkcn0AFUnits_n0ALVariability__v_;
-text: .text%__1cKPerfMemoryFalloc6FI_pc_;
text: .text%__1cLStrCompNodeKmatch_edge6kMI_I_;
text: .text%__1cQmulL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cILocation2t6MpnTDebugInfoReadStream__v_;
@@ -2359,13 +2206,11 @@ text: .text%__1cXJNI_ArgumentPusherVaArgHget_int6M_v_: jni.o;
text: .text%__1cRbranchLoopEndNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQaddF_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKcmpOpUOperHgreater6kM_i_: ad_sparc_clone.o;
-text: .text%__1cUParallelScavengeHeapEused6kM_I_;
text: .text%__1cIDivINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cQmulF_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cQxorI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cWCallLeafNoFPDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLcmpD_ccNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cWCallLeafNoFPDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadINodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cbBopt_virtual_call_RelocationLstatic_stub6M_pC_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFi_vi_v_;
@@ -2392,8 +2237,6 @@ text: .text%__1cSandI_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIimmLOperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cFParseOmerge_new_path6Mi_v_;
text: .text%__1cQregP_to_stkPNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%__1cQjava_lang_StringScreate_from_symbol6FnMsymbolHandle_pnGThread__nGHandle__;
text: .text%__1cSmembar_releaseNodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_NewByteArray: jni.o;
@@ -2402,7 +2245,6 @@ text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMs
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cFParseLdo_newarray6MnJBasicType__v_;
-text: .text%__1cPmethodDataKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNmethodOopDescKklass_name6kM_pnNsymbolOopDesc__;
text: .text%__1cSconvI2D_helperNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cLstoreP0NodeLout_RegMask6kM_rknHRegMask__;
@@ -2427,7 +2269,6 @@ text: .text%__1cSmulI_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerZget_2_byte_integer_at_bcp6MipnMRegisterImpl_2n0ALsignedOrNot_n0AKsetCCOrNot__v_;
text: .text%__1cQcmovI_reg_gtNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cURethrowExceptionNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPfieldDescriptorSlong_initial_value6kM_x_;
text: .text%__1cISubLNodeDsub6kMpknEType_3_3_;
text: .text%__1cPciObjArrayKlass2t6MnLKlassHandle__v_;
text: .text%__1cJLoadINodeMstore_Opcode6kM_i_: classes.o;
@@ -2443,7 +2284,6 @@ text: .text%__1cJCMoveNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%jni_GetStringCritical: jni.o;
text: .text%__1cHciKlassSsuper_check_offset6M_I_;
text: .text%__1cPciObjArrayKlassGloader6M_pnHoopDesc__: ciObjArrayKlass.o;
-text: .text%__1cWCallLeafNoFPDirectNodeKmethod_set6Mi_v_;
text: .text%__1cWCallLeafNoFPDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivLNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cPICStubInterfaceRcode_size_to_size6kMi_i_: icBuffer.o;
@@ -2454,7 +2294,6 @@ text: .text%__1cJScopeDescGsender6kM_p0_;
text: .text%__1cSxorI_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOcompiledVFrameGsender6kM_pnGvframe__;
text: .text%__1cZInterpreterMacroAssemblerDpop6MnITosState__v_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cQPlaceholderTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cXJvmtiCurrentBreakpointsHoops_do6FpnKOopClosure__v_;
text: .text%__1cNMemoryServiceHoops_do6FpnKOopClosure__v_;
@@ -2462,7 +2301,6 @@ text: .text%__1cNThreadServiceHoops_do6FpnKOopClosure__v_;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryRpreloaded_oops_do6FpnKOopClosure__v_;
text: .text%__1cLJvmtiExportHoops_do6FpnKOopClosure__v_;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKJNIHandlesMweak_oops_do6FpnRBoolObjectClosure_pnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
text: .text%__1cMFlatProfilerHoops_do6FpnKOopClosure__v_;
@@ -2481,7 +2319,6 @@ text: .text%__1cOCompiledRFrameKtop_method6kM_nMmethodHandle__: rframe.o;
text: .text%__1cKReflectionTget_parameter_types6FnMmethodHandle_ippnHoopDesc_pnGThread__nOobjArrayHandle__;
text: .text%__1cRtestI_reg_immNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOcmovIL_immNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cJimmU6OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cHRegMask2t6M_v_: matcher.o;
text: .text%__1cOGenerateOopMapIcopy_cts6MpnNCellTypeState_2_i_;
text: .text%__1cNObjectMonitorGEnterI6MpnGThread__v_;
@@ -2494,7 +2331,6 @@ text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocIn
text: .text%__1cPPerfDataManagerMcounter_name6Fpkc2_pc_;
text: .text%__1cIModLNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cMloadConFNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cbBjava_lang_ref_SoftReferenceJset_clock6Fx_v_;
text: .text%__1cbAPSGCAdaptivePolicyCountersbBupdate_counters_from_policy6M_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
text: .text%__1cQSystemDictionaryHoops_do6FpnKOopClosure__v_;
@@ -2510,8 +2346,6 @@ text: .text%__1cMTypeKlassPtrFxmeet6kMpknEType__3_;
text: .text%__1cKPSYoungGenPupdate_counters6M_v_;
text: .text%__1cWThreadLocalAllocBufferbFaccumulate_statistics_before_gc6F_v_;
text: .text%__1cWThreadLocalAllocBufferQresize_all_tlabs6F_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cRLowMemoryDetectorRdetect_low_memory6F_v_;
text: .text%__1cNMemoryServiceStrack_memory_usage6F_v_;
text: .text%__1cbAPSGCAdaptivePolicyCountersPupdate_counters6M_v_;
@@ -2527,19 +2361,16 @@ text: .text%__1cORuntimeServicebDrecord_safepoint_synchronized6F_v_;
text: .text%__1cQaddF_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
text: .text%__1cKarrayKlassTallocate_arrayArray6MiipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cCosbAmake_polling_page_readable6F_v_;
text: .text%__1cUSafepointSynchronizeDend6F_v_;
text: .text%__1cOcmovII_immNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cORuntimeServiceUrecord_safepoint_end6F_v_;
-text: .text%__1cKimmU13OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cQshlL_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUcompU_iReg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_GetCallerClass;
text: .text%__1cNSignatureInfoHdo_byte6M_v_: bytecode.o;
text: .text%__1cOcmovPP_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKstoreBNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSobjArrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cLstoreC0NodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cTloadL_unalignedNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cICmpFNodeGOpcode6kM_i_;
@@ -2551,7 +2382,6 @@ text: .text%jni_IsAssignableFrom: jni.o;
text: .text%jni_GetFieldID: jni.o;
text: .text%__1cJLoadPNodeMstore_Opcode6kM_i_: classes.o;
text: .text%__1cLstoreB0NodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cZInterpreterMacroAssemblerbAget_cache_and_index_at_bcp6MpnMRegisterImpl_2i_v_;
text: .text%__1cHTypeAryFxdual6kM_pknEType__;
text: .text%__1cMtlsLoadPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIVMThreadHexecute6FpnMVM_Operation__v_;
@@ -2582,9 +2412,6 @@ text: .text%__1cZSerialOldToYoungRootsTaskFdo_it6MpnNGCTaskManager_I_v_;
text: .text%__1cQinstanceRefKlassZacquire_pending_list_lock6FpnJBasicLock__v_;
text: .text%__1cZSerialOldToYoungRootsTaskEname6M_pc_: psTasks.o;
text: .text%__1cKPSYoungGenLswap_spaces6M_v_;
-text: .text%__1cUParallelScavengeHeapQresize_young_gen6MII_v_;
-text: .text%__1cKPSYoungGenGresize6MII_v_;
-text: .text%__1cKPSYoungGenNresize_spaces6MII_v_;
text: .text%__1cSPSPromotionManagerbBvm_thread_promotion_manager6F_p0_;
text: .text%__1cUWaitForBarrierGCTaskIwait_for6M_v_;
text: .text%__1cPVM_GC_OperationNdoit_epilogue6M_v_;
@@ -2626,9 +2453,7 @@ text: .text%__1cJloadSNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRloadConP_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNObjectMonitorHRecycle6M_v_;
text: .text%__1cNSharedRuntimeSfind_callee_method6FpnKJavaThread_pnGThread__nMmethodHandle__;
-text: .text%__1cMloadConLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadDNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cQstkI_to_regFNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQregP_to_stkPNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cZInterpreterMacroAssemblerFpop_i6MpnMRegisterImpl__v_;
@@ -2636,9 +2461,7 @@ text: .text%__1cIMaxINodeGadd_id6kM_pknEType__: classes.o;
text: .text%__1cNSharedRuntimeTreresolve_call_site6FpnKJavaThread_pnGThread__nMmethodHandle__;
text: .text%__1cYcompareAndSwapL_boolNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNSCMemProjNodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cYcompareAndSwapL_boolNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIProjNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIPSOldGenMmax_gen_size6M_I_: psOldGen.o;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcipnNsymbolOopDesc_4_v_;
text: .text%__1cSdivL_reg_imm13NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cbDVM_ParallelGCFailedAllocationEdoit6M_v_;
@@ -2659,7 +2482,6 @@ text: .text%__1cPstoreI_FregNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKCMovePNodeGOpcode6kM_i_;
text: .text%__1cLstoreC0NodeIpipeline6kM_pknIPipeline__;
text: .text%JVM_MonitorWait;
-text: .text%__1cSObjectSynchronizerEwait6FnGHandle_xpnGThread__v_;
text: .text%__1cIAddLNodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cHciKlass2t6MpnIciSymbol_p0_v_;
text: .text%__1cGciType2t6MpnHciKlass__v_;
@@ -2678,7 +2500,6 @@ text: .text%__1cIciSymbolHbyte_at6Mi_i_;
text: .text%__1cKCompiledICSset_ic_destination6MpC_v_;
text: .text%__1cQaddD_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cCosTset_native_priority6FpnGThread_i_nIOSReturn__;
-text: .text%__1cPPerfDataManagerUcreate_long_variable6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnQPerfLongVariable__;
text: .text%__1cQset_lwp_priority6Fiii_i_;
text: .text%__1cQjava_lang_StringTcreate_oop_from_str6FpkcpnGThread__pnHoopDesc__;
text: .text%jni_NewStringUTF: jni.o;
@@ -2689,7 +2510,6 @@ text: .text%__1cSbranchCon_longNodeGnegate6M_v_: ad_sparc_misc.o;
text: .text%__1cKcmpOpUOperKless_equal6kM_i_: ad_sparc_clone.o;
text: .text%__1cPciInstanceKlassNloader_handle6M_pnI_jobject__;
text: .text%__1cPciInstanceKlassYprotection_domain_handle6M_pnI_jobject__;
-text: .text%__1cUParallelScavengeHeapIcapacity6kM_I_;
text: .text%__1cNmethodOopDescKjmethod_id6M_pnK_jmethodID__;
text: .text%__1cSsubL_reg_reg_2NodeIpipeline6kM_pknIPipeline__;
text: .text%JVM_DefineClassWithSource;
@@ -2705,7 +2525,6 @@ text: .text%__1cOcmovPP_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cSThreadLocalStorageSset_thread_in_slot6FpnGThread__v_;
text: .text%get_thread;
text: .text%__1cKstoreCNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cSThreadLocalStoragebBget_thread_via_cache_slowly6FIi_pnGThread__;
text: .text%__1cSThreadLocalStorageKset_thread6FpnGThread__v_;
text: .text%jni_CallIntMethod: jni.o;
text: .text%__1cSThreadLocalStorageNpd_set_thread6FpnGThread__v_;
@@ -2735,7 +2554,6 @@ text: .text%__1cQregI_to_stkINodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cQmulF_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_5pnGThread__v_;
text: .text%__1cXSignatureHandlerLibraryOpd_set_handler6FpC_v_;
-text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorIgenerate6MX_v_;
text: .text%JVM_IsPrimitiveClass;
text: .text%__1cJimmU6OperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cOPhaseIdealLoopUpeeled_dom_test_elim6MpnNIdealLoopTree_rnJNode_List__v_;
@@ -2758,7 +2576,6 @@ text: .text%__1cKReflectionPnew_constructor6FnMmethodHandle_pnGThread__pnHoopDes
text: .text%__1cOcmovII_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSdivL_reg_imm13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cTloadL_unalignedNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNSharedRuntimeDd2l6Fd_x_;
text: .text%__1cJStubQdDueueRrequest_committed6Mi_pnEStub__;
text: .text%__1cRInlineCacheBufferRic_stub_code_size6F_i_;
text: .text%__1cFStateP_sub_Op_RShiftL6MpknENode__v_;
@@ -2808,7 +2625,6 @@ text: .text%__1cJloadINodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cSdivL_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRloadConP_pollNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cIModINodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cZCallDynamicJavaDirectNodeKmethod_set6Mi_v_;
text: .text%__1cZCallDynamicJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSconvD2I_helperNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cZCallDynamicJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2846,7 +2662,6 @@ text: .text%__1cYjava_lang_reflect_MethodWset_annotation_default6FpnHoopDesc_2_v
text: .text%__1cYjava_lang_reflect_MethodTset_parameter_types6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodTset_exception_types6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodNset_modifiers6FpnHoopDesc_i_v_;
-text: .text%__1cOimmI_32_63OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cYjava_lang_reflect_MethodIset_name6FpnHoopDesc_2_v_;
text: .text%__1cbFpartialSubtypeCheck_vs_zeroNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cSsubL_reg_reg_2NodeLout_RegMask6kM_rknHRegMask__;
@@ -2855,7 +2670,6 @@ text: .text%__1cOstackSlotPOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%jni_GetMethodID: jni.o;
text: .text%__1cQshlL_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMulINodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cNminI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRshlI_reg_imm5NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOloadConL13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
@@ -2877,7 +2691,6 @@ text: .text%__1cQcmovI_reg_ltNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNloadConL0NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cKo1RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cSsubL_reg_reg_1NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cQshrL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cRsarL_reg_imm6NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJloadFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2921,7 +2734,6 @@ text: .text%__1cGThread2t6M_v_;
text: .text%__1cCosHSolarisPhotspot_sigmask6FpnGThread__v_;
text: .text%__1cCosHSolarisVinit_thread_fpu_state6F_v_;
text: .text%__1cFTypeFFxmeet6kMpknEType__3_;
-text: .text%__1cCosScurrent_stack_size6F_I_;
text: .text%__1cIOSThreadNpd_initialize6M_v_;
text: .text%__1cCosScurrent_stack_base6F_pC_;
text: .text%__1cIOSThread2t6MpFpv_i1_v_;
@@ -2948,7 +2760,6 @@ text: .text%__1cFStateM_sub_Op_SubL6MpknENode__v_;
text: .text%__1cKCompiledICMstub_address6kM_pC_;
text: .text%__1cJvmSymbolsOsignature_type6FpnNsymbolOopDesc__nJBasicType__;
text: .text%__1cQsubL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQmodI_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubDNodeGOpcode6kM_i_;
text: .text%__1cQmodI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPfieldDescriptorLannotations6kM_pnQtypeArrayOopDesc__;
@@ -2984,13 +2795,10 @@ text: .text%__1cJMarkSweepMfollow_stack6F_v_;
text: .text%__1cNimmP_pollOperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cRtestI_reg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJMemRegionMintersection6kMk0_0_;
-text: .text%__1cKJavaThread2t6MpFp0pnGThread__vI_v_;
text: .text%__1cKJavaThreadDrun6M_v_;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cPjava_lang_ClassOprimitive_type6FpnHoopDesc__nJBasicType__;
text: .text%JVM_IsArrayClass;
text: .text%jni_CallStaticVoidMethod: jni.o;
-text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
text: .text%__1cLConvF2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNsymbolOopDescWas_klass_external_name6kM_pkc_;
text: .text%__1cHnmethodbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_;
@@ -3017,14 +2825,12 @@ text: .text%__1cXNativeSignatureIteratorGdo_int6M_v_: interpreterRT_sparc.o;
text: .text%__1cINodeHashEgrow6M_v_;
text: .text%__1cOGenerateOopMapPdo_monitorenter6Mi_v_;
text: .text%__1cOcmovPP_regNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
-text: .text%__1cMloadConDNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMaxINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cJloadSNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOGenerateOopMapLcompute_map6MpnGThread__v_;
text: .text%__1cLConvF2DNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%JVM_Open;
text: .text%__1cRInvocationCounterFreset6M_v_;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMap2t6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMapRdo_interpretation6M_v_;
text: .text%__1cIRetTableRcompute_ret_table6MnMmethodHandle__v_;
@@ -3042,7 +2848,6 @@ text: .text%__1cIGraphKitSprecision_rounding6MpnENode__2_;
text: .text%__1cNPerfByteArray2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability_i_v_;
text: .text%__1cIGraphKitRcreate_and_map_if6MpnENode_2ff_pnGIfNode__: generateOptoStub.o;
text: .text%__1cQjava_lang_ThreadIpriority6FpnHoopDesc__nOThreadPriority__;
-text: .text%__1cQjava_lang_ThreadJstackSize6FpnHoopDesc__x_;
text: .text%__1cMLinkResolverYresolve_interface_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cKJavaThreadHprepare6MpnI_jobject_nOThreadPriority__v_;
text: .text%__1cTLoadD_unalignedNodeGOpcode6kM_i_;
@@ -3077,7 +2882,6 @@ text: .text%__1cSTailCalljmpIndNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOGenerateOopMapEppop6MpnNCellTypeState__v_;
text: .text%__1cSTailCalljmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQsubF_reg_regNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cRNativeMovConstRegEdata6kM_i_;
text: .text%__1cbFunnecessary_membar_volatileNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cLcmpF_ccNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNObjectMonitorJnotifyAll6MpnGThread__v_;
@@ -3144,7 +2948,6 @@ text: .text%__1cLstoreF0NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIMinINodeIadd_ring6kMpknEType_3_3_;
text: .text%JVM_GetInheritedAccessControlContext;
text: .text%__1cPPerfDataManagerWcreate_string_constant6FnJCounterNS_pkc3pnGThread__pnSPerfStringConstant__;
-text: .text%__1cNmaxI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_NativePath;
text: .text%__1cOMacroAssemblerNflush_windows6M_v_;
text: .text%__1cSsubD_regD_regDNodeIpipeline6kM_pknIPipeline__;
@@ -3157,19 +2960,15 @@ text: .text%__1cVinline_cache_regPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKstorePNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cQObjectStartArrayFreset6M_v_;
text: .text%__1cPconvI2D_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
text: .text%__1cQaddD_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLConvF2INodeGOpcode6kM_i_;
text: .text%__1cVCallRuntimeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJHashtableGunlink6MpnRBoolObjectClosure__v_;
text: .text%__1cIPSOldGenPadjust_pointers6M_v_;
-text: .text%__1cVCallRuntimeDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOcmovPI_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cIPSOldGenHcompact6M_v_;
text: .text%__1cMtlsLoadPNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cLcmpF_ccNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cVCallRuntimeDirectNodeKmethod_set6Mi_v_;
-text: .text%__1cKimmI11OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cQcmovI_reg_gtNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLstoreP0NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOcmovIF_regNodeErule6kM_I_: ad_sparc_misc.o;
@@ -3177,7 +2976,6 @@ text: .text%__1cOcmovLL_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%jni_GetStaticMethodID: jni.o;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MipnMRegisterImpl__v_;
text: .text%__1cRtestI_reg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cPconvF2D_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOPhaseIdealLoopKdo_peeling6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%__1cOcmovLL_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -3210,7 +3008,6 @@ text: .text%__1cSaddD_regD_regDNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cSaddP_reg_imm13NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cXconvI2D_regDHi_regDNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPPerfDataManagerUcreate_long_constant6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnQPerfLongConstant__;
text: .text%__1cOMacroAssemblerNget_vm_result6MpnMRegisterImpl__v_;
text: .text%__1cQsubF_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerbIcompute_extra_locals_size_in_bytes6MpnMRegisterImpl_22_v_;
@@ -3250,7 +3047,6 @@ text: .text%__1cQsubF_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_NewObjectV: jni.o;
text: .text%__1cOcmovLI_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cPciInstanceKlassLjava_mirror6M_pnKciInstance__;
-text: .text%__1cCosHSolarisKmmap_chunk6FpcIii_2_;
text: .text%__1cXPartialSubtypeCheckNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%jni_EnsureLocalCapacity;
text: .text%__1cLstoreI0NodeOmemory_operand6kM_pknIMachOper__;
@@ -3278,7 +3074,6 @@ text: .text%__1cLcmpD_ccNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJloadLNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cISubDNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cZInterpreterMacroAssemblerUprofile_taken_branch6MpnMRegisterImpl_2_v_;
-text: .text%__1cLResourceObj2n6FIn0APallocation_type__pv_;
text: .text%__1cNSafePointNodeQpeek_monitor_box6kM_pnENode__;
text: .text%__1cFTypeFFxdual6kM_pknEType__;
text: .text%__1cICmpFNodeFValue6kMpnOPhaseTransform__pknEType__;
@@ -3290,7 +3085,6 @@ text: .text%__1cINegDNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cLConvI2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cOcmovLL_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRorI_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTloadL_unalignedNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTloadL_unalignedNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cKloadUBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cXconvI2D_regDHi_regDNodeIpipeline6kM_pknIPipeline__;
@@ -3320,7 +3114,6 @@ text: .text%__1cMTailJumpNodeKmatch_edge6kMI_I_;
text: .text%__1cWloadConI_x41f00000NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cODeoptimizationbJupdate_method_data_from_interpreter6FnQmethodDataHandle_ii_v_;
text: .text%__1cIimmDOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cFframeZinterpreter_frame_set_mdx6Mi_v_;
text: .text%__1cOstackSlotLOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotLOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cTloadD_unalignedNodeErule6kM_I_: ad_sparc_misc.o;
@@ -3371,7 +3164,6 @@ text: .text%__1cYjava_lang_reflect_MethodEslot6FpnHoopDesc__i_;
text: .text%__1cYjava_lang_reflect_MethodFclazz6FpnHoopDesc__2_;
text: .text%__1cYinternal_word_RelocationGtarget6M_pC_;
text: .text%__1cJStubQdDueueKremove_all6M_v_;
-text: .text%__1cMloadConFNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPconvI2D_memNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPorL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerLindex_check6MpnMRegisterImpl_2i22_v_;
@@ -3405,12 +3197,10 @@ text: .text%__1cSInterpreterRuntimeQcreate_exception6FpnKJavaThread_pc3_v_;
text: .text%__1cQComputeCallStackIdo_array6Mii_v_: generateOopMap.o;
text: .text%__1cKPSYoungGenKprecompact6M_v_;
text: .text%__1cXjava_lang_reflect_FieldEslot6FpnHoopDesc__i_;
-text: .text%__1cSconvD2I_helperNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMnegF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHThreadsLgc_prologue6F_v_;
text: .text%__1cHThreadsLgc_epilogue6F_v_;
text: .text%__1cPconvI2L_regNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cPconvD2I_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_pnGThread__v_;
text: .text%__1cUParallelScavengeHeapHcollect6MnHGCCauseFCause__v_;
text: .text%__1cRCardTableModRefBSFclear6MnJMemRegion__v_;
@@ -3441,18 +3231,12 @@ text: .text%__1cUPSMarkSweepDecoratorbIset_destination_decorator_perm_gen6F_v_;
text: .text%__1cUPSMarkSweepDecoratorbHset_destination_decorator_tenured6F_v_;
text: .text%__1cKDictionaryYalways_strong_classes_do6MpnKOopClosure__v_;
text: .text%__1cQmulL_reg_regNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cUPSAdaptiveSizePolicyUmajor_collection_end6MInHGCCauseFCause__v_;
text: .text%__1cUPSAdaptiveSizePolicyWmajor_collection_begin6M_v_;
text: .text%__1cIUniverseWupdate_heap_info_at_gc6F_v_;
-text: .text%__1cJPSPermGenQcompute_new_size6MI_v_;
text: .text%__1cKPSYoungGenHcompact6M_v_;
text: .text%JVM_GetSystemPackage;
text: .text%__1cPfieldDescriptorTfloat_initial_value6kM_f_;
text: .text%__1cKPSYoungGenPadjust_pointers6M_v_;
-text: .text%__1cQUncommonTrapBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNExceptionBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
text: .text%__1cJCodeCacheLgc_prologue6F_v_;
text: .text%__1cJCodeCacheLgc_epilogue6F_v_;
text: .text%__1cIXorINodeIadd_ring6kMpknEType_3_3_;
@@ -3508,16 +3292,12 @@ text: .text%__1cSstring_compareNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_GetEnv;
text: .text%__1cJloadDNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cQstkI_to_regINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSstring_compareNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cXNativeSignatureIteratorHdo_bool6M_v_: interpreterRT_sparc.o;
text: .text%Unsafe_GetNativeByte;
text: .text%JVM_NanoTime;
-text: .text%__1cCosNjavaTimeNanos6F_x_;
text: .text%__1cOMacroAssemblerOrestore_thread6MkpnMRegisterImpl__v_;
-text: .text%__1cVcompiledICHolderKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cQandL_reg_regNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIimmFOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
text: .text%__1cKcmpOpFOperGnegate6M_v_: ad_sparc_clone.o;
text: .text%__1cICodeBlobFflush6M_v_;
text: .text%__1cFParseMdo_anewarray6M_v_;
@@ -3537,8 +3317,6 @@ text: .text%__1cHnmethodSflush_dependencies6MpnRBoolObjectClosure__v_;
text: .text%__1cKo2RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cQregI_to_stkINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cbCAbstractInterpreterGeneratorVgenerate_method_entry6MnTAbstractInterpreterKMethodKind__pC_;
-text: .text%__1cParrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cWloadConI_x43300000NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseQdo_monitor_enter6M_v_;
text: .text%__1cPorL_reg_regNodeIpipeline6kM_pknIPipeline__;
@@ -3547,13 +3325,11 @@ text: .text%JVM_FindPrimitiveClass;
text: .text%__1cVMoveL2D_stack_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNTemplateTableEiop26Fn0AJOperation__v_;
text: .text%__1cZInterpreterMacroAssemblerMdispatch_via6MnITosState_ppC_v_;
-text: .text%__1cSmodL_reg_imm13NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRshrI_reg_imm5NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cSsubL_reg_reg_2NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cUmulL_reg_imm13_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivDNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cPconvI2F_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNinstanceKlassUfind_interface_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__pnMklassOopDesc__;
text: .text%__1cOstackSlotFOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cUdivL_reg_imm13_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3561,7 +3337,6 @@ text: .text%__1cRSignatureIteratorHiterate6M_v_;
text: .text%__1cOcmovLL_regNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%__1cJname2type6Fpkc_nJBasicType__;
text: .text%__1cSmulL_reg_imm13NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPBytecode_invokeLresult_type6kMpnGThread__nJBasicType__;
text: .text%__1cOloadConL13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKcmpOpFOperHgreater6kM_i_: ad_sparc_clone.o;
text: .text%__1cIDivDNodeJideal_reg6kM_I_: classes.o;
@@ -3569,7 +3344,6 @@ text: .text%__1cOMacroAssemblerKget_thread6M_v_;
text: .text%__1cOcmovDF_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cOcmovIF_immNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%__1cSconvI2F_helperNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKVtableStub2n6FIi_pv_;
text: .text%__1cbEJvmtiDynamicCodeEventCollector2T6M_v_;
text: .text%__1cOtypeArrayKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: typeArrayKlass.o;
text: .text%__1cPconvD2F_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
@@ -3589,7 +3363,6 @@ text: .text%__1cNTemplateTableQfast_accessfield6FnITosState__v_;
text: .text%__1cKCompiledICSset_to_megamorphic6MpnICallInfo_nJBytecodesECode_pnGThread__v_;
text: .text%Unsafe_StaticFieldOffset;
text: .text%__1cQmulI_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cQaddI_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cOcmovLI_regNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%JVM_GetClassContext;
@@ -3685,7 +3458,6 @@ text: .text%__1cLConvL2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cULinearLeastSquareFit2t6MI_v_;
text: .text%__1cQdivL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPciObjectFactoryTget_unloaded_method6MpnPciInstanceKlass_pnIciSymbol_4_pnIciMethod__;
-text: .text%__1cNReservedSpace2t6MI_v_;
text: .text%__1cSCardTableExtensionVresize_covered_region6MnJMemRegion__v_;
text: .text%__1cOloadI_fregNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRCardTableModRefBSVresize_covered_region6MnJMemRegion__v_;
@@ -3705,7 +3477,6 @@ text: .text%__1cOLibraryCallKitXgenerate_current_thread6MrpnENode__2_;
text: .text%__1cOMacroAssemblerEfneg6MnRFloatRegisterImplFWidth_p13_v_;
text: .text%__1cXNativeSignatureIteratorJdo_double6M_v_: interpreterRT_sparc.o;
text: .text%__1cRtestI_reg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNSpaceCounters2t6MpkciIpnMMutableSpace_pnSGenerationCounters__v_;
text: .text%__1cLcmpF_ccNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
text: .text%jni_SetObjectField: jni.o;
@@ -3725,7 +3496,6 @@ text: .text%__1cQmulD_reg_regNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%Unsafe_AllocateMemory;
text: .text%__1cSandL_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_GetLastErrorString;
-text: .text%__1cQmodL_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableElop26Fn0AJOperation__v_;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cNTemplateTableEfop26Fn0AJOperation__v_;
@@ -3738,7 +3508,6 @@ text: .text%__1cNTemplateTableGlstore6Fi_v_;
text: .text%__1cLConvF2INodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cRcompL_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
-text: .text%__1cLconvI2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLConvD2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSconvD2I_helperNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRsubI_zero_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
@@ -3775,12 +3544,10 @@ text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC22_v_;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cTjava_lang_ThrowableLset_message6FpnHoopDesc_2_v_;
text: .text%__1cOGenerateOopMapTret_jump_targets_do6MpnOBytecodeStream_pFp0ipi_vi4_v_;
-text: .text%__1cPconvI2D_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_SetMemory;
text: .text%__1cKstfSSFNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerOthrow_if_not_x6MnJAssemblerJCondition_pCpnMRegisterImpl__v_;
text: .text%__1cVMoveF2I_stack_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHTypePtrKadd_offset6kMi_pk0_;
text: .text%__1cOcmovLI_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cNloadConL0NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOcmovPI_regNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -3798,7 +3565,6 @@ text: .text%__1cRMachSpillCopyNodeHsize_of6kM_I_: ad_sparc.o;
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cOGenerateOopMapRdo_multianewarray6Mii_v_;
text: .text%__1cNCompileBrokerUcompiler_thread_loop6F_v_;
-text: .text%__1cbFpartialSubtypeCheck_vs_zeroNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%jni_CallStaticObjectMethodV: jni.o;
text: .text%__1cNTemplateTableMfast_xaccess6FnITosState__v_;
text: .text%__1cJMemRegionFminus6kMk0_0_;
@@ -3836,12 +3602,10 @@ text: .text%__1cGThreadbArecord_stack_base_and_size6M_v_;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC2_v_;
text: .text%JVM_RegisterSignal;
text: .text%JVM_FindSignal;
-text: .text%__1cTMaskFillerForNative2t6MnMmethodHandle_pIi_v_: oopMapCache.o;
text: .text%jio_vsnprintf;
text: .text%__1cQshrL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cZInterpreterMacroAssemblerTprofile_switch_case6MpnMRegisterImpl_222_v_;
text: .text%__1cOCompilerThread2t6MpnMCompileQdDueue_pnQCompilerCounters__v_;
-text: .text%__1cOPSVirtualSpace2t6MnNReservedSpace_I_v_;
text: .text%__1cVcompiler_thread_entry6FpnKJavaThread_pnGThread__v_: thread.o;
text: .text%__1cNIdealLoopTreeUmerge_many_backedges6MpnOPhaseIdealLoop__v_;
text: .text%__1cODeoptimizationLUnrollBlock2T6M_v_;
@@ -3857,17 +3621,13 @@ text: .text%__1cLstoreF0NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerWprofile_switch_default6MpnMRegisterImpl__v_;
text: .text%__1cTAbstract_VM_VersionOvm_info_string6F_pkc_;
text: .text%__1cJStubQdDueue2t6MpnNStubInterface_ipnFMutex_pkc_v_;
-text: .text%__1cSconvF2I_helperNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
-text: .text%__1cbAconvL2D_reg_slow_fxtofNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOstackSlotFOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotFOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotFOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
-text: .text%__1cPconvF2I_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableGlconst6Fi_v_;
text: .text%__1cLstoreC0NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cMPeriodicTaskGenroll6M_v_;
-text: .text%__1cMPeriodicTask2t6MI_v_;
text: .text%__1cNTemplateTableHcastore6F_v_;
text: .text%Unsafe_CompareAndSwapObject;
text: .text%__1cLNamedThread2t6M_v_;
@@ -3913,7 +3673,6 @@ text: .text%__1cLMoveF2INodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cLOptoRuntimeIl2f_Type6F_pknITypeFunc__;
text: .text%__1cOMacroAssemblerUcalc_mem_param_words6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerLprofile_ret6MnITosState_pnMRegisterImpl_3_v_;
-text: .text%__1cZInterpreterMacroAssemblerUprofile_virtual_call6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerMprofile_call6MpnMRegisterImpl__v_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
text: .text%__1cZInterpreterMacroAssemblerSupdate_mdp_for_ret6MnITosState_pnMRegisterImpl__v_;
@@ -3922,7 +3681,6 @@ text: .text%__1cUInterpreterGeneratorLlock_method6M_v_;
text: .text%__1cZInterpreterMacroAssemblerOthrow_if_not_26MpCpnMRegisterImpl_rnFLabel__v_;
text: .text%__1cZInterpreterMacroAssemblerQthrow_if_not_1_x6MnJAssemblerJCondition_rnFLabel__v_;
text: .text%__1cZInterpreterMacroAssemblerZget_4_byte_integer_at_bcp6MipnMRegisterImpl_2n0AKsetCCOrNot__v_;
-text: .text%__1cCosHrealloc6FpvI_1_;
text: .text%__1cODeoptimizationVdeoptimize_dependents6F_i_;
text: .text%__1cFStateO_sub_Op_CMoveL6MpknENode__v_;
text: .text%__1cZInterpreterMacroAssemblerRaccess_local_long6MpnMRegisterImpl_2_v_;
@@ -4001,19 +3759,15 @@ text: .text%__1cSThreadLocalStorageHpd_init6F_v_;
text: .text%__1cVMoveF2I_stack_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVMoveL2D_stack_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cWinvocationCounter_init6F_v_;
-text: .text%__1cKTypeOopPtrEmake6FnHTypePtrDPTR_i_pk0_;
text: .text%__1cKTypeOopPtrFxdual6kM_pknEType__;
text: .text%__1cFParseMjump_if_join6MpnENode_2_2_;
text: .text%__1cSinstanceKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cSinstanceKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlassKlass.o;
-text: .text%__1cLconvP2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cETypeRInitialize_shared6FpnHCompile__v_;
text: .text%__1cQinstanceRefKlassZupdate_nonstatic_oop_maps6FpnMklassOopDesc__v_;
text: .text%__1cVInterfaceSupport_init6F_v_;
-text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cPGenerationSizerQinitialize_flags6M_v_: parallelScavengeHeap.o;
text: .text%__1cZInterpreterMacroAssemblerPdispatch_normal6MnITosState__v_;
-text: .text%__1cJTimeStampMmilliseconds6kM_x_;
text: .text%__1cDhpiZinitialize_socket_library6F_i_;
text: .text%__1cDhpiYinitialize_get_interface6FpnIvm_calls__v_;
text: .text%__1cWInlineCacheBuffer_init6F_v_;
@@ -4030,14 +3784,12 @@ text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: ad_sparc_expand.o;
text: .text%__1cMexit_globals6F_v_;
text: .text%__1cSset_init_completed6F_v_;
text: .text%__1cNinstanceKlassZrelease_C_heap_structures6M_v_;
-text: .text%__1cJTimeStampJupdate_to6Mx_v_;
text: .text%__1cUParallelScavengeHeapItop_addr6kM_ppnIHeapWord__: parallelScavengeHeap.o;
text: .text%__1cCosHSolarisXinstall_signal_handlers6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: interp_masm_sparc.o;
text: .text%__1cQinterpreter_init6F_v_;
text: .text%__1cbCAbstractInterpreterGenerator2t6MpnJStubQdDueue__v_;
text: .text%__1cRlwp_priocntl_init6F_i_: os_solaris.o;
-text: .text%__1cNpriocntl_stub6FinGidtype_lipc_l_: os_solaris.o;
text: .text%__1cbCAbstractInterpreterGeneratorMgenerate_all6M_v_;
text: .text%__1cCosLsignal_wait6F_i_;
text: .text%__1cCosNsignal_notify6Fi_v_;
@@ -4050,7 +3802,6 @@ text: .text%__1cUParallelScavengeHeapEheap6F_p0_;
text: .text%__1cUParallelScavengeHeapNgc_threads_do6kMpnNThreadClosure__v_;
text: .text%__1cUParallelScavengeHeapYpermanent_object_iterate6MpnNObjectClosure__v_;
text: .text%__1cKcmpOpFOperNgreater_equal6kM_i_: ad_sparc_clone.o;
-text: .text%__1cUParallelScavengeHeapMmax_capacity6kM_I_;
text: .text%__1cUParallelScavengeHeapPpost_initialize6M_v_;
text: .text%__1cUParallelScavengeHeapKinitialize6M_i_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: parGCAllocBuffer.o;
@@ -4067,8 +3818,6 @@ text: .text%__1cVjni_GetLongField_addr6F_pC_;
text: .text%__1cNIdealLoopTreeQsplit_outer_loop6MpnOPhaseIdealLoop__v_;
text: .text%__1cRLowMemoryDetectorKinitialize6F_v_;
text: .text%__1cRLowMemoryDetectorbGlow_memory_detector_thread_entry6FpnKJavaThread_pnGThread__v_;
-text: .text%__1cNReservedSpaceUpage_align_size_down6FI_I_;
-text: .text%__1cNReservedSpaceYallocation_align_size_up6FI_I_;
text: .text%__1cTloadL_unalignedNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: machnode.o;
text: .text%__1cPmanagement_init6F_v_;
@@ -4076,7 +3825,6 @@ text: .text%__1cOvmStructs_init6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vmStructs.o;
text: .text%__1cJvmSymbolsKinitialize6FpnGThread__v_;
text: .text%__1cKManagementKinitialize6FpnGThread__v_;
-text: .text%__1cKManagementWrecord_vm_startup_time6Fxx_v_;
text: .text%__1cIVMThreadGcreate6F_v_;
text: .text%__1cIVMThreadDrun6M_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: management.o;
@@ -4103,11 +3851,9 @@ text: .text%__1cLmethodKlassOset_alloc_size6MI_v_: methodKlass.o;
text: .text%__1cQvtableStubs_init6F_v_;
text: .text%__1cKi0RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKg1RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cLmethodKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: methodKlass.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: methodLiveness.o;
text: .text%__1cMMutableSpaceOobject_iterate6MpnNObjectClosure__v_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cKmutex_init6F_v_;
text: .text%__1cQaccessFlags_init6F_v_;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC222_v_;
@@ -4136,7 +3882,6 @@ text: .text%__1cQJNI_FastGetFieldbDgenerate_fast_get_short_field6F_pC_;
text: .text%__1cQJNI_FastGetFieldbBgenerate_fast_get_int_field6F_pC_;
text: .text%__1cQJNI_FastGetFieldbCgenerate_fast_get_long_field6F_pC_;
text: .text%__1cTtypeArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: typeArrayKlassKlass.o;
-text: .text%__1cIUniversePcheck_alignment6FIIpkc_v_;
text: .text%__1cIUniverseHgenesis6FpnGThread__v_;
text: .text%__1cVquicken_jni_functions6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
@@ -4222,7 +3967,6 @@ text: .text%__1cJBytecodesNpd_initialize6F_v_;
text: .text%__1cHCompileRpd_compiler2_init6F_v_;
text: .text%__1cKC2CompilerKinitialize6M_v_;
text: .text%__1cRCardTableModRefBS2t6MnJMemRegion_i_v_;
-text: .text%__1cRCardTableModRefBSbBct_max_alignment_constraint6F_I_;
text: .text%__1cMciArrayKlass2t6MpnIciSymbol_ipnHciKlass__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: relocInfo.o;
text: .text%__1cMciKlassKlassEmake6F_p0_;
@@ -4267,13 +4011,9 @@ text: .text%__1cNTemplateTableDnop6F_v_;
text: .text%__1cNTemplateTableSshouldnotreachhere6F_v_;
text: .text%__1cNTemplateTableLaconst_null6F_v_;
text: .text%__1cKPSYoungGenbCreset_survivors_after_shrink6M_v_;
-text: .text%__1cKPSYoungGenQlimit_gen_shrink6MI_I_;
-text: .text%__1cKPSYoungGenRavailable_to_live6M_I_;
text: .text%__1cSDeoptimizationBlobGcreate6FpnKCodeBuffer_pnJOopMapSet_iiii_p0_;
text: .text%__1cLOptoRuntimeUmultianewarray2_Type6F_pknITypeFunc__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: ad_sparc_pipeline.o;
-text: .text%__1cUAdjoiningGenerations2t6MnNReservedSpace_IIIIIII_v_;
-text: .text%__1cWAdjoiningVirtualSpaces2t6MnNReservedSpace_III_v_;
text: .text%__1cOchunkpool_init6F_v_;
text: .text%__1cFChunkbDstart_chunk_pool_cleaner_task6F_v_;
text: .text%__1cJArgumentsWinit_system_properties6F_v_;
@@ -4367,7 +4107,6 @@ text: .text%__1cNGCTaskManagerKinitialize6M_v_;
text: .text%__1cNGCTaskManagerKthreads_do6MpnNThreadClosure__v_;
text: .text%__1cPPerfDataManagerHdestroy6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
-text: .text%__1cJGenRemSetYmax_alignment_constraint6Fn0AEName__I_;
text: .text%__1cWResolveOopMapConflictsUdo_potential_rewrite6MpnGThread__nMmethodHandle__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: generateOopMap.o;
text: .text%__1cOThreadCriticalKinitialize6F_v_;
@@ -4389,7 +4128,6 @@ text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: fprofiler.o;
text: .text%__1cFframeVinterpreter_frame_mdp6kM_pC_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: phase.o;
text: .text%__1cKPerfMemoryUdelete_memory_region6F_v_;
-text: .text%__1cKPerfMemoryUcreate_memory_region6FI_v_;
text: .text%__1cbBcleanup_sharedmem_resources6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cPperfMemory_exit6F_v_;
text: .text%__1cPperfMemory_init6F_v_;
@@ -4420,9 +4158,6 @@ text: .text%__1cNTemplateTableGcaload6F_v_;
text: .text%__1cNTemplateTableMfast_icaload6F_v_;
text: .text%__1cNTemplateTableGsaload6F_v_;
text: .text%__1cKPSYoungGenPinitialize_work6M_v_;
-text: .text%__1cKPSYoungGenKinitialize6MnNReservedSpace_I_v_;
-text: .text%__1cKPSYoungGenYinitialize_virtual_space6MnNReservedSpace_I_v_;
-text: .text%__1cKPSYoungGen2t6MIII_v_;
text: .text%__1cNTemplateTableHaload_06F_v_;
text: .text%__1cNTemplateTableGistore6F_v_;
text: .text%__1cNTemplateTableGlstore6F_v_;
@@ -4440,15 +4175,10 @@ text: .text%__1cNTemplateTableLtableswitch6F_v_;
text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableRfast_linearswitch6F_v_;
text: .text%__1cNTemplateTableRfast_binaryswitch6F_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
-text: .text%__1cJPSPermGen2t6MnNReservedSpace_IIIIpkci_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
text: .text%__1cNTemplateTableIgetfield6Fi_v_;
text: .text%__1cNTemplateTableJgetstatic6Fi_v_;
-text: .text%__1cIPSOldGenKinitialize6MnNReservedSpace_Ipkci_v_;
-text: .text%__1cIPSOldGen2t6MIIIpkci_v_;
-text: .text%__1cIPSOldGen2t6MnNReservedSpace_IIIIpkci_v_;
text: .text%__1cVcompiledICHolderKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psMarkSweep.o;
text: .text%__1cNTemplateTableIputfield6Fi_v_;
diff --git a/hotspot/make/solaris/makefiles/rules.make b/hotspot/make/solaris/makefiles/rules.make
index e9e87365f57..baafe9c4fd0 100644
--- a/hotspot/make/solaris/makefiles/rules.make
+++ b/hotspot/make/solaris/makefiles/rules.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2010, 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
@@ -151,14 +151,14 @@ ifdef LP64
%.o: %.cpp
@echo Compiling $<
$(QUIETLY) $(REMOVE_TARGET)
- $(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
+ $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
else
%.o: %.cpp
@echo Compiling $<
$(QUIETLY) $(REMOVE_TARGET)
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
- $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \
- $(COMPILE.CC) -o $@ $< $(COMPILE_DONE))
+ $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
+ $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
endif
%.o: %.s
diff --git a/hotspot/make/solaris/makefiles/saproc.make b/hotspot/make/solaris/makefiles/saproc.make
index 99661ce6b22..f94a9b4270d 100644
--- a/hotspot/make/solaris/makefiles/saproc.make
+++ b/hotspot/make/solaris/makefiles/saproc.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -44,10 +44,9 @@ DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC)
# if $(AGENT_DIR) does not exist, we don't build SA
-checkAndBuildSA:
- $(QUIETLY) if [ -d $(AGENT_DIR) ] ; then \
- $(MAKE) -f vm.make $(LIBSAPROC); \
- fi
+ifneq ($(wildcard $(AGENT_DIR)),)
+ BUILDLIBSAPROC = $(LIBSAPROC)
+endif
SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE))
@@ -75,10 +74,10 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
-ldl -ldemangle -lthread -lc
[ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); }
-install_saproc: checkAndBuildSA
+install_saproc: $(BULDLIBSAPROC)
$(QUIETLY) if [ -f $(LIBSAPROC) ] ; then \
echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \
cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \
fi
-.PHONY: checkAndBuildSA install_saproc
+.PHONY: install_saproc
diff --git a/hotspot/make/solaris/makefiles/sparcWorks.make b/hotspot/make/solaris/makefiles/sparcWorks.make
index 34b279b7266..b3b0d514570 100644
--- a/hotspot/make/solaris/makefiles/sparcWorks.make
+++ b/hotspot/make/solaris/makefiles/sparcWorks.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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
@@ -51,9 +51,9 @@ ifeq ($(JRE_RELEASE_VER),1.6.0)
VALIDATED_COMPILER_REVS := 5.8
VALIDATED_C_COMPILER_REVS := 5.8
else
- # Validated compilers for JDK7 are SS12 (5.9) or SS12 update 1 (5.10)
- VALIDATED_COMPILER_REVS := 5.9 5.10
- VALIDATED_C_COMPILER_REVS := 5.9 5.10
+ # Validated compiler for JDK7 is SS12 update 1 + patches (5.10)
+ VALIDATED_COMPILER_REVS := 5.10
+ VALIDATED_C_COMPILER_REVS := 5.10
endif
# Warning messages about not using the above validated versions
@@ -145,7 +145,15 @@ OPT_CFLAGS/SLOWER=-xO3
OPT_CFLAGS/O2=-xO2
OPT_CFLAGS/NOOPT=-xO1
-#################################################
+# Flags for creating the dependency files.
+ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
+DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d)
+endif
+
+# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
+CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
+
+################################################
# Begin current (>=5.9) Forte compiler options #
#################################################
diff --git a/hotspot/make/solaris/makefiles/sparcv9.make b/hotspot/make/solaris/makefiles/sparcv9.make
index af8f0f082c2..ae2fad447f9 100644
--- a/hotspot/make/solaris/makefiles/sparcv9.make
+++ b/hotspot/make/solaris/makefiles/sparcv9.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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,7 +22,6 @@
#
#
-Obj_Files += solaris_sparc.o
ASFLAGS += $(AS_ARCHFLAG)
ifeq ("${Platform_compiler}", "sparcWorks")
diff --git a/hotspot/make/solaris/makefiles/top.make b/hotspot/make/solaris/makefiles/top.make
index 1cc8ad11fdf..b0505e77aae 100644
--- a/hotspot/make/solaris/makefiles/top.make
+++ b/hotspot/make/solaris/makefiles/top.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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
@@ -31,7 +31,7 @@
# -generate sa-jdi.jar (JDI binding to core files)
# It assumes the following flags are set:
-# CFLAGS Platform_file, Src_Dirs, SYSDEFS, AOUT, Jvm_Obj_Files
+# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Jvm_Obj_Files
# -- D. Ungar (5/97) from a file by Bill Bush
@@ -44,42 +44,7 @@ VM = $(GAMMADIR)/src/share/vm
Plat_File = $(Platform_file)
CDG = cd $(GENERATED);
-# Pick up MakeDeps' sources and definitions
-include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/makedeps.make
-MakeDepsClass = MakeDeps.class
-MakeDeps = $(RUN.JAVA) -classpath . MakeDeps
-
-Include_DBs/GC = $(VM)/includeDB_gc \
- $(VM)/includeDB_gc_parallel \
- $(VM)/gc_implementation/includeDB_gc_parallelScavenge \
- $(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \
- $(VM)/gc_implementation/includeDB_gc_parNew \
- $(VM)/gc_implementation/includeDB_gc_g1 \
- $(VM)/gc_implementation/includeDB_gc_serial \
- $(VM)/gc_implementation/includeDB_gc_shared
-
-
-Include_DBs/KERNEL = $(VM)/includeDB_core $(VM)/includeDB_gc \
- $(VM)/gc_implementation/includeDB_gc_serial \
- $(VM)/includeDB_jvmti \
- $(VM)/includeDB_compiler1
-
-Include_DBs/CORE = $(VM)/includeDB_core $(Include_DBs/GC) \
- $(VM)/includeDB_jvmti \
- $(VM)/includeDB_features
-Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1
-Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2
-Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 \
- $(VM)/includeDB_compiler2
-
-Include_DBs = $(Include_DBs/$(TYPE))
-
-Cached_plat = platform.current
-Cached_db = includeDB.current
-
-Incremental_Lists =$(GENERATED)/$(Cached_db)
-# list generation also creates $(GENERATED)/$(Cached_plat)
-
+Cached_plat = $(GENERATED)/platform.current
AD_Dir = $(GENERATED)/adfiles
ADLC = $(AD_Dir)/adlc
@@ -98,7 +63,7 @@ adjust-mflags = $(GENERATED)/adjust-mflags
MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"`
-# default target: make makeDeps, update lists, make vm
+# default target: update lists, make vm
# done in stages to force sequential order with parallel make
#
@@ -106,38 +71,18 @@ default: vm_build_preliminaries the_vm
@echo All done.
# This is an explicit dependency for the sake of parallel makes.
-vm_build_preliminaries: checks $(Incremental_Lists) $(AD_Files_If_Required) jvmti_stuff sa_stuff
+vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff
@# We need a null action here, so implicit rules don't get consulted.
-# make makeDeps: (and zap the cached db files to force a nonincremental run)
-
-$(GENERATED)/$(MakeDepsClass): $(MakeDepsSources)
- @$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources)
- @echo Removing $(Incremental_Lists) to force regeneration.
- @rm -f $(Incremental_Lists)
- @$(CDG) echo >$(Cached_plat)
-
-# make incremental_lists, if cached files out of date, run makeDeps
-
-$(Incremental_Lists): $(Include_DBs) $(Plat_File) $(GENERATED)/$(MakeDepsClass)
- $(CDG) cat $(Include_DBs) > includeDB
- $(CDG) if [ ! -r incls ] ; then \
- mkdir incls ; \
- fi
- $(CDG) $(MakeDeps) diffs UnixPlatform $(Cached_plat) $(Cached_db) $(Plat_File) includeDB $(MakeDepsOptions)
- $(CDG) cp includeDB $(Cached_db)
- $(CDG) cp $(Plat_File) $(Cached_plat)
-
-# symbolic target for command lines
-lists: $(Incremental_Lists)
- @: lists are now up to date
+$(Cached_plat): $(Plat_File)
+ $(CDG) cp $(Plat_File) $(Cached_plat)
# make AD files as necessary
-ad_stuff: $(Incremental_Lists) $(adjust-mflags)
+ad_stuff: $(Cached_plat) $(adjust-mflags)
@$(MAKE) -f adlc.make $(MFLAGS-adjusted)
# generate JVMTI files from the spec
-jvmti_stuff: $(Incremental_Lists) $(adjust-mflags)
+jvmti_stuff: $(Cached_plat) $(adjust-mflags)
@$(MAKE) -f jvmti.make $(MFLAGS-adjusted)
# generate SA jar files and native header
@@ -172,7 +117,6 @@ install: the_vm
# this should force everything to be rebuilt
clean:
rm -f $(GENERATED)/*.class
- $(MAKE) $(MFLAGS) $(GENERATED)/$(MakeDepsClass)
$(MAKE) -f vm.make $(MFLAGS) clean
# just in case it doesn't, this should do it
diff --git a/hotspot/make/solaris/makefiles/vm.make b/hotspot/make/solaris/makefiles/vm.make
index 7289c72f950..9728b1dc43c 100644
--- a/hotspot/make/solaris/makefiles/vm.make
+++ b/hotspot/make/solaris/makefiles/vm.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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
@@ -35,23 +35,23 @@ default: build
# Defs
GENERATED = ../generated
+DEP_DIR = $(GENERATED)/dependencies
-# read a generated file defining the set of .o's and the .o .h dependencies
-include $(GENERATED)/Dependencies
+# reads the generated files defining the set of .o's and the .o .h dependencies
+-include $(DEP_DIR)/*.d
# read machine-specific adjustments (%%% should do this via buildtree.make?)
include $(MAKEFILES_DIR)/$(BUILDARCH).make
# set VPATH so make knows where to look for source files
-# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
-# The incls directory contains generated header file lists for inclusion.
+# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
# The adfiles directory contains ad_.[ch]pp.
# The jvmtifiles directory contains jvmti*.[ch]pp
-Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls
-VPATH += $(Src_Dirs_V:%=%:)
+Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles
+VPATH += $(Src_Dirs_V:%=%:)
# set INCLUDES for C preprocessor
-Src_Dirs_I = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)
+Src_Dirs_I += $(GENERATED)
INCLUDES += $(Src_Dirs_I:%=-I%)
ifeq (${VERSION}, debug)
@@ -106,19 +106,23 @@ ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 505), 1)
# Not sure what the 'designed for' comment is referring too above.
# The order may not be too significant anymore, but I have placed this
# older libm before libCrun, just to make sure it's found and used first.
-LIBS += -lsocket -lsched -ldl $(LIBM) -lCrun -lthread -ldoor -lc
+LIBS += -lsocket -lsched -ldl $(LIBM) -lCrun -lthread -ldoor -lc -ldemangle
else
ifeq ($(COMPILER_REV_NUMERIC), 502)
# SC6.1 has it's own libm.so: specifying anything else provokes a name conflict.
-LIBS += -ldl -lthread -lsocket -lm -lsched -ldoor
+LIBS += -ldl -lthread -lsocket -lm -lsched -ldoor -ldemangle
else
-LIBS += -ldl -lthread -lsocket $(LIBM) -lsched -ldoor
+LIBS += -ldl -lthread -lsocket $(LIBM) -lsched -ldoor -ldemangle
endif # 502
endif # 505
else
-LIBS += -lsocket -lsched -ldl $(LIBM) -lthread -lc
+LIBS += -lsocket -lsched -ldl $(LIBM) -lthread -lc -ldemangle
endif # sparcWorks
+ifeq ("${Platform_arch}", "sparc")
+LIBS += -lkstat
+endif
+
# By default, link the *.o into the library, not the executable.
LINK_INTO$(LINK_INTO) = LIBJVM
@@ -135,6 +139,64 @@ JVM = jvm
LIBJVM = lib$(JVM).so
LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
+CORE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \))
+CORE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm
+CORE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm
+CORE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm
+CORE_PATHS += $(GENERATED)/jvmtifiles
+
+COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1
+
+COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto
+COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt
+COMPILER2_PATHS += $(GENERATED)/adfiles
+
+# Include dirs per type.
+Src_Dirs/CORE := $(CORE_PATHS)
+Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS)
+Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS)
+Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS)
+Src_Dirs/ZERO := $(CORE_PATHS)
+Src_Dirs/SHARK := $(CORE_PATHS)
+Src_Dirs := $(Src_Dirs/$(TYPE))
+
+COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\*
+COMPILER1_SPECIFIC_FILES := c1_\*
+SHARK_SPECIFIC_FILES := shark
+ZERO_SPECIFIC_FILES := zero
+
+# Always exclude these.
+Src_Files_EXCLUDE := dtrace jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp
+
+# Exclude per type.
+Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
+Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
+Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES)
+
+Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE))
+
+# Special handling of arch model.
+ifeq ($(Platform_arch_model), x86_32)
+Src_Files_EXCLUDE += \*x86_64\*
+endif
+ifeq ($(Platform_arch_model), x86_64)
+Src_Files_EXCLUDE += \*x86_32\*
+endif
+
+# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
+define findsrc
+ $(notdir $(shell find $(1)/. ! -name . -prune \
+ -a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
+ -a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \)))
+endef
+
+Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e)))
+
+Obj_Files = $(sort $(addsuffix .o,$(basename $(Src_Files))))
+
JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS)
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
@@ -205,7 +267,7 @@ include $(MAKEFILES_DIR)/saproc.make
#----------------------------------------------------------------------
-build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) checkAndBuildSA dtraceCheck
+build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) $(BUILDLIBSAPROC) dtraceCheck
install: install_jvm install_jsig install_saproc
diff --git a/hotspot/make/windows/README b/hotspot/make/windows/README
deleted file mode 100644
index 2f966374fab..00000000000
--- a/hotspot/make/windows/README
+++ /dev/null
@@ -1,212 +0,0 @@
-Copyright (c) 2007 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
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
-
-________________________________________________________________________________
-
-__Introduction__________________________________________________________________
-
-This readme file should provide all the information needed to build
-the HotSpot VM for Windows 95/Windows NT from its teamware workspace.
-It is intended as a starting point for people who want to learn how
-to work with the current HotSpot source workspace and who need to
-build the VM locally. It is not intended as a tutorial for licensees.
-
-Last update: 03/28/05
-
-
-__Platform______________________________________________________________________
-
-The VM builds under the following platforms:
-- Windows NT 4.0 on Intel x486 or greater
-- x486 PC (or greater), 32MByte or more
-
-
-__Tools_________________________________________________________________________
-
-For building/testing the following tools need to be available:
-- Microsoft Visual C++ 6.0 (with nmake version 1.62.7022 or greater)
-- MKS Toolkit 6.1 or greater
- see: /net/reinstall/export/vol0/pc-archive/software/mks6.1 (NFS)
- or: \\reinstall\pc-archive\software\mks6.1 (NT)
-
-
-__JDK___________________________________________________________________________
-
-The workspace works with the following version of the JDK:
-(NOTE: these are out of date)
-- JDK1.2FCS "V" build
- see: /usr/local/java/jdk1.2/win32
-
-and the following version(s) of HotJava:
-- hjb1.1.4
-- hjb1.1.5
- see /usr/local/java/hjb1.1.x/win32
-
-
-__Environment variables_________________________________________________________
-
-The following environment variables need to be set up for the IDE
-build process. For batch builds these do not need to be set.
-
-HotSpotMksHome points to the (NFS or PC-local) directory where the MKS
- executables (like sh.exe and grep.exe) are installed
-
-Optionally you may set the following variables in your environment and they
-will be picked up by the create.bat script used to generate the vm.vcproj files.
-See the section on building within MS Developer Studio for more details.
-
-HotSpotWorkSpace points to the (NFS) directory where the workspace is located
-HotSpotBuildSpace points to the (PC-local) directory where the vm is built
-HotSpotReleaseBinDest points to the (NFS or PC-local) directory where the product DLL is
- written
-HotSpotDebugBinDest points to the (NFS or PC-local) directory where the debug DLL is
- written
-
-NOTE: For both batch and IDE builds, java and javac must be in your
-PATH, and the versions found by default must work. (If this turns out
-to be a problem, we can define HotSpotJava and HotSpotJavaC for
-bootstrapping...)
-
-__Building the JVM from the command line________________________________________
-
-1) choose a directory in which you want to build the vm
- (the build process will create a subdirectory)
-
-2) To build the 'core' version (debug || optimized)
- %HotSpotWorkSpace%\build\windows\build core %HotSpotWorkSpace%
- To build the 'compiler2' version (debug || optimized)
- %HotSpotWorkSpace%\build\windows\build compiler2 %HotSpotWorkSpace%
-
- where is a full path to a JDK in which bin/java and
- bin/javac are present and working.
-
-3) If you have problems with building, first try:
- vcvars32 (sets path for VC++)
-
-4) In addition to jvm.dll, the Serviceability Agent (SA) based JDI connector
- and command line tools are built if dbgeng.h and dbgeng.lib
- can be located, and BUILD_WIN_SA=1 is specified. We look for dbgeng.h here:
- $(MSVCDIR)\PlatformSDK\Include
- $(SYSTEMROOT)\..\Program Files\Microsoft SDK\include
-
- The first directory is part of Visual Studio VC .NET 2003.
- The second is used on Windows-amd64.
-
-
-__Building the JVM from within MS Developer Studio______________________________
-
-0) Set environment variables as described above
-
-1) Run the following script:
- %HotSpotWorkSpace%\build\windows\create { }
- where type is one of core, compiler1, compiler2. If you leave off the
- " " part, the script expects to find their
- values in the HotSpotWorkSpace, HotSpotBuildSpace, HotSpotReleaseBinDest, and HotSpotDebugBinDest environment
- variables. The resulting vm.vcproj does not depend on these values in the environment.
-
- This will populate the build space with the appropriate makefiles
- and run nmake in it. This builds and runs makedeps, which now
- generates the appropriate vm.vcproj into the build space. It also
- builds and runs adlc.
-
- To regenerate the .incl and .dsp files after changing the include
- databases, just run nmake in the build space.
-
- The build process now relies on java and javac. For the IDE builds,
- the full path to a JDK (in which bin/java and bin/javac are present
- and working) can be specified either explicitly with the
- ALT_BOOTDIR environment variable (like the JDK build process), via
- the JDK build's default BOOTDIR environment variable, via JAVA_HOME,
- or implicitly via the PATH.
-
- (Note that there are now many more command line options to MakeDeps
- on the Windows platform than before. These have been bundled into
- makefiles/makedeps.make, but it is still necessary to keep this in
- sync with the batch makefiles, in vm/generated.)
-
- If you have problems with building (i.e,. finding nmake), first try:
- vcvars32 (sets path for VC++)
-
-2) Double-click the vm.vcproj file in the %HotSpotBuildSpace% directory
- to open MS Developer Studio.
-
-3) build desired or all versions:
- menu Build -> Batch Build... -> Build (or Rebuild All)
-
-4) jvm.dll is in the %HotSpotReleaseBinDest% or %HotSpotDebugBinDest% directory
- depending on which configuration you built (release or debug).
-
-Note: do not edit any of the files (especially the vm.vcproj file) in the
-build space, since they are all either autogenerated or copied from
-the work space. If necessary, modify the original Makefiles in
-%HotSpotWorkSpace%\build\windows\projectfiles, or the shared
-makedeps arguments in
-%HotSpotWorkSpace%\build\windows\makefiles\makedeps.make.
-
-Note that it appears that some options set in the IDE (for example,
-the default executable) show up not in the .dsp file, but in the .opt
-file, so the automatic regeneration of the .dsp file should not
-destroy the project settings. However, makedeps.make should be edited
-to supply per-file compiler options.
-
-To build adlc from within the IDE for debugging purposes:
-
-1) in MS Developer Studio, open ADLCompiler.dsw:
- menu File -> Open Workspace...
- select & double-click ADLCompiler.dsw
-
-2) rebuild all (debug mode is enough)
- menu Build -> Rebuild All (make sure Win32 Debug version is selected)
-
-
-__Testing the VM________________________________________________________________
-
-To test the VM using the Tonga Testsuite, use testlook. testlook is a very
-simple testing framework on top of Tonga which allows us to use one (Tonga)
-test file, that can be extended with attributes.
-
-1) copy %HotSpotWorkSpace%\test\testlook.bat onto PC (preferably
- %HotSpotBuildSpace%\bin, which should ideally be in the path)
-
-2) run testlook or testlook help for details
-
-3) to run testlook you need to have Tonga mounted:
- net use T: \\tapas\export1\psqe
-
-
-__HotJava under HotSpot_________________________________________________________
-
-To run HotJava, use the .bat file %HotSpotWorkSpace%\test\h.bat. Copy
-it into %HotSpotBuildSpace%/ (which ideally is in the path) and run
-HotJava: h java (e.g., h java_g -Xint).
-
-
-__Preferred directory setup under Windows NT____________________________________
-
-Within the HotSpot group we are using the following directory setup:
-
-D:\jdk1.2 - where we install the JDK
-
-The following drives are mounted for testing/putbacks/etc.:
-
-net use T: \\tapas\export1\psqe
-net use Y: \\rschmidt\GammaBase
-net use Z: \\animorphic\animorphic
diff --git a/hotspot/make/windows/build.bat b/hotspot/make/windows/build.bat
index f40b2654a5e..ee0a6b058d2 100644
--- a/hotspot/make/windows/build.bat
+++ b/hotspot/make/windows/build.bat
@@ -1,6 +1,6 @@
@echo off
REM
-REM Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+REM Copyright (c) 1997, 2010, 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
diff --git a/hotspot/make/windows/build.make b/hotspot/make/windows/build.make
index 1c502ca1eb3..8e50a4f077f 100644
--- a/hotspot/make/windows/build.make
+++ b/hotspot/make/windows/build.make
@@ -74,9 +74,11 @@ BUILDARCH=ia64
!if "$(BUILDARCH)" != "ia64"
!ifndef CC_INTERP
+!ifndef FORCE_TIERED
FORCE_TIERED=1
!endif
!endif
+!endif
!if "$(BUILDARCH)" == "amd64"
Platform_arch=x86
@@ -100,7 +102,7 @@ VARIANT_TEXT=Core
!if "$(Variant)" == "compiler1"
VARIANT_TEXT=Client
!elseif "$(Variant)" == "compiler2"
-!ifdef FORCE_TIERED
+!if "$(FORCE_TIERED)" == "1"
VARIANT_TEXT=Server
realVariant=tiered
!else
diff --git a/hotspot/make/windows/build_vm_def.sh b/hotspot/make/windows/build_vm_def.sh
index 5eae61ce390..9c9593b4a7f 100644
--- a/hotspot/make/windows/build_vm_def.sh
+++ b/hotspot/make/windows/build_vm_def.sh
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2010, 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,6 +45,9 @@ fi
echo "EXPORTS" > vm1.def
AWK="$MKS_HOME/awk.exe"
+if [ ! -e $AWK ]; then
+ AWK="$MKS_HOME/gawk.exe"
+fi
GREP="$MKS_HOME/grep.exe"
SORT="$MKS_HOME/sort.exe"
UNIQ="$MKS_HOME/uniq.exe"
@@ -57,7 +60,7 @@ if [ "x$1" != "x" ]; then
LINK_VER="$1"
fi
-if [ "x$LINK_VER" != "x800" -a "x$LINK_VER" != "x900" ]; then
+if [ "x$LINK_VER" != "x800" -a "x$LINK_VER" != "x900" -a "x$LINK_VER" != "x1000" ]; then
$DUMPBIN /symbols *.obj | "$GREP" "??_7.*@@6B@" | "$GREP" -v "type_info" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
else
# Can't use pipes when calling cl.exe or link.exe from IDE. Using transit file vm3.def
diff --git a/hotspot/make/windows/create.bat b/hotspot/make/windows/create.bat
index 172f706f15b..4592d8becfe 100644
--- a/hotspot/make/windows/create.bat
+++ b/hotspot/make/windows/create.bat
@@ -1,6 +1,6 @@
@echo off
REM
-REM Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+REM Copyright (c) 1999, 2010, 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
@@ -26,11 +26,8 @@ REM
REM This is the interactive build setup script (as opposed to the batch
REM build execution script). It creates $HotSpotBuildSpace if necessary,
REM copies the appropriate files out of $HotSpotWorkSpace into it, and
-REM builds and runs MakeDeps in it. This has the side-effect of creating
+REM builds and runs ProjectCreator in it. This has the side-effect of creating
REM the vm.vcproj file in the buildspace, which is then used in Visual C++.
-REM
-REM The generated project file depends upon the include databases. If
-REM those are changed then MakeDeps is rerun.
REM
REM Since we don't have uname and we could be cross-compiling,
@@ -39,6 +36,20 @@ REM
REM Note: Running this batch file from the Windows command shell requires
REM that "grep" be accessible on the PATH. An MKS install does this.
REM
+
+cl 2>NUL >NUL
+if %errorlevel% == 0 goto nexttest
+echo Make sure cl.exe is in your PATH before running this script.
+goto end
+
+:nexttest
+grep -V 2>NUL >NUL
+if %errorlevel% == 0 goto testit
+echo Make sure grep.exe is in your PATH before running this script. Either cygwin or MKS should work.
+goto end
+
+
+:testit
cl 2>&1 | grep "IA-64" >NUL
if %errorlevel% == 0 goto isia64
cl 2>&1 | grep "AMD64" >NUL
@@ -47,37 +58,40 @@ set ARCH=x86
set BUILDARCH=i486
set Platform_arch=x86
set Platform_arch_model=x86_32
-goto end
+goto done
:amd64
set ARCH=x86
set BUILDARCH=amd64
set Platform_arch=x86
set Platform_arch_model=x86_64
-goto end
+goto done
:isia64
set ARCH=ia64
set BUILDARCH=ia64
set Platform_arch=ia64
set Platform_arch_model=ia64
-:end
+:done
setlocal
if "%1" == "" goto usage
-if not "%4" == "" goto usage
+if not "%2" == "" goto usage
+
+REM Set HotSpotWorkSpace to the directy two steps above this script
+for %%i in ("%~dp0..") do ( set HotSpotWorkSpace=%%~dpi)
+set HotSpotBuildRoot=%HotSpotWorkSpace%build
+set HotSpotBuildSpace=%HotSpotBuildRoot%\vs
+set HotSpotJDKDist=%1
-set HotSpotWorkSpace=%1
-set HotSpotBuildSpace=%2
-set HotSpotJDKDist=%3
REM figure out MSC version
for /F %%i in ('sh %HotSpotWorkSpace%/make/windows/get_msc_ver.sh') do set %%i
echo **************************************************************
-set ProjectFile=vm.vcproj
+set ProjectFile=jvm.vcproj
if "%MSC_VER%" == "1200" (
-set ProjectFile=vm.dsp
+set ProjectFile=jvm.dsp
echo Will generate VC6 project {unsupported}
) else (
if "%MSC_VER%" == "1400" (
@@ -86,10 +100,16 @@ echo Will generate VC8 {Visual Studio 2005}
if "%MSC_VER%" == "1500" (
echo Will generate VC9 {Visual Studio 2008}
) else (
+if "%MSC_VER%" == "1600" (
+echo Detected Visual Studio 2010, but
+echo will generate VC9 {Visual Studio 2008}
+echo Use conversion wizard in VS 2010.
+) else (
echo Will generate VC7 project {Visual Studio 2003 .NET}
)
)
)
+)
echo %ProjectFile%
echo **************************************************************
@@ -121,6 +141,8 @@ goto usage
:test3
if not "%HOTSPOTMKSHOME%" == "" goto makedir
+if exist c:\cygwin\bin set HOTSPOTMKSHOME=c:\cygwin\bin
+if not "%HOTSPOTMKSHOME%" == "" goto makedir
echo Warning: please set variable HOTSPOTMKSHOME to place where
echo your MKS/Cygwin installation is
echo.
@@ -136,21 +158,24 @@ echo HotSpotJDKDist=%HotSpotJDKDist%
REM This is now safe to do.
:copyfiles
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
-if NOT EXIST %HotSpotBuildSpace%\%%i mkdir %HotSpotBuildSpace%\%%i
-copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\ > NUL
+if NOT EXIST %HotSpotBuildSpace%\%%i\generated mkdir %HotSpotBuildSpace%\%%i\generated
+copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\generated > NUL
)
REM force regneration of ProjectFile
if exist %HotSpotBuildSpace%\%ProjectFile% del %HotSpotBuildSpace%\%ProjectFile%
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
-
-echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make
+echo -- %%i --
+echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make
echo # Changing a variable below and then deleting %ProjectFile% will cause >> %HotSpotBuildSpace%\%%i\local.make
echo # %ProjectFile% to be regenerated with the new values. Changing the >> %HotSpotBuildSpace%\%%i\local.make
-echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make
+echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make
echo. >> %HotSpotBuildSpace%\%%i\local.make
+echo Variant=%%i >> %HotSpotBuildSpace%\%%i\local.make
+echo WorkSpace=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make
echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make
+echo HOTSPOTBUILDROOT=%HotSpotBuildRoot% >> %HotSpotBuildSpace%\%%i\local.make
echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> %HotSpotBuildSpace%\%%i\local.make
echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> %HotSpotBuildSpace%\%%i\local.make
echo ARCH=%ARCH% >> %HotSpotBuildSpace%\%%i\local.make
@@ -158,28 +183,36 @@ echo BUILDARCH=%BUILDARCH% >> %HotSpotBuildSpace%\%%i\local.m
echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make
echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make
-REM build config specific stuff
+for /D %%j in (debug, fastdebug, product) do (
+if NOT EXIST %HotSpotBuildSpace%\%%i\%%j mkdir %HotSpotBuildSpace%\%%i\%%j
+)
-pushd %HotSpotBuildSpace%\%%i
+pushd %HotSpotBuildSpace%\%%i\generated
nmake /nologo
popd
+
)
+pushd %HotSpotBuildRoot%
+
+REM It doesn't matter which variant we use here, "compiler1" is as good as any of the others - we need the common variables
+nmake /nologo /F %HotSpotWorkSpace%/make/windows/projectfiles/common/Makefile LOCAL_MAKE=%HotSpotBuildSpace%\compiler1\local.make %HotSpotBuildRoot%/%ProjectFile%
+
+popd
+
goto end
:usage
-echo Usage: create HotSpotWorkSpace HotSpotBuildSpace HotSpotJDKDist
+echo Usage: create HotSpotJDKDist
echo.
-echo This is the interactive build setup script (as opposed to the batch
-echo build execution script). It creates HotSpotBuildSpace if necessary,
-echo copies the appropriate files out of HotSpotWorkSpace into it, and
-echo builds and runs MakeDeps in it. This has the side-effect of creating
+echo This is the VS build setup script (as opposed to the batch
+echo build execution script). It creates a build directory if necessary,
+echo copies the appropriate files out of the workspace into it, and
+echo builds and runs ProjectCreator in it. This has the side-effect of creating
echo the %ProjectFile% file in the build space, which is then used in Visual C++.
-echo The HotSpotJDKDist defines place where JVM binaries should be placed.
-echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
echo.
-echo The generated project file depends upon the include databases. If
-echo those are changed then MakeDeps is rerun.
+echo The HotSpotJDKDist defines the JDK that should be used when running the JVM.
+echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
echo.
echo NOTE that it is now NOT safe to modify any of the files in the build
echo space, since they may be overwritten whenever this script is run or
diff --git a/hotspot/make/windows/create_obj_files.sh b/hotspot/make/windows/create_obj_files.sh
new file mode 100644
index 00000000000..52ae0bb785c
--- /dev/null
+++ b/hotspot/make/windows/create_obj_files.sh
@@ -0,0 +1,128 @@
+#
+# Copyright (c) 2010, 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
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+#
+
+set -e
+
+# Note that we currently do not have a way to set HotSpotMksHome in
+# the batch build, but so far this has not seemed to be a problem. The
+# reason this environment variable is necessary is that it seems that
+# Windows truncates very long PATHs when executing shells like MKS's
+# sh, and it has been found that sometimes `which sh` fails.
+
+if [ "x$HotSpotMksHome" != "x" ]; then
+ TOOL_DIR="$HotSpotMksHome"
+else
+ # HotSpotMksHome is not set so use the directory that contains "sh".
+ # This works with both MKS and Cygwin.
+ SH=`which sh`
+ TOOL_DIR=`dirname "$SH"`
+fi
+
+DIRNAME="$TOOL_DIR/dirname"
+FIND="$TOOL_DIR/find"
+
+TYPE=$1
+Platform_arch=$2
+Platform_arch_model=$3
+Platform_os_family=windows
+Platform_os_arch=windows_$Platform_arch
+
+WorkSpace=$4
+GENERATED=$5
+
+BASE_PATHS="` $FIND ${WorkSpace}/src/share/vm ! -name vm -prune -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)`"
+BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/share/vm/gc_implementation/shared"
+BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os/${Platform_os_family}/vm"
+BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/cpu/${Platform_arch}/vm"
+BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os_cpu/${Platform_os_arch}/vm"
+BASE_PATHS="${BASE_PATHS} ${GENERATED}/jvmtifiles"
+
+CORE_PATHS="${BASE_PATHS}"
+# shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS.
+CORE_PATHS="${CORE_PATHS} `$FIND ${WorkSpace}/src/share/vm/gc_implementation ! -name gc_implementation -prune -type d \! -name shared`"
+
+COMPILER1_PATHS="${WorkSpace}/src/share/vm/c1"
+
+COMPILER2_PATHS="${WorkSpace}/src/share/vm/opto"
+COMPILER2_PATHS="${COMPILER2_PATHS} ${WorkSpace}/src/share/vm/libadt"
+COMPILER2_PATHS="${COMPILER2_PATHS} ${GENERATED}/adfiles"
+
+# Include dirs per type.
+case "${TYPE}" in
+ "core") Src_Dirs="${CORE_PATHS}" ;;
+ "kernel") Src_Dirs="${BASE_PATHS} ${COMPILER1_PATHS}" ;;
+ "compiler1") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS}" ;;
+ "compiler2") Src_Dirs="${CORE_PATHS} ${COMPILER2_PATHS}" ;;
+ "tiered") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS} ${COMPILER2_PATHS}" ;;
+ "zero") Src_Dirs="${CORE_PATHS}" ;;
+ "shark") Src_Dirs="${CORE_PATHS}" ;;
+esac
+
+COMPILER2_SPECIFIC_FILES="opto libadt bcEscapeAnalyzer.cpp chaitin* c2_* runtime_*"
+COMPILER1_SPECIFIC_FILES="c1_*"
+SHARK_SPECIFIC_FILES="shark"
+ZERO_SPECIFIC_FILES="zero"
+
+# These files need to be excluded when building the kernel target.
+KERNEL_EXCLUDED_FILES="attachListener.cpp attachListener_windows.cpp dump.cpp dump_${Platform_arch_model}.cpp forte.cpp fprofiler.cpp heapDumper.cpp heapInspection.cpp jniCheck.cpp jvmtiCodeBlobEvents.cpp jvmtiExtensions.cpp jvmtiImpl.cpp jvmtiRawMonitor.cpp jvmtiTagMap.cpp jvmtiTrace.cpp restore.cpp serialize.cpp vmStructs.cpp g1MemoryPool.cpp psMemoryPool.cpp gcAdaptivePolicyCounters.cpp concurrentGCThread.cpp mutableNUMASpace.cpp allocationStats.cpp gSpaceCounters.cpp immutableSpace.cpp mutableSpace.cpp spaceCounters.cpp yieldingWorkgroup.cpp"
+
+# Always exclude these.
+Src_Files_EXCLUDE="jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp"
+
+# Exclude per type.
+case "${TYPE}" in
+ "core") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;;
+ "kernel") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ${KERNEL_EXCLUDED_FILES} ciTypeFlow.cpp" ;;
+ "compiler1") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;;
+ "compiler2") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;;
+ "tiered") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;;
+ "zero") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;;
+ "shark") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES}" ;;
+esac
+
+# Special handling of arch model.
+case "${Platform_arch_model}" in
+ "x86_32") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_64*" ;;
+ "x86_64") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_32*" ;;
+esac
+
+# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
+function findsrc {
+ $FIND ${1}/. ! -name . -prune \
+ -a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
+ -a \! \( -name ${Src_Files_EXCLUDE// / -o -name } \) \
+ | sed 's/.*\/\(.*\)/\1/';
+}
+
+Src_Files=
+for e in ${Src_Dirs}; do
+ Src_Files="${Src_Files}`findsrc ${e}` "
+done
+
+Obj_Files=
+for e in ${Src_Files}; do
+ Obj_Files="${Obj_Files}${e%\.[!.]*}.obj "
+done
+
+echo Obj_Files=${Obj_Files}
diff --git a/hotspot/make/windows/get_msc_ver.sh b/hotspot/make/windows/get_msc_ver.sh
index 0cea6d99b85..339e92b2f71 100644
--- a/hotspot/make/windows/get_msc_ver.sh
+++ b/hotspot/make/windows/get_msc_ver.sh
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
diff --git a/hotspot/make/windows/makefiles/adlc.make b/hotspot/make/windows/makefiles/adlc.make
index c7519da4955..d03e73373ea 100644
--- a/hotspot/make/windows/makefiles/adlc.make
+++ b/hotspot/make/windows/makefiles/adlc.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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,7 +22,6 @@
#
#
-!include $(WorkSpace)/make/windows/makefiles/compile.make
# Rules for building adlc.exe
@@ -46,27 +45,16 @@ ADLCFLAGS=-q -T -D_LP64
ADLCFLAGS=-q -T -U_LP64
!endif
-CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE
+ADLC_CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE
CPP_INCLUDE_DIRS=\
- /I "..\generated" \
- /I "$(WorkSpace)\src\share\vm\compiler" \
- /I "$(WorkSpace)\src\share\vm\code" \
- /I "$(WorkSpace)\src\share\vm\interpreter" \
- /I "$(WorkSpace)\src\share\vm\classfile" \
- /I "$(WorkSpace)\src\share\vm\asm" \
- /I "$(WorkSpace)\src\share\vm\memory" \
- /I "$(WorkSpace)\src\share\vm\oops" \
- /I "$(WorkSpace)\src\share\vm\prims" \
- /I "$(WorkSpace)\src\share\vm\runtime" \
- /I "$(WorkSpace)\src\share\vm\utilities" \
- /I "$(WorkSpace)\src\share\vm\libadt" \
- /I "$(WorkSpace)\src\share\vm\opto" \
- /I "$(WorkSpace)\src\os\windows\vm" \
+ /I "..\generated" \
+ /I "$(WorkSpace)\src\share\vm" \
+ /I "$(WorkSpace)\src\os\windows\vm" \
/I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm"
-# NOTE! If you add any files here, you must also update GENERATED_NAMES_IN_INCL
-# and MakeDepsIDEOptions in makedeps.make.
+# NOTE! If you add any files here, you must also update GENERATED_NAMES_IN_DIR
+# and ProjectCreatorIDEOptions in projectcreator.make.
GENERATED_NAMES=\
ad_$(Platform_arch_model).cpp \
ad_$(Platform_arch_model).hpp \
@@ -81,24 +69,24 @@ GENERATED_NAMES=\
dfa_$(Platform_arch_model).cpp
# NOTE! This must be kept in sync with GENERATED_NAMES
-GENERATED_NAMES_IN_INCL=\
- incls/ad_$(Platform_arch_model).cpp \
- incls/ad_$(Platform_arch_model).hpp \
- incls/ad_$(Platform_arch_model)_clone.cpp \
- incls/ad_$(Platform_arch_model)_expand.cpp \
- incls/ad_$(Platform_arch_model)_format.cpp \
- incls/ad_$(Platform_arch_model)_gen.cpp \
- incls/ad_$(Platform_arch_model)_misc.cpp \
- incls/ad_$(Platform_arch_model)_peephole.cpp \
- incls/ad_$(Platform_arch_model)_pipeline.cpp \
- incls/adGlobals_$(Platform_arch_model).hpp \
- incls/dfa_$(Platform_arch_model).cpp
+GENERATED_NAMES_IN_DIR=\
+ $(AdlcOutDir)\ad_$(Platform_arch_model).cpp \
+ $(AdlcOutDir)\ad_$(Platform_arch_model).hpp \
+ $(AdlcOutDir)\ad_$(Platform_arch_model)_clone.cpp \
+ $(AdlcOutDir)\ad_$(Platform_arch_model)_expand.cpp \
+ $(AdlcOutDir)\ad_$(Platform_arch_model)_format.cpp \
+ $(AdlcOutDir)\ad_$(Platform_arch_model)_gen.cpp \
+ $(AdlcOutDir)\ad_$(Platform_arch_model)_misc.cpp \
+ $(AdlcOutDir)\ad_$(Platform_arch_model)_peephole.cpp \
+ $(AdlcOutDir)\ad_$(Platform_arch_model)_pipeline.cpp \
+ $(AdlcOutDir)\adGlobals_$(Platform_arch_model).hpp \
+ $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp
{$(WorkSpace)\src\share\vm\adlc}.cpp.obj::
- $(CPP) $(CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
+ $(CPP) $(ADLC_CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
{$(WorkSpace)\src\share\vm\opto}.cpp.obj::
- $(CPP) $(CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
+ $(CPP) $(ADLC_CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
adlc.exe: main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj filebuff.obj \
forms.obj formsopt.obj formssel.obj opcodes.obj output_c.obj output_h.obj
@@ -110,10 +98,12 @@ adlc.exe: main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj filebuf
$(MT) /manifest $@.manifest /outputresource:$@;#1
!endif
-$(GENERATED_NAMES_IN_INCL): $(Platform_arch_model).ad adlc.exe includeDB.current
+$(GENERATED_NAMES_IN_DIR): $(Platform_arch_model).ad adlc.exe
rm -f $(GENERATED_NAMES)
+ if exist $(AdlcOutDir) rmdir /s /q $(AdlcOutDir)
+ mkdir $(AdlcOutDir)
$(ADLC) $(ADLCFLAGS) $(Platform_arch_model).ad
- mv $(GENERATED_NAMES) incls/
+ mv $(GENERATED_NAMES) $(AdlcOutDir)/
$(Platform_arch_model).ad: $(WorkSpace)/src/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad $(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm/windows_$(Platform_arch_model).ad
rm -f $(Platform_arch_model).ad
diff --git a/hotspot/make/windows/makefiles/compile.make b/hotspot/make/windows/makefiles/compile.make
index 7d7cb8642c3..47d924418b2 100644
--- a/hotspot/make/windows/makefiles/compile.make
+++ b/hotspot/make/windows/makefiles/compile.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2010, 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
@@ -80,6 +80,20 @@ CPP_FLAGS=$(CPP_FLAGS) /D "IA32"
CPP=ARCH_ERROR
!endif
+CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS"
+
+# Must specify this for sharedRuntimeTrig.cpp
+CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN"
+
+# Used for platform dispatching
+CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_FAMILY_windows
+CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_$(Platform_arch)
+CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_MODEL_$(Platform_arch_model)
+CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_windows_$(Platform_arch)
+CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_MODEL_windows_$(Platform_arch_model)
+CPP_FLAGS=$(CPP_FLAGS) /D TARGET_COMPILER_visCPP
+
+
# MSC_VER is a 4 digit number that tells us what compiler is being used
# and is generated when the local.make file is created by build.make
# via the script get_msc_ver.sh
@@ -138,7 +152,7 @@ MS_RUNTIME_OPTION = /MTd /D "_DEBUG"
!endif
# Always add the _STATIC_CPPLIB flag
-STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB
+STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB /D _DISABLE_DEPRECATE_STATIC_CPPLIB
MS_RUNTIME_OPTION = $(MS_RUNTIME_OPTION) $(STATIC_CPPLIB_OPTION)
CPP_FLAGS=$(CPP_FLAGS) $(MS_RUNTIME_OPTION)
diff --git a/hotspot/make/windows/makefiles/debug.make b/hotspot/make/windows/makefiles/debug.make
index 893a252d522..32d4f46e91d 100644
--- a/hotspot/make/windows/makefiles/debug.make
+++ b/hotspot/make/windows/makefiles/debug.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2010, 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
@@ -28,7 +28,12 @@ AOUT=$(HS_FNAME)
SAWINDBG=sawindbg.dll
GENERATED=../generated
-default:: _build_pch_file.obj $(AOUT) checkAndBuildSA
+# Allow the user to turn off precompiled headers from the command line.
+!if "$(USE_PRECOMPILED_HEADER)" != "0"
+BUILD_PCH_FILE=_build_pch_file.obj
+!endif
+
+default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
!include ../local.make
!include compile.make
@@ -38,15 +43,15 @@ CPP_FLAGS=$(CPP_FLAGS) $(DEBUG_OPT_OPTION)
!include $(WorkSpace)/make/windows/makefiles/vm.make
!include local.make
-!include $(GENERATED)/Dependencies
-
HS_BUILD_ID=$(HS_BUILD_VER)-debug
# Force resources to be rebuilt every time
$(Res_Files): FORCE
-$(AOUT): $(Res_Files) $(Obj_Files)
+vm.def: $(Obj_Files)
sh $(WorkSpace)/make/windows/build_vm_def.sh
+
+$(AOUT): $(Res_Files) $(Obj_Files) vm.def
$(LINK) @<<
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
<<
@@ -59,3 +64,4 @@ $(AOUT): $(Res_Files) $(Obj_Files)
!include $(WorkSpace)/make/windows/makefiles/shared.make
!include $(WorkSpace)/make/windows/makefiles/sa.make
+!include $(WorkSpace)/make/windows/makefiles/launcher.make
diff --git a/hotspot/make/windows/makefiles/defs.make b/hotspot/make/windows/makefiles/defs.make
index b126c702a7d..ded87af7b46 100644
--- a/hotspot/make/windows/makefiles/defs.make
+++ b/hotspot/make/windows/makefiles/defs.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2010, 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
diff --git a/hotspot/make/windows/makefiles/fastdebug.make b/hotspot/make/windows/makefiles/fastdebug.make
index 4b59010cbe6..b9e828b7483 100644
--- a/hotspot/make/windows/makefiles/fastdebug.make
+++ b/hotspot/make/windows/makefiles/fastdebug.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -28,7 +28,12 @@ AOUT=$(HS_FNAME)
SAWINDBG=sawindbg.dll
GENERATED=../generated
-default:: _build_pch_file.obj $(AOUT) checkAndBuildSA
+# Allow the user to turn off precompiled headers from the command line.
+!if "$(USE_PRECOMPILED_HEADER)" != "0"
+BUILD_PCH_FILE=_build_pch_file.obj
+!endif
+
+default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
!include ../local.make
!include compile.make
@@ -38,15 +43,15 @@ CPP_FLAGS=$(CPP_FLAGS) $(FASTDEBUG_OPT_OPTION)
!include $(WorkSpace)/make/windows/makefiles/vm.make
!include local.make
-!include $(GENERATED)/Dependencies
-
HS_BUILD_ID=$(HS_BUILD_VER)-fastdebug
# Force resources to be rebuilt every time
$(Res_Files): FORCE
-$(AOUT): $(Res_Files) $(Obj_Files)
+vm.def: $(Obj_Files)
sh $(WorkSpace)/make/windows/build_vm_def.sh
+
+$(AOUT): $(Res_Files) $(Obj_Files) vm.def
$(LINK) @<<
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
<<
@@ -57,6 +62,6 @@ $(AOUT): $(Res_Files) $(Obj_Files)
$(MT) /manifest $@.manifest /outputresource:$@;#2
!endif
-
!include $(WorkSpace)/make/windows/makefiles/shared.make
!include $(WorkSpace)/make/windows/makefiles/sa.make
+!include $(WorkSpace)/make/windows/makefiles/launcher.make
diff --git a/hotspot/make/windows/makefiles/generated.make b/hotspot/make/windows/makefiles/generated.make
index 47d3bd8b78b..d5add4b030f 100644
--- a/hotspot/make/windows/makefiles/generated.make
+++ b/hotspot/make/windows/makefiles/generated.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -23,7 +23,7 @@
#
!include ../local.make
-!include $(WorkSpace)/make/windows/makefiles/makedeps.make
+!include $(WorkSpace)/make/windows/makefiles/projectcreator.make
!include local.make
# Pick up rules for building JVMTI (JSR-163)
@@ -33,68 +33,25 @@ JvmtiOutDir=jvmtifiles
# Pick up rules for building SA
!include $(WorkSpace)/make/windows/makefiles/sa.make
+AdlcOutDir=adfiles
+
!if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered")
-default:: includeDB.current Dependencies incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp $(JvmtiGeneratedFiles)
+default:: $(AdlcOutDir)/ad_$(Platform_arch_model).cpp $(AdlcOutDir)/dfa_$(Platform_arch_model).cpp $(JvmtiGeneratedFiles) buildobjfiles
!else
-default:: includeDB.current Dependencies $(JvmtiGeneratedFiles)
+default:: $(JvmtiGeneratedFiles) buildobjfiles
!endif
-# core plus serial gc
-IncludeDBs_base=$(WorkSpace)/src/share/vm/includeDB_core \
- $(WorkSpace)/src/share/vm/includeDB_jvmti \
- $(WorkSpace)/src/share/vm/includeDB_gc \
- $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_serial
+buildobjfiles:
+ @ sh $(WorkSpace)/make/windows/create_obj_files.sh $(Variant) $(Platform_arch) $(Platform_arch_model) $(WorkSpace) . > objfiles.make
-# parallel gc
-IncludeDBs_gc= $(WorkSpace)/src/share/vm/includeDB_gc_parallel \
- $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \
- $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_shared \
- $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parNew \
- $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \
- $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_g1
-
-IncludeDBs_core=$(IncludeDBs_base) $(IncludeDBs_gc) \
- $(WorkSpace)/src/share/vm/includeDB_features
-
-!if "$(Variant)" == "core"
-IncludeDBs=$(IncludeDBs_core)
-!endif
-
-!if "$(Variant)" == "kernel"
-IncludeDBs=$(IncludeDBs_base) $(WorkSpace)/src/share/vm/includeDB_compiler1
-!endif
-
-!if "$(Variant)" == "compiler1"
-IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler1
-!endif
-
-
-!if "$(Variant)" == "compiler2"
-IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler2
-!endif
-
-!if "$(Variant)" == "tiered"
-IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler1 \
- $(WorkSpace)/src/share/vm/includeDB_compiler2
-!endif
-
-# Note we don't generate a Visual C++ project file using MakeDeps for
-# the batch build.
-includeDB.current Dependencies: classes/MakeDeps.class $(IncludeDBs)
- cat $(IncludeDBs) > includeDB
- if exist incls rmdir /s /q incls
- mkdir incls
- $(RUN_JAVA) -Djava.class.path=classes MakeDeps WinGammaPlatform$(VcVersion) $(WorkSpace)/make/windows/platform_$(BUILDARCH) includeDB $(MakeDepsOptions)
- rm -f includeDB.current
- cp includeDB includeDB.current
-
-classes/MakeDeps.class: $(MakeDepsSources)
+classes/ProjectCreator.class: $(ProjectCreatorSources)
if exist classes rmdir /s /q classes
mkdir classes
- $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -d classes $(MakeDepsSources)
+ $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\ProjectCreator -d classes $(ProjectCreatorSources)
!if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered")
+!include $(WorkSpace)/make/windows/makefiles/compile.make
!include $(WorkSpace)/make/windows/makefiles/adlc.make
!endif
diff --git a/hotspot/make/windows/makefiles/launcher.make b/hotspot/make/windows/makefiles/launcher.make
new file mode 100644
index 00000000000..ddee8e2139b
--- /dev/null
+++ b/hotspot/make/windows/makefiles/launcher.make
@@ -0,0 +1,71 @@
+#
+# Copyright (c) 2010, 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
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+#
+
+
+LAUNCHER_FLAGS=$(CPP_FLAGS) $(ARCHFLAG) \
+ /D FULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
+ /D JDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
+ /D JDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
+ /D GAMMA \
+ /D LAUNCHER_TYPE=\"gamma\" \
+ /D _CRT_SECURE_NO_WARNINGS \
+ /D _CRT_SECURE_NO_DEPRECATE \
+ /D LINK_INTO_LIBJVM \
+ /I $(WorkSpace)\src\os\windows\launcher \
+ /I $(WorkSpace)\src\share\tools\launcher \
+ /I $(WorkSpace)\src\share\vm\prims \
+ /I $(WorkSpace)\src\share\vm \
+ /I $(WorkSpace)\src\cpu\$(Platform_arch)\vm \
+ /I $(WorkSpace)\src\os\windows\vm
+
+LINK_FLAGS=/manifest $(HS_INTERNAL_NAME).lib kernel32.lib user32.lib /nologo /machine:$(MACHINE) /map /debug /subsystem:console
+
+!if "$(COMPILER_NAME)" == "VS2005"
+# This VS2005 compiler has /GS as a default and requires bufferoverflowU.lib
+# on the link command line, otherwise we get missing __security_check_cookie
+# externals at link time. Even with /GS-, you need bufferoverflowU.lib.
+BUFFEROVERFLOWLIB = bufferoverflowU.lib
+LINK_FLAGS = $(LINK_FLAGS) $(BUFFEROVERFLOWLIB)
+!endif
+
+LAUNCHERDIR = $(WorkSpace)/src/os/windows/launcher
+LAUNCHERDIR_SHARE = $(WorkSpace)/src/share/tools/launcher
+
+OUTDIR = launcher
+
+{$(LAUNCHERDIR)}.c{$(OUTDIR)}.obj:
+ -mkdir $(OUTDIR) 2>NUL >NUL
+ $(CPP) $(LAUNCHER_FLAGS) /c /Fo$@ $<
+
+{$(LAUNCHERDIR_SHARE)}.c{$(OUTDIR)}.obj:
+ -mkdir $(OUTDIR) 2>NUL >NUL
+ $(CPP) $(LAUNCHER_FLAGS) /c /Fo$@ $<
+
+$(OUTDIR)\*.obj: $(LAUNCHERDIR)\*.c $(LAUNCHERDIR)\*.h $(LAUNCHERDIR_SHARE)\*.c $(LAUNCHERDIR_SHARE)\*.h
+
+launcher: $(OUTDIR)\java.obj $(OUTDIR)\java_md.obj $(OUTDIR)\jli_util.obj
+ echo $(JAVA_HOME) > jdkpath.txt
+ $(LINK) $(LINK_FLAGS) /out:hotspot.exe $**
+
+
diff --git a/hotspot/make/windows/makefiles/makedeps.make b/hotspot/make/windows/makefiles/makedeps.make
deleted file mode 100644
index a25d3a18708..00000000000
--- a/hotspot/make/windows/makefiles/makedeps.make
+++ /dev/null
@@ -1,177 +0,0 @@
-#
-# Copyright (c) 1999, 2009, 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
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-#
-
-!include $(WorkSpace)/make/windows/makefiles/rules.make
-
-# This is used externally by both batch and IDE builds, so can't
-# reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE,
-# HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables.
-#
-# NOTE: unfortunately the MakeDepsSources list must be kept
-# synchronized between this and the Solaris version
-# (make/solaris/makefiles/makedeps.make).
-
-MakeDepsSources=\
- $(WorkSpace)\src\share\tools\MakeDeps\Database.java \
- $(WorkSpace)\src\share\tools\MakeDeps\DirectoryTree.java \
- $(WorkSpace)\src\share\tools\MakeDeps\DirectoryTreeNode.java \
- $(WorkSpace)\src\share\tools\MakeDeps\FileFormatException.java \
- $(WorkSpace)\src\share\tools\MakeDeps\FileList.java \
- $(WorkSpace)\src\share\tools\MakeDeps\FileName.java \
- $(WorkSpace)\src\share\tools\MakeDeps\Macro.java \
- $(WorkSpace)\src\share\tools\MakeDeps\MacroDefinitions.java \
- $(WorkSpace)\src\share\tools\MakeDeps\MakeDeps.java \
- $(WorkSpace)\src\share\tools\MakeDeps\MetroWerksMacPlatform.java \
- $(WorkSpace)\src\share\tools\MakeDeps\Platform.java \
- $(WorkSpace)\src\share\tools\MakeDeps\UnixPlatform.java \
- $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatform.java \
- $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC6.java \
- $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC7.java \
- $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC8.java \
- $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC9.java \
- $(WorkSpace)\src\share\tools\MakeDeps\Util.java \
- $(WorkSpace)\src\share\tools\MakeDeps\BuildConfig.java \
- $(WorkSpace)\src\share\tools\MakeDeps\ArgsParser.java
-
-# This is only used internally
-MakeDepsIncludesPRIVATE=\
- -relativeInclude src\share\vm\c1 \
- -relativeInclude src\share\vm\compiler \
- -relativeInclude src\share\vm\code \
- -relativeInclude src\share\vm\interpreter \
- -relativeInclude src\share\vm\ci \
- -relativeInclude src\share\vm\classfile \
- -relativeInclude src\share\vm\gc_implementation\parallelScavenge \
- -relativeInclude src\share\vm\gc_implementation\shared \
- -relativeInclude src\share\vm\gc_implementation\parNew \
- -relativeInclude src\share\vm\gc_implementation\concurrentMarkSweep \
- -relativeInclude src\share\vm\gc_implementation\g1 \
- -relativeInclude src\share\vm\gc_interface \
- -relativeInclude src\share\vm\asm \
- -relativeInclude src\share\vm\memory \
- -relativeInclude src\share\vm\oops \
- -relativeInclude src\share\vm\prims \
- -relativeInclude src\share\vm\runtime \
- -relativeInclude src\share\vm\services \
- -relativeInclude src\share\vm\utilities \
- -relativeInclude src\share\vm\libadt \
- -relativeInclude src\share\vm\opto \
- -relativeInclude src\os\windows\vm \
- -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \
- -relativeInclude src\cpu\$(Platform_arch)\vm
-
-# This is referenced externally by both the IDE and batch builds
-MakeDepsOptions=
-
-# This is used externally, but only by the IDE builds, so we can
-# reference environment variables which aren't defined in the batch
-# build process.
-
-MakeDepsIDEOptions = \
- -useToGeneratePch java.cpp \
- -disablePch os_windows.cpp \
- -disablePch os_windows_$(Platform_arch).cpp \
- -disablePch osThread_windows.cpp \
- -disablePch bytecodeInterpreter.cpp \
- -disablePch bytecodeInterpreterWithChecks.cpp \
- -disablePch getThread_windows_$(Platform_arch).cpp \
- -disablePch_compiler2 opcodes.cpp
-
-# Common options for the IDE builds for core, c1, and c2
-MakeDepsIDEOptions=\
- $(MakeDepsIDEOptions) \
- -sourceBase $(HOTSPOTWORKSPACE) \
- -buildBase $(HOTSPOTBUILDSPACE)\%f\%b \
- -startAt src \
- -compiler $(VcVersion) \
- -projectFileName $(HOTSPOTBUILDSPACE)\$(ProjectFile) \
- -jdkTargetRoot $(HOTSPOTJDKDIST) \
- -define ALIGN_STACK_FRAMES \
- -define VM_LITTLE_ENDIAN \
- -additionalFile includeDB_compiler1 \
- -additionalFile includeDB_compiler2 \
- -additionalFile includeDB_core \
- -additionalFile includeDB_features \
- -additionalFile includeDB_jvmti \
- -additionalFile includeDB_gc \
- -additionalFile includeDB_gc_parallel \
- -additionalFile includeDB_gc_parallelScavenge \
- -additionalFile includeDB_gc_concurrentMarkSweep \
- -additionalFile includeDB_gc_g1 \
- -additionalFile includeDB_gc_parNew \
- -additionalFile includeDB_gc_shared \
- -additionalFile includeDB_gc_serial \
- -additionalGeneratedFile $(HOTSPOTBUILDSPACE)\%f\%b vm.def \
- -prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \
- $(MakeDepsIncludesPRIVATE)
-
-# Add in build-specific options
-!if "$(BUILDARCH)" == "i486"
-MakeDepsIDEOptions=$(MakeDepsIDEOptions) -define IA32
-!endif
-
-##################################################
-# JKERNEL specific options
-##################################################
-MakeDepsIDEOptions=$(MakeDepsIDEOptions) \
- -define_kernel KERNEL \
-
-##################################################
-# Client(C1) compiler specific options
-##################################################
-MakeDepsIDEOptions=$(MakeDepsIDEOptions) \
- -define_compiler1 COMPILER1 \
-
-##################################################
-# Server(C2) compiler specific options
-##################################################
-#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make.
-MakeDepsIDEOptions=$(MakeDepsIDEOptions) \
- -define_compiler2 COMPILER2 \
- -absoluteInclude_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls \
- -additionalFile_compiler2 $(Platform_arch_model).ad \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model).cpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model).hpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_clone.cpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_expand.cpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_format.cpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_gen.cpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_misc.cpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_peephole.cpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_pipeline.cpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls adGlobals_$(Platform_arch_model).hpp \
- -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls dfa_$(Platform_arch_model).cpp
-
-# Add in the jvmti (JSR-163) options
-# NOTE: do not pull in jvmtiEnvRecommended.cpp. This file is generated
-# so the programmer can diff it with jvmtiEnv.cpp to be sure the
-# code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java).
-# If so, they would then check it in as a new version of jvmtiEnv.cpp.
-MakeDepsIDEOptions=$(MakeDepsIDEOptions) \
- -absoluteInclude $(HOTSPOTBUILDSPACE)/jvmtifiles \
- -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnv.hpp \
- -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnter.cpp \
- -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnterTrace.cpp \
- -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmti.h \
- -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles bytecodeInterpreterWithChecks.cpp
diff --git a/hotspot/make/windows/makefiles/product.make b/hotspot/make/windows/makefiles/product.make
index 537791e6338..182f1f2518c 100644
--- a/hotspot/make/windows/makefiles/product.make
+++ b/hotspot/make/windows/makefiles/product.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2010, 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
@@ -27,7 +27,12 @@ HS_FNAME=$(HS_INTERNAL_NAME).dll
AOUT=$(HS_FNAME)
GENERATED=../generated
-default:: _build_pch_file.obj $(AOUT) checkAndBuildSA
+# Allow the user to turn off precompiled headers from the command line.
+!if "$(USE_PRECOMPILED_HEADER)" != "0"
+BUILD_PCH_FILE=_build_pch_file.obj
+!endif
+
+default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
!include ../local.make
!include compile.make
@@ -41,8 +46,6 @@ RC_FLAGS=$(RC_FLAGS) /D "NDEBUG"
!include $(WorkSpace)/make/windows/makefiles/vm.make
!include local.make
-!include $(GENERATED)/Dependencies
-
HS_BUILD_ID=$(HS_BUILD_VER)
# Force resources to be rebuilt every time
@@ -55,8 +58,10 @@ $(AOUT): $(Res_Files) $(Obj_Files)
$(LINK_FLAGS) /out:$@ /implib:$*.lib $(Obj_Files) $(Res_Files)
<<
!else
-$(AOUT): $(Res_Files) $(Obj_Files)
+vm.def: $(Obj_Files)
sh $(WorkSpace)/make/windows/build_vm_def.sh
+
+$(AOUT): $(Res_Files) $(Obj_Files) vm.def
$(LINK) @<<
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
<<
@@ -70,3 +75,4 @@ $(AOUT): $(Res_Files) $(Obj_Files)
!include $(WorkSpace)/make/windows/makefiles/shared.make
!include $(WorkSpace)/make/windows/makefiles/sa.make
+!include $(WorkSpace)/make/windows/makefiles/launcher.make
diff --git a/hotspot/make/windows/makefiles/projectcreator.make b/hotspot/make/windows/makefiles/projectcreator.make
new file mode 100644
index 00000000000..1dc307f9545
--- /dev/null
+++ b/hotspot/make/windows/makefiles/projectcreator.make
@@ -0,0 +1,235 @@
+#
+# Copyright (c) 1999, 2010, 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
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+#
+
+!include $(WorkSpace)/make/windows/makefiles/rules.make
+
+# This is used externally by both batch and IDE builds, so can't
+# reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE,
+# HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables.
+#
+# NOTE: unfortunately the ProjectCreatorSources list must be kept
+# synchronized between this and the Solaris version
+# (make/solaris/makefiles/projectcreator.make).
+
+ProjectCreatorSources=\
+ $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTree.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTreeNode.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\FileFormatException.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\Macro.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\MacroDefinitions.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\ProjectCreator.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatform.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC6.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC7.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC8.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC9.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\Util.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\BuildConfig.java \
+ $(WorkSpace)\src\share\tools\ProjectCreator\ArgsParser.java
+
+# This is only used internally
+ProjectCreatorIncludesPRIVATE=\
+ -relativeInclude src\share\vm \
+ -relativeInclude src\share\vm\prims \
+ -relativeInclude src\os\windows\vm \
+ -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \
+ -relativeInclude src\cpu\$(Platform_arch)\vm \
+ -absoluteInclude $(HOTSPOTBUILDSPACE)/%f/generated \
+ -ignorePath $(HOTSPOTBUILDSPACE)/%f/generated \
+ -ignorePath src\share\vm\adlc \
+ -ignorePath src\share\vm\shark
+
+# This is referenced externally by both the IDE and batch builds
+ProjectCreatorOptions=
+
+# This is used externally, but only by the IDE builds, so we can
+# reference environment variables which aren't defined in the batch
+# build process.
+
+ProjectCreatorIDEOptions = \
+ -useToGeneratePch java.cpp \
+ -disablePch os_windows.cpp \
+ -disablePch os_windows_$(Platform_arch).cpp \
+ -disablePch osThread_windows.cpp \
+ -disablePch bytecodeInterpreter.cpp \
+ -disablePch bytecodeInterpreterWithChecks.cpp \
+ -disablePch getThread_windows_$(Platform_arch).cpp \
+ -disablePch_compiler2 opcodes.cpp
+
+# Common options for the IDE builds for core, c1, and c2
+ProjectCreatorIDEOptions=\
+ $(ProjectCreatorIDEOptions) \
+ -sourceBase $(HOTSPOTWORKSPACE) \
+ -buildBase $(HOTSPOTBUILDSPACE)\%f\%b \
+ -startAt src \
+ -compiler $(VcVersion) \
+ -projectFileName $(HOTSPOTBUILDROOT)\$(ProjectFile) \
+ -jdkTargetRoot $(HOTSPOTJDKDIST) \
+ -define ALIGN_STACK_FRAMES \
+ -define VM_LITTLE_ENDIAN \
+ -prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \
+ -postbuild "" "Building hotspot.exe..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) nmake -f $(HOTSPOTWORKSPACE)\make\windows\projectfiles\common\Makefile LOCAL_MAKE=$(HOTSPOTBUILDSPACE)\%f\local.make JAVA_HOME=$(HOTSPOTJDKDIST) launcher" \
+ -ignoreFile jsig.c \
+ -ignoreFile jvmtiEnvRecommended.cpp \
+ -ignoreFile jvmtiEnvStub.cpp \
+ -ignoreFile globalDefinitions_gcc.hpp \
+ -ignoreFile globalDefinitions_sparcWorks.hpp \
+ -ignoreFile version.rc \
+ -ignoreFile Xusage.txt \
+ -define TARGET_ARCH_x86 \
+ -define TARGET_OS_ARCH_windows_x86 \
+ -define TARGET_OS_FAMILY_windows \
+ -define TARGET_COMPILER_visCPP \
+ $(ProjectCreatorIncludesPRIVATE)
+
+# Add in build-specific options
+!if "$(BUILDARCH)" == "i486"
+ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
+ -define IA32 \
+ -ignorePath x86_64 \
+ -define TARGET_ARCH_MODEL_x86_32
+!else
+ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
+ -ignorePath x86_32 \
+ -define TARGET_ARCH_MODEL_x86_64
+!endif
+
+ProjectCreatorIDEOptionsIgnoreCompiler1=\
+ -ignorePath_TARGET c1_
+
+ProjectCreatorIDEOptionsIgnoreCompiler2=\
+ -ignorePath_TARGET src/share/vm/opto \
+ -ignorePath_TARGET src/share/vm/libadt \
+ -ignorePath_TARGET adfiles \
+ -ignoreFile_TARGET bcEscapeAnalyzer.cpp \
+ -ignoreFile_TARGET bcEscapeAnalyzer.hpp \
+ -ignorePath_TARGET chaitin \
+ -ignorePath_TARGET c2_ \
+ -ignorePath_TARGET runtime_ \
+ -ignoreFile_TARGET ciTypeFlow.cpp \
+ -ignoreFile_TARGET ciTypeFlow.hpp \
+ -ignoreFile_TARGET $(Platform_arch_model).ad
+
+##################################################
+# Without compiler(core) specific options
+##################################################
+ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
+$(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=core) \
+$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=core)
+
+##################################################
+# JKERNEL specific options
+##################################################
+ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
+ -define_kernel KERNEL \
+$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=kernel) \
+ -ignorePath_kernel src/share/vm/gc_implementation/parallelScavenge \
+ -ignorePath_kernel src/share/vm/gc_implementation/parNew \
+ -ignorePath_kernel src/share/vm/gc_implementation/concurrentMarkSweep \
+ -ignorePath_kernel src/share/vm/gc_implementation/g1 \
+ -ignoreFile_kernel attachListener.cpp \
+ -ignoreFile_kernel attachListener_windows.cpp \
+ -ignoreFile_kernel dump.cpp \
+ -ignoreFile_kernel dump_$(Platform_arch_model).cpp \
+ -ignoreFile_kernel forte.cpp \
+ -ignoreFile_kernel fprofiler.cpp \
+ -ignoreFile_kernel heapDumper.cpp \
+ -ignoreFile_kernel heapInspection.cpp \
+ -ignoreFile_kernel jniCheck.cpp \
+ -ignoreFile_kernel jvmtiCodeBlobEvents.cpp \
+ -ignoreFile_kernel jvmtiExtensions.cpp \
+ -ignoreFile_kernel jvmtiImpl.cpp \
+ -ignoreFile_kernel jvmtiRawMonitor.cpp \
+ -ignoreFile_kernel jvmtiTagMap.cpp \
+ -ignoreFile_kernel jvmtiTrace.cpp \
+ -ignoreFile_kernel jvmtiTrace.hpp \
+ -ignoreFile_kernel restore.cpp \
+ -ignoreFile_kernel serialize.cpp \
+ -ignoreFile_kernel vmStructs.cpp \
+ -ignoreFile_kernel g1MemoryPool.cpp \
+ -ignoreFile_kernel g1MemoryPool.hpp \
+ -ignoreFile_kernel psMemoryPool.cpp \
+ -ignoreFile_kernel psMemoryPool.hpp \
+ -ignoreFile_kernel gcAdaptivePolicyCounters.cpp \
+ -ignoreFile_kernel concurrentGCThread.cpp \
+ -ignoreFile_kernel mutableNUMASpace.cpp \
+ -ignoreFile_kernel ciTypeFlow.cpp \
+ -ignoreFile_kernel ciTypeFlow.hpp \
+ -ignoreFile_kernel oop.pcgc.inline.hpp \
+ -ignoreFile_kernel oop.psgc.inline.hpp \
+ -ignoreFile_kernel allocationStats.cpp \
+ -ignoreFile_kernel allocationStats.hpp \
+ -ignoreFile_kernel concurrentGCThread.hpp \
+ -ignoreFile_kernel gSpaceCounters.cpp \
+ -ignoreFile_kernel gSpaceCounters.hpp \
+ -ignoreFile_kernel gcAdaptivePolicyCounters.hpp \
+ -ignoreFile_kernel immutableSpace.cpp \
+ -ignoreFile_kernel mutableNUMASpace.hpp \
+ -ignoreFile_kernel mutableSpace.cpp \
+ -ignoreFile_kernel spaceCounters.cpp \
+ -ignoreFile_kernel spaceCounters.hpp \
+ -ignoreFile_kernel yieldingWorkgroup.cpp \
+ -ignoreFile_kernel yieldingWorkgroup.hpp \
+ -ignorePath_kernel vmStructs_ \
+ -ignoreFile_kernel $(Platform_arch_model).ad \
+ -additionalFile_kernel gcTaskManager.hpp
+
+##################################################
+# Client(C1) compiler specific options
+##################################################
+ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
+ -define_compiler1 COMPILER1 \
+$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1)
+
+##################################################
+# Server(C2) compiler specific options
+##################################################
+#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make.
+ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
+ -define_compiler2 COMPILER2 \
+ -additionalFile_compiler2 $(Platform_arch_model).ad \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).cpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).hpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_clone.cpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_expand.cpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_format.cpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_gen.cpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_misc.cpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_peephole.cpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_pipeline.cpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles adGlobals_$(Platform_arch_model).hpp \
+ -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles dfa_$(Platform_arch_model).cpp \
+ $(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=compiler2)
+
+# Add in the jvmti (JSR-163) options
+# NOTE: do not pull in jvmtiEnvRecommended.cpp. This file is generated
+# so the programmer can diff it with jvmtiEnv.cpp to be sure the
+# code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java).
+# If so, they would then check it in as a new version of jvmtiEnv.cpp.
+ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
+ -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnv.hpp \
+ -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnter.cpp \
+ -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnterTrace.cpp \
+ -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmti.h \
+ -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles bytecodeInterpreterWithChecks.cpp
diff --git a/hotspot/make/windows/makefiles/rules.make b/hotspot/make/windows/makefiles/rules.make
index 6a6b379d95d..431ff3ecb85 100644
--- a/hotspot/make/windows/makefiles/rules.make
+++ b/hotspot/make/windows/makefiles/rules.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2010, 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
@@ -48,7 +48,7 @@ BOOT_TARGET_CLASS_VERSION=6
JAVAC_FLAGS=-g -encoding ascii
BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
-ProjectFile=vm.vcproj
+ProjectFile=jvm.vcproj
!if "$(MSC_VER)" == "1200"
@@ -63,6 +63,11 @@ VcVersion=VC8
VcVersion=VC9
+!elseif "$(MSC_VER)" == "1600"
+
+# for compatibility - we don't yet have a ProjectCreator for VC10
+VcVersion=VC9
+
!else
VcVersion=VC7
diff --git a/hotspot/make/windows/makefiles/sanity.make b/hotspot/make/windows/makefiles/sanity.make
index f874416d728..99f98d7e206 100644
--- a/hotspot/make/windows/makefiles/sanity.make
+++ b/hotspot/make/windows/makefiles/sanity.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2010, 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
diff --git a/hotspot/make/windows/makefiles/vm.make b/hotspot/make/windows/makefiles/vm.make
index 0f4cd002ca1..69ff1a7e780 100644
--- a/hotspot/make/windows/makefiles/vm.make
+++ b/hotspot/make/windows/makefiles/vm.make
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2010, 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,6 +25,8 @@
# Resource file containing VERSIONINFO
Res_Files=.\version.res
+!include ..\generated\objfiles.make
+
!ifdef RELEASE
!ifdef DEVELOP
CPP_FLAGS=$(CPP_FLAGS) /D "DEBUG"
@@ -69,10 +71,7 @@ CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\""
-CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS" $(CPP_INCLUDE_DIRS)
-
-# Must specify this for sharedRuntimeTrig.cpp
-CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN"
+CPP_FLAGS=$(CPP_FLAGS) $(CPP_INCLUDE_DIRS)
# Define that so jni.h is on correct side
CPP_FLAGS=$(CPP_FLAGS) /D "_JNI_IMPLEMENTATION_"
@@ -94,6 +93,8 @@ AGCT_EXPORT=/export:AsyncGetCallTrace
!endif
!endif
+# If you modify exports below please do the corresponding changes in
+# src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
/export:JNI_GetDefaultJavaVMInitArgs \
/export:JNI_CreateJavaVM \
@@ -111,37 +112,24 @@ LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
/export:JVM_InitAgentProperties
CPP_INCLUDE_DIRS=\
- /I "..\generated" \
- /I "..\generated\jvmtifiles" \
- /I "$(WorkSpace)\src\share\vm\c1" \
- /I "$(WorkSpace)\src\share\vm\compiler" \
- /I "$(WorkSpace)\src\share\vm\code" \
- /I "$(WorkSpace)\src\share\vm\interpreter" \
- /I "$(WorkSpace)\src\share\vm\ci" \
- /I "$(WorkSpace)\src\share\vm\classfile" \
- /I "$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge"\
- /I "$(WorkSpace)\src\share\vm\gc_implementation\shared"\
- /I "$(WorkSpace)\src\share\vm\gc_implementation\parNew"\
- /I "$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep"\
- /I "$(WorkSpace)\src\share\vm\gc_implementation\g1"\
- /I "$(WorkSpace)\src\share\vm\gc_interface"\
- /I "$(WorkSpace)\src\share\vm\asm" \
- /I "$(WorkSpace)\src\share\vm\memory" \
- /I "$(WorkSpace)\src\share\vm\oops" \
- /I "$(WorkSpace)\src\share\vm\prims" \
- /I "$(WorkSpace)\src\share\vm\runtime" \
- /I "$(WorkSpace)\src\share\vm\services" \
- /I "$(WorkSpace)\src\share\vm\utilities" \
- /I "$(WorkSpace)\src\share\vm\libadt" \
- /I "$(WorkSpace)\src\share\vm\opto" \
- /I "$(WorkSpace)\src\os\windows\vm" \
+ /I "..\generated" \
+ /I "$(WorkSpace)\src\share\vm" \
+ /I "$(WorkSpace)\src\share\vm\prims" \
+ /I "$(WorkSpace)\src\os\windows\vm" \
/I "$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm" \
/I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm"
-CPP_USE_PCH=/Fp"vm.pch" /Yu"incls/_precompiled.incl"
+CPP_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER
+
+!if "$(USE_PRECOMPILED_HEADER)" != "0"
+CPP_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp"
+!else
+CPP_USE_PCH=$(CPP_DONT_USE_PCH)
+!endif
# Where to find the source code for the virtual machine
-VM_PATH=../generated/incls
+VM_PATH=../generated
+VM_PATH=$(VM_PATH);../generated/adfiles
VM_PATH=$(VM_PATH);../generated/jvmtifiles
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler
@@ -173,31 +161,31 @@ VM_PATH={$(VM_PATH)}
# Special case files not using precompiled header files.
c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
- $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp
- $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
- $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
- $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
- $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
- $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp
- $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
- $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
- $(CPP) $(CPP_FLAGS) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
+ $(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
# Default rules for the Virtual Machine
{$(WorkSpace)\src\share\vm\c1}.cpp.obj::
@@ -280,11 +268,14 @@ bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWi
{..\generated\incls}.cpp.obj::
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
+{..\generated\adfiles}.cpp.obj::
+ $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
+
{..\generated\jvmtifiles}.cpp.obj::
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
default::
_build_pch_file.obj:
- @echo #include "incls/_precompiled.incl" > ../generated/_build_pch_file.cpp
- $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"incls/_precompiled.incl" /c ../generated/_build_pch_file.cpp
+ @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp
+ $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp
diff --git a/hotspot/make/windows/projectfiles/common/Makefile b/hotspot/make/windows/projectfiles/common/Makefile
index 038cb280b2f..8d55b9097f9 100644
--- a/hotspot/make/windows/projectfiles/common/Makefile
+++ b/hotspot/make/windows/projectfiles/common/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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,6 +22,11 @@
#
#
+!ifdef LOCAL_MAKE
+!include $(LOCAL_MAKE)
+!endif
+
+
WorkSpace=$(HOTSPOTWORKSPACE)
!ifdef ALT_BOOTDIR
@@ -32,74 +37,39 @@ BootStrapDir=$(BOOTDIR)
!else
!ifdef JAVA_HOME
BootStrapDir=$(JAVA_HOME)
+!else
+!ifdef HOTSPOTJDKDIST
+BootStrapDir=$(HOTSPOTJDKDIST)
+!endif
!endif
!endif
!endif
-!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/makedeps.make
+
+
+!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/projectcreator.make
+!include $(WorkSpace)/make/windows/makefiles/compile.make
# Pick up rules for building JVMTI (JSR-163)
-JvmtiOutDir=$(HOTSPOTBUILDSPACE)\jvmtifiles
+JvmtiOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\jvmtifiles
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/jvmti.make
Platform=$(HOTSPOTWORKSPACE)/make/windows/platform_$(BUILDARCH)
-default:: $(AdditionalTargets) $(JvmtiGeneratedFiles)
-
-IncludeDBs_base=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_core \
- $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_jvmti \
- $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc \
- $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_serial
-
-# Parallel gc files
-IncludeDBs_gc=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc_parallel \
- $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_shared \
- $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parNew \
- $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \
- $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \
- $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_g1
-
-
-IncludeDBs_kernel =$(IncludeDBs_base) \
- $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1
-
-IncludeDBs_core =$(IncludeDBs_base) $(IncludeDBs_gc) \
- $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_features
-
-IncludeDBs_compiler1=$(IncludeDBs_core) \
- $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1
-
-IncludeDBs_compiler2=$(IncludeDBs_core) \
- $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler2
-
-IncludeDBs_tiered=$(IncludeDBs_core) \
- $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1 \
- $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler2
-
-
-!if "$(Variant)" == "compiler1"
-IncludeDBs = $(IncludeDBs_compiler1)
-!endif
-
!if "$(Variant)" == "compiler2"
-IncludeDBs = $(IncludeDBs_compiler2)
# Pick up rules for building adlc
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make
!endif
!if "$(Variant)" == "tiered"
-IncludeDBs = $(IncludeDBs_tiered)
# Pick up rules for building adlc
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make
!endif
-!if "$(Variant)" == "core"
-IncludeDBs = $(IncludeDBs_core)
-!endif
+HS_INTERNAL_NAME=jvm
+!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/launcher.make
-!if "$(Variant)" == "kernel"
-IncludeDBs = $(IncludeDBs_kernel)
-!endif
+default:: $(AdditionalTargets) $(JvmtiGeneratedFiles)
!include $(HOTSPOTWORKSPACE)/make/hotspot_version
@@ -108,7 +78,11 @@ HOTSPOT_RELEASE_VERSION="$(HOTSPOT_RELEASE_VERSION)"
!else
HOTSPOT_RELEASE_VERSION="$(HS_MAJOR_VER).$(HS_MINOR_VER)-b$(HS_BUILD_NUMBER)"
!endif
+!if "$(USER_RELEASE_SUFFIX)" != ""
+HOTSPOT_BUILD_VERSION$(HOTSPOT_BUILD_VERSION) = internal-$(USER_RELEASE_SUFFIX)
+!else
HOTSPOT_BUILD_VERSION$(HOTSPOT_BUILD_VERSION) = internal
+!endif
!if "$(HOTSPOT_BUILD_VERSION)" != ""
HOTSPOT_RELEASE_VERSION="$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)"
!endif
@@ -130,55 +104,22 @@ HOTSPOT_VM_DISTRO="OpenJDK"
!endif
!endif
-MakeDepsIDEOptions = $(MakeDepsIDEOptions) \
- -includeDB_kernel $(HOTSPOTBUILDSPACE)\includeDB_kernel \
- -includeDB_core $(HOTSPOTBUILDSPACE)\includeDB_core \
- -includeDB_compiler1 $(HOTSPOTBUILDSPACE)\includeDB_compiler1 \
- -includeDB_compiler2 $(HOTSPOTBUILDSPACE)\includeDB_compiler2 \
- -includeDB_tiered $(HOTSPOTBUILDSPACE)\includeDB_tiered \
+ProjectCreatorIDEOptions = $(ProjectCreatorIDEOptions) \
-platform $(Platform) \
-define HOTSPOT_RELEASE_VERSION=\\\"$(HOTSPOT_RELEASE_VERSION)\\\" \
-define JRE_RELEASE_VERSION=\\\"$(JRE_RELEASE_VERSION)\\\" \
-define HOTSPOT_VM_DISTRO=\\\"$(HOTSPOT_VM_DISTRO)\\\"
-incls:
- @mkdir incls
-
-includeDB.current $(ProjectFile) Dependencies: local.make $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class \
- $(IncludeDBs) incls
- @rm -f includeDB $(HOTSPOTBUILDSPACE)\includeDB_kernel \
- $(HOTSPOTBUILDSPACE)\includeDB_core \
- $(HOTSPOTBUILDSPACE)\includeDB_compiler1 \
- $(HOTSPOTBUILDSPACE)\includeDB_compiler2 \
- $(HOTSPOTBUILDSPACE)\includeDB_tiered
- @cat $(IncludeDBs_kernel) > $(HOTSPOTBUILDSPACE)\includeDB_kernel
- @cat $(IncludeDBs_core) > $(HOTSPOTBUILDSPACE)\includeDB_core
- @cat $(IncludeDBs_compiler1) > $(HOTSPOTBUILDSPACE)\includeDB_compiler1
- @cat $(IncludeDBs_compiler2) > $(HOTSPOTBUILDSPACE)\includeDB_compiler2
- @cat $(IncludeDBs_tiered) > $(HOTSPOTBUILDSPACE)\includeDB_tiered
- @echo java.cpp jni.h > includeDB
- @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes MakeDeps diffs WinGammaPlatform$(VcVersion) \
- $(Platform) includeDB.current $(Platform) includeDB $(MakeDepsOptions) $(MakeDepsIDEOptions)
- @rm -f includeDB.current
- @cp includeDB includeDB.current
-
-lists: $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class FORCE
- @if exist incls rmdir /s /q incls
- @rm -f includeDB
- @cat $(IncludeDBs) > includeDB
- @mkdir incls
- @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes MakeDeps WinGammaPlatform$(VcVersion) \
- $(Platform) includeDB $(MakeDepsOptions) $(MakeDepsIDEOptions)
- @rm -f includeDB.current
- @cp includeDB includeDB.current
+$(HOTSPOTBUILDROOT)/$(ProjectFile): $(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class
+ @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes ProjectCreator WinGammaPlatform$(VcVersion) $(ProjectCreatorIDEOptions)
clean:
- @rm -rf incls $(HOTSPOTBUILDSPACE)/classes
- @rm -f includeDB includeDB.current $(ProjectFile) Dependencies
+ @rm -rf $(HOTSPOTBUILDSPACE)/classes
+ @rm -r ../$(ProjectFile)
-$(HOTSPOTBUILDSPACE)/classes/MakeDeps.class: $(MakeDepsSources)
+$(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class: $(ProjectCreatorSources)
@if exist $(HOTSPOTBUILDSPACE)\classes rmdir /s /q $(HOTSPOTBUILDSPACE)\classes
@mkdir $(HOTSPOTBUILDSPACE)\classes
- @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources)
+ @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\ProjectCreator -d $(HOTSPOTBUILDSPACE)/classes $(ProjectCreatorSources)
FORCE:
diff --git a/hotspot/make/windows/projectfiles/compiler1/Makefile b/hotspot/make/windows/projectfiles/compiler1/Makefile
index 83c3897f735..183a27647dd 100644
--- a/hotspot/make/windows/projectfiles/compiler1/Makefile
+++ b/hotspot/make/windows/projectfiles/compiler1/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2010, 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,7 +22,6 @@
#
#
-Variant=compiler1
-!include local.make
+!include ../local.make
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
diff --git a/hotspot/make/windows/projectfiles/compiler1/vm.def b/hotspot/make/windows/projectfiles/compiler1/vm.def
index 7811a1fc9bb..b450e81fd01 100644
--- a/hotspot/make/windows/projectfiles/compiler1/vm.def
+++ b/hotspot/make/windows/projectfiles/compiler1/vm.def
@@ -2,6 +2,6 @@
; This .DEF file is a placeholder for one which is automatically
; generated during the build process. See
; make\windows\build_vm_def.sh and
-; make\windows\makefiles\makedeps.make (esp. the "-prelink"
+; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
; options).
;
diff --git a/hotspot/make/windows/projectfiles/compiler2/Makefile b/hotspot/make/windows/projectfiles/compiler2/Makefile
index 49f96eb7f11..1df97d232a8 100644
--- a/hotspot/make/windows/projectfiles/compiler2/Makefile
+++ b/hotspot/make/windows/projectfiles/compiler2/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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 @@
#
#
-Variant=compiler2
-!include local.make
-AdditionalTargets=incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp
+!include ../local.make
+AdlcOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\adfiles
+AdditionalTargets=$(AdlcOutDir)\ad_$(Platform_arch_model).cpp $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
diff --git a/hotspot/make/windows/projectfiles/compiler2/vm.def b/hotspot/make/windows/projectfiles/compiler2/vm.def
index 7811a1fc9bb..b450e81fd01 100644
--- a/hotspot/make/windows/projectfiles/compiler2/vm.def
+++ b/hotspot/make/windows/projectfiles/compiler2/vm.def
@@ -2,6 +2,6 @@
; This .DEF file is a placeholder for one which is automatically
; generated during the build process. See
; make\windows\build_vm_def.sh and
-; make\windows\makefiles\makedeps.make (esp. the "-prelink"
+; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
; options).
;
diff --git a/hotspot/make/windows/projectfiles/core/Makefile b/hotspot/make/windows/projectfiles/core/Makefile
index 27ea55ff1a2..5b23a8467cb 100644
--- a/hotspot/make/windows/projectfiles/core/Makefile
+++ b/hotspot/make/windows/projectfiles/core/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2010, 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,7 +22,6 @@
#
#
-Variant=core
-!include local.make
+!include ../local.make
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
diff --git a/hotspot/make/windows/projectfiles/core/vm.def b/hotspot/make/windows/projectfiles/core/vm.def
index 7811a1fc9bb..b450e81fd01 100644
--- a/hotspot/make/windows/projectfiles/core/vm.def
+++ b/hotspot/make/windows/projectfiles/core/vm.def
@@ -2,6 +2,6 @@
; This .DEF file is a placeholder for one which is automatically
; generated during the build process. See
; make\windows\build_vm_def.sh and
-; make\windows\makefiles\makedeps.make (esp. the "-prelink"
+; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
; options).
;
diff --git a/hotspot/make/windows/projectfiles/kernel/Makefile b/hotspot/make/windows/projectfiles/kernel/Makefile
index e18305a67b3..bb231fca6c8 100644
--- a/hotspot/make/windows/projectfiles/kernel/Makefile
+++ b/hotspot/make/windows/projectfiles/kernel/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2010 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,7 +22,6 @@
#
#
-Variant=compiler1
-!include local.make
+!include ../local.make
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
diff --git a/hotspot/make/windows/projectfiles/kernel/vm.def b/hotspot/make/windows/projectfiles/kernel/vm.def
index 7811a1fc9bb..b450e81fd01 100644
--- a/hotspot/make/windows/projectfiles/kernel/vm.def
+++ b/hotspot/make/windows/projectfiles/kernel/vm.def
@@ -2,6 +2,6 @@
; This .DEF file is a placeholder for one which is automatically
; generated during the build process. See
; make\windows\build_vm_def.sh and
-; make\windows\makefiles\makedeps.make (esp. the "-prelink"
+; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
; options).
;
diff --git a/hotspot/make/windows/projectfiles/tiered/Makefile b/hotspot/make/windows/projectfiles/tiered/Makefile
index b513759ad7b..5398cb99d46 100644
--- a/hotspot/make/windows/projectfiles/tiered/Makefile
+++ b/hotspot/make/windows/projectfiles/tiered/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2010, 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 @@
#
#
-Variant=tiered
-!include local.make
-AdditionalTargets=incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp
+!include ../local.make
+AdlcOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\adfiles
+AdditionalTargets=$(AdlcOutDir)\ad_$(Platform_arch_model).cpp $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
diff --git a/hotspot/make/windows/projectfiles/tiered/vm.def b/hotspot/make/windows/projectfiles/tiered/vm.def
index 7811a1fc9bb..b450e81fd01 100644
--- a/hotspot/make/windows/projectfiles/tiered/vm.def
+++ b/hotspot/make/windows/projectfiles/tiered/vm.def
@@ -2,6 +2,6 @@
; This .DEF file is a placeholder for one which is automatically
; generated during the build process. See
; make\windows\build_vm_def.sh and
-; make\windows\makefiles\makedeps.make (esp. the "-prelink"
+; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
; options).
;
diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp
index e84e92a41c7..f1c39036251 100644
--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, 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,25 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_assembler_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "gc_interface/collectedHeap.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "memory/cardTableModRefBS.hpp"
+#include "memory/resourceArea.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/objectMonitor.hpp"
+#include "runtime/os.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#ifndef SERIALGC
+#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
+#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
+#include "gc_implementation/g1/heapRegion.hpp"
+#endif
// Convert the raw encoding form into the form expected by the
// constructor for Address.
@@ -893,10 +910,10 @@ void MacroAssembler::verify_thread() {
#if defined(COMPILER2) && !defined(_LP64)
// Save & restore possible 64-bit Long arguments in G-regs
sllx(L0,32,G2); // Move old high G1 bits high in G2
- sllx(G1, 0,G1); // Clear current high G1 bits
+ srl(G1, 0,G1); // Clear current high G1 bits
or3 (G1,G2,G1); // Recover 64-bit G1
sllx(L6,32,G2); // Move old high G4 bits high in G2
- sllx(G4, 0,G4); // Clear current high G4 bits
+ srl(G4, 0,G4); // Clear current high G4 bits
or3 (G4,G2,G4); // Recover 64-bit G4
#endif
restore(O0, 0, G2_thread);
@@ -1311,37 +1328,38 @@ void MacroAssembler::patchable_sethi(const AddressLiteral& addrlit, Register d)
}
-int MacroAssembler::size_of_sethi(address a, bool worst_case) {
+int MacroAssembler::insts_for_sethi(address a, bool worst_case) {
#ifdef _LP64
- if (worst_case) return 7;
- intptr_t iaddr = (intptr_t)a;
- int hi32 = (int)(iaddr >> 32);
- int lo32 = (int)(iaddr);
- int inst_count;
- if (hi32 == 0 && lo32 >= 0)
- inst_count = 1;
- else if (hi32 == -1)
- inst_count = 2;
+ if (worst_case) return 7;
+ intptr_t iaddr = (intptr_t) a;
+ int msb32 = (int) (iaddr >> 32);
+ int lsb32 = (int) (iaddr);
+ int count;
+ if (msb32 == 0 && lsb32 >= 0)
+ count = 1;
+ else if (msb32 == -1)
+ count = 2;
else {
- inst_count = 2;
- if ( hi32 & 0x3ff )
- inst_count++;
- if ( lo32 & 0xFFFFFC00 ) {
- if( (lo32 >> 20) & 0xfff ) inst_count += 2;
- if( (lo32 >> 10) & 0x3ff ) inst_count += 2;
+ count = 2;
+ if (msb32 & 0x3ff)
+ count++;
+ if (lsb32 & 0xFFFFFC00 ) {
+ if ((lsb32 >> 20) & 0xfff) count += 2;
+ if ((lsb32 >> 10) & 0x3ff) count += 2;
}
}
- return BytesPerInstWord * inst_count;
+ return count;
#else
- return BytesPerInstWord;
+ return 1;
#endif
}
-int MacroAssembler::worst_case_size_of_set() {
- return size_of_sethi(NULL, true) + 1;
+int MacroAssembler::worst_case_insts_for_set() {
+ return insts_for_sethi(NULL, true) + 1;
}
+// Keep in sync with MacroAssembler::insts_for_internal_set
void MacroAssembler::internal_set(const AddressLiteral& addrlit, Register d, bool ForceRelocatable) {
intptr_t value = addrlit.value();
@@ -1363,6 +1381,23 @@ void MacroAssembler::internal_set(const AddressLiteral& addrlit, Register d, boo
}
}
+// Keep in sync with MacroAssembler::internal_set
+int MacroAssembler::insts_for_internal_set(intptr_t value) {
+ // can optimize
+ if (-4096 <= value && value <= 4095) {
+ return 1;
+ }
+ if (inv_hi22(hi22(value)) == value) {
+ return insts_for_sethi((address) value);
+ }
+ int count = insts_for_sethi((address) value);
+ AddressLiteral al(value);
+ if (al.low10() != 0) {
+ count++;
+ }
+ return count;
+}
+
void MacroAssembler::set(const AddressLiteral& al, Register d) {
internal_set(al, d, false);
}
@@ -1427,6 +1462,45 @@ void MacroAssembler::set64(jlong value, Register d, Register tmp) {
}
}
+int MacroAssembler::insts_for_set64(jlong value) {
+ v9_dep();
+
+ int hi = (int) (value >> 32);
+ int lo = (int) (value & ~0);
+ int count = 0;
+
+ // (Matcher::isSimpleConstant64 knows about the following optimizations.)
+ if (Assembler::is_simm13(lo) && value == lo) {
+ count++;
+ } else if (hi == 0) {
+ count++;
+ if (low10(lo) != 0)
+ count++;
+ }
+ else if (hi == -1) {
+ count += 2;
+ }
+ else if (lo == 0) {
+ if (Assembler::is_simm13(hi)) {
+ count++;
+ } else {
+ count++;
+ if (low10(hi) != 0)
+ count++;
+ }
+ count++;
+ }
+ else {
+ count += 2;
+ if (low10(hi) != 0)
+ count++;
+ if (low10(lo) != 0)
+ count++;
+ count += 2;
+ }
+ return count;
+}
+
// compute size in bytes of sparc frame, given
// number of extraWords
int MacroAssembler::total_frame_size_in_bytes(int extraWords) {
@@ -3094,11 +3168,10 @@ void MacroAssembler::check_klass_subtype_slow_path(Register sub_klass,
void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_reg,
Register temp_reg,
Label& wrong_method_type) {
- if (UseCompressedOops) unimplemented("coop"); // field accesses must decode
assert_different_registers(mtype_reg, mh_reg, temp_reg);
// compare method type against that of the receiver
RegisterOrConstant mhtype_offset = delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg);
- ld_ptr(mh_reg, mhtype_offset, temp_reg);
+ load_heap_oop(mh_reg, mhtype_offset, temp_reg);
cmp(temp_reg, mtype_reg);
br(Assembler::notEqual, false, Assembler::pn, wrong_method_type);
delayed()->nop();
@@ -3112,16 +3185,15 @@ void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_re
void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register mh_reg,
Register temp_reg) {
assert_different_registers(vmslots_reg, mh_reg, temp_reg);
- if (UseCompressedOops) unimplemented("coop"); // field accesses must decode
// load mh.type.form.vmslots
if (java_dyn_MethodHandle::vmslots_offset_in_bytes() != 0) {
// hoist vmslots into every mh to avoid dependent load chain
- ld( Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
+ ld( Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
} else {
Register temp2_reg = vmslots_reg;
- ld_ptr(Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)), temp2_reg);
- ld_ptr(Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)), temp2_reg);
- ld( Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
+ load_heap_oop(Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)), temp2_reg);
+ load_heap_oop(Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)), temp2_reg);
+ ld( Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
}
}
@@ -3130,9 +3202,8 @@ void MacroAssembler::jump_to_method_handle_entry(Register mh_reg, Register temp_
assert(mh_reg == G3_method_handle, "caller must put MH object in G3");
assert_different_registers(mh_reg, temp_reg);
- if (UseCompressedOops) unimplemented("coop"); // field accesses must decode
-
// pick out the interpreted side of the handler
+ // NOTE: vmentry is not an oop!
ld_ptr(mh_reg, delayed_value(java_dyn_MethodHandle::vmentry_offset_in_bytes, temp_reg), temp_reg);
// off we go...
@@ -4031,11 +4102,15 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
store_klass(t2, top);
verify_oop(top);
+ ld_ptr(G2_thread, in_bytes(JavaThread::tlab_start_offset()), t1);
+ sub(top, t1, t1); // size of tlab's allocated portion
+ incr_allocated_bytes(t1, 0, t2);
+
// refill the tlab with an eden allocation
bind(do_refill);
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_size_offset()), t1);
sll_ptr(t1, LogHeapWordSize, t1);
- // add object_size ??
+ // allocate new tlab, address returned in top
eden_allocate(top, t1, 0, t2, t3, slow_case);
st_ptr(top, G2_thread, in_bytes(JavaThread::tlab_start_offset()));
@@ -4063,6 +4138,22 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
delayed()->nop();
}
+void MacroAssembler::incr_allocated_bytes(Register var_size_in_bytes,
+ int con_size_in_bytes,
+ Register t1) {
+ // Bump total bytes allocated by this thread
+ assert(t1->is_global(), "must be global reg"); // so all 64 bits are saved on a context switch
+ assert_different_registers(var_size_in_bytes, t1);
+ // v8 support has gone the way of the dodo
+ ldx(G2_thread, in_bytes(JavaThread::allocated_bytes_offset()), t1);
+ if (var_size_in_bytes->is_valid()) {
+ add(t1, var_size_in_bytes, t1);
+ } else {
+ add(t1, con_size_in_bytes, t1);
+ }
+ stx(t1, G2_thread, in_bytes(JavaThread::allocated_bytes_offset()));
+}
+
Assembler::Condition MacroAssembler::negate_condition(Assembler::Condition cond) {
switch (cond) {
// Note some conditions are synonyms for others
@@ -4653,6 +4744,11 @@ void MacroAssembler::load_heap_oop(Register s1, int simm13a, Register d) {
}
}
+void MacroAssembler::load_heap_oop(Register s1, RegisterOrConstant s2, Register d) {
+ if (s2.is_constant()) load_heap_oop(s1, s2.as_constant(), d);
+ else load_heap_oop(s1, s2.as_register(), d);
+}
+
void MacroAssembler::store_heap_oop(Register d, Register s1, Register s2) {
if (UseCompressedOops) {
assert(s1 != d && s2 != d, "not enough registers");
diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp
index 4592ed81fea..296305664cc 100644
--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
+#define CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
+
class BiasedLockingCounters;
// promises that the system will not use traps 16-31
@@ -825,6 +828,12 @@ class Assembler : public AbstractAssembler {
// test if -4096 <= x <= 4095
static bool is_simm13(int x) { return is_simm(x, 13); }
+ // test if label is in simm16 range in words (wdisp16).
+ bool is_in_wdisp16_range(Label& L) {
+ intptr_t d = intptr_t(pc()) - intptr_t(target(L));
+ return is_simm(d, 18);
+ }
+
enum ASIs { // page 72, v9
ASI_PRIMARY = 0x80,
ASI_PRIMARY_LITTLE = 0x88
@@ -1120,7 +1129,7 @@ public:
inline void add(Register s1, int simm13a, Register d, relocInfo::relocType rtype = relocInfo::none);
inline void add(Register s1, int simm13a, Register d, RelocationHolder const& rspec);
inline void add(Register s1, RegisterOrConstant s2, Register d, int offset = 0);
- inline void add(const Address& a, Register d, int offset = 0) { add( a.base(), a.disp() + offset, d, a.rspec(offset)); }
+ inline void add(const Address& a, Register d, int offset = 0);
void addcc( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(add_op3 | cc_bit_op3) | rs1(s1) | rs2(s2) ); }
void addcc( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(add_op3 | cc_bit_op3) | rs1(s1) | immed(true) | simm(simm13a, 13) ); }
@@ -1612,6 +1621,10 @@ public:
void sub( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(sub_op3 ) | rs1(s1) | rs2(s2) ); }
void sub( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(sub_op3 ) | rs1(s1) | immed(true) | simm(simm13a, 13) ); }
+
+ // Note: offset is added to s2.
+ inline void sub(Register s1, RegisterOrConstant s2, Register d, int offset = 0);
+
void subcc( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(sub_op3 | cc_bit_op3 ) | rs1(s1) | rs2(s2) ); }
void subcc( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(sub_op3 | cc_bit_op3 ) | rs1(s1) | immed(true) | simm(simm13a, 13) ); }
void subc( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(subc_op3 ) | rs1(s1) | rs2(s2) ); }
@@ -1789,6 +1802,7 @@ class MacroAssembler: public Assembler {
// branches that use right instruction for v8 vs. v9
inline void br( Condition c, bool a, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
inline void br( Condition c, bool a, Predict p, Label& L );
+
inline void fb( Condition c, bool a, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
inline void fb( Condition c, bool a, Predict p, Label& L );
@@ -1870,20 +1884,24 @@ public:
void sethi(const AddressLiteral& addrlit, Register d);
void patchable_sethi(const AddressLiteral& addrlit, Register d);
- // compute the size of a sethi/set
- static int size_of_sethi( address a, bool worst_case = false );
- static int worst_case_size_of_set();
+ // compute the number of instructions for a sethi/set
+ static int insts_for_sethi( address a, bool worst_case = false );
+ static int worst_case_insts_for_set();
// set may be either setsw or setuw (high 32 bits may be zero or sign)
private:
void internal_set(const AddressLiteral& al, Register d, bool ForceRelocatable);
+ static int insts_for_internal_set(intptr_t value);
public:
void set(const AddressLiteral& addrlit, Register d);
void set(intptr_t value, Register d);
void set(address addr, Register d, RelocationHolder const& rspec);
+ static int insts_for_set(intptr_t value) { return insts_for_internal_set(value); }
+
void patchable_set(const AddressLiteral& addrlit, Register d);
void patchable_set(intptr_t value, Register d);
void set64(jlong value, Register d, Register tmp);
+ static int insts_for_set64(jlong value);
// sign-extend 32 to 64
inline void signx( Register s, Register d ) { sra( s, G0, d); }
@@ -2103,6 +2121,7 @@ public:
void load_heap_oop(const Address& s, Register d);
void load_heap_oop(Register s1, Register s2, Register d);
void load_heap_oop(Register s1, int simm13a, Register d);
+ void load_heap_oop(Register s1, RegisterOrConstant s2, Register d);
void store_heap_oop(Register d, Register s1, Register s2);
void store_heap_oop(Register d, Register s1, int simm13a);
void store_heap_oop(Register d, const Address& a, int offset = 0);
@@ -2225,7 +2244,7 @@ public:
void stop(const char* msg); // prints msg, dumps registers and stops execution
void warn(const char* msg); // prints msg, but don't stop
void untested(const char* what = "");
- void unimplemented(const char* what = "") { char* b = new char[1024]; sprintf(b, "unimplemented: %s", what); stop(b); }
+ void unimplemented(const char* what = "") { char* b = new char[1024]; jio_snprintf(b, 1024, "unimplemented: %s", what); stop(b); }
void should_not_reach_here() { stop("should not reach here"); }
void print_CPU_state();
@@ -2370,6 +2389,7 @@ public:
Label& slow_case // continuation point if fast allocation fails
);
void tlab_refill(Label& retry_tlab, Label& try_eden, Label& slow_case);
+ void incr_allocated_bytes(Register var_size_in_bytes, int con_size_in_bytes, Register t1);
// interface method calling
void lookup_interface_method(Register recv_klass,
@@ -2493,3 +2513,5 @@ class SkipIfEqual : public StackObj {
// On RISC, there's no benefit to verifying instruction boundaries.
inline bool AbstractAssembler::pd_check_instruction_mark() { return false; }
#endif
+
+#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp
index 88cf8f5eee0..106aa14e5b0 100644
--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,14 @@
*
*/
+#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP
+#define CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP
+
+#include "asm/assembler.inline.hpp"
+#include "asm/codeBuffer.hpp"
+#include "code/codeCache.hpp"
+#include "runtime/handles.inline.hpp"
+
inline void MacroAssembler::pd_patch_instruction(address branch, address target) {
jint& stub_inst = *(jint*) branch;
stub_inst = patched_branch(target - branch, stub_inst, 0);
@@ -206,6 +214,11 @@ inline void Assembler::ld( Register s1, RegisterOrConstant s2, Register d) { ld
inline void Assembler::ldd( Register s1, RegisterOrConstant s2, Register d) { ldd( Address(s1, s2), d); }
// form effective addresses this way:
+inline void Assembler::add(const Address& a, Register d, int offset) {
+ if (a.has_index()) add(a.base(), a.index(), d);
+ else { add(a.base(), a.disp() + offset, d, a.rspec(offset)); offset = 0; }
+ if (offset != 0) add(d, offset, d);
+}
inline void Assembler::add(Register s1, RegisterOrConstant s2, Register d, int offset) {
if (s2.is_register()) add(s1, s2.as_register(), d);
else { add(s1, s2.as_constant() + offset, d); offset = 0; }
@@ -315,6 +328,11 @@ inline void Assembler::stcsr( int crd, Register s1, int simm13a) { v8_only();
inline void Assembler::stdcq( int crd, Register s1, Register s2) { v8_only(); emit_long( op(ldst_op) | fcn(crd) | op3(stdcq_op3) | rs1(s1) | rs2(s2) ); }
inline void Assembler::stdcq( int crd, Register s1, int simm13a) { v8_only(); emit_data( op(ldst_op) | fcn(crd) | op3(stdcq_op3) | rs1(s1) | immed(true) | simm(simm13a, 13)); }
+inline void Assembler::sub(Register s1, RegisterOrConstant s2, Register d, int offset) {
+ if (s2.is_register()) sub(s1, s2.as_register(), d);
+ else { sub(s1, s2.as_constant() + offset, d); offset = 0; }
+ if (offset != 0) sub(d, offset, d);
+}
// pp 231
@@ -817,3 +835,5 @@ inline void MacroAssembler::membar( Membar_mask_bits const7a ) {
Assembler::ldstub(SP, 0, G0);
}
}
+
+#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP
diff --git a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp
index 9e3b78920e9..643762eca01 100644
--- a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, 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,4 +22,24 @@
*
*/
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interp_masm_sparc.hpp"
+#include "interpreter/bytecodeInterpreter.hpp"
+#include "interpreter/bytecodeInterpreter.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+
// KILL THIS FILE
diff --git a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp
index d339d3485e3..aad5bc7162c 100644
--- a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP
+#define CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP
+
// Platform specific for C++ based Interpreter
#define LOTS_OF_REGS /* Lets interpreter use plenty of registers */
@@ -97,3 +100,5 @@ public:
((VMJavaVal64*)(addr))->d)
#define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \
((VMJavaVal64*)(addr))->l)
+
+#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp
index 6bd42a8ec84..d9c8e66de6a 100644
--- a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp
+++ b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP
+#define CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP
+
// Inline interpreter functions for sparc
inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { return op1 + op2; }
@@ -331,3 +334,5 @@ class u8_converter {
}
};
#endif /* ALIGN_CONVERTER */
+
+#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP
diff --git a/hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp b/hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp
index d8701db24d9..8874d8ca8cc 100644
--- a/hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_bytecodes_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/bytecodes.hpp"
void Bytecodes::pd_initialize() {
diff --git a/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp b/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp
index b6913fa5621..f1d08b336ab 100644
--- a/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_BYTECODES_SPARC_HPP
+#define CPU_SPARC_VM_BYTECODES_SPARC_HPP
+
#ifdef SPARC
#define NLOCALS_IN_REGS 6
#endif
@@ -30,3 +33,5 @@
// Sparc specific bytecodes
// (none)
+
+#endif // CPU_SPARC_VM_BYTECODES_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/bytes_sparc.hpp b/hotspot/src/cpu/sparc/vm/bytes_sparc.hpp
index 7593326364a..67d4307ff74 100644
--- a/hotspot/src/cpu/sparc/vm/bytes_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/bytes_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,11 @@
*
*/
+#ifndef CPU_SPARC_VM_BYTES_SPARC_HPP
+#define CPU_SPARC_VM_BYTES_SPARC_HPP
+
+#include "memory/allocation.hpp"
+
class Bytes: AllStatic {
public:
// Efficient reading and writing of unaligned unsigned data in platform-specific byte ordering
@@ -155,3 +160,5 @@ class Bytes: AllStatic {
// 1.15 98/10/05 16:30:21 bytes_i486.hpp
// 1.17 99/06/22 16:37:35 bytes_i486.hpp
//End
+
+#endif // CPU_SPARC_VM_BYTES_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
index 709259740f5..ee5f6afb5de 100644
--- a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
@@ -22,8 +22,18 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_c1_CodeStubs_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_CodeStubs.hpp"
+#include "c1/c1_FrameMap.hpp"
+#include "c1/c1_LIRAssembler.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "nativeInst_sparc.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "vmreg_sparc.inline.hpp"
+#ifndef SERIALGC
+#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
+#endif
#define __ ce->masm()->
@@ -32,6 +42,7 @@ RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index,
: _throw_index_out_of_bounds_exception(throw_index_out_of_bounds_exception)
, _index(index)
{
+ assert(info != NULL, "must have info");
_info = new CodeEmitInfo(info);
}
@@ -423,9 +434,14 @@ void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
Register pre_val_reg = pre_val()->as_register();
- ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false);
- __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
- pre_val_reg, _continuation);
+ ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
+ if (__ is_in_wdisp16_range(_continuation)) {
+ __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
+ pre_val_reg, _continuation);
+ } else {
+ __ cmp(pre_val_reg, G0);
+ __ brx(Assembler::equal, false, Assembler::pn, _continuation);
+ }
__ delayed()->nop();
__ call(Runtime1::entry_for(Runtime1::Runtime1::g1_pre_barrier_slow_id));
@@ -451,8 +467,13 @@ void G1PostBarrierStub::emit_code(LIR_Assembler* ce) {
assert(new_val()->is_register(), "Precondition.");
Register addr_reg = addr()->as_pointer_register();
Register new_val_reg = new_val()->as_register();
- __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
- new_val_reg, _continuation);
+ if (__ is_in_wdisp16_range(_continuation)) {
+ __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
+ new_val_reg, _continuation);
+ } else {
+ __ cmp(new_val_reg, G0);
+ __ brx(Assembler::equal, false, Assembler::pn, _continuation);
+ }
__ delayed()->nop();
__ call(Runtime1::entry_for(Runtime1::Runtime1::g1_post_barrier_slow_id));
diff --git a/hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp
index c03873d4e65..a63e28fafe3 100644
--- a/hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_C1_DEFS_SPARC_HPP
+#define CPU_SPARC_VM_C1_DEFS_SPARC_HPP
+
// native word offsets from memory address (big endian)
enum {
pd_lo_word_offset_in_bytes = BytesPerInt,
@@ -65,3 +68,5 @@ enum {
enum {
pd_float_saved_as_double = false
};
+
+#endif // CPU_SPARC_VM_C1_DEFS_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp
index 3a2c65d9f17..8c3a19a9e78 100644
--- a/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,4 +22,10 @@
*
*/
+#include "precompiled.hpp"
+#include "c1/c1_FpuStackSim.hpp"
+#include "c1/c1_FrameMap.hpp"
+#include "utilities/array.hpp"
+#include "utilities/ostream.hpp"
+
// No FPU stack on SPARC
diff --git a/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp
index 3aa967d4627..83f14968bb1 100644
--- a/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,5 +22,10 @@
*
*/
+#ifndef CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP
+#define CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP
+
// No FPU stack on SPARC
class FpuStackSim;
+
+#endif // CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp
index 2bf36306771..6b9e5652ae7 100644
--- a/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp
@@ -22,8 +22,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c1_FrameMap_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_FrameMap.hpp"
+#include "c1/c1_LIR.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "vmreg_sparc.inline.hpp"
const int FrameMap::pd_c_runtime_reserved_arg_size = 7;
diff --git a/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp
index 10dfbceadd6..2304c2d0103 100644
--- a/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
+#define CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
+
public:
enum {
@@ -151,3 +154,8 @@
static bool is_caller_save_register (LIR_Opr reg);
static bool is_caller_save_register (Register r);
+
+ static int nof_caller_save_cpu_regs() { return pd_nof_caller_save_cpu_regs_frame_map; }
+ static int last_cpu_reg() { return pd_last_cpu_reg; }
+
+#endif // CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
index 143cd93f17e..15ca82f28fe 100644
--- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
@@ -22,8 +22,20 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c1_LIRAssembler_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_Compilation.hpp"
+#include "c1/c1_LIRAssembler.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "c1/c1_ValueStack.hpp"
+#include "ci/ciArrayKlass.hpp"
+#include "ci/ciInstance.hpp"
+#include "gc_interface/collectedHeap.hpp"
+#include "memory/barrierSet.hpp"
+#include "memory/cardTableModRefBS.hpp"
+#include "nativeInst_sparc.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "runtime/sharedRuntime.hpp"
#define __ _masm->
@@ -88,6 +100,11 @@ bool LIR_Assembler::is_single_instruction(LIR_Op* op) {
return false;
}
+ if (UseCompressedOops) {
+ if (dst->is_address() && !dst->is_stack() && (dst->type() == T_OBJECT || dst->type() == T_ARRAY)) return false;
+ if (src->is_address() && !src->is_stack() && (src->type() == T_OBJECT || src->type() == T_ARRAY)) return false;
+ }
+
if (dst->is_register()) {
if (src->is_address() && Assembler::is_simm13(src->as_address_ptr()->disp())) {
return !PatchALot;
@@ -241,7 +258,7 @@ void LIR_Assembler::emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst
int offset_offset = java_lang_String::offset_offset_in_bytes(); // first character position
int count_offset = java_lang_String:: count_offset_in_bytes();
- __ ld_ptr(str0, value_offset, tmp0);
+ __ load_heap_oop(str0, value_offset, tmp0);
__ ld(str0, offset_offset, tmp2);
__ add(tmp0, arrayOopDesc::base_offset_in_bytes(T_CHAR), tmp0);
__ ld(str0, count_offset, str0);
@@ -250,7 +267,7 @@ void LIR_Assembler::emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst
// str1 may be null
add_debug_info_for_null_check_here(info);
- __ ld_ptr(str1, value_offset, tmp1);
+ __ load_heap_oop(str1, value_offset, tmp1);
__ add(tmp0, tmp2, tmp0);
__ ld(str1, offset_offset, tmp2);
@@ -420,7 +437,8 @@ int LIR_Assembler::emit_unwind_handler() {
}
if (compilation()->env()->dtrace_method_probes()) {
- jobject2reg(method()->constant_encoding(), O0);
+ __ mov(G2_thread, O0);
+ jobject2reg(method()->constant_encoding(), O1);
__ call(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit), relocInfo::runtime_call_type);
__ delayed()->nop();
}
@@ -753,7 +771,7 @@ void LIR_Assembler::ic_call(LIR_OpJavaCall* op) {
void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
add_debug_info_for_null_check_here(op->info());
- __ ld_ptr(O0, oopDesc::klass_offset_in_bytes(), G3_scratch);
+ __ load_klass(O0, G3_scratch);
if (__ is_simm13(op->vtable_offset())) {
__ ld_ptr(G3_scratch, op->vtable_offset(), G5_method);
} else {
@@ -767,138 +785,17 @@ void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
// the peephole pass fills the delay slot
}
-
-// load with 32-bit displacement
-int LIR_Assembler::load(Register s, int disp, Register d, BasicType ld_type, CodeEmitInfo *info) {
- int load_offset = code_offset();
- if (Assembler::is_simm13(disp)) {
- if (info != NULL) add_debug_info_for_null_check_here(info);
- switch(ld_type) {
- case T_BOOLEAN: // fall through
- case T_BYTE : __ ldsb(s, disp, d); break;
- case T_CHAR : __ lduh(s, disp, d); break;
- case T_SHORT : __ ldsh(s, disp, d); break;
- case T_INT : __ ld(s, disp, d); break;
- case T_ADDRESS:// fall through
- case T_ARRAY : // fall through
- case T_OBJECT: __ ld_ptr(s, disp, d); break;
- default : ShouldNotReachHere();
- }
- } else {
- __ set(disp, O7);
- if (info != NULL) add_debug_info_for_null_check_here(info);
- load_offset = code_offset();
- switch(ld_type) {
- case T_BOOLEAN: // fall through
- case T_BYTE : __ ldsb(s, O7, d); break;
- case T_CHAR : __ lduh(s, O7, d); break;
- case T_SHORT : __ ldsh(s, O7, d); break;
- case T_INT : __ ld(s, O7, d); break;
- case T_ADDRESS:// fall through
- case T_ARRAY : // fall through
- case T_OBJECT: __ ld_ptr(s, O7, d); break;
- default : ShouldNotReachHere();
- }
- }
- if (ld_type == T_ARRAY || ld_type == T_OBJECT) __ verify_oop(d);
- return load_offset;
-}
-
-
-// store with 32-bit displacement
-void LIR_Assembler::store(Register value, Register base, int offset, BasicType type, CodeEmitInfo *info) {
- if (Assembler::is_simm13(offset)) {
- if (info != NULL) add_debug_info_for_null_check_here(info);
- switch (type) {
- case T_BOOLEAN: // fall through
- case T_BYTE : __ stb(value, base, offset); break;
- case T_CHAR : __ sth(value, base, offset); break;
- case T_SHORT : __ sth(value, base, offset); break;
- case T_INT : __ stw(value, base, offset); break;
- case T_ADDRESS:// fall through
- case T_ARRAY : // fall through
- case T_OBJECT: __ st_ptr(value, base, offset); break;
- default : ShouldNotReachHere();
- }
- } else {
- __ set(offset, O7);
- if (info != NULL) add_debug_info_for_null_check_here(info);
- switch (type) {
- case T_BOOLEAN: // fall through
- case T_BYTE : __ stb(value, base, O7); break;
- case T_CHAR : __ sth(value, base, O7); break;
- case T_SHORT : __ sth(value, base, O7); break;
- case T_INT : __ stw(value, base, O7); break;
- case T_ADDRESS:// fall through
- case T_ARRAY : //fall through
- case T_OBJECT: __ st_ptr(value, base, O7); break;
- default : ShouldNotReachHere();
- }
- }
- // Note: Do the store before verification as the code might be patched!
- if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(value);
-}
-
-
-// load float with 32-bit displacement
-void LIR_Assembler::load(Register s, int disp, FloatRegister d, BasicType ld_type, CodeEmitInfo *info) {
- FloatRegisterImpl::Width w;
- switch(ld_type) {
- case T_FLOAT : w = FloatRegisterImpl::S; break;
- case T_DOUBLE: w = FloatRegisterImpl::D; break;
- default : ShouldNotReachHere();
- }
-
- if (Assembler::is_simm13(disp)) {
- if (info != NULL) add_debug_info_for_null_check_here(info);
- if (disp % BytesPerLong != 0 && w == FloatRegisterImpl::D) {
- __ ldf(FloatRegisterImpl::S, s, disp + BytesPerWord, d->successor());
- __ ldf(FloatRegisterImpl::S, s, disp , d);
- } else {
- __ ldf(w, s, disp, d);
- }
- } else {
- __ set(disp, O7);
- if (info != NULL) add_debug_info_for_null_check_here(info);
- __ ldf(w, s, O7, d);
- }
-}
-
-
-// store float with 32-bit displacement
-void LIR_Assembler::store(FloatRegister value, Register base, int offset, BasicType type, CodeEmitInfo *info) {
- FloatRegisterImpl::Width w;
- switch(type) {
- case T_FLOAT : w = FloatRegisterImpl::S; break;
- case T_DOUBLE: w = FloatRegisterImpl::D; break;
- default : ShouldNotReachHere();
- }
-
- if (Assembler::is_simm13(offset)) {
- if (info != NULL) add_debug_info_for_null_check_here(info);
- if (w == FloatRegisterImpl::D && offset % BytesPerLong != 0) {
- __ stf(FloatRegisterImpl::S, value->successor(), base, offset + BytesPerWord);
- __ stf(FloatRegisterImpl::S, value , base, offset);
- } else {
- __ stf(w, value, base, offset);
- }
- } else {
- __ set(offset, O7);
- if (info != NULL) add_debug_info_for_null_check_here(info);
- __ stf(w, value, O7, base);
- }
-}
-
-
-int LIR_Assembler::store(LIR_Opr from_reg, Register base, int offset, BasicType type, bool unaligned) {
+int LIR_Assembler::store(LIR_Opr from_reg, Register base, int offset, BasicType type, bool wide, bool unaligned) {
int store_offset;
if (!Assembler::is_simm13(offset + (type == T_LONG) ? wordSize : 0)) {
assert(!unaligned, "can't handle this");
// for offsets larger than a simm13 we setup the offset in O7
__ set(offset, O7);
- store_offset = store(from_reg, base, O7, type);
+ store_offset = store(from_reg, base, O7, type, wide);
} else {
- if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(from_reg->as_register());
+ if (type == T_ARRAY || type == T_OBJECT) {
+ __ verify_oop(from_reg->as_register());
+ }
store_offset = code_offset();
switch (type) {
case T_BOOLEAN: // fall through
@@ -921,9 +818,22 @@ int LIR_Assembler::store(LIR_Opr from_reg, Register base, int offset, BasicType
__ stw(from_reg->as_register_hi(), base, offset + hi_word_offset_in_bytes);
#endif
break;
- case T_ADDRESS:// fall through
+ case T_ADDRESS:
+ __ st_ptr(from_reg->as_register(), base, offset);
+ break;
case T_ARRAY : // fall through
- case T_OBJECT: __ st_ptr(from_reg->as_register(), base, offset); break;
+ case T_OBJECT:
+ {
+ if (UseCompressedOops && !wide) {
+ __ encode_heap_oop(from_reg->as_register(), G3_scratch);
+ store_offset = code_offset();
+ __ stw(G3_scratch, base, offset);
+ } else {
+ __ st_ptr(from_reg->as_register(), base, offset);
+ }
+ break;
+ }
+
case T_FLOAT : __ stf(FloatRegisterImpl::S, from_reg->as_float_reg(), base, offset); break;
case T_DOUBLE:
{
@@ -945,8 +855,10 @@ int LIR_Assembler::store(LIR_Opr from_reg, Register base, int offset, BasicType
}
-int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicType type) {
- if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(from_reg->as_register());
+int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicType type, bool wide) {
+ if (type == T_ARRAY || type == T_OBJECT) {
+ __ verify_oop(from_reg->as_register());
+ }
int store_offset = code_offset();
switch (type) {
case T_BOOLEAN: // fall through
@@ -962,9 +874,21 @@ int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicTy
__ std(from_reg->as_register_hi(), base, disp);
#endif
break;
- case T_ADDRESS:// fall through
+ case T_ADDRESS:
+ __ st_ptr(from_reg->as_register(), base, disp);
+ break;
case T_ARRAY : // fall through
- case T_OBJECT: __ st_ptr(from_reg->as_register(), base, disp); break;
+ case T_OBJECT:
+ {
+ if (UseCompressedOops && !wide) {
+ __ encode_heap_oop(from_reg->as_register(), G3_scratch);
+ store_offset = code_offset();
+ __ stw(G3_scratch, base, disp);
+ } else {
+ __ st_ptr(from_reg->as_register(), base, disp);
+ }
+ break;
+ }
case T_FLOAT : __ stf(FloatRegisterImpl::S, from_reg->as_float_reg(), base, disp); break;
case T_DOUBLE: __ stf(FloatRegisterImpl::D, from_reg->as_double_reg(), base, disp); break;
default : ShouldNotReachHere();
@@ -973,14 +897,14 @@ int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicTy
}
-int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType type, bool unaligned) {
+int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType type, bool wide, bool unaligned) {
int load_offset;
if (!Assembler::is_simm13(offset + (type == T_LONG) ? wordSize : 0)) {
assert(base != O7, "destroying register");
assert(!unaligned, "can't handle this");
// for offsets larger than a simm13 we setup the offset in O7
__ set(offset, O7);
- load_offset = load(base, O7, to_reg, type);
+ load_offset = load(base, O7, to_reg, type, wide);
} else {
load_offset = code_offset();
switch(type) {
@@ -1017,9 +941,18 @@ int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType typ
#endif
}
break;
- case T_ADDRESS:// fall through
+ case T_ADDRESS: __ ld_ptr(base, offset, to_reg->as_register()); break;
case T_ARRAY : // fall through
- case T_OBJECT: __ ld_ptr(base, offset, to_reg->as_register()); break;
+ case T_OBJECT:
+ {
+ if (UseCompressedOops && !wide) {
+ __ lduw(base, offset, to_reg->as_register());
+ __ decode_heap_oop(to_reg->as_register());
+ } else {
+ __ ld_ptr(base, offset, to_reg->as_register());
+ }
+ break;
+ }
case T_FLOAT: __ ldf(FloatRegisterImpl::S, base, offset, to_reg->as_float_reg()); break;
case T_DOUBLE:
{
@@ -1035,23 +968,34 @@ int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType typ
}
default : ShouldNotReachHere();
}
- if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(to_reg->as_register());
+ if (type == T_ARRAY || type == T_OBJECT) {
+ __ verify_oop(to_reg->as_register());
+ }
}
return load_offset;
}
-int LIR_Assembler::load(Register base, Register disp, LIR_Opr to_reg, BasicType type) {
+int LIR_Assembler::load(Register base, Register disp, LIR_Opr to_reg, BasicType type, bool wide) {
int load_offset = code_offset();
switch(type) {
case T_BOOLEAN: // fall through
- case T_BYTE : __ ldsb(base, disp, to_reg->as_register()); break;
- case T_CHAR : __ lduh(base, disp, to_reg->as_register()); break;
- case T_SHORT : __ ldsh(base, disp, to_reg->as_register()); break;
- case T_INT : __ ld(base, disp, to_reg->as_register()); break;
- case T_ADDRESS:// fall through
+ case T_BYTE : __ ldsb(base, disp, to_reg->as_register()); break;
+ case T_CHAR : __ lduh(base, disp, to_reg->as_register()); break;
+ case T_SHORT : __ ldsh(base, disp, to_reg->as_register()); break;
+ case T_INT : __ ld(base, disp, to_reg->as_register()); break;
+ case T_ADDRESS: __ ld_ptr(base, disp, to_reg->as_register()); break;
case T_ARRAY : // fall through
- case T_OBJECT: __ ld_ptr(base, disp, to_reg->as_register()); break;
+ case T_OBJECT:
+ {
+ if (UseCompressedOops && !wide) {
+ __ lduw(base, disp, to_reg->as_register());
+ __ decode_heap_oop(to_reg->as_register());
+ } else {
+ __ ld_ptr(base, disp, to_reg->as_register());
+ }
+ break;
+ }
case T_FLOAT: __ ldf(FloatRegisterImpl::S, base, disp, to_reg->as_float_reg()); break;
case T_DOUBLE: __ ldf(FloatRegisterImpl::D, base, disp, to_reg->as_double_reg()); break;
case T_LONG :
@@ -1065,61 +1009,17 @@ int LIR_Assembler::load(Register base, Register disp, LIR_Opr to_reg, BasicType
break;
default : ShouldNotReachHere();
}
- if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(to_reg->as_register());
+ if (type == T_ARRAY || type == T_OBJECT) {
+ __ verify_oop(to_reg->as_register());
+ }
return load_offset;
}
-
-// load/store with an Address
-void LIR_Assembler::load(const Address& a, Register d, BasicType ld_type, CodeEmitInfo *info, int offset) {
- load(a.base(), a.disp() + offset, d, ld_type, info);
-}
-
-
-void LIR_Assembler::store(Register value, const Address& dest, BasicType type, CodeEmitInfo *info, int offset) {
- store(value, dest.base(), dest.disp() + offset, type, info);
-}
-
-
-// loadf/storef with an Address
-void LIR_Assembler::load(const Address& a, FloatRegister d, BasicType ld_type, CodeEmitInfo *info, int offset) {
- load(a.base(), a.disp() + offset, d, ld_type, info);
-}
-
-
-void LIR_Assembler::store(FloatRegister value, const Address& dest, BasicType type, CodeEmitInfo *info, int offset) {
- store(value, dest.base(), dest.disp() + offset, type, info);
-}
-
-
-// load/store with an Address
-void LIR_Assembler::load(LIR_Address* a, Register d, BasicType ld_type, CodeEmitInfo *info) {
- load(as_Address(a), d, ld_type, info);
-}
-
-
-void LIR_Assembler::store(Register value, LIR_Address* dest, BasicType type, CodeEmitInfo *info) {
- store(value, as_Address(dest), type, info);
-}
-
-
-// loadf/storef with an Address
-void LIR_Assembler::load(LIR_Address* a, FloatRegister d, BasicType ld_type, CodeEmitInfo *info) {
- load(as_Address(a), d, ld_type, info);
-}
-
-
-void LIR_Assembler::store(FloatRegister value, LIR_Address* dest, BasicType type, CodeEmitInfo *info) {
- store(value, as_Address(dest), type, info);
-}
-
-
void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) {
LIR_Const* c = src->as_constant_ptr();
switch (c->type()) {
case T_INT:
- case T_FLOAT:
- case T_ADDRESS: {
+ case T_FLOAT: {
Register src_reg = O7;
int value = c->as_jint_bits();
if (value == 0) {
@@ -1131,6 +1031,18 @@ void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) {
__ stw(src_reg, addr.base(), addr.disp());
break;
}
+ case T_ADDRESS: {
+ Register src_reg = O7;
+ int value = c->as_jint_bits();
+ if (value == 0) {
+ src_reg = G0;
+ } else {
+ __ set(value, O7);
+ }
+ Address addr = frame_map()->address_for_slot(dest->single_stack_ix());
+ __ st_ptr(src_reg, addr.base(), addr.disp());
+ break;
+ }
case T_OBJECT: {
Register src_reg = O7;
jobject2reg(c->as_jobject(), src_reg);
@@ -1165,14 +1077,12 @@ void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) {
}
-void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info ) {
+void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info, bool wide) {
LIR_Const* c = src->as_constant_ptr();
LIR_Address* addr = dest->as_address_ptr();
Register base = addr->base()->as_pointer_register();
+ int offset = -1;
- if (info != NULL) {
- add_debug_info_for_null_check_here(info);
- }
switch (c->type()) {
case T_INT:
case T_FLOAT:
@@ -1186,10 +1096,10 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
}
if (addr->index()->is_valid()) {
assert(addr->disp() == 0, "must be zero");
- store(tmp, base, addr->index()->as_pointer_register(), type);
+ offset = store(tmp, base, addr->index()->as_pointer_register(), type, wide);
} else {
assert(Assembler::is_simm13(addr->disp()), "can't handle larger addresses");
- store(tmp, base, addr->disp(), type);
+ offset = store(tmp, base, addr->disp(), type, wide, false);
}
break;
}
@@ -1199,21 +1109,21 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
assert(Assembler::is_simm13(addr->disp()) &&
Assembler::is_simm13(addr->disp() + 4), "can't handle larger addresses");
- Register tmp = O7;
+ LIR_Opr tmp = FrameMap::O7_opr;
int value_lo = c->as_jint_lo_bits();
if (value_lo == 0) {
- tmp = G0;
+ tmp = FrameMap::G0_opr;
} else {
__ set(value_lo, O7);
}
- store(tmp, base, addr->disp() + lo_word_offset_in_bytes, T_INT);
+ offset = store(tmp, base, addr->disp() + lo_word_offset_in_bytes, T_INT, wide, false);
int value_hi = c->as_jint_hi_bits();
if (value_hi == 0) {
- tmp = G0;
+ tmp = FrameMap::G0_opr;
} else {
__ set(value_hi, O7);
}
- store(tmp, base, addr->disp() + hi_word_offset_in_bytes, T_INT);
+ offset = store(tmp, base, addr->disp() + hi_word_offset_in_bytes, T_INT, wide, false);
break;
}
case T_OBJECT: {
@@ -1228,10 +1138,10 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
// handle either reg+reg or reg+disp address
if (addr->index()->is_valid()) {
assert(addr->disp() == 0, "must be zero");
- store(tmp, base, addr->index()->as_pointer_register(), type);
+ offset = store(tmp, base, addr->index()->as_pointer_register(), type, wide);
} else {
assert(Assembler::is_simm13(addr->disp()), "can't handle larger addresses");
- store(tmp, base, addr->disp(), type);
+ offset = store(tmp, base, addr->disp(), type, wide, false);
}
break;
@@ -1239,6 +1149,10 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
default:
Unimplemented();
}
+ if (info != NULL) {
+ assert(offset != -1, "offset should've been set");
+ add_debug_info_for_null_check(offset, info);
+ }
}
@@ -1323,7 +1237,7 @@ void LIR_Assembler::const2reg(LIR_Opr src, LIR_Opr dest, LIR_PatchCode patch_cod
assert(to_reg->is_single_cpu(), "Must be a cpu register.");
__ set(const_addrlit, O7);
- load(O7, 0, to_reg->as_register(), T_INT);
+ __ ld(O7, 0, to_reg->as_register());
}
}
break;
@@ -1416,7 +1330,7 @@ Address LIR_Assembler::as_Address_lo(LIR_Address* addr) {
void LIR_Assembler::mem2reg(LIR_Opr src_opr, LIR_Opr dest, BasicType type,
- LIR_PatchCode patch_code, CodeEmitInfo* info, bool unaligned) {
+ LIR_PatchCode patch_code, CodeEmitInfo* info, bool wide, bool unaligned) {
LIR_Address* addr = src_opr->as_address_ptr();
LIR_Opr to_reg = dest;
@@ -1462,16 +1376,15 @@ void LIR_Assembler::mem2reg(LIR_Opr src_opr, LIR_Opr dest, BasicType type,
assert(disp_reg != noreg || Assembler::is_simm13(disp_value), "should have set this up");
if (disp_reg == noreg) {
- offset = load(src, disp_value, to_reg, type, unaligned);
+ offset = load(src, disp_value, to_reg, type, wide, unaligned);
} else {
assert(!unaligned, "can't handle this");
- offset = load(src, disp_reg, to_reg, type);
+ offset = load(src, disp_reg, to_reg, type, wide);
}
if (patch != NULL) {
patching_epilog(patch, patch_code, src, info);
}
-
if (info != NULL) add_debug_info_for_null_check(offset, info);
}
@@ -1505,7 +1418,7 @@ void LIR_Assembler::stack2reg(LIR_Opr src, LIR_Opr dest, BasicType type) {
}
bool unaligned = (addr.disp() - STACK_BIAS) % 8 != 0;
- load(addr.base(), addr.disp(), dest, dest->type(), unaligned);
+ load(addr.base(), addr.disp(), dest, dest->type(), true /*wide*/, unaligned);
}
@@ -1517,7 +1430,7 @@ void LIR_Assembler::reg2stack(LIR_Opr from_reg, LIR_Opr dest, BasicType type, bo
addr = frame_map()->address_for_slot(dest->double_stack_ix());
}
bool unaligned = (addr.disp() - STACK_BIAS) % 8 != 0;
- store(from_reg, addr.base(), addr.disp(), from_reg->type(), unaligned);
+ store(from_reg, addr.base(), addr.disp(), from_reg->type(), true /*wide*/, unaligned);
}
@@ -1565,7 +1478,7 @@ void LIR_Assembler::reg2reg(LIR_Opr from_reg, LIR_Opr to_reg) {
void LIR_Assembler::reg2mem(LIR_Opr from_reg, LIR_Opr dest, BasicType type,
LIR_PatchCode patch_code, CodeEmitInfo* info, bool pop_fpu_stack,
- bool unaligned) {
+ bool wide, bool unaligned) {
LIR_Address* addr = dest->as_address_ptr();
Register src = addr->base()->as_pointer_register();
@@ -1609,10 +1522,10 @@ void LIR_Assembler::reg2mem(LIR_Opr from_reg, LIR_Opr dest, BasicType type,
assert(disp_reg != noreg || Assembler::is_simm13(disp_value), "should have set this up");
if (disp_reg == noreg) {
- offset = store(from_reg, src, disp_value, type, unaligned);
+ offset = store(from_reg, src, disp_value, type, wide, unaligned);
} else {
assert(!unaligned, "can't handle this");
- offset = store(from_reg, src, disp_reg, type);
+ offset = store(from_reg, src, disp_reg, type, wide);
}
if (patch != NULL) {
@@ -1792,8 +1705,7 @@ void LIR_Assembler::comp_fl2i(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Op
}
-void LIR_Assembler::cmove(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, LIR_Opr result) {
-
+void LIR_Assembler::cmove(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, LIR_Opr result, BasicType type) {
Assembler::Condition acond;
switch (condition) {
case lir_cond_equal: acond = Assembler::equal; break;
@@ -1824,7 +1736,12 @@ void LIR_Assembler::cmove(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, L
ShouldNotReachHere();
}
Label skip;
- __ br(acond, false, Assembler::pt, skip);
+#ifdef _LP64
+ if (type == T_INT) {
+ __ br(acond, false, Assembler::pt, skip);
+ } else
+#endif
+ __ brx(acond, false, Assembler::pt, skip); // checks icc on 32bit and xcc on 64bit
if (opr1->is_constant() && opr1->type() == T_INT) {
Register dest = result->as_register();
if (Assembler::is_simm13(opr1->as_jint())) {
@@ -2171,13 +2088,13 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
// make sure src and dst are non-null and load array length
if (flags & LIR_OpArrayCopy::src_null_check) {
__ tst(src);
- __ br(Assembler::equal, false, Assembler::pn, *stub->entry());
+ __ brx(Assembler::equal, false, Assembler::pn, *stub->entry());
__ delayed()->nop();
}
if (flags & LIR_OpArrayCopy::dst_null_check) {
__ tst(dst);
- __ br(Assembler::equal, false, Assembler::pn, *stub->entry());
+ __ brx(Assembler::equal, false, Assembler::pn, *stub->entry());
__ delayed()->nop();
}
@@ -2219,10 +2136,18 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
}
if (flags & LIR_OpArrayCopy::type_check) {
- __ ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp);
- __ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
- __ cmp(tmp, tmp2);
- __ br(Assembler::notEqual, false, Assembler::pt, *stub->entry());
+ if (UseCompressedOops) {
+ // We don't need decode because we just need to compare
+ __ lduw(src, oopDesc::klass_offset_in_bytes(), tmp);
+ __ lduw(dst, oopDesc::klass_offset_in_bytes(), tmp2);
+ __ cmp(tmp, tmp2);
+ __ br(Assembler::notEqual, false, Assembler::pt, *stub->entry());
+ } else {
+ __ ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp);
+ __ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
+ __ cmp(tmp, tmp2);
+ __ brx(Assembler::notEqual, false, Assembler::pt, *stub->entry());
+ }
__ delayed()->nop();
}
@@ -2237,20 +2162,44 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
// but not necessarily exactly of type default_type.
Label known_ok, halt;
jobject2reg(op->expected_type()->constant_encoding(), tmp);
- __ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
- if (basic_type != T_OBJECT) {
- __ cmp(tmp, tmp2);
- __ br(Assembler::notEqual, false, Assembler::pn, halt);
- __ delayed()->ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp2);
- __ cmp(tmp, tmp2);
- __ br(Assembler::equal, false, Assembler::pn, known_ok);
- __ delayed()->nop();
+ if (UseCompressedOops) {
+ // tmp holds the default type. It currently comes uncompressed after the
+ // load of a constant, so encode it.
+ __ encode_heap_oop(tmp);
+ // load the raw value of the dst klass, since we will be comparing
+ // uncompressed values directly.
+ __ lduw(dst, oopDesc::klass_offset_in_bytes(), tmp2);
+ if (basic_type != T_OBJECT) {
+ __ cmp(tmp, tmp2);
+ __ br(Assembler::notEqual, false, Assembler::pn, halt);
+ // load the raw value of the src klass.
+ __ delayed()->lduw(src, oopDesc::klass_offset_in_bytes(), tmp2);
+ __ cmp(tmp, tmp2);
+ __ br(Assembler::equal, false, Assembler::pn, known_ok);
+ __ delayed()->nop();
+ } else {
+ __ cmp(tmp, tmp2);
+ __ br(Assembler::equal, false, Assembler::pn, known_ok);
+ __ delayed()->cmp(src, dst);
+ __ brx(Assembler::equal, false, Assembler::pn, known_ok);
+ __ delayed()->nop();
+ }
} else {
- __ cmp(tmp, tmp2);
- __ br(Assembler::equal, false, Assembler::pn, known_ok);
- __ delayed()->cmp(src, dst);
- __ br(Assembler::equal, false, Assembler::pn, known_ok);
- __ delayed()->nop();
+ __ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
+ if (basic_type != T_OBJECT) {
+ __ cmp(tmp, tmp2);
+ __ brx(Assembler::notEqual, false, Assembler::pn, halt);
+ __ delayed()->ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp2);
+ __ cmp(tmp, tmp2);
+ __ brx(Assembler::equal, false, Assembler::pn, known_ok);
+ __ delayed()->nop();
+ } else {
+ __ cmp(tmp, tmp2);
+ __ brx(Assembler::equal, false, Assembler::pn, known_ok);
+ __ delayed()->cmp(src, dst);
+ __ brx(Assembler::equal, false, Assembler::pn, known_ok);
+ __ delayed()->nop();
+ }
}
__ bind(halt);
__ stop("incorrect type information in arraycopy");
@@ -2458,7 +2407,7 @@ void LIR_Assembler::type_profile_helper(Register mdo, int mdo_offset_bias,
Label next_test;
Address recv_addr(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_offset(i)) -
mdo_offset_bias);
- load(recv_addr, tmp1, T_OBJECT);
+ __ ld_ptr(recv_addr, tmp1);
__ br_notnull(tmp1, false, Assembler::pt, next_test);
__ delayed()->nop();
__ st_ptr(recv, recv_addr);
@@ -2474,11 +2423,8 @@ void LIR_Assembler::type_profile_helper(Register mdo, int mdo_offset_bias,
void LIR_Assembler::setup_md_access(ciMethod* method, int bci,
ciMethodData*& md, ciProfileData*& data, int& mdo_offset_bias) {
- md = method->method_data();
- if (md == NULL) {
- bailout("out of memory building methodDataOop");
- return;
- }
+ md = method->method_data_or_null();
+ assert(md != NULL, "Sanity");
data = md->bci_to_data(bci);
assert(data != NULL, "need data for checkcast");
assert(data->is_ReceiverTypeData(), "need ReceiverTypeData for type check");
@@ -2550,7 +2496,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
// get object class
// not a safepoint as obj null check happens earlier
- load(obj, oopDesc::klass_offset_in_bytes(), klass_RInfo, T_OBJECT, NULL);
+ __ load_klass(obj, klass_RInfo);
if (op->fast_check()) {
assert_different_registers(klass_RInfo, k_RInfo);
__ cmp(k_RInfo, klass_RInfo);
@@ -2592,7 +2538,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
__ set(mdo_offset_bias, tmp1);
__ add(mdo, tmp1, mdo);
}
- load(Address(obj, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
+ __ load_klass(obj, recv);
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, success);
// Jump over the failure case
__ ba(false, *success);
@@ -2661,11 +2607,12 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
__ br_null(value, false, Assembler::pn, done);
__ delayed()->nop();
}
- load(array, oopDesc::klass_offset_in_bytes(), k_RInfo, T_OBJECT, op->info_for_exception());
- load(value, oopDesc::klass_offset_in_bytes(), klass_RInfo, T_OBJECT, NULL);
+ add_debug_info_for_null_check_here(op->info_for_exception());
+ __ load_klass(array, k_RInfo);
+ __ load_klass(value, klass_RInfo);
// get instance klass
- load(k_RInfo, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc), k_RInfo, T_OBJECT, NULL);
+ __ ld_ptr(Address(k_RInfo, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc)), k_RInfo);
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, O7, success_target, failure_target, NULL);
@@ -2687,7 +2634,7 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
__ set(mdo_offset_bias, tmp1);
__ add(mdo, tmp1, mdo);
}
- load(Address(value, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
+ __ load_klass(value, recv);
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, &done);
__ ba(false, done);
__ delayed()->nop();
@@ -2745,6 +2692,11 @@ void LIR_Assembler::emit_compare_and_swap(LIR_OpCompareAndSwap* op) {
#ifdef _LP64
__ mov(cmp_value_lo, t1);
__ mov(new_value_lo, t2);
+ // perform the compare and swap operation
+ __ casx(addr, t1, t2);
+ // generate condition code - if the swap succeeded, t2 ("new value" reg) was
+ // overwritten with the original value in "addr" and will be equal to t1.
+ __ cmp(t1, t2);
#else
// move high and low halves of long values into single registers
__ sllx(cmp_value_hi, 32, t1); // shift high half into temp reg
@@ -2753,13 +2705,15 @@ void LIR_Assembler::emit_compare_and_swap(LIR_OpCompareAndSwap* op) {
__ sllx(new_value_hi, 32, t2);
__ srl(new_value_lo, 0, new_value_lo);
__ or3(t2, new_value_lo, t2); // t2 holds 64-bit value to swap
-#endif
// perform the compare and swap operation
__ casx(addr, t1, t2);
// generate condition code - if the swap succeeded, t2 ("new value" reg) was
// overwritten with the original value in "addr" and will be equal to t1.
- __ cmp(t1, t2);
-
+ // Produce icc flag for 32bit.
+ __ sub(t1, t2, t2);
+ __ srlx(t2, 32, t1);
+ __ orcc(t2, t1, G0);
+#endif
} else if (op->code() == lir_cas_int || op->code() == lir_cas_obj) {
Register addr = op->addr()->as_pointer_register();
Register cmp_value = op->cmp_value()->as_register();
@@ -2768,14 +2722,17 @@ void LIR_Assembler::emit_compare_and_swap(LIR_OpCompareAndSwap* op) {
Register t2 = op->tmp2()->as_register();
__ mov(cmp_value, t1);
__ mov(new_value, t2);
-#ifdef _LP64
if (op->code() == lir_cas_obj) {
- __ casx(addr, t1, t2);
- } else
-#endif
- {
+ if (UseCompressedOops) {
+ __ encode_heap_oop(t1);
+ __ encode_heap_oop(t2);
__ cas(addr, t1, t2);
+ } else {
+ __ cas_ptr(addr, t1, t2);
}
+ } else {
+ __ cas(addr, t1, t2);
+ }
__ cmp(t1, t2);
} else {
Unimplemented();
@@ -2872,11 +2829,8 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
int bci = op->profiled_bci();
// Update counter for all call types
- ciMethodData* md = method->method_data();
- if (md == NULL) {
- bailout("out of memory building methodDataOop");
- return;
- }
+ ciMethodData* md = method->method_data_or_null();
+ assert(md != NULL, "Sanity");
ciProfileData* data = md->bci_to_data(bci);
assert(data->is_CounterData(), "need CounterData for calls");
assert(op->mdo()->is_single_cpu(), "mdo must be allocated");
@@ -2953,7 +2907,7 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
}
}
} else {
- load(Address(recv, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
+ __ load_klass(recv, recv);
Label update_done;
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, &update_done);
// Receiver did not match any saved receiver and there is no empty row for it.
@@ -3147,7 +3101,7 @@ void LIR_Assembler::volatile_move_op(LIR_Opr src, LIR_Opr dest, BasicType type,
} else {
// use normal move for all other volatiles since they don't need
// special handling to remain atomic.
- move_op(src, dest, type, lir_patch_none, info, false, false);
+ move_op(src, dest, type, lir_patch_none, info, false, false, false);
}
}
diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp
index f6f715408e4..386159c89b8 100644
--- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
+#define CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
+
private:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -37,33 +40,11 @@
// and then a load or store is emitted with ([O7] + [d]).
//
- // some load/store variants return the code_offset for proper positioning of debug info for null checks
+ int store(LIR_Opr from_reg, Register base, int offset, BasicType type, bool wide, bool unaligned);
+ int store(LIR_Opr from_reg, Register base, Register disp, BasicType type, bool wide);
- // load/store with 32 bit displacement
- int load(Register s, int disp, Register d, BasicType ld_type, CodeEmitInfo* info = NULL);
- void store(Register value, Register base, int offset, BasicType type, CodeEmitInfo *info = NULL);
-
- // loadf/storef with 32 bit displacement
- void load(Register s, int disp, FloatRegister d, BasicType ld_type, CodeEmitInfo* info = NULL);
- void store(FloatRegister d, Register s1, int disp, BasicType st_type, CodeEmitInfo* info = NULL);
-
- // convienence methods for calling load/store with an Address
- void load(const Address& a, Register d, BasicType ld_type, CodeEmitInfo* info = NULL, int offset = 0);
- void store(Register d, const Address& a, BasicType st_type, CodeEmitInfo* info = NULL, int offset = 0);
- void load(const Address& a, FloatRegister d, BasicType ld_type, CodeEmitInfo* info = NULL, int offset = 0);
- void store(FloatRegister d, const Address& a, BasicType st_type, CodeEmitInfo* info = NULL, int offset = 0);
-
- // convienence methods for calling load/store with an LIR_Address
- void load(LIR_Address* a, Register d, BasicType ld_type, CodeEmitInfo* info = NULL);
- void store(Register d, LIR_Address* a, BasicType st_type, CodeEmitInfo* info = NULL);
- void load(LIR_Address* a, FloatRegister d, BasicType ld_type, CodeEmitInfo* info = NULL);
- void store(FloatRegister d, LIR_Address* a, BasicType st_type, CodeEmitInfo* info = NULL);
-
- int store(LIR_Opr from_reg, Register base, int offset, BasicType type, bool unaligned = false);
- int store(LIR_Opr from_reg, Register base, Register disp, BasicType type);
-
- int load(Register base, int offset, LIR_Opr to_reg, BasicType type, bool unaligned = false);
- int load(Register base, Register disp, LIR_Opr to_reg, BasicType type);
+ int load(Register base, int offset, LIR_Opr to_reg, BasicType type, bool wide, bool unaligned);
+ int load(Register base, Register disp, LIR_Opr to_reg, BasicType type, bool wide);
void monitorexit(LIR_Opr obj_opr, LIR_Opr lock_opr, Register hdr, int monitor_no);
@@ -90,3 +71,5 @@ enum {
#endif // _LP64
exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4),
deopt_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4) };
+
+#endif // CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
index dbdf2027dfe..8869de5e8bd 100644
--- a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
@@ -22,8 +22,20 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c1_LIRGenerator_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_Compilation.hpp"
+#include "c1/c1_FrameMap.hpp"
+#include "c1/c1_Instruction.hpp"
+#include "c1/c1_LIRAssembler.hpp"
+#include "c1/c1_LIRGenerator.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "c1/c1_ValueStack.hpp"
+#include "ci/ciArray.hpp"
+#include "ci/ciObjArrayKlass.hpp"
+#include "ci/ciTypeArrayKlass.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "vmreg_sparc.inline.hpp"
#ifdef ASSERT
#define __ gen()->lir(__FILE__, __LINE__)->
@@ -311,7 +323,7 @@ void LIRGenerator::store_stack_parameter (LIR_Opr item, ByteSize offset_from_sp)
void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
bool needs_range_check = true;
bool use_length = x->length() != NULL;
bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT;
@@ -386,7 +398,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
LIRItem obj(x->obj(), this);
obj.load_item();
@@ -398,7 +410,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
CodeEmitInfo* info_for_exception = NULL;
if (x->needs_null_check()) {
- info_for_exception = state_for(x, x->lock_stack_before());
+ info_for_exception = state_for(x);
}
// this CodeEmitInfo must not have the xhandlers because here the
@@ -409,7 +421,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
void LIRGenerator::do_MonitorExit(MonitorExit* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
LIRItem obj(x->obj(), this);
obj.dont_load_item();
@@ -650,7 +662,7 @@ void LIRGenerator::do_AttemptUpdate(Intrinsic* x) {
// generate conditional move of boolean result
LIR_Opr result = rlock_result(x);
- __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result);
+ __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result, T_LONG);
}
@@ -687,10 +699,10 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
else {
ShouldNotReachHere();
}
-
// generate conditional move of boolean result
LIR_Opr result = rlock_result(x);
- __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result);
+ __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0),
+ result, as_BasicType(type));
if (type == objectType) { // Write-barrier needed for Object fields.
// Precise card mark since could either be object or array
post_barrier(addr, val.result());
@@ -871,10 +883,11 @@ void LIRGenerator::do_NewInstance(NewInstance* x) {
// This instruction can be deoptimized in the slow path : use
// O0 as result register.
const LIR_Opr reg = result_register_for(x->type());
-
+#ifndef PRODUCT
if (PrintNotLoaded && !x->klass()->is_loaded()) {
- tty->print_cr(" ###class not loaded at new bci %d", x->bci());
+ tty->print_cr(" ###class not loaded at new bci %d", x->printable_bci());
}
+#endif
CodeEmitInfo* info = state_for(x, x->state());
LIR_Opr tmp1 = FrameMap::G1_oop_opr;
LIR_Opr tmp2 = FrameMap::G3_oop_opr;
@@ -1018,7 +1031,7 @@ void LIRGenerator::do_CheckCast(CheckCast* x) {
obj.load_item();
LIR_Opr out_reg = rlock_result(x);
CodeStub* stub;
- CodeEmitInfo* info_for_exception = state_for(x, x->state()->copy_locks());
+ CodeEmitInfo* info_for_exception = state_for(x);
if (x->is_incompatible_class_change_check()) {
assert(patching_info == NULL, "can't patch this");
diff --git a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp
index 92fc7e08624..e09039e7e4c 100644
--- a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,10 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_c1_LinearScan_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_Instruction.hpp"
+#include "c1/c1_LinearScan.hpp"
+#include "utilities/bitMap.inline.hpp"
void LinearScan::allocate_fpu_stack() {
// No FPU stack on SPARC
diff --git a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp
index 4dfe4c5b640..ddb6f9a5bd5 100644
--- a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP
+#define CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP
+
inline bool LinearScan::is_processed_reg_num(int reg_num) {
return reg_num < 26 || reg_num > 31;
}
@@ -64,10 +67,12 @@ inline bool LinearScanWalker::pd_init_regs_for_alloc(Interval* cur) {
_first_reg = pd_first_callee_saved_reg;
_last_reg = pd_last_callee_saved_reg;
return true;
- } else if (cur->type() == T_INT || cur->type() == T_LONG || cur->type() == T_OBJECT) {
+ } else if (cur->type() == T_INT || cur->type() == T_LONG || cur->type() == T_OBJECT || cur->type() == T_ADDRESS) {
_first_reg = pd_first_cpu_reg;
_last_reg = pd_last_allocatable_cpu_reg;
return true;
}
return false;
}
+
+#endif // CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
index db9ef843c7e..85eb668337c 100644
--- a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
@@ -22,15 +22,25 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_c1_MacroAssembler_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "gc_interface/collectedHeap.hpp"
+#include "interpreter/interpreter.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/markOop.hpp"
+#include "runtime/basicLock.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/os.hpp"
+#include "runtime/stubRoutines.hpp"
void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) {
Label L;
const Register temp_reg = G3_scratch;
// Note: needs more testing of out-of-line vs. inline slow case
verify_oop(receiver);
- ld_ptr(receiver, oopDesc::klass_offset_in_bytes(), temp_reg);
+ load_klass(receiver, temp_reg);
cmp(temp_reg, iCache);
brx(Assembler::equal, true, Assembler::pt, L);
delayed()->nop();
@@ -156,7 +166,7 @@ void C1_MacroAssembler::try_allocate(
Register obj, // result: pointer to object after successful allocation
Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
int con_size_in_bytes, // object size in bytes if known at compile time
- Register t1, // temp register
+ Register t1, // temp register, must be global register for incr_allocated_bytes
Register t2, // temp register
Label& slow_case // continuation point if fast allocation fails
) {
@@ -164,6 +174,7 @@ void C1_MacroAssembler::try_allocate(
tlab_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, slow_case);
} else {
eden_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, t2, slow_case);
+ incr_allocated_bytes(var_size_in_bytes, con_size_in_bytes, t1);
}
}
@@ -175,9 +186,19 @@ void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register
} else {
set((intx)markOopDesc::prototype(), t1);
}
- st_ptr(t1 , obj, oopDesc::mark_offset_in_bytes ());
- st_ptr(klass, obj, oopDesc::klass_offset_in_bytes ());
- if (len->is_valid()) st(len , obj, arrayOopDesc::length_offset_in_bytes());
+ st_ptr(t1, obj, oopDesc::mark_offset_in_bytes());
+ if (UseCompressedOops) {
+ // Save klass
+ mov(klass, t1);
+ encode_heap_oop_not_null(t1);
+ stw(t1, obj, oopDesc::klass_offset_in_bytes());
+ } else {
+ st_ptr(klass, obj, oopDesc::klass_offset_in_bytes());
+ }
+ if (len->is_valid()) st(len, obj, arrayOopDesc::length_offset_in_bytes());
+ else if (UseCompressedOops) {
+ store_klass_gap(G0, obj);
+ }
}
@@ -194,7 +215,7 @@ void C1_MacroAssembler::initialize_body(Register base, Register index) {
void C1_MacroAssembler::allocate_object(
Register obj, // result: pointer to object after successful allocation
Register t1, // temp register
- Register t2, // temp register
+ Register t2, // temp register, must be a global register for try_allocate
Register t3, // temp register
int hdr_size, // object header size in words
int obj_size, // object size in words
@@ -225,7 +246,7 @@ void C1_MacroAssembler::initialize_object(
Register t1, // temp register
Register t2 // temp register
) {
- const int hdr_size_in_bytes = instanceOopDesc::base_offset_in_bytes();
+ const int hdr_size_in_bytes = instanceOopDesc::header_size() * HeapWordSize;
initialize_header(obj, klass, noreg, t1, t2);
diff --git a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp
index 891d577ee67..c0178e5e0f8 100644
--- a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP
+#define CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP
+
void pd_init() { /* nothing to do */ }
public:
@@ -84,3 +87,5 @@
// invalidates registers in this window
void invalidate_registers(bool iregisters, bool lregisters, bool oregisters,
Register preserve1 = noreg, Register preserve2 = noreg);
+
+#endif // CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
index 649e9b12388..7ce9a73b610 100644
--- a/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, 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,20 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_c1_Runtime1_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_Defs.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_sparc.hpp"
+#include "oops/compiledICHolderOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "register_sparc.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/signature.hpp"
+#include "runtime/vframeArray.hpp"
+#include "vmreg_sparc.inline.hpp"
// Implementation of StubAssembler
@@ -436,7 +448,9 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// get the instance size
__ ld(G5_klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes(), G1_obj_size);
+
__ tlab_allocate(O0_obj, G1_obj_size, 0, G3_t1, slow_path);
+
__ initialize_object(O0_obj, G5_klass, G1_obj_size, 0, G3_t1, G4_t2);
__ verify_oop(O0_obj);
__ mov(O0, I0);
@@ -447,6 +461,8 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// get the instance size
__ ld(G5_klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes(), G1_obj_size);
__ eden_allocate(O0_obj, G1_obj_size, 0, G3_t1, G4_t2, slow_path);
+ __ incr_allocated_bytes(G1_obj_size, 0, G3_t1);
+
__ initialize_object(O0_obj, G5_klass, G1_obj_size, 0, G3_t1, G4_t2);
__ verify_oop(O0_obj);
__ mov(O0, I0);
@@ -561,6 +577,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
__ and3(G1_arr_size, ~MinObjAlignmentInBytesMask, G1_arr_size);
__ eden_allocate(O0_obj, G1_arr_size, 0, G3_t1, O1_t2, slow_path); // preserves G1_arr_size
+ __ incr_allocated_bytes(G1_arr_size, 0, G3_t1);
__ initialize_header(O0_obj, G5_klass, G4_length, G3_t1, O1_t2);
__ ldub(klass_lh, G3_t1, klass_lh_header_size_offset);
@@ -600,7 +617,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// load the klass and check the has finalizer flag
Label register_finalizer;
Register t = O1;
- __ ld_ptr(O0, oopDesc::klass_offset_in_bytes(), t);
+ __ load_klass(O0, t);
__ ld(t, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc), t);
__ set(JVM_ACC_HAS_FINALIZER, G3);
__ andcc(G3, t, G0);
diff --git a/hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp
index c1ca004f1ff..ef5900debf0 100644
--- a/hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
+#define CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
// Sets the default values for platform dependent flags used by the client compiler.
// (see c1_globals.hpp)
@@ -61,3 +67,5 @@ define_pd_global(bool, CSEArrayLength, true );
define_pd_global(bool, TwoOperandLIRForm, false);
define_pd_global(intx, SafepointPollOffset, 0 );
+
+#endif // CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp b/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp
index cb54d3ba767..0e870e63cc7 100644
--- a/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
+#define CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
// Sets the default values for platform dependent flags used by the server compiler.
// (see c2_globals.hpp). Alpha-sorted.
@@ -88,3 +94,5 @@ define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M));
// Ergonomics related flags
define_pd_global(bool, NeverActAsServerClassMachine, false);
+
+#endif // CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp b/hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp
index b82f89017e1..685a39dbf0f 100644
--- a/hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,9 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c2_init_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "opto/compile.hpp"
+#include "opto/node.hpp"
// processor dependent initialization for sparc
diff --git a/hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp b/hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp
index 258ff281e7e..f1a371acf1e 100644
--- a/hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
+#define CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
+
private:
void pd_initialize() {}
@@ -32,3 +35,5 @@ public:
bool is_backward_branch(Label& L) {
return L.is_bound() && insts_end() <= locator_address(L.loc());
}
+
+#endif // CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/copy_sparc.hpp b/hotspot/src/cpu/sparc/vm/copy_sparc.hpp
index e082ab8a687..0267d25a670 100644
--- a/hotspot/src/cpu/sparc/vm/copy_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/copy_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_COPY_SPARC_HPP
+#define CPU_SPARC_VM_COPY_SPARC_HPP
+
// Inline functions for memory copy and fill.
static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) {
@@ -186,3 +189,5 @@ static void pd_zero_to_words(HeapWord* tohw, size_t count) {
static void pd_zero_to_bytes(void* to, size_t count) {
(void)memset(to, 0, count);
}
+
+#endif // CPU_SPARC_VM_COPY_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp b/hotspot/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp
index 271f7b2729f..2dc68c74f63 100644
--- a/hotspot/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP
+#define CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP
+
static address frame_manager_return;
static address frame_manager_sync_return;
@@ -32,3 +35,5 @@
void generate_compute_interpreter_state(const Register state,
const Register prev_state,
bool native);
+
+#endif // CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp
index c048ba34098..8cae2273632 100644
--- a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, 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,32 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_cppInterpreter_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/cppInterpreter.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+#ifdef SHARK
+#include "shark/shark_globals.hpp"
+#endif
#ifdef CC_INTERP
diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.hpp
index 381ecc06abf..3d613f36a02 100644
--- a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP
+#define CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP
+
// Size of interpreter code. Increase if too small. Interpreter will
// fail with a guarantee ("not enough space for interpreter generation");
// if too small.
@@ -37,3 +40,5 @@
#else
const static int InterpreterCodeSize = 180 * K;
#endif
+
+#endif // CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/debug_sparc.cpp b/hotspot/src/cpu/sparc/vm/debug_sparc.cpp
index 2958a5238ce..76441c0ceb0 100644
--- a/hotspot/src/cpu/sparc/vm/debug_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/debug_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,14 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_debug_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "code/codeCache.hpp"
+#include "code/nmethod.hpp"
+#include "runtime/frame.hpp"
+#include "runtime/init.hpp"
+#include "runtime/os.hpp"
+#include "utilities/debug.hpp"
+#include "utilities/top.hpp"
#ifndef PRODUCT
diff --git a/hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp b/hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp
index 296a6c877b3..abb0243a2f6 100644
--- a/hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,7 +22,8 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_depChecker_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "compiler/disassembler.hpp"
+#include "depChecker_sparc.hpp"
// Nothing to do on Sparc
diff --git a/hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp b/hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp
index e484d8d7609..6e275437fae 100644
--- a/hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,4 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_DEPCHECKER_SPARC_HPP
+#define CPU_SPARC_VM_DEPCHECKER_SPARC_HPP
+
// Nothing to do on Sparc
+
+#endif // CPU_SPARC_VM_DEPCHECKER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp
index caa6bd2a9a4..761d0e3810e 100644
--- a/hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP
+#define CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP
+
static int pd_instruction_alignment() {
return sizeof(int);
}
@@ -30,3 +33,5 @@
return (VM_Version::v9_instructions_work()?
(VM_Version::v8_instructions_work()? "" : "v9only") : "v8only");
}
+
+#endif // CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/dump_sparc.cpp b/hotspot/src/cpu/sparc/vm/dump_sparc.cpp
index 60f3e1388fd..5bfa1cebffd 100644
--- a/hotspot/src/cpu/sparc/vm/dump_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/dump_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_dump_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "memory/compactingPermGenGen.hpp"
+#include "memory/generation.inline.hpp"
+#include "memory/space.inline.hpp"
diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp
index 1ee91aedae0..e6fa47a5b75 100644
--- a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp
@@ -22,8 +22,24 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_frame_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/markOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/monitorChunk.hpp"
+#include "runtime/signature.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "vmreg_sparc.inline.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#include "runtime/vframeArray.hpp"
+#endif
void RegisterMap::pd_clear() {
if (_thread->has_last_Java_frame()) {
diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.hpp b/hotspot/src/cpu/sparc/vm/frame_sparc.hpp
index 15a07f8492f..ed30d40e284 100644
--- a/hotspot/src/cpu/sparc/vm/frame_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/frame_sparc.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_SPARC_VM_FRAME_SPARC_HPP
+#define CPU_SPARC_VM_FRAME_SPARC_HPP
+
+#include "runtime/synchronizer.hpp"
+#include "utilities/top.hpp"
+
// A frame represents a physical stack frame (an activation). Frames can be
// C or Java frames, and the Java frames can be interpreted or compiled.
// In contrast, vframes represent source-level activations, so that one physical frame
@@ -309,3 +315,5 @@
return reg->is_out() || reg->is_global();
#endif
}
+
+#endif // CPU_SPARC_VM_FRAME_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/frame_sparc.inline.hpp
index 8fa763f095e..3a8bc79b823 100644
--- a/hotspot/src/cpu/sparc/vm/frame_sparc.inline.hpp
+++ b/hotspot/src/cpu/sparc/vm/frame_sparc.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP
+#define CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP
+
// Inline functions for SPARC frames:
// Constructors
@@ -295,3 +298,5 @@ inline oop frame::saved_oop_result(RegisterMap* map) const {
inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) {
*((oop*) map->location(O0->as_VMReg())) = obj;
}
+
+#endif // CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP
diff --git a/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp b/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp
index 21d41d73012..e90896c4919 100644
--- a/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,7 +22,12 @@
*
*/
+#ifndef CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP
+#define CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP
+
// Size of Sparc Instructions
const int BytesPerInstWord = 4;
const int StackAlignmentInBytes = (2*wordSize);
+
+#endif // CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/globals_sparc.hpp b/hotspot/src/cpu/sparc/vm/globals_sparc.hpp
index 2478ed38415..1854475a5a9 100644
--- a/hotspot/src/cpu/sparc/vm/globals_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/globals_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,12 @@
*
*/
+#ifndef CPU_SPARC_VM_GLOBALS_SPARC_HPP
+#define CPU_SPARC_VM_GLOBALS_SPARC_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
// Sets the default values for platform dependent flags used by the runtime system.
// (see globals.hpp)
@@ -62,3 +68,7 @@ define_pd_global(intx, PreInflateSpin, 40); // Determined by running desi
define_pd_global(bool, RewriteBytecodes, true);
define_pd_global(bool, RewriteFrequentPairs, true);
+
+define_pd_global(bool, UseMembar, false);
+
+#endif // CPU_SPARC_VM_GLOBALS_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp b/hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp
index d192084face..6327cc7a554 100644
--- a/hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,16 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_icBuffer_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "code/icBuffer.hpp"
+#include "gc_interface/collectedHeap.inline.hpp"
+#include "interpreter/bytecodes.hpp"
+#include "memory/resourceArea.hpp"
+#include "nativeInst_sparc.hpp"
+#include "oops/oop.inline.hpp"
+#include "oops/oop.inline2.hpp"
int InlineCacheBuffer::ic_stub_code_size() {
#ifdef _LP64
diff --git a/hotspot/src/cpu/sparc/vm/icache_sparc.cpp b/hotspot/src/cpu/sparc/vm/icache_sparc.cpp
index 40ab79bc767..af7a4c09b01 100644
--- a/hotspot/src/cpu/sparc/vm/icache_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/icache_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_icache_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "runtime/icache.hpp"
#define __ _masm->
diff --git a/hotspot/src/cpu/sparc/vm/icache_sparc.hpp b/hotspot/src/cpu/sparc/vm/icache_sparc.hpp
index e0b7579d9de..e3b5bad7aa1 100644
--- a/hotspot/src/cpu/sparc/vm/icache_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/icache_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_ICACHE_SPARC_HPP
+#define CPU_SPARC_VM_ICACHE_SPARC_HPP
+
// Interface for updating the instruction cache. Whenever the VM modifies
// code, part of the processor instruction cache potentially has to be flushed.
@@ -36,3 +39,5 @@ class ICache : public AbstractICache {
// Use default implementation
};
+
+#endif // CPU_SPARC_VM_ICACHE_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp
index 91c3bc09fa0..ea17d6f574e 100644
--- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp
@@ -22,8 +22,26 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interp_masm_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "interp_masm_sparc.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/markOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiRedefineClassesTrace.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/basicLock.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/sharedRuntime.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
#ifndef CC_INTERP
#ifndef FAST_DISPATCH
diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp
index b893f9413a1..835dcac6836 100644
--- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_SPARC_VM_INTERP_MASM_SPARC_HPP
+#define CPU_SPARC_VM_INTERP_MASM_SPARC_HPP
+
+#include "assembler_sparc.inline.hpp"
+#include "interpreter/invocationCounter.hpp"
+
// This file specializes the assember with interpreter-specific macros
REGISTER_DECLARATION( Register, Otos_i , O0); // tos for ints, etc
@@ -327,3 +333,5 @@ class InterpreterMacroAssembler: public MacroAssembler {
void restore_return_value(TosState state, bool is_native_call);
};
+
+#endif // CPU_SPARC_VM_INTERP_MASM_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp b/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp
index 2478f089acf..ce3c3d48f69 100644
--- a/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP
+#define CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP
+
friend class AbstractInterpreterGenerator;
private:
@@ -39,3 +42,5 @@
void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue);
void generate_counter_overflow(Label& Lcontinue);
+
+#endif // CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.cpp b/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.cpp
index fb95f8ad4a3..bc7d556d517 100644
--- a/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.cpp
@@ -22,8 +22,17 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreterRT_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/universe.inline.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/icache.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/signature.hpp"
#define __ _masm->
diff --git a/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.hpp b/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.hpp
index 97f861cf37b..6d90042c013 100644
--- a/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,11 @@
*
*/
+#ifndef CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP
+#define CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP
+
+#include "memory/allocation.hpp"
+
static int binary_search(int key, LookupswitchPair* array, int n);
static address iload (JavaThread* thread);
@@ -54,3 +59,5 @@ class SignatureHandlerGenerator: public NativeSignatureIterator {
// Code generation
void generate( uint64_t fingerprint );
};
+
+#endif // CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp
index e22ecde84db..503fb67d1dc 100644
--- a/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp
@@ -22,8 +22,32 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreter_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
diff --git a/hotspot/src/cpu/sparc/vm/interpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/interpreter_sparc.hpp
index 2f3bb3f6fa8..bc38d6e882f 100644
--- a/hotspot/src/cpu/sparc/vm/interpreter_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/interpreter_sparc.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_INTERPRETER_SPARC_HPP
+#define CPU_SPARC_VM_INTERPRETER_SPARC_HPP
+
public:
static int expr_offset_in_bytes(int i) { return stackElementSize * i + wordSize; }
@@ -34,3 +37,5 @@
assert(i <= 0, "local direction already negated");
return stackElementWords * i;
}
+
+#endif // CPU_SPARC_VM_INTERPRETER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp b/hotspot/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp
index f9607f8fede..1b4b3bf2ffc 100644
--- a/hotspot/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP
+#define CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP
+
private:
volatile int _flags;
@@ -97,3 +100,5 @@ private:
_flags |= flushed;
OrderAccess::fence();
}
+
+#endif // CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/jniFastGetField_sparc.cpp b/hotspot/src/cpu/sparc/vm/jniFastGetField_sparc.cpp
index f390efff1b9..e31fa87b3aa 100644
--- a/hotspot/src/cpu/sparc/vm/jniFastGetField_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/jniFastGetField_sparc.cpp
@@ -22,8 +22,12 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_jniFastGetField_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm_misc.hpp"
+#include "runtime/safepoint.hpp"
// TSO ensures that loads are blocking and ordered with respect to
// to earlier loads, so we don't need LoadLoad membars.
diff --git a/hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp b/hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp
index 1c91caac29f..9c3049141fd 100644
--- a/hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,13 @@
*
*/
+#ifndef CPU_SPARC_VM_JNITYPES_SPARC_HPP
+#define CPU_SPARC_VM_JNITYPES_SPARC_HPP
+
+#include "memory/allocation.hpp"
+#include "oops/oop.hpp"
+#include "prims/jni.h"
+
// This file holds platform-dependent routines used to write primitive jni
// types to the array of arguments passed into JavaCalls::call
@@ -106,3 +113,5 @@ public:
#endif
};
+
+#endif // CPU_SPARC_VM_JNITYPES_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/jni_sparc.h b/hotspot/src/cpu/sparc/vm/jni_sparc.h
index 9bb86a05c7e..9712dfc9d0d 100644
--- a/hotspot/src/cpu/sparc/vm/jni_sparc.h
+++ b/hotspot/src/cpu/sparc/vm/jni_sparc.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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
diff --git a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp
index 887bfd63e63..2fb2e56d8b3 100644
--- a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp
@@ -22,11 +22,21 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_methodHandles_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "memory/allocation.inline.hpp"
+#include "prims/methodHandles.hpp"
#define __ _masm->
+#ifdef PRODUCT
+#define BLOCK_COMMENT(str) /* nothing */
+#else
+#define BLOCK_COMMENT(str) __ block_comment(str)
+#endif
+
+#define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
+
address MethodHandleEntry::start_compiled_entry(MacroAssembler* _masm,
address interpreted_entry) {
// Just before the actual machine code entry point, allocate space
@@ -62,17 +72,29 @@ MethodHandleEntry* MethodHandleEntry::finish_compiled_entry(MacroAssembler* _mas
// Code generation
address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler* _masm) {
- // I5_savedSP: sender SP (must preserve)
+ // I5_savedSP/O5_savedSP: sender SP (must preserve)
// G4 (Gargs): incoming argument list (must preserve)
- // G5_method: invoke methodOop; becomes method type.
+ // G5_method: invoke methodOop
// G3_method_handle: receiver method handle (must load from sp[MethodTypeForm.vmslots])
- // O0, O1: garbage temps, blown away
- Register O0_argslot = O0;
+ // O0, O1, O2, O3, O4: garbage temps, blown away
+ Register O0_mtype = O0;
Register O1_scratch = O1;
+ Register O2_scratch = O2;
+ Register O3_scratch = O3;
+ Register O4_argslot = O4;
+ Register O4_argbase = O4;
// emit WrongMethodType path first, to enable back-branch from main path
Label wrong_method_type;
__ bind(wrong_method_type);
+ Label invoke_generic_slow_path;
+ assert(methodOopDesc::intrinsic_id_size_in_bytes() == sizeof(u1), "");;
+ __ ldub(Address(G5_method, methodOopDesc::intrinsic_id_offset_in_bytes()), O1_scratch);
+ __ cmp(O1_scratch, (int) vmIntrinsics::_invokeExact);
+ __ brx(Assembler::notEqual, false, Assembler::pt, invoke_generic_slow_path);
+ __ delayed()->nop();
+ __ mov(O0_mtype, G5_method_type); // required by throw_WrongMethodType
+ // mov(G3_method_handle, G3_method_handle); // already in this register
__ jump_to(AddressLiteral(Interpreter::throw_WrongMethodType_entry()), O1_scratch);
__ delayed()->nop();
@@ -80,23 +102,74 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
__ align(CodeEntryAlignment);
address entry_point = __ pc();
- // fetch the MethodType from the method handle into G5_method_type
+ // fetch the MethodType from the method handle
{
Register tem = G5_method;
- assert(tem == G5_method_type, "yes, it's the same register");
for (jint* pchase = methodOopDesc::method_type_offsets_chain(); (*pchase) != -1; pchase++) {
- __ ld_ptr(Address(tem, *pchase), G5_method_type);
+ __ ld_ptr(Address(tem, *pchase), O0_mtype);
+ tem = O0_mtype; // in case there is another indirection
}
}
// given the MethodType, find out where the MH argument is buried
- __ ld_ptr(Address(G5_method_type, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, O1_scratch)), O0_argslot);
- __ ldsw( Address(O0_argslot, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, O1_scratch)), O0_argslot);
- __ ld_ptr(__ argument_address(O0_argslot), G3_method_handle);
+ __ load_heap_oop(Address(O0_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, O1_scratch)), O4_argslot);
+ __ ldsw( Address(O4_argslot, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, O1_scratch)), O4_argslot);
+ __ add(Gargs, __ argument_offset(O4_argslot, 1), O4_argbase);
+ // Note: argument_address uses its input as a scratch register!
+ __ ld_ptr(Address(O4_argbase, -Interpreter::stackElementSize), G3_method_handle);
- __ check_method_handle_type(G5_method_type, G3_method_handle, O1_scratch, wrong_method_type);
+ trace_method_handle(_masm, "invokeExact");
+
+ __ check_method_handle_type(O0_mtype, G3_method_handle, O1_scratch, wrong_method_type);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
+ // for invokeGeneric (only), apply argument and result conversions on the fly
+ __ bind(invoke_generic_slow_path);
+#ifdef ASSERT
+ { Label L;
+ __ ldub(Address(G5_method, methodOopDesc::intrinsic_id_offset_in_bytes()), O1_scratch);
+ __ cmp(O1_scratch, (int) vmIntrinsics::_invokeGeneric);
+ __ brx(Assembler::equal, false, Assembler::pt, L);
+ __ delayed()->nop();
+ __ stop("bad methodOop::intrinsic_id");
+ __ bind(L);
+ }
+#endif //ASSERT
+
+ // make room on the stack for another pointer:
+ insert_arg_slots(_masm, 2 * stack_move_unit(), _INSERT_REF_MASK, O4_argbase, O1_scratch, O2_scratch, O3_scratch);
+ // load up an adapter from the calling type (Java weaves this)
+ Register O2_form = O2_scratch;
+ Register O3_adapter = O3_scratch;
+ __ load_heap_oop(Address(O0_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, O1_scratch)), O2_form);
+ // load_heap_oop(Address(O2_form, __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter);
+ // deal with old JDK versions:
+ __ add( Address(O2_form, __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter);
+ __ cmp(O3_adapter, O2_form);
+ Label sorry_no_invoke_generic;
+ __ brx(Assembler::lessUnsigned, false, Assembler::pn, sorry_no_invoke_generic);
+ __ delayed()->nop();
+
+ __ load_heap_oop(Address(O3_adapter, 0), O3_adapter);
+ __ tst(O3_adapter);
+ __ brx(Assembler::zero, false, Assembler::pn, sorry_no_invoke_generic);
+ __ delayed()->nop();
+ __ st_ptr(O3_adapter, Address(O4_argbase, 1 * Interpreter::stackElementSize));
+ // As a trusted first argument, pass the type being called, so the adapter knows
+ // the actual types of the arguments and return values.
+ // (Generic invokers are shared among form-families of method-type.)
+ __ st_ptr(O0_mtype, Address(O4_argbase, 0 * Interpreter::stackElementSize));
+ // FIXME: assert that O3_adapter is of the right method-type.
+ __ mov(O3_adapter, G3_method_handle);
+ trace_method_handle(_masm, "invokeGeneric");
+ __ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
+
+ __ bind(sorry_no_invoke_generic); // no invokeGeneric implementation available!
+ __ mov(O0_mtype, G5_method_type); // required by throw_WrongMethodType
+ // mov(G3_method_handle, G3_method_handle); // already in this register
+ __ jump_to(AddressLiteral(Interpreter::throw_WrongMethodType_entry()), O1_scratch);
+ __ delayed()->nop();
+
return entry_point;
}
@@ -105,6 +178,7 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
static void verify_argslot(MacroAssembler* _masm, Register argslot_reg, Register temp_reg, const char* error_message) {
// Verify that argslot lies within (Gargs, FP].
Label L_ok, L_bad;
+ BLOCK_COMMENT("{ verify_argslot");
#ifdef _LP64
__ add(FP, STACK_BIAS, temp_reg);
__ cmp(argslot_reg, temp_reg);
@@ -119,6 +193,7 @@ static void verify_argslot(MacroAssembler* _masm, Register argslot_reg, Register
__ bind(L_bad);
__ stop(error_message);
__ bind(L_ok);
+ BLOCK_COMMENT("} verify_argslot");
}
#endif
@@ -175,6 +250,7 @@ void MethodHandles::insert_arg_slots(MacroAssembler* _masm,
// for (temp = sp + size; temp < argslot; temp++)
// temp[-size] = temp[0]
// argslot -= size;
+ BLOCK_COMMENT("insert_arg_slots {");
RegisterOrConstant offset = __ regcon_sll_ptr(arg_slots, LogBytesPerWord, temp3_reg);
// Keep the stack pointer 2*wordSize aligned.
@@ -187,7 +263,7 @@ void MethodHandles::insert_arg_slots(MacroAssembler* _masm,
{
Label loop;
- __ bind(loop);
+ __ BIND(loop);
// pull one word down each time through the loop
__ ld_ptr(Address(temp_reg, 0), temp2_reg);
__ st_ptr(temp2_reg, Address(temp_reg, offset));
@@ -199,6 +275,7 @@ void MethodHandles::insert_arg_slots(MacroAssembler* _masm,
// Now move the argslot down, to point to the opened-up space.
__ add(argslot_reg, offset, argslot_reg);
+ BLOCK_COMMENT("} insert_arg_slots");
}
@@ -235,6 +312,7 @@ void MethodHandles::remove_arg_slots(MacroAssembler* _masm,
}
#endif // ASSERT
+ BLOCK_COMMENT("remove_arg_slots {");
// Pull up everything shallower than argslot.
// Then remove the excess space on the stack.
// The stacked return address gets pulled up with everything else.
@@ -246,7 +324,7 @@ void MethodHandles::remove_arg_slots(MacroAssembler* _masm,
__ sub(argslot_reg, wordSize, temp_reg); // source pointer for copy
{
Label loop;
- __ bind(loop);
+ __ BIND(loop);
// pull one word up each time through the loop
__ ld_ptr(Address(temp_reg, 0), temp2_reg);
__ st_ptr(temp2_reg, Address(temp_reg, offset));
@@ -265,29 +343,35 @@ void MethodHandles::remove_arg_slots(MacroAssembler* _masm,
const int TwoWordAlignmentMask = right_n_bits(LogBytesPerWord + 1);
RegisterOrConstant masked_offset = __ regcon_andn_ptr(offset, TwoWordAlignmentMask, temp_reg);
__ add(SP, masked_offset, SP);
+ BLOCK_COMMENT("} remove_arg_slots");
}
#ifndef PRODUCT
extern "C" void print_method_handle(oop mh);
void trace_method_handle_stub(const char* adaptername,
- oop mh) {
-#if 0
- intptr_t* entry_sp,
- intptr_t* saved_sp,
- intptr_t* saved_bp) {
- // called as a leaf from native code: do not block the JVM!
- intptr_t* last_sp = (intptr_t*) saved_bp[frame::interpreter_frame_last_sp_offset];
- intptr_t* base_sp = (intptr_t*) saved_bp[frame::interpreter_frame_monitor_block_top_offset];
- printf("MH %s mh="INTPTR_FORMAT" sp=("INTPTR_FORMAT"+"INTX_FORMAT") stack_size="INTX_FORMAT" bp="INTPTR_FORMAT"\n",
- adaptername, (intptr_t)mh, (intptr_t)entry_sp, (intptr_t)(saved_sp - entry_sp), (intptr_t)(base_sp - last_sp), (intptr_t)saved_bp);
- if (last_sp != saved_sp)
- printf("*** last_sp="INTPTR_FORMAT"\n", (intptr_t)last_sp);
-#endif
-
+ oopDesc* mh) {
printf("MH %s mh="INTPTR_FORMAT"\n", adaptername, (intptr_t) mh);
print_method_handle(mh);
}
+void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) {
+ if (!TraceMethodHandles) return;
+ BLOCK_COMMENT("trace_method_handle {");
+ // save: Gargs, O5_savedSP
+ __ save_frame(16);
+ __ set((intptr_t) adaptername, O0);
+ __ mov(G3_method_handle, O1);
+ __ mov(G3_method_handle, L3);
+ __ mov(Gargs, L4);
+ __ mov(G5_method_type, L5);
+ __ call_VM_leaf(L7, CAST_FROM_FN_PTR(address, trace_method_handle_stub));
+
+ __ mov(L3, G3_method_handle);
+ __ mov(L4, Gargs);
+ __ mov(L5, G5_method_type);
+ __ restore();
+ BLOCK_COMMENT("} trace_method_handle");
+}
#endif // PRODUCT
// which conversion op types are implemented here?
@@ -311,18 +395,23 @@ int MethodHandles::adapter_conversion_ops_supported_mask() {
//
// Generate an "entry" field for a method handle.
// This determines how the method handle will respond to calls.
-void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHandles::EntryKind ek) {
+void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHandles::EntryKind ek, TRAPS) {
// Here is the register state during an interpreted call,
// as set up by generate_method_handle_interpreter_entry():
// - G5: garbage temp (was MethodHandle.invoke methodOop, unused)
// - G3: receiver method handle
// - O5_savedSP: sender SP (must preserve)
- Register O0_argslot = O0;
- Register O1_scratch = O1;
- Register O2_scratch = O2;
- Register O3_scratch = O3;
- Register G5_index = G5;
+ const Register O0_argslot = O0;
+ const Register O1_scratch = O1;
+ const Register O2_scratch = O2;
+ const Register O3_scratch = O3;
+ const Register G5_index = G5;
+
+ // Argument registers for _raise_exception.
+ const Register O0_code = O0;
+ const Register O1_actual = O1;
+ const Register O2_required = O2;
guarantee(java_dyn_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
@@ -348,72 +437,50 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
}
address interp_entry = __ pc();
- if (UseCompressedOops) __ unimplemented("UseCompressedOops");
-#ifndef PRODUCT
- if (TraceMethodHandles) {
- // save: Gargs, O5_savedSP
- __ save(SP, -16*wordSize, SP);
- __ set((intptr_t) entry_name(ek), O0);
- __ mov(G3_method_handle, O1);
- __ call_VM_leaf(Lscratch, CAST_FROM_FN_PTR(address, trace_method_handle_stub));
- __ restore(SP, 16*wordSize, SP);
- }
-#endif // PRODUCT
+ trace_method_handle(_masm, entry_name(ek));
switch ((int) ek) {
case _raise_exception:
{
// Not a real MH entry, but rather shared code for raising an
- // exception. Extra local arguments are passed in scratch
- // registers, as required type in O3, failing object (or NULL)
- // in O2, failing bytecode type in O1.
+ // exception. Since we use a C2I adapter to set up the
+ // interpreter state, arguments are expected in compiler
+ // argument registers.
+ methodHandle mh(raise_exception_method());
+ address c2i_entry = methodOopDesc::make_adapters(mh, CATCH);
__ mov(O5_savedSP, SP); // Cut the stack back to where the caller started.
- // Push arguments as if coming from the interpreter.
- Register O0_scratch = O0_argslot;
- int stackElementSize = Interpreter::stackElementSize;
-
- // Make space on the stack for the arguments and set Gargs
- // correctly.
- __ sub(SP, 4*stackElementSize, SP); // Keep stack aligned.
- __ add(SP, (frame::varargs_offset)*wordSize - 1*Interpreter::stackElementSize + STACK_BIAS + BytesPerWord, Gargs);
-
- // void raiseException(int code, Object actual, Object required)
- __ st( O1_scratch, Address(Gargs, 2*stackElementSize)); // code
- __ st_ptr(O2_scratch, Address(Gargs, 1*stackElementSize)); // actual
- __ st_ptr(O3_scratch, Address(Gargs, 0*stackElementSize)); // required
-
- Label no_method;
+ Label L_no_method;
// FIXME: fill in _raise_exception_method with a suitable sun.dyn method
__ set(AddressLiteral((address) &_raise_exception_method), G5_method);
__ ld_ptr(Address(G5_method, 0), G5_method);
__ tst(G5_method);
- __ brx(Assembler::zero, false, Assembler::pn, no_method);
+ __ brx(Assembler::zero, false, Assembler::pn, L_no_method);
__ delayed()->nop();
- int jobject_oop_offset = 0;
+ const int jobject_oop_offset = 0;
__ ld_ptr(Address(G5_method, jobject_oop_offset), G5_method);
__ tst(G5_method);
- __ brx(Assembler::zero, false, Assembler::pn, no_method);
+ __ brx(Assembler::zero, false, Assembler::pn, L_no_method);
__ delayed()->nop();
__ verify_oop(G5_method);
- __ jump_indirect_to(G5_method_fie, O1_scratch);
+ __ jump_to(AddressLiteral(c2i_entry), O3_scratch);
__ delayed()->nop();
// If we get here, the Java runtime did not do its job of creating the exception.
// Do something that is at least causes a valid throw from the interpreter.
- __ bind(no_method);
- __ unimplemented("_raise_exception no method");
+ __ bind(L_no_method);
+ __ unimplemented("call throw_WrongMethodType_entry");
}
break;
case _invokestatic_mh:
case _invokespecial_mh:
{
- __ ld_ptr(G3_mh_vmtarget, G5_method); // target is a methodOop
+ __ load_heap_oop(G3_mh_vmtarget, G5_method); // target is a methodOop
__ verify_oop(G5_method);
// Same as TemplateTable::invokestatic or invokespecial,
// minus the CP setup and profiling:
@@ -468,7 +535,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
// minus the CP setup and profiling:
__ load_method_handle_vmslots(O0_argslot, G3_method_handle, O1_scratch);
Register O1_intf = O1_scratch;
- __ ld_ptr(G3_mh_vmtarget, O1_intf);
+ __ load_heap_oop(G3_mh_vmtarget, O1_intf);
__ ldsw(G3_dmh_vmindex, G5_index);
__ ld_ptr(__ argument_address(O0_argslot, -1), G3_method_handle);
__ null_check(G3_method_handle, oopDesc::klass_offset_in_bytes());
@@ -496,10 +563,10 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
// Throw an exception.
// For historical reasons, it will be IncompatibleClassChangeError.
__ unimplemented("not tested yet");
- __ ld_ptr(Address(O1_intf, java_mirror_offset), O3_scratch); // required interface
- __ mov(O0_klass, O2_scratch); // bad receiver
- __ jump_to(AddressLiteral(from_interpreted_entry(_raise_exception)), O0_argslot);
- __ delayed()->mov(Bytecodes::_invokeinterface, O1_scratch); // who is complaining?
+ __ ld_ptr(Address(O1_intf, java_mirror_offset), O2_required); // required interface
+ __ mov( O0_klass, O1_actual); // bad receiver
+ __ jump_to(AddressLiteral(from_interpreted_entry(_raise_exception)), O3_scratch);
+ __ delayed()->mov(Bytecodes::_invokeinterface, O0_code); // who is complaining?
}
break;
@@ -523,7 +590,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
insert_arg_slots(_masm, arg_slots * stack_move_unit(), arg_mask, O0_argslot, O1_scratch, O2_scratch, G5_index);
// Store bound argument into the new stack slot:
- __ ld_ptr(G3_bmh_argument, O1_scratch);
+ __ load_heap_oop(G3_bmh_argument, O1_scratch);
if (arg_type == T_OBJECT) {
__ st_ptr(O1_scratch, Address(O0_argslot, 0));
} else {
@@ -541,12 +608,12 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
}
if (direct_to_method) {
- __ ld_ptr(G3_mh_vmtarget, G5_method); // target is a methodOop
+ __ load_heap_oop(G3_mh_vmtarget, G5_method); // target is a methodOop
__ verify_oop(G5_method);
__ jump_indirect_to(G5_method_fie, O1_scratch);
__ delayed()->nop();
} else {
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle); // target is a methodOop
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle); // target is a methodOop
__ verify_oop(G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
@@ -556,7 +623,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
case _adapter_retype_only:
case _adapter_retype_raw:
// Immediately jump to the next MH layer:
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
// This is OK when all parameter types widen.
// It is also OK when a return type narrows.
@@ -572,8 +639,8 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
Address vmarg = __ argument_address(O0_argslot);
// What class are we casting to?
- __ ld_ptr(G3_amh_argument, G5_klass); // This is a Class object!
- __ ld_ptr(Address(G5_klass, java_lang_Class::klass_offset_in_bytes()), G5_klass);
+ __ load_heap_oop(G3_amh_argument, G5_klass); // This is a Class object!
+ __ load_heap_oop(Address(G5_klass, java_lang_Class::klass_offset_in_bytes()), G5_klass);
Label done;
__ ld_ptr(vmarg, O1_scratch);
@@ -589,15 +656,14 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
__ check_klass_subtype(O1_scratch, G5_klass, O0_argslot, O2_scratch, done);
// If we get here, the type check failed!
- __ ldsw(G3_amh_vmargslot, O0_argslot); // reload argslot field
- __ ld_ptr(G3_amh_argument, O3_scratch); // required class
- __ ld_ptr(vmarg, O2_scratch); // bad object
- __ jump_to(AddressLiteral(from_interpreted_entry(_raise_exception)), O0_argslot);
- __ delayed()->mov(Bytecodes::_checkcast, O1_scratch); // who is complaining?
+ __ load_heap_oop(G3_amh_argument, O2_required); // required class
+ __ ld_ptr( vmarg, O1_actual); // bad object
+ __ jump_to(AddressLiteral(from_interpreted_entry(_raise_exception)), O3_scratch);
+ __ delayed()->mov(Bytecodes::_checkcast, O0_code); // who is complaining?
__ bind(done);
// Get the new MH:
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -615,16 +681,34 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
{
// Perform an in-place conversion to int or an int subword.
__ ldsw(G3_amh_vmargslot, O0_argslot);
- Address vmarg = __ argument_address(O0_argslot);
Address value;
+ Address vmarg = __ argument_address(O0_argslot);
bool value_left_justified = false;
switch (ek) {
case _adapter_opt_i2i:
- case _adapter_opt_l2i:
- __ unimplemented(entry_name(ek));
value = vmarg;
break;
+ case _adapter_opt_l2i:
+ {
+ // just delete the extra slot
+#ifdef _LP64
+ // In V9, longs are given 2 64-bit slots in the interpreter, but the
+ // data is passed in only 1 slot.
+ // Keep the second slot.
+ __ add(Gargs, __ argument_offset(O0_argslot, -1), O0_argslot);
+ remove_arg_slots(_masm, -stack_move_unit(), O0_argslot, O1_scratch, O2_scratch, O3_scratch);
+ value = Address(O0_argslot, 4); // Get least-significant 32-bit of 64-bit value.
+ vmarg = Address(O0_argslot, Interpreter::stackElementSize);
+#else
+ // Keep the first slot.
+ __ add(Gargs, __ argument_offset(O0_argslot), O0_argslot);
+ remove_arg_slots(_masm, -stack_move_unit(), O0_argslot, O1_scratch, O2_scratch, O3_scratch);
+ value = Address(O0_argslot, 0);
+ vmarg = value;
+#endif
+ }
+ break;
case _adapter_opt_unboxi:
{
// Load the value up from the heap.
@@ -676,7 +760,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
__ st(O1_scratch, vmarg);
// Get the new MH:
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -721,7 +805,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
ShouldNotReachHere();
}
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -851,7 +935,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
}
}
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -895,7 +979,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
__ brx(Assembler::less, false, Assembler::pt, loop);
__ delayed()->nop(); // FILLME
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -913,7 +997,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
remove_arg_slots(_masm, G5_stack_move, O0_argslot, O1_scratch, O2_scratch, O3_scratch);
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
diff --git a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp
index 3c578c95e1f..d38c979fa87 100644
--- a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp
@@ -22,8 +22,18 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_nativeInst_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "nativeInst_sparc.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/handles.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "utilities/ostream.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
bool NativeInstruction::is_dtrace_trap() {
diff --git a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp
index b5d2aac6dec..3ecb6d93720 100644
--- a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,15 @@
*
*/
+#ifndef CPU_SPARC_VM_NATIVEINST_SPARC_HPP
+#define CPU_SPARC_VM_NATIVEINST_SPARC_HPP
+
+#include "asm/assembler.hpp"
+#include "memory/allocation.hpp"
+#include "runtime/icache.hpp"
+#include "runtime/os.hpp"
+#include "utilities/top.hpp"
+
// We have interface for the following instructions:
// - NativeInstruction
// - - NativeCall
@@ -913,3 +922,5 @@ class NativeIllegalInstruction: public NativeInstruction {
// Insert illegal opcode as specific address
static void insert(address code_pos);
};
+
+#endif // CPU_SPARC_VM_NATIVEINST_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/registerMap_sparc.hpp b/hotspot/src/cpu/sparc/vm/registerMap_sparc.hpp
index 79a9456fc9c..0ce8294663f 100644
--- a/hotspot/src/cpu/sparc/vm/registerMap_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/registerMap_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_REGISTERMAP_SPARC_HPP
+#define CPU_SPARC_VM_REGISTERMAP_SPARC_HPP
+
// machine-dependent implemention for register maps
friend class frame;
@@ -51,3 +54,5 @@
void shift_individual_registers();
// When popping out of compiled frames, we make all IRegs disappear.
void make_integer_regs_unsaved() { _location_valid[0] = 0; }
+
+#endif // CPU_SPARC_VM_REGISTERMAP_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp b/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp
index a726217fd0a..03d08ddfa35 100644
--- a/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp
@@ -25,8 +25,11 @@
// make sure the defines don't screw up the declarations later on in this file
#define DONT_USE_REGISTER_DEFINES
-#include "incls/_precompiled.incl"
-#include "incls/_register_definitions_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "asm/register.hpp"
+#include "interp_masm_sparc.hpp"
+#include "register_sparc.hpp"
REGISTER_DEFINITION(Register, noreg);
diff --git a/hotspot/src/cpu/sparc/vm/register_sparc.cpp b/hotspot/src/cpu/sparc/vm/register_sparc.cpp
index bf6f872b44f..4ed28c6a0b5 100644
--- a/hotspot/src/cpu/sparc/vm/register_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/register_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_register_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "register_sparc.hpp"
const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers << 1;
const int ConcreteRegisterImpl::max_fpr = ConcreteRegisterImpl::max_gpr + FloatRegisterImpl::number_of_registers;
diff --git a/hotspot/src/cpu/sparc/vm/register_sparc.hpp b/hotspot/src/cpu/sparc/vm/register_sparc.hpp
index 3f1eb90285e..945866e539f 100644
--- a/hotspot/src/cpu/sparc/vm/register_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/register_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,12 @@
*
*/
+#ifndef CPU_SPARC_VM_REGISTER_SPARC_HPP
+#define CPU_SPARC_VM_REGISTER_SPARC_HPP
+
+#include "asm/register.hpp"
+#include "vm_version_sparc.hpp"
+
// forward declaration
class Address;
class VMRegImpl;
@@ -440,3 +446,5 @@ class QuadFloatRegisterImpl {
return as_FloatRegister( ((encoding & 1) << 5) | (encoding & 0x1c) );
}
};
+
+#endif // CPU_SPARC_VM_REGISTER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp
index a96f6a674a8..d2cefd35d55 100644
--- a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,13 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_relocInfo_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.inline.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "code/relocInfo.hpp"
+#include "nativeInst_sparc.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/safepoint.hpp"
void Relocation::pd_set_data_value(address x, intptr_t o) {
NativeInstruction* ip = nativeInstruction_at(addr());
diff --git a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp
index 626e117a49f..a2d3b2c3928 100644
--- a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_RELOCINFO_SPARC_HPP
+#define CPU_SPARC_VM_RELOCINFO_SPARC_HPP
+
// machine-dependent parts of class relocInfo
private:
enum {
@@ -49,3 +52,5 @@
// 1.8 99/06/22 16:37:50 relocInfo_i486.hpp
// 1.9 99/07/16 11:12:11 relocInfo_i486.hpp
//End
+
+#endif // CPU_SPARC_VM_RELOCINFO_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/runtime_sparc.cpp b/hotspot/src/cpu/sparc/vm/runtime_sparc.cpp
index e6f641e26b7..560e67a2113 100644
--- a/hotspot/src/cpu/sparc/vm/runtime_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/runtime_sparc.cpp
@@ -22,8 +22,22 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_runtime_sparc.cpp.incl"
+#include "precompiled.hpp"
+#ifdef COMPILER2
+#include "asm/assembler.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "code/vmreg.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_sparc.hpp"
+#include "opto/runtime.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/globalDefinitions.hpp"
+#include "vmreg_sparc.inline.hpp"
+#endif
#define __ masm->
diff --git a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp
index bae042e8f66..751b512084d 100644
--- a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp
@@ -22,8 +22,28 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_sharedRuntime_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "code/debugInfoRec.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "oops/compiledICHolderOop.hpp"
+#include "prims/jvmtiRedefineClassesTrace.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/vframeArray.hpp"
+#include "vmreg_sparc.inline.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
+#ifdef SHARK
+#include "compiler/compileBroker.hpp"
+#include "shark/sharkCompiler.hpp"
+#endif
#define __ masm->
diff --git a/hotspot/src/cpu/sparc/vm/sparc.ad b/hotspot/src/cpu/sparc/vm/sparc.ad
index fc18cf0ee3c..25117f205b2 100644
--- a/hotspot/src/cpu/sparc/vm/sparc.ad
+++ b/hotspot/src/cpu/sparc/vm/sparc.ad
@@ -667,6 +667,20 @@ intptr_t get_offset_from_base_2(const MachNode* n, const TypePtr* atype, int dis
return offset;
}
+static inline jdouble replicate_immI(int con, int count, int width) {
+ // Load a constant replicated "count" times with width "width"
+ int bit_width = width * 8;
+ jlong elt_val = con;
+ elt_val &= (((jlong) 1) << bit_width) - 1; // mask off sign bits
+ jlong val = elt_val;
+ for (int i = 0; i < count - 1; i++) {
+ val <<= bit_width;
+ val |= elt_val;
+ }
+ jdouble dval = *((jdouble*) &val); // coerce to double type
+ return dval;
+}
+
// Standard Sparc opcode form2 field breakdown
static inline void emit2_19(CodeBuffer &cbuf, int f30, int f29, int f25, int f22, int f20, int f19, int f0 ) {
f0 &= (1<<19)-1; // Mask displacement to 19 bits
@@ -1007,6 +1021,90 @@ void emit_lo(CodeBuffer &cbuf, int val) { }
void emit_hi(CodeBuffer &cbuf, int val) { }
+//=============================================================================
+const bool Matcher::constant_table_absolute_addressing = false;
+const RegMask& MachConstantBaseNode::_out_RegMask = PTR_REG_mask;
+
+void MachConstantBaseNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const {
+ Compile* C = ra_->C;
+ Compile::ConstantTable& constant_table = C->constant_table();
+ MacroAssembler _masm(&cbuf);
+
+ Register r = as_Register(ra_->get_encode(this));
+ CodeSection* cs = __ code()->consts();
+ int consts_size = cs->align_at_start(cs->size());
+
+ if (UseRDPCForConstantTableBase) {
+ // For the following RDPC logic to work correctly the consts
+ // section must be allocated right before the insts section. This
+ // assert checks for that. The layout and the SECT_* constants
+ // are defined in src/share/vm/asm/codeBuffer.hpp.
+ assert(CodeBuffer::SECT_CONSTS + 1 == CodeBuffer::SECT_INSTS, "must be");
+ int offset = __ offset();
+ int disp;
+
+ // If the displacement from the current PC to the constant table
+ // base fits into simm13 we set the constant table base to the
+ // current PC.
+ if (__ is_simm13(-(consts_size + offset))) {
+ constant_table.set_table_base_offset(-(consts_size + offset));
+ disp = 0;
+ } else {
+ // If the offset of the top constant (last entry in the table)
+ // fits into simm13 we set the constant table base to the actual
+ // table base.
+ if (__ is_simm13(constant_table.top_offset())) {
+ constant_table.set_table_base_offset(0);
+ disp = consts_size + offset;
+ } else {
+ // Otherwise we set the constant table base in the middle of the
+ // constant table.
+ int half_consts_size = consts_size / 2;
+ assert(half_consts_size * 2 == consts_size, "sanity");
+ constant_table.set_table_base_offset(-half_consts_size); // table base offset gets added to the load displacement.
+ disp = half_consts_size + offset;
+ }
+ }
+
+ __ rdpc(r);
+
+ if (disp != 0) {
+ assert(r != O7, "need temporary");
+ __ sub(r, __ ensure_simm13_or_reg(disp, O7), r);
+ }
+ }
+ else {
+ // Materialize the constant table base.
+ assert(constant_table.size() == consts_size, err_msg("must be: %d == %d", constant_table.size(), consts_size));
+ address baseaddr = cs->start() + -(constant_table.table_base_offset());
+ RelocationHolder rspec = internal_word_Relocation::spec(baseaddr);
+ AddressLiteral base(baseaddr, rspec);
+ __ set(base, r);
+ }
+}
+
+uint MachConstantBaseNode::size(PhaseRegAlloc*) const {
+ if (UseRDPCForConstantTableBase) {
+ // This is really the worst case but generally it's only 1 instruction.
+ return (1 /*rdpc*/ + 1 /*sub*/ + MacroAssembler::worst_case_insts_for_set()) * BytesPerInstWord;
+ } else {
+ return MacroAssembler::worst_case_insts_for_set() * BytesPerInstWord;
+ }
+}
+
+#ifndef PRODUCT
+void MachConstantBaseNode::format(PhaseRegAlloc* ra_, outputStream* st) const {
+ char reg[128];
+ ra_->dump_register(this, reg);
+ if (UseRDPCForConstantTableBase) {
+ st->print("RDPC %s\t! constant table base", reg);
+ } else {
+ st->print("SET &constanttable,%s\t! constant table base", reg);
+ }
+}
+#endif
+
+
//=============================================================================
#ifndef PRODUCT
@@ -1142,7 +1240,7 @@ const Pipeline * MachEpilogNode::pipeline() const {
int MachEpilogNode::safepoint_offset() const {
assert( do_polling(), "no return for this epilog node");
- return MacroAssembler::size_of_sethi(os::get_polling_page());
+ return MacroAssembler::insts_for_sethi(os::get_polling_page()) * BytesPerInstWord;
}
//=============================================================================
@@ -1843,6 +1941,12 @@ bool Matcher::is_spillable_arg( int reg ) {
return can_be_java_arg(reg);
}
+bool Matcher::use_asm_for_ldiv_by_con( jlong divisor ) {
+ // Use hardware SDIVX instruction when it is
+ // faster than a code which use multiply.
+ return VM_Version::has_fast_idiv();
+}
+
// Register for DIVI projection of divmodI
RegMask Matcher::divI_proj_mask() {
ShouldNotReachHere();
@@ -2241,25 +2345,6 @@ encode %{
__ delayed()->nop();
%}
- enc_class jump_enc( iRegX switch_val, o7RegI table) %{
- MacroAssembler _masm(&cbuf);
-
- Register switch_reg = as_Register($switch_val$$reg);
- Register table_reg = O7;
-
- address table_base = __ address_table_constant(_index2label);
- RelocationHolder rspec = internal_word_Relocation::spec(table_base);
-
- // Move table address into a register.
- __ set(table_base, table_reg, rspec);
-
- // Jump to base address + switch value
- __ ld_ptr(table_reg, switch_reg, table_reg);
- __ jmp(table_reg, G0);
- __ delayed()->nop();
-
- %}
-
enc_class enc_ba( Label labl ) %{
MacroAssembler _masm(&cbuf);
Label &L = *($labl$$label);
@@ -2378,20 +2463,6 @@ encode %{
cbuf.insts()->emit_int32(op);
%}
- // Utility encoding for loading a 64 bit Pointer into a register
- // The 64 bit pointer is stored in the generated code stream
- enc_class SetPtr( immP src, iRegP rd ) %{
- Register dest = reg_to_register_object($rd$$reg);
- MacroAssembler _masm(&cbuf);
- // [RGV] This next line should be generated from ADLC
- if ( _opnds[1]->constant_is_oop() ) {
- intptr_t val = $src$$constant;
- __ set_oop_constant((jobject)val, dest);
- } else { // non-oop pointers, e.g. card mark base, heap top
- __ set($src$$constant, dest);
- }
- %}
-
enc_class Set13( immI13 src, iRegI rd ) %{
emit3_simm13( cbuf, Assembler::arith_op, $rd$$reg, Assembler::or_op3, 0, $src$$constant );
%}
@@ -2405,10 +2476,6 @@ encode %{
__ set($src$$constant, reg_to_register_object($rd$$reg));
%}
- enc_class SetNull( iRegI rd ) %{
- emit3_simm13( cbuf, Assembler::arith_op, $rd$$reg, Assembler::or_op3, 0, 0 );
- %}
-
enc_class call_epilog %{
if( VerifyStackAtCalls ) {
MacroAssembler _masm(&cbuf);
@@ -2772,35 +2839,6 @@ enc_class Fast_Unlock(iRegP oop, iRegP box, o7RegP scratch, iRegP scratch2) %{
__ float_cmp( $primary, -1, Fsrc1, Fsrc2, Rdst);
%}
- enc_class LdImmL (immL src, iRegL dst, o7RegL tmp) %{ // Load Immediate
- MacroAssembler _masm(&cbuf);
- Register dest = reg_to_register_object($dst$$reg);
- Register temp = reg_to_register_object($tmp$$reg);
- __ set64( $src$$constant, dest, temp );
- %}
-
- enc_class LdReplImmI(immI src, regD dst, o7RegP tmp, int count, int width) %{
- // Load a constant replicated "count" times with width "width"
- int bit_width = $width$$constant * 8;
- jlong elt_val = $src$$constant;
- elt_val &= (((jlong)1) << bit_width) - 1; // mask off sign bits
- jlong val = elt_val;
- for (int i = 0; i < $count$$constant - 1; i++) {
- val <<= bit_width;
- val |= elt_val;
- }
- jdouble dval = *(jdouble*)&val; // coerce to double type
- MacroAssembler _masm(&cbuf);
- address double_address = __ double_constant(dval);
- RelocationHolder rspec = internal_word_Relocation::spec(double_address);
- AddressLiteral addrlit(double_address, rspec);
-
- __ sethi(addrlit, $tmp$$Register);
- // XXX This is a quick fix for 6833573.
- //__ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec);
- __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), as_DoubleFloatRegister($dst$$reg), rspec);
- %}
-
// Compiler ensures base is doubleword aligned and cnt is count of doublewords
enc_class enc_Clear_Array(iRegX cnt, iRegP base, iRegX temp) %{
MacroAssembler _masm(&cbuf);
@@ -3515,6 +3553,42 @@ operand immP() %{
interface(CONST_INTER);
%}
+#ifdef _LP64
+// Pointer Immediate: 64-bit
+operand immP_set() %{
+ predicate(!VM_Version::is_niagara_plus());
+ match(ConP);
+
+ op_cost(5);
+ // formats are generated automatically for constants and base registers
+ format %{ %}
+ interface(CONST_INTER);
+%}
+
+// Pointer Immediate: 64-bit
+// From Niagara2 processors on a load should be better than materializing.
+operand immP_load() %{
+ predicate(VM_Version::is_niagara_plus() && (n->bottom_type()->isa_oop_ptr() || (MacroAssembler::insts_for_set(n->get_ptr()) > 3)));
+ match(ConP);
+
+ op_cost(5);
+ // formats are generated automatically for constants and base registers
+ format %{ %}
+ interface(CONST_INTER);
+%}
+
+// Pointer Immediate: 64-bit
+operand immP_no_oop_cheap() %{
+ predicate(VM_Version::is_niagara_plus() && !n->bottom_type()->isa_oop_ptr() && (MacroAssembler::insts_for_set(n->get_ptr()) <= 3));
+ match(ConP);
+
+ op_cost(5);
+ // formats are generated automatically for constants and base registers
+ format %{ %}
+ interface(CONST_INTER);
+%}
+#endif
+
operand immP13() %{
predicate((-4096 < n->get_ptr()) && (n->get_ptr() <= 4095));
match(ConP);
@@ -3610,6 +3684,26 @@ operand immL_32bits() %{
interface(CONST_INTER);
%}
+// Long Immediate: cheap (materialize in <= 3 instructions)
+operand immL_cheap() %{
+ predicate(!VM_Version::is_niagara_plus() || MacroAssembler::insts_for_set64(n->get_long()) <= 3);
+ match(ConL);
+ op_cost(0);
+
+ format %{ %}
+ interface(CONST_INTER);
+%}
+
+// Long Immediate: expensive (materialize in > 3 instructions)
+operand immL_expensive() %{
+ predicate(VM_Version::is_niagara_plus() && MacroAssembler::insts_for_set64(n->get_long()) > 3);
+ match(ConL);
+ op_cost(0);
+
+ format %{ %}
+ interface(CONST_INTER);
+%}
+
// Double Immediate
operand immD() %{
match(ConD);
@@ -5975,25 +6069,69 @@ instruct loadConI13( iRegI dst, immI13 src ) %{
ins_pipe(ialu_imm);
%}
-instruct loadConP(iRegP dst, immP src) %{
- match(Set dst src);
+#ifndef _LP64
+instruct loadConP(iRegP dst, immP con) %{
+ match(Set dst con);
ins_cost(DEFAULT_COST * 3/2);
- format %{ "SET $src,$dst\t!ptr" %}
- // This rule does not use "expand" unlike loadConI because then
- // the result type is not known to be an Oop. An ADLC
- // enhancement will be needed to make that work - not worth it!
-
- ins_encode( SetPtr( src, dst ) );
+ format %{ "SET $con,$dst\t!ptr" %}
+ ins_encode %{
+ // [RGV] This next line should be generated from ADLC
+ if (_opnds[1]->constant_is_oop()) {
+ intptr_t val = $con$$constant;
+ __ set_oop_constant((jobject) val, $dst$$Register);
+ } else { // non-oop pointers, e.g. card mark base, heap top
+ __ set($con$$constant, $dst$$Register);
+ }
+ %}
ins_pipe(loadConP);
-
%}
+#else
+instruct loadConP_set(iRegP dst, immP_set con) %{
+ match(Set dst con);
+ ins_cost(DEFAULT_COST * 3/2);
+ format %{ "SET $con,$dst\t! ptr" %}
+ ins_encode %{
+ // [RGV] This next line should be generated from ADLC
+ if (_opnds[1]->constant_is_oop()) {
+ intptr_t val = $con$$constant;
+ __ set_oop_constant((jobject) val, $dst$$Register);
+ } else { // non-oop pointers, e.g. card mark base, heap top
+ __ set($con$$constant, $dst$$Register);
+ }
+ %}
+ ins_pipe(loadConP);
+%}
+
+instruct loadConP_load(iRegP dst, immP_load con) %{
+ match(Set dst con);
+ ins_cost(MEMORY_REF_COST);
+ format %{ "LD [$constanttablebase + $constantoffset],$dst\t! load from constant table: ptr=$con" %}
+ ins_encode %{
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset($con), $dst$$Register);
+ __ ld_ptr($constanttablebase, con_offset, $dst$$Register);
+ %}
+ ins_pipe(loadConP);
+%}
+
+instruct loadConP_no_oop_cheap(iRegP dst, immP_no_oop_cheap con) %{
+ match(Set dst con);
+ ins_cost(DEFAULT_COST * 3/2);
+ format %{ "SET $con,$dst\t! non-oop ptr" %}
+ ins_encode %{
+ __ set($con$$constant, $dst$$Register);
+ %}
+ ins_pipe(loadConP);
+%}
+#endif // _LP64
instruct loadConP0(iRegP dst, immP0 src) %{
match(Set dst src);
size(4);
format %{ "CLR $dst\t!ptr" %}
- ins_encode( SetNull( dst ) );
+ ins_encode %{
+ __ clr($dst$$Register);
+ %}
ins_pipe(ialu_imm);
%}
@@ -6013,7 +6151,9 @@ instruct loadConN0(iRegN dst, immN0 src) %{
size(4);
format %{ "CLR $dst\t! compressed NULL ptr" %}
- ins_encode( SetNull( dst ) );
+ ins_encode %{
+ __ clr($dst$$Register);
+ %}
ins_pipe(ialu_imm);
%}
@@ -6028,13 +6168,27 @@ instruct loadConN(iRegN dst, immN src) %{
ins_pipe(ialu_hi_lo_reg);
%}
-instruct loadConL(iRegL dst, immL src, o7RegL tmp) %{
- // %%% maybe this should work like loadConD
- match(Set dst src);
+// Materialize long value (predicated by immL_cheap).
+instruct loadConL_set64(iRegL dst, immL_cheap con, o7RegL tmp) %{
+ match(Set dst con);
effect(KILL tmp);
- ins_cost(DEFAULT_COST * 4);
- format %{ "SET64 $src,$dst KILL $tmp\t! long" %}
- ins_encode( LdImmL(src, dst, tmp) );
+ ins_cost(DEFAULT_COST * 3);
+ format %{ "SET64 $con,$dst KILL $tmp\t! cheap long" %}
+ ins_encode %{
+ __ set64($con$$constant, $dst$$Register, $tmp$$Register);
+ %}
+ ins_pipe(loadConL);
+%}
+
+// Load long value from constant table (predicated by immL_expensive).
+instruct loadConL_ldx(iRegL dst, immL_expensive con) %{
+ match(Set dst con);
+ ins_cost(MEMORY_REF_COST);
+ format %{ "LDX [$constanttablebase + $constantoffset],$dst\t! load from constant table: long=$con" %}
+ ins_encode %{
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset($con), $dst$$Register);
+ __ ldx($constanttablebase, con_offset, $dst$$Register);
+ %}
ins_pipe(loadConL);
%}
@@ -6057,50 +6211,26 @@ instruct loadConL13( iRegL dst, immL13 src ) %{
ins_pipe(ialu_imm);
%}
-instruct loadConF(regF dst, immF src, o7RegP tmp) %{
- match(Set dst src);
+instruct loadConF(regF dst, immF con, o7RegI tmp) %{
+ match(Set dst con);
effect(KILL tmp);
-
-#ifdef _LP64
- size(8*4);
-#else
- size(2*4);
-#endif
-
- format %{ "SETHI hi(&$src),$tmp\t!get float $src from table\n\t"
- "LDF [$tmp+lo(&$src)],$dst" %}
+ format %{ "LDF [$constanttablebase + $constantoffset],$dst\t! load from constant table: float=$con" %}
ins_encode %{
- address float_address = __ float_constant($src$$constant);
- RelocationHolder rspec = internal_word_Relocation::spec(float_address);
- AddressLiteral addrlit(float_address, rspec);
-
- __ sethi(addrlit, $tmp$$Register);
- __ ldf(FloatRegisterImpl::S, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec);
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset($con), $tmp$$Register);
+ __ ldf(FloatRegisterImpl::S, $constanttablebase, con_offset, $dst$$FloatRegister);
%}
ins_pipe(loadConFD);
%}
-instruct loadConD(regD dst, immD src, o7RegP tmp) %{
- match(Set dst src);
+instruct loadConD(regD dst, immD con, o7RegI tmp) %{
+ match(Set dst con);
effect(KILL tmp);
-
-#ifdef _LP64
- size(8*4);
-#else
- size(2*4);
-#endif
-
- format %{ "SETHI hi(&$src),$tmp\t!get double $src from table\n\t"
- "LDDF [$tmp+lo(&$src)],$dst" %}
+ format %{ "LDDF [$constanttablebase + $constantoffset],$dst\t! load from constant table: double=$con" %}
ins_encode %{
- address double_address = __ double_constant($src$$constant);
- RelocationHolder rspec = internal_word_Relocation::spec(double_address);
- AddressLiteral addrlit(double_address, rspec);
-
- __ sethi(addrlit, $tmp$$Register);
// XXX This is a quick fix for 6833573.
- //__ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec);
- __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), as_DoubleFloatRegister($dst$$reg), rspec);
+ //__ ldf(FloatRegisterImpl::D, $constanttablebase, $constantoffset($con), $dst$$FloatRegister);
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset($con), $tmp$$Register);
+ __ ldf(FloatRegisterImpl::D, $constanttablebase, con_offset, as_DoubleFloatRegister($dst$$reg));
%}
ins_pipe(loadConFD);
%}
@@ -8552,16 +8682,16 @@ instruct Repl8B_reg(stackSlotD dst, iRegI src) %{
%}
// Replicate scalar constant to packed byte values in Double register
-instruct Repl8B_immI(regD dst, immI13 src, o7RegP tmp) %{
- match(Set dst (Replicate8B src));
-#ifdef _LP64
- size(36);
-#else
- size(8);
-#endif
- format %{ "SETHI hi(&Repl8($src)),$tmp\t!get Repl8B($src) from table\n\t"
- "LDDF [$tmp+lo(&Repl8($src))],$dst" %}
- ins_encode( LdReplImmI(src, dst, tmp, (8), (1)) );
+instruct Repl8B_immI(regD dst, immI13 con, o7RegI tmp) %{
+ match(Set dst (Replicate8B con));
+ effect(KILL tmp);
+ format %{ "LDDF [$constanttablebase + $constantoffset],$dst\t! load from constant table: Repl8B($con)" %}
+ ins_encode %{
+ // XXX This is a quick fix for 6833573.
+ //__ ldf(FloatRegisterImpl::D, $constanttablebase, $constantoffset(replicate_immI($con$$constant, 8, 1)), $dst$$FloatRegister);
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset(replicate_immI($con$$constant, 8, 1)), $tmp$$Register);
+ __ ldf(FloatRegisterImpl::D, $constanttablebase, con_offset, as_DoubleFloatRegister($dst$$reg));
+ %}
ins_pipe(loadConFD);
%}
@@ -8588,16 +8718,16 @@ instruct Repl4C_reg(stackSlotD dst, iRegI src) %{
%}
// Replicate scalar constant to packed char values in Double register
-instruct Repl4C_immI(regD dst, immI src, o7RegP tmp) %{
- match(Set dst (Replicate4C src));
-#ifdef _LP64
- size(36);
-#else
- size(8);
-#endif
- format %{ "SETHI hi(&Repl4($src)),$tmp\t!get Repl4C($src) from table\n\t"
- "LDDF [$tmp+lo(&Repl4($src))],$dst" %}
- ins_encode( LdReplImmI(src, dst, tmp, (4), (2)) );
+instruct Repl4C_immI(regD dst, immI con, o7RegI tmp) %{
+ match(Set dst (Replicate4C con));
+ effect(KILL tmp);
+ format %{ "LDDF [$constanttablebase + $constantoffset],$dst\t! load from constant table: Repl4C($con)" %}
+ ins_encode %{
+ // XXX This is a quick fix for 6833573.
+ //__ ldf(FloatRegisterImpl::D, $constanttablebase, $constantoffset(replicate_immI($con$$constant, 4, 2)), $dst$$FloatRegister);
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset(replicate_immI($con$$constant, 4, 2)), $tmp$$Register);
+ __ ldf(FloatRegisterImpl::D, $constanttablebase, con_offset, as_DoubleFloatRegister($dst$$reg));
+ %}
ins_pipe(loadConFD);
%}
@@ -8624,16 +8754,16 @@ instruct Repl4S_reg(stackSlotD dst, iRegI src) %{
%}
// Replicate scalar constant to packed short values in Double register
-instruct Repl4S_immI(regD dst, immI src, o7RegP tmp) %{
- match(Set dst (Replicate4S src));
-#ifdef _LP64
- size(36);
-#else
- size(8);
-#endif
- format %{ "SETHI hi(&Repl4($src)),$tmp\t!get Repl4S($src) from table\n\t"
- "LDDF [$tmp+lo(&Repl4($src))],$dst" %}
- ins_encode( LdReplImmI(src, dst, tmp, (4), (2)) );
+instruct Repl4S_immI(regD dst, immI con, o7RegI tmp) %{
+ match(Set dst (Replicate4S con));
+ effect(KILL tmp);
+ format %{ "LDDF [$constanttablebase + $constantoffset],$dst\t! load from constant table: Repl4S($con)" %}
+ ins_encode %{
+ // XXX This is a quick fix for 6833573.
+ //__ ldf(FloatRegisterImpl::D, $constanttablebase, $constantoffset(replicate_immI($con$$constant, 4, 2)), $dst$$FloatRegister);
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset(replicate_immI($con$$constant, 4, 2)), $tmp$$Register);
+ __ ldf(FloatRegisterImpl::D, $constanttablebase, con_offset, as_DoubleFloatRegister($dst$$reg));
+ %}
ins_pipe(loadConFD);
%}
@@ -8658,16 +8788,16 @@ instruct Repl2I_reg(stackSlotD dst, iRegI src) %{
%}
// Replicate scalar zero constant to packed int values in Double register
-instruct Repl2I_immI(regD dst, immI src, o7RegP tmp) %{
- match(Set dst (Replicate2I src));
-#ifdef _LP64
- size(36);
-#else
- size(8);
-#endif
- format %{ "SETHI hi(&Repl2($src)),$tmp\t!get Repl2I($src) from table\n\t"
- "LDDF [$tmp+lo(&Repl2($src))],$dst" %}
- ins_encode( LdReplImmI(src, dst, tmp, (2), (4)) );
+instruct Repl2I_immI(regD dst, immI con, o7RegI tmp) %{
+ match(Set dst (Replicate2I con));
+ effect(KILL tmp);
+ format %{ "LDDF [$constanttablebase + $constantoffset],$dst\t! load from constant table: Repl2I($con)" %}
+ ins_encode %{
+ // XXX This is a quick fix for 6833573.
+ //__ ldf(FloatRegisterImpl::D, $constanttablebase, $constantoffset(replicate_immI($con$$constant, 2, 4)), $dst$$FloatRegister);
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset(replicate_immI($con$$constant, 2, 4)), $tmp$$Register);
+ __ ldf(FloatRegisterImpl::D, $constanttablebase, con_offset, as_DoubleFloatRegister($dst$$reg));
+ %}
ins_pipe(loadConFD);
%}
@@ -8923,12 +9053,27 @@ instruct jumpXtnd(iRegX switch_val, o7RegI table) %{
ins_cost(350);
- format %{ "SETHI [hi(table_base)],O7\n\t"
- "ADD O7, lo(table_base), O7\n\t"
- "LD [O7+$switch_val], O7\n\t"
+ format %{ "ADD $constanttablebase, $constantoffset, O7\n\t"
+ "LD [O7 + $switch_val], O7\n\t"
"JUMP O7"
%}
- ins_encode( jump_enc( switch_val, table) );
+ ins_encode %{
+ // Calculate table address into a register.
+ Register table_reg;
+ Register label_reg = O7;
+ if (constant_offset() == 0) {
+ table_reg = $constanttablebase;
+ } else {
+ table_reg = O7;
+ RegisterOrConstant con_offset = __ ensure_simm13_or_reg($constantoffset, O7);
+ __ add($constanttablebase, con_offset, table_reg);
+ }
+
+ // Jump to base address + switch value
+ __ ld_ptr(table_reg, $switch_val$$Register, label_reg);
+ __ jmp(label_reg, G0);
+ __ delayed()->nop();
+ %}
ins_pc_relative(1);
ins_pipe(ialu_reg_reg);
%}
@@ -9510,16 +9655,16 @@ instruct countLeadingZerosI(iRegI dst, iRegI src, iRegI tmp, flagsReg cr) %{
Register Rdst = $dst$$Register;
Register Rsrc = $src$$Register;
Register Rtmp = $tmp$$Register;
- __ srl(Rsrc, 1, Rtmp);
- __ srl(Rsrc, 0, Rdst);
+ __ srl(Rsrc, 1, Rtmp);
+ __ srl(Rsrc, 0, Rdst);
__ or3(Rdst, Rtmp, Rdst);
- __ srl(Rdst, 2, Rtmp);
+ __ srl(Rdst, 2, Rtmp);
__ or3(Rdst, Rtmp, Rdst);
- __ srl(Rdst, 4, Rtmp);
+ __ srl(Rdst, 4, Rtmp);
__ or3(Rdst, Rtmp, Rdst);
- __ srl(Rdst, 8, Rtmp);
+ __ srl(Rdst, 8, Rtmp);
__ or3(Rdst, Rtmp, Rdst);
- __ srl(Rdst, 16, Rtmp);
+ __ srl(Rdst, 16, Rtmp);
__ or3(Rdst, Rtmp, Rdst);
__ popc(Rdst, Rdst);
__ mov(BitsPerInt, Rtmp);
@@ -9528,7 +9673,7 @@ instruct countLeadingZerosI(iRegI dst, iRegI src, iRegI tmp, flagsReg cr) %{
ins_pipe(ialu_reg);
%}
-instruct countLeadingZerosL(iRegI dst, iRegL src, iRegL tmp, flagsReg cr) %{
+instruct countLeadingZerosL(iRegIsafe dst, iRegL src, iRegL tmp, flagsReg cr) %{
predicate(UsePopCountInstruction); // See Matcher::match_rule_supported
match(Set dst (CountLeadingZerosL src));
effect(TEMP dst, TEMP tmp, KILL cr);
@@ -9559,18 +9704,18 @@ instruct countLeadingZerosL(iRegI dst, iRegL src, iRegL tmp, flagsReg cr) %{
Register Rdst = $dst$$Register;
Register Rsrc = $src$$Register;
Register Rtmp = $tmp$$Register;
- __ srlx(Rsrc, 1, Rtmp);
- __ or3(Rsrc, Rtmp, Rdst);
- __ srlx(Rdst, 2, Rtmp);
- __ or3(Rdst, Rtmp, Rdst);
- __ srlx(Rdst, 4, Rtmp);
- __ or3(Rdst, Rtmp, Rdst);
- __ srlx(Rdst, 8, Rtmp);
- __ or3(Rdst, Rtmp, Rdst);
- __ srlx(Rdst, 16, Rtmp);
- __ or3(Rdst, Rtmp, Rdst);
- __ srlx(Rdst, 32, Rtmp);
- __ or3(Rdst, Rtmp, Rdst);
+ __ srlx(Rsrc, 1, Rtmp);
+ __ or3( Rsrc, Rtmp, Rdst);
+ __ srlx(Rdst, 2, Rtmp);
+ __ or3( Rdst, Rtmp, Rdst);
+ __ srlx(Rdst, 4, Rtmp);
+ __ or3( Rdst, Rtmp, Rdst);
+ __ srlx(Rdst, 8, Rtmp);
+ __ or3( Rdst, Rtmp, Rdst);
+ __ srlx(Rdst, 16, Rtmp);
+ __ or3( Rdst, Rtmp, Rdst);
+ __ srlx(Rdst, 32, Rtmp);
+ __ or3( Rdst, Rtmp, Rdst);
__ popc(Rdst, Rdst);
__ mov(BitsPerLong, Rtmp);
__ sub(Rtmp, Rdst, Rdst);
diff --git a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
index 7c64ab30fd5..7bb56140d61 100644
--- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
@@ -22,8 +22,31 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubGenerator_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_sparc.hpp"
+#include "oops/instanceOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "utilities/top.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// Declaration and definition of StubGenerator (no .hpp file).
// For a more detailed description of the stub routine structure
@@ -2586,6 +2609,8 @@ class StubGenerator: public StubCodeGenerator {
__ restore();
#endif
+ assert_clean_int(O2_count, G1); // Make sure 'count' is clean int.
+
#ifdef ASSERT
// caller guarantees that the arrays really are different
// otherwise, we would have to make conjoint checks
@@ -2600,8 +2625,6 @@ class StubGenerator: public StubCodeGenerator {
}
#endif //ASSERT
- assert_clean_int(O2_count, G1); // Make sure 'count' is clean int.
-
checkcast_copy_entry = __ pc();
// caller can pass a 64-bit byte count here (from generic stub)
BLOCK_COMMENT("Entry:");
diff --git a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.cpp b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.cpp
index 162f6469d5b..68785abfc73 100644
--- a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,16 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubRoutines_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/stubRoutines.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
// Implementation of the platform-specific part of StubRoutines - for
// a description of how to extend it, see the stubRoutines.hpp file.
diff --git a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp
index e02789d2530..11350f2d400 100644
--- a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_STUBROUTINES_SPARC_HPP
+#define CPU_SPARC_VM_STUBROUTINES_SPARC_HPP
+
// This file holds the platform specific parts of the StubRoutines
// definition. See stubRoutines.hpp for a description on how to
// extend it.
@@ -43,7 +46,7 @@ enum /* platform_dependent_constants */ {
// MethodHandles adapters
enum method_handles_platform_dependent_constants {
- method_handles_adapters_code_size = 12000
+ method_handles_adapters_code_size = 15000
};
class Sparc {
@@ -100,3 +103,5 @@ class Sparc {
static address partial_subtype_check() { return _partial_subtype_check; }
};
+
+#endif // CPU_SPARC_VM_STUBROUTINES_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp b/hotspot/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp
index 1519d3ea1f2..73b0f1478b5 100644
--- a/hotspot/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,13 @@
*
*/
+#ifndef CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP
+#define CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP
+
protected:
void generate_fixed_frame(bool native_call); // template interpreter only
void generate_stack_overflow_check(Register Rframe_size, Register Rscratch,
Register Rscratch2);
+
+#endif // CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
index cc05ddb7e96..80e3a759d1d 100644
--- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
@@ -22,8 +22,28 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_templateInterpreter_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
#ifndef CC_INTERP
#ifndef FAST_DISPATCH
diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.hpp
index 5770131e1df..9b6cd216fbb 100644
--- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP
+#define CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP
+
protected:
@@ -38,3 +41,5 @@
#else
const static int InterpreterCodeSize = 180 * K;
#endif
+
+#endif // CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
index b144985f132..6bfaccd64e3 100644
--- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, 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,18 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_templateTable_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "memory/universe.inline.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
#ifndef CC_INTERP
#define __ _masm->
@@ -341,6 +351,26 @@ void TemplateTable::fast_aldc(bool wide) {
resolve_cache_and_index(f1_oop, Otos_i, Rcache, Rscratch, wide ? sizeof(u2) : sizeof(u1));
__ verify_oop(Otos_i);
+
+ Label L_done;
+ const Register Rcon_klass = G3_scratch; // same as Rcache
+ const Register Rarray_klass = G4_scratch; // same as Rscratch
+ __ load_klass(Otos_i, Rcon_klass);
+ AddressLiteral array_klass_addr((address)Universe::systemObjArrayKlassObj_addr());
+ __ load_contents(array_klass_addr, Rarray_klass);
+ __ cmp(Rarray_klass, Rcon_klass);
+ __ brx(Assembler::notEqual, false, Assembler::pt, L_done);
+ __ delayed()->nop();
+ __ ld(Address(Otos_i, arrayOopDesc::length_offset_in_bytes()), Rcon_klass);
+ __ tst(Rcon_klass);
+ __ brx(Assembler::zero, true, Assembler::pt, L_done);
+ __ delayed()->clr(Otos_i); // executed only if branch is taken
+
+ // Load the exception from the system-array which wraps it:
+ __ load_heap_oop(Otos_i, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Otos_i);
+ __ throw_if_not_x(Assembler::never, Interpreter::throw_exception_entry(), G3_scratch);
+
+ __ bind(L_done);
}
void TemplateTable::ldc2_w() {
@@ -3273,7 +3303,7 @@ void TemplateTable::invokedynamic(int byte_no) {
__ sll(Rret, LogBytesPerWord, Rret);
__ ld_ptr(Rtemp, Rret, Rret); // get return address
- __ ld_ptr(G5_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle);
+ __ load_heap_oop(G5_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle);
__ null_check(G3_method_handle);
// Adjust Rret first so Llast_SP can be same as Rret
@@ -3363,21 +3393,21 @@ void TemplateTable::_new() {
__ delayed()->st_ptr(RnewTopValue, G2_thread, in_bytes(JavaThread::tlab_top_offset()));
if (allow_shared_alloc) {
- // Check if tlab should be discarded (refill_waste_limit >= free)
- __ ld_ptr(G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()), RtlabWasteLimitValue);
- __ sub(RendValue, RoldTopValue, RfreeValue);
+ // Check if tlab should be discarded (refill_waste_limit >= free)
+ __ ld_ptr(G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()), RtlabWasteLimitValue);
+ __ sub(RendValue, RoldTopValue, RfreeValue);
#ifdef _LP64
- __ srlx(RfreeValue, LogHeapWordSize, RfreeValue);
+ __ srlx(RfreeValue, LogHeapWordSize, RfreeValue);
#else
- __ srl(RfreeValue, LogHeapWordSize, RfreeValue);
+ __ srl(RfreeValue, LogHeapWordSize, RfreeValue);
#endif
- __ cmp(RtlabWasteLimitValue, RfreeValue);
- __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pt, slow_case); // tlab waste is small
- __ delayed()->nop();
+ __ cmp(RtlabWasteLimitValue, RfreeValue);
+ __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pt, slow_case); // tlab waste is small
+ __ delayed()->nop();
- // increment waste limit to prevent getting stuck on this slow path
- __ add(RtlabWasteLimitValue, ThreadLocalAllocBuffer::refill_waste_limit_increment(), RtlabWasteLimitValue);
- __ st_ptr(RtlabWasteLimitValue, G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()));
+ // increment waste limit to prevent getting stuck on this slow path
+ __ add(RtlabWasteLimitValue, ThreadLocalAllocBuffer::refill_waste_limit_increment(), RtlabWasteLimitValue);
+ __ st_ptr(RtlabWasteLimitValue, G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()));
} else {
// No allocation in the shared eden.
__ br(Assembler::always, false, Assembler::pt, slow_case);
@@ -3415,6 +3445,9 @@ void TemplateTable::_new() {
__ cmp(RoldTopValue, RnewTopValue);
__ brx(Assembler::notEqual, false, Assembler::pn, retry);
__ delayed()->nop();
+
+ // bump total bytes allocated by this thread
+ __ incr_allocated_bytes(Roffset, 0, G1_scratch);
}
if (UseTLAB || Universe::heap()->supports_inline_contig_alloc()) {
diff --git a/hotspot/src/cpu/sparc/vm/templateTable_sparc.hpp b/hotspot/src/cpu/sparc/vm/templateTable_sparc.hpp
index cf82ef4e827..35c8ca1c59b 100644
--- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
+#define CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
+
// helper function
static void invokevfinal_helper(Register Rcache, Register Rret);
static void invokeinterface_object_method(Register RklassOop, Register Rcall,
@@ -29,3 +32,5 @@
Register Rflags);
static void generate_vtable_call(Register Rrecv, Register Rindex, Register Rret);
static void volatile_barrier(Assembler::Membar_mask_bits order_constraint);
+
+#endif // CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp b/hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp
index 47db8d52f0d..8103a6395b7 100644
--- a/hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP
+#define CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP
+
// These are the CPU-specific fields, types and integer
// constants required by the Serviceability Agent. This file is
// referenced by vmStructs.cpp.
@@ -97,3 +100,5 @@
/* NOTE that we do not use the last_entry() macro here; it is used */
/* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */
/* be present there) */
+
+#endif // CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
index ca8a0ddafa8..6db8c7ad1ce 100644
--- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,18 +22,22 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_vm_version_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "runtime/java.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "vm_version_sparc.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "os_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "os_solaris.inline.hpp"
+#endif
int VM_Version::_features = VM_Version::unknown_m;
const char* VM_Version::_features_str = "";
-bool VM_Version::is_niagara1_plus() {
- // This is a placeholder until the real test is determined.
- return is_niagara1() &&
- (os::processor_count() > maximum_niagara1_processor_count());
-}
-
void VM_Version::initialize() {
_features = determine_features();
PrefetchCopyIntervalInBytes = prefetch_copy_interval_in_bytes();
@@ -59,11 +63,21 @@ void VM_Version::initialize() {
_supports_cx8 = has_v9();
- if (is_niagara1()) {
+ if (is_niagara()) {
// Indirect branch is the same cost as direct
if (FLAG_IS_DEFAULT(UseInlineCaches)) {
FLAG_SET_DEFAULT(UseInlineCaches, false);
}
+ // Align loops on a single instruction boundary.
+ if (FLAG_IS_DEFAULT(OptoLoopAlignment)) {
+ FLAG_SET_DEFAULT(OptoLoopAlignment, 4);
+ }
+ // When using CMS, we cannot use memset() in BOT updates because
+ // the sun4v/CMT version in libc_psr uses BIS which exposes
+ // "phantom zeros" to concurrent readers. See 6948537.
+ if (FLAG_IS_DEFAULT(UseMemSetInBOT) && UseConcMarkSweepGC) {
+ FLAG_SET_DEFAULT(UseMemSetInBOT, false);
+ }
#ifdef _LP64
// 32-bit oops don't make sense for the 64-bit VM on sparc
// since the 32-bit VM has the same registers and smaller objects.
@@ -79,8 +93,9 @@ void VM_Version::initialize() {
if (FLAG_IS_DEFAULT(InteriorEntryAlignment)) {
FLAG_SET_DEFAULT(InteriorEntryAlignment, 4);
}
- if (is_niagara1_plus()) {
- if (AllocatePrefetchStyle > 0 && FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
+ if (is_niagara_plus()) {
+ if (has_blk_init() && AllocatePrefetchStyle > 0 &&
+ FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
// Use BIS instruction for allocation prefetch.
FLAG_SET_DEFAULT(AllocatePrefetchStyle, 3);
if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
@@ -94,15 +109,6 @@ void VM_Version::initialize() {
}
}
#endif
- if (FLAG_IS_DEFAULT(OptoLoopAlignment)) {
- FLAG_SET_DEFAULT(OptoLoopAlignment, 4);
- }
- // When using CMS, we cannot use memset() in BOT updates because
- // the sun4v/CMT version in libc_psr uses BIS which exposes
- // "phantom zeros" to concurrent readers. See 6948537.
- if (FLAG_IS_DEFAULT(UseMemSetInBOT) && UseConcMarkSweepGC) {
- FLAG_SET_DEFAULT(UseMemSetInBOT, false);
- }
}
// Use hardware population count instruction if available.
@@ -118,16 +124,19 @@ void VM_Version::initialize() {
#endif
char buf[512];
- jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s%s%s%s%s%s%s%s",
+ jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
(has_v8() ? ", has_v8" : ""),
(has_v9() ? ", has_v9" : ""),
(has_hardware_popc() ? ", popc" : ""),
(has_vis1() ? ", has_vis1" : ""),
(has_vis2() ? ", has_vis2" : ""),
+ (has_vis3() ? ", has_vis3" : ""),
+ (has_blk_init() ? ", has_blk_init" : ""),
(is_ultra3() ? ", is_ultra3" : ""),
(is_sun4v() ? ", is_sun4v" : ""),
- (is_niagara1() ? ", is_niagara1" : ""),
- (is_niagara1_plus() ? ", is_niagara1_plus" : ""),
+ (is_niagara() ? ", is_niagara" : ""),
+ (is_niagara_plus() ? ", is_niagara_plus" : ""),
+ (is_sparc64() ? ", is_sparc64" : ""),
(!has_hardware_mul32() ? ", no-mul32" : ""),
(!has_hardware_div32() ? ", no-div32" : ""),
(!has_hardware_fsmuld() ? ", no-fsmuld" : ""));
@@ -177,17 +186,18 @@ int VM_Version::determine_features() {
warning("Cannot recognize SPARC version. Default to V9");
}
- if (UseNiagaraInstrs) {
- if (is_niagara1(features)) {
+ assert(is_T_family(features) == is_niagara(features), "Niagara should be T series");
+ if (UseNiagaraInstrs) { // Force code generation for Niagara
+ if (is_T_family(features)) {
// Happy to accomodate...
} else {
NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Version is Forced-Niagara");)
- features = niagara1_m;
+ features |= T_family_m;
}
} else {
- if (is_niagara1(features) && !FLAG_IS_DEFAULT(UseNiagaraInstrs)) {
+ if (is_T_family(features) && !FLAG_IS_DEFAULT(UseNiagaraInstrs)) {
NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Version is Forced-Not-Niagara");)
- features &= ~niagara1_unique_m;
+ features &= ~(T_family_m | T1_model_m);
} else {
// Happy to accomodate...
}
@@ -209,7 +219,7 @@ void VM_Version::revert() {
unsigned int VM_Version::calc_parallel_worker_threads() {
unsigned int result;
- if (is_niagara1_plus()) {
+ if (is_niagara_plus()) {
result = nof_parallel_worker_threads(5, 16, 8);
} else {
result = nof_parallel_worker_threads(5, 8, 8);
diff --git a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp
index e8234967995..c83d2de9920 100644
--- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,12 @@
*
*/
+#ifndef CPU_SPARC_VM_VM_VERSION_SPARC_HPP
+#define CPU_SPARC_VM_VM_VERSION_SPARC_HPP
+
+#include "runtime/globals_extension.hpp"
+#include "runtime/vm_version.hpp"
+
class VM_Version: public Abstract_VM_Version {
protected:
enum Feature_Flag {
@@ -33,7 +39,14 @@ protected:
v9_instructions = 5,
vis1_instructions = 6,
vis2_instructions = 7,
- sun4v_instructions = 8
+ sun4v_instructions = 8,
+ blk_init_instructions = 9,
+ fmaf_instructions = 10,
+ fmau_instructions = 11,
+ vis3_instructions = 12,
+ sparc64_family = 13,
+ T_family = 14,
+ T1_model = 15
};
enum Feature_Flag_Set {
@@ -49,6 +62,13 @@ protected:
vis1_instructions_m = 1 << vis1_instructions,
vis2_instructions_m = 1 << vis2_instructions,
sun4v_m = 1 << sun4v_instructions,
+ blk_init_instructions_m = 1 << blk_init_instructions,
+ fmaf_instructions_m = 1 << fmaf_instructions,
+ fmau_instructions_m = 1 << fmau_instructions,
+ vis3_instructions_m = 1 << vis3_instructions,
+ sparc64_family_m = 1 << sparc64_family,
+ T_family_m = 1 << T_family,
+ T1_model_m = 1 << T1_model,
generic_v8_m = v8_instructions_m | hardware_mul32_m | hardware_div32_m | hardware_fsmuld_m,
generic_v9_m = generic_v8_m | v9_instructions_m,
@@ -66,12 +86,15 @@ protected:
static int determine_features();
static int platform_features(int features);
- static bool is_niagara1(int features) { return (features & sun4v_m) != 0; }
+ // Returns true if the platform is in the niagara line (T series)
+ static bool is_T_family(int features) { return (features & T_family_m) != 0; }
+ static bool is_niagara() { return is_T_family(_features); }
+ DEBUG_ONLY( static bool is_niagara(int features) { return (features & sun4v_m) != 0; } )
+
+ // Returns true if it is niagara1 (T1).
+ static bool is_T1_model(int features) { return is_T_family(features) && ((features & T1_model_m) != 0); }
static int maximum_niagara1_processor_count() { return 32; }
- // Returns true if the platform is in the niagara line and
- // newer than the niagara1.
- static bool is_niagara1_plus();
public:
// Initialization
@@ -86,15 +109,22 @@ public:
static bool has_hardware_popc() { return (_features & hardware_popc_m) != 0; }
static bool has_vis1() { return (_features & vis1_instructions_m) != 0; }
static bool has_vis2() { return (_features & vis2_instructions_m) != 0; }
+ static bool has_vis3() { return (_features & vis3_instructions_m) != 0; }
+ static bool has_blk_init() { return (_features & blk_init_instructions_m) != 0; }
static bool supports_compare_and_exchange()
{ return has_v9(); }
static bool is_ultra3() { return (_features & ultra3_m) == ultra3_m; }
static bool is_sun4v() { return (_features & sun4v_m) != 0; }
- static bool is_niagara1() { return is_niagara1(_features); }
+ // Returns true if the platform is in the niagara line (T series)
+ // and newer than the niagara1.
+ static bool is_niagara_plus() { return is_T_family(_features) && !is_T1_model(_features); }
+ // Fujitsu SPARC64
+ static bool is_sparc64() { return (_features & sparc64_family_m) != 0; }
- static bool has_fast_fxtof() { return has_v9() && !is_ultra3(); }
+ static bool has_fast_fxtof() { return is_niagara() || is_sparc64() || has_v9() && !is_ultra3(); }
+ static bool has_fast_idiv() { return is_niagara_plus() || is_sparc64(); }
static const char* cpu_features() { return _features_str; }
@@ -144,3 +174,5 @@ public:
// Calculates the number of parallel threads
static unsigned int calc_parallel_worker_threads();
};
+
+#endif // CPU_SPARC_VM_VM_VERSION_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp b/hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp
index 1693ea297b6..470f354bf46 100644
--- a/hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_vmreg_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "code/vmreg.hpp"
diff --git a/hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp b/hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp
index 6234fdd6f85..ce8cb4c3d3a 100644
--- a/hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,13 @@
*
*/
+#ifndef CPU_SPARC_VM_VMREG_SPARC_HPP
+#define CPU_SPARC_VM_VMREG_SPARC_HPP
+
bool is_Register();
Register as_Register();
bool is_FloatRegister();
FloatRegister as_FloatRegister();
+
+#endif // CPU_SPARC_VM_VMREG_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp
index fa92eea8e12..993216fc12d 100644
--- a/hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp
+++ b/hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP
+#define CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP
+
inline VMReg RegisterImpl::as_VMReg() {
if( this==noreg ) return VMRegImpl::Bad();
return VMRegImpl::as_VMReg(encoding() << 1 );
@@ -60,3 +63,5 @@ inline bool VMRegImpl::is_concrete() {
assert(false, "what register?");
return false;
}
+
+#endif // CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP
diff --git a/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp
index 2932cfc42b2..9c040216e06 100644
--- a/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,19 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_vtableStubs_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "code/vtableStubs.hpp"
+#include "interp_masm_sparc.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/instanceKlass.hpp"
+#include "oops/klassVtable.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "vmreg_sparc.inline.hpp"
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// machine-dependent part of VtableStubs: create vtableStub of correct size and
// initialize its code
diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.cpp b/hotspot/src/cpu/x86/vm/assembler_x86.cpp
index 4f43327d304..4c87f23cd13 100644
--- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, 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,24 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_assembler_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_x86.inline.hpp"
+#include "gc_interface/collectedHeap.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "memory/cardTableModRefBS.hpp"
+#include "memory/resourceArea.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/objectMonitor.hpp"
+#include "runtime/os.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#ifndef SERIALGC
+#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
+#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
+#include "gc_implementation/g1/heapRegion.hpp"
+#endif
// Implementation of AddressLiteral
@@ -804,7 +820,20 @@ void Assembler::emit_farith(int b1, int b2, int i) {
}
-// Now the Assembler instruction (identical for 32/64 bits)
+// Now the Assembler instructions (identical for 32/64 bits)
+
+void Assembler::adcl(Address dst, int32_t imm32) {
+ InstructionMark im(this);
+ prefix(dst);
+ emit_arith_operand(0x81, rdx, dst, imm32);
+}
+
+void Assembler::adcl(Address dst, Register src) {
+ InstructionMark im(this);
+ prefix(dst, src);
+ emit_byte(0x11);
+ emit_operand(src, dst);
+}
void Assembler::adcl(Register dst, int32_t imm32) {
prefix(dst);
@@ -1275,6 +1304,12 @@ void Assembler::idivl(Register src) {
emit_byte(0xF8 | encode);
}
+void Assembler::divl(Register src) { // Unsigned
+ int encode = prefix_and_encode(src->encoding());
+ emit_byte(0xF7);
+ emit_byte(0xF0 | encode);
+}
+
void Assembler::imull(Register dst, Register src) {
int encode = prefix_and_encode(dst->encoding(), src->encoding());
emit_byte(0x0F);
@@ -1288,7 +1323,7 @@ void Assembler::imull(Register dst, Register src, int value) {
if (is8bit(value)) {
emit_byte(0x6B);
emit_byte(0xC0 | encode);
- emit_byte(value);
+ emit_byte(value & 0xFF);
} else {
emit_byte(0x69);
emit_byte(0xC0 | encode);
@@ -2173,9 +2208,7 @@ void Assembler::notl(Register dst) {
void Assembler::orl(Address dst, int32_t imm32) {
InstructionMark im(this);
prefix(dst);
- emit_byte(0x81);
- emit_operand(rcx, dst, 4);
- emit_long(imm32);
+ emit_arith_operand(0x81, rcx, dst, imm32);
}
void Assembler::orl(Register dst, int32_t imm32) {
@@ -2183,7 +2216,6 @@ void Assembler::orl(Register dst, int32_t imm32) {
emit_arith(0x81, 0xC8, dst, imm32);
}
-
void Assembler::orl(Register dst, Address src) {
InstructionMark im(this);
prefix(src, dst);
@@ -2191,7 +2223,6 @@ void Assembler::orl(Register dst, Address src) {
emit_operand(dst, src);
}
-
void Assembler::orl(Register dst, Register src) {
(void) prefix_and_encode(dst->encoding(), src->encoding());
emit_arith(0x0B, 0xC0, dst, src);
@@ -2627,6 +2658,37 @@ void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) {
emit_byte(0xC0 | encode);
}
+void Assembler::sqrtsd(XMMRegister dst, Address src) {
+ NOT_LP64(assert(VM_Version::supports_sse2(), ""));
+ InstructionMark im(this);
+ emit_byte(0xF2);
+ prefix(src, dst);
+ emit_byte(0x0F);
+ emit_byte(0x51);
+ emit_operand(dst, src);
+}
+
+void Assembler::sqrtss(XMMRegister dst, XMMRegister src) {
+ // HMM Table D-1 says sse2
+ // NOT_LP64(assert(VM_Version::supports_sse(), ""));
+ NOT_LP64(assert(VM_Version::supports_sse2(), ""));
+ emit_byte(0xF3);
+ int encode = prefix_and_encode(dst->encoding(), src->encoding());
+ emit_byte(0x0F);
+ emit_byte(0x51);
+ emit_byte(0xC0 | encode);
+}
+
+void Assembler::sqrtss(XMMRegister dst, Address src) {
+ NOT_LP64(assert(VM_Version::supports_sse2(), ""));
+ InstructionMark im(this);
+ emit_byte(0xF3);
+ prefix(src, dst);
+ emit_byte(0x0F);
+ emit_byte(0x51);
+ emit_operand(dst, src);
+}
+
void Assembler::stmxcsr( Address dst) {
NOT_LP64(assert(VM_Version::supports_sse(), ""));
InstructionMark im(this);
@@ -2639,20 +2701,7 @@ void Assembler::stmxcsr( Address dst) {
void Assembler::subl(Address dst, int32_t imm32) {
InstructionMark im(this);
prefix(dst);
- if (is8bit(imm32)) {
- emit_byte(0x83);
- emit_operand(rbp, dst, 1);
- emit_byte(imm32 & 0xFF);
- } else {
- emit_byte(0x81);
- emit_operand(rbp, dst, 4);
- emit_long(imm32);
- }
-}
-
-void Assembler::subl(Register dst, int32_t imm32) {
- prefix(dst);
- emit_arith(0x81, 0xE8, dst, imm32);
+ emit_arith_operand(0x81, rbp, dst, imm32);
}
void Assembler::subl(Address dst, Register src) {
@@ -2662,6 +2711,11 @@ void Assembler::subl(Address dst, Register src) {
emit_operand(src, dst);
}
+void Assembler::subl(Register dst, int32_t imm32) {
+ prefix(dst);
+ emit_arith(0x81, 0xE8, dst, imm32);
+}
+
void Assembler::subl(Register dst, Address src) {
InstructionMark im(this);
prefix(src, dst);
@@ -3903,7 +3957,7 @@ void Assembler::imulq(Register dst, Register src, int value) {
if (is8bit(value)) {
emit_byte(0x6B);
emit_byte(0xC0 | encode);
- emit_byte(value);
+ emit_byte(value & 0xFF);
} else {
emit_byte(0x69);
emit_byte(0xC0 | encode);
@@ -4280,6 +4334,7 @@ void Assembler::sarq(Register dst) {
emit_byte(0xD3);
emit_byte(0xF8 | encode);
}
+
void Assembler::sbbq(Address dst, int32_t imm32) {
InstructionMark im(this);
prefixq(dst);
@@ -4336,33 +4391,10 @@ void Assembler::shrq(Register dst) {
emit_byte(0xE8 | encode);
}
-void Assembler::sqrtsd(XMMRegister dst, Address src) {
- NOT_LP64(assert(VM_Version::supports_sse2(), ""));
- InstructionMark im(this);
- emit_byte(0xF2);
- prefix(src, dst);
- emit_byte(0x0F);
- emit_byte(0x51);
- emit_operand(dst, src);
-}
-
void Assembler::subq(Address dst, int32_t imm32) {
InstructionMark im(this);
prefixq(dst);
- if (is8bit(imm32)) {
- emit_byte(0x83);
- emit_operand(rbp, dst, 1);
- emit_byte(imm32 & 0xFF);
- } else {
- emit_byte(0x81);
- emit_operand(rbp, dst, 4);
- emit_long(imm32);
- }
-}
-
-void Assembler::subq(Register dst, int32_t imm32) {
- (void) prefixq_and_encode(dst->encoding());
- emit_arith(0x81, 0xE8, dst, imm32);
+ emit_arith_operand(0x81, rbp, dst, imm32);
}
void Assembler::subq(Address dst, Register src) {
@@ -4372,6 +4404,11 @@ void Assembler::subq(Address dst, Register src) {
emit_operand(src, dst);
}
+void Assembler::subq(Register dst, int32_t imm32) {
+ (void) prefixq_and_encode(dst->encoding());
+ emit_arith(0x81, 0xE8, dst, imm32);
+}
+
void Assembler::subq(Register dst, Address src) {
InstructionMark im(this);
prefixq(src, dst);
@@ -4907,10 +4944,6 @@ void MacroAssembler::movptr(Address dst, intptr_t src) {
}
-void MacroAssembler::movsd(XMMRegister dst, AddressLiteral src) {
- movsd(dst, as_Address(src));
-}
-
void MacroAssembler::pop_callee_saved_registers() {
pop(rcx);
pop(rdx);
@@ -5516,17 +5549,14 @@ void MacroAssembler::stop(const char* msg) {
}
void MacroAssembler::warn(const char* msg) {
- push(r12);
- movq(r12, rsp);
+ push(rsp);
andq(rsp, -16); // align stack as required by push_CPU_state and call
push_CPU_state(); // keeps alignment at 16 bytes
lea(c_rarg0, ExternalAddress((address) msg));
call_VM_leaf(CAST_FROM_FN_PTR(address, warning), c_rarg0);
pop_CPU_state();
-
- movq(rsp, r12);
- pop(r12);
+ pop(rsp);
}
#ifndef PRODUCT
@@ -5838,6 +5868,10 @@ void MacroAssembler::call_VM_base(Register oop_result,
// debugging support
assert(number_of_arguments >= 0 , "cannot have negative number of arguments");
LP64_ONLY(assert(java_thread == r15_thread, "unexpected register"));
+#ifdef ASSERT
+ LP64_ONLY(if (UseCompressedOops) verify_heapbase("call_VM_base");)
+#endif // ASSERT
+
assert(java_thread != oop_result , "cannot use the same register for java_thread & oop_result");
assert(java_thread != last_java_sp, "cannot use the same register for java_thread & last_java_sp");
@@ -7096,9 +7130,9 @@ void MacroAssembler::tlab_allocate(Register obj,
}
// Preserves rbx, and rdx.
-void MacroAssembler::tlab_refill(Label& retry,
- Label& try_eden,
- Label& slow_case) {
+Register MacroAssembler::tlab_refill(Label& retry,
+ Label& try_eden,
+ Label& slow_case) {
Register top = rax;
Register t1 = rcx;
Register t2 = rsi;
@@ -7145,7 +7179,7 @@ void MacroAssembler::tlab_refill(Label& retry,
// if tlab is currently allocated (top or end != null) then
// fill [top, end + alignment_reserve) with array object
- testptr (top, top);
+ testptr(top, top);
jcc(Assembler::zero, do_refill);
// set up the mark word
@@ -7157,16 +7191,20 @@ void MacroAssembler::tlab_refill(Label& retry,
movl(Address(top, arrayOopDesc::length_offset_in_bytes()), t1);
// set klass to intArrayKlass
// dubious reloc why not an oop reloc?
- movptr(t1, ExternalAddress((address) Universe::intArrayKlassObj_addr()));
+ movptr(t1, ExternalAddress((address)Universe::intArrayKlassObj_addr()));
// store klass last. concurrent gcs assumes klass length is valid if
// klass field is not null.
store_klass(top, t1);
+ movptr(t1, top);
+ subptr(t1, Address(thread_reg, in_bytes(JavaThread::tlab_start_offset())));
+ incr_allocated_bytes(thread_reg, t1, 0);
+
// refill the tlab with an eden allocation
bind(do_refill);
movptr(t1, Address(thread_reg, in_bytes(JavaThread::tlab_size_offset())));
shlptr(t1, LogHeapWordSize);
- // add object_size ??
+ // allocate new tlab, address returned in top
eden_allocate(top, t1, 0, t2, slow_case);
// Check that t1 was preserved in eden_allocate.
@@ -7194,6 +7232,34 @@ void MacroAssembler::tlab_refill(Label& retry,
movptr(Address(thread_reg, in_bytes(JavaThread::tlab_end_offset())), top);
verify_tlab();
jmp(retry);
+
+ return thread_reg; // for use by caller
+}
+
+void MacroAssembler::incr_allocated_bytes(Register thread,
+ Register var_size_in_bytes,
+ int con_size_in_bytes,
+ Register t1) {
+#ifdef _LP64
+ if (var_size_in_bytes->is_valid()) {
+ addq(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())), var_size_in_bytes);
+ } else {
+ addq(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())), con_size_in_bytes);
+ }
+#else
+ if (!thread->is_valid()) {
+ assert(t1->is_valid(), "need temp reg");
+ thread = t1;
+ get_thread(thread);
+ }
+
+ if (var_size_in_bytes->is_valid()) {
+ addl(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())), var_size_in_bytes);
+ } else {
+ addl(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())), con_size_in_bytes);
+ }
+ adcl(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())+4), 0);
+#endif
}
static const double pi_4 = 0.7853981633974483;
@@ -7709,9 +7775,14 @@ RegisterOrConstant MacroAssembler::delayed_value_impl(intptr_t* delayed_value_ad
void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_reg,
Register temp_reg,
Label& wrong_method_type) {
- if (UseCompressedOops) unimplemented(); // field accesses must decode
+ Address type_addr(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg));
// compare method type against that of the receiver
- cmpptr(mtype_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)));
+ if (UseCompressedOops) {
+ load_heap_oop(temp_reg, type_addr);
+ cmpptr(mtype_reg, temp_reg);
+ } else {
+ cmpptr(mtype_reg, type_addr);
+ }
jcc(Assembler::notEqual, wrong_method_type);
}
@@ -7723,15 +7794,14 @@ void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_re
void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register mh_reg,
Register temp_reg) {
assert_different_registers(vmslots_reg, mh_reg, temp_reg);
- if (UseCompressedOops) unimplemented(); // field accesses must decode
// load mh.type.form.vmslots
if (java_dyn_MethodHandle::vmslots_offset_in_bytes() != 0) {
// hoist vmslots into every mh to avoid dependent load chain
movl(vmslots_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)));
} else {
Register temp2_reg = vmslots_reg;
- movptr(temp2_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)));
- movptr(temp2_reg, Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)));
+ load_heap_oop(temp2_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)));
+ load_heap_oop(temp2_reg, Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)));
movl(vmslots_reg, Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)));
}
}
@@ -7745,9 +7815,8 @@ void MacroAssembler::jump_to_method_handle_entry(Register mh_reg, Register temp_
assert(mh_reg == rcx, "caller must put MH object in rcx");
assert_different_registers(mh_reg, temp_reg);
- if (UseCompressedOops) unimplemented(); // field accesses must decode
-
// pick out the interpreted side of the handler
+ // NOTE: vmentry is not an oop!
movptr(temp_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmentry_offset_in_bytes, temp_reg)));
// off we go...
@@ -8238,6 +8307,40 @@ void MacroAssembler::store_klass(Register dst, Register src) {
movptr(Address(dst, oopDesc::klass_offset_in_bytes()), src);
}
+void MacroAssembler::load_heap_oop(Register dst, Address src) {
+#ifdef _LP64
+ if (UseCompressedOops) {
+ movl(dst, src);
+ decode_heap_oop(dst);
+ } else
+#endif
+ movptr(dst, src);
+}
+
+void MacroAssembler::store_heap_oop(Address dst, Register src) {
+#ifdef _LP64
+ if (UseCompressedOops) {
+ assert(!dst.uses(src), "not enough registers");
+ encode_heap_oop(src);
+ movl(dst, src);
+ } else
+#endif
+ movptr(dst, src);
+}
+
+// Used for storing NULLs.
+void MacroAssembler::store_heap_oop_null(Address dst) {
+#ifdef _LP64
+ if (UseCompressedOops) {
+ movl(dst, (int32_t)NULL_WORD);
+ } else {
+ movslq(dst, (int32_t)NULL_WORD);
+ }
+#else
+ movl(dst, (int32_t)NULL_WORD);
+#endif
+}
+
#ifdef _LP64
void MacroAssembler::store_klass_gap(Register dst, Register src) {
if (UseCompressedOops) {
@@ -8246,34 +8349,6 @@ void MacroAssembler::store_klass_gap(Register dst, Register src) {
}
}
-void MacroAssembler::load_heap_oop(Register dst, Address src) {
- if (UseCompressedOops) {
- movl(dst, src);
- decode_heap_oop(dst);
- } else {
- movq(dst, src);
- }
-}
-
-void MacroAssembler::store_heap_oop(Address dst, Register src) {
- if (UseCompressedOops) {
- assert(!dst.uses(src), "not enough registers");
- encode_heap_oop(src);
- movl(dst, src);
- } else {
- movq(dst, src);
- }
-}
-
-// Used for storing NULLs.
-void MacroAssembler::store_heap_oop_null(Address dst) {
- if (UseCompressedOops) {
- movl(dst, (int32_t)NULL_WORD);
- } else {
- movslq(dst, (int32_t)NULL_WORD);
- }
-}
-
#ifdef ASSERT
void MacroAssembler::verify_heapbase(const char* msg) {
assert (UseCompressedOops, "should be compressed");
diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.hpp b/hotspot/src/cpu/x86/vm/assembler_x86.hpp
index c9b25e02f19..a1a8a96dee6 100644
--- a/hotspot/src/cpu/x86/vm/assembler_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_ASSEMBLER_X86_HPP
+#define CPU_X86_VM_ASSEMBLER_X86_HPP
+
class BiasedLockingCounters;
// Contains all the definitions needed for x86 assembly code generation.
@@ -132,6 +135,7 @@ REGISTER_DECLARATION(Register, r15_thread, r15); // callee-saved
// Using noreg ensures if the dead code is incorrectly live and executed it
// will cause an assertion failure
#define rscratch1 noreg
+#define rscratch2 noreg
#endif // _LP64
@@ -670,12 +674,14 @@ private:
// Utilities
#ifdef _LP64
- static bool is_simm(int64_t x, int nbits) { return -( CONST64(1) << (nbits-1) ) <= x && x < ( CONST64(1) << (nbits-1) ); }
+ static bool is_simm(int64_t x, int nbits) { return -(CONST64(1) << (nbits-1)) <= x &&
+ x < (CONST64(1) << (nbits-1)); }
static bool is_simm32(int64_t x) { return x == (int64_t)(int32_t)x; }
#else
- static bool is_simm(int32_t x, int nbits) { return -( 1 << (nbits-1) ) <= x && x < ( 1 << (nbits-1) ); }
+ static bool is_simm(int32_t x, int nbits) { return -(1 << (nbits-1)) <= x &&
+ x < (1 << (nbits-1)); }
static bool is_simm32(int32_t x) { return true; }
-#endif // LP64
+#endif // _LP64
// Generic instructions
// Does 32bit or 64bit as needed for the platform. In some sense these
@@ -701,7 +707,6 @@ private:
void push(void* v);
void pop(void* v);
-
// These do register sized moves/scans
void rep_mov();
void rep_set();
@@ -712,6 +717,8 @@ private:
// Vanilla instructions in lexical order
+ void adcl(Address dst, int32_t imm32);
+ void adcl(Address dst, Register src);
void adcl(Register dst, int32_t imm32);
void adcl(Register dst, Address src);
void adcl(Register dst, Register src);
@@ -720,7 +727,6 @@ private:
void adcq(Register dst, Address src);
void adcq(Register dst, Register src);
-
void addl(Address dst, int32_t imm32);
void addl(Address dst, Register src);
void addl(Register dst, int32_t imm32);
@@ -733,7 +739,6 @@ private:
void addq(Register dst, Address src);
void addq(Register dst, Register src);
-
void addr_nop_4();
void addr_nop_5();
void addr_nop_7();
@@ -755,7 +760,6 @@ private:
void andq(Register dst, Address src);
void andq(Register dst, Register src);
-
// Bitwise Logical AND of Packed Double-Precision Floating-Point Values
void andpd(XMMRegister dst, Address src);
void andpd(XMMRegister dst, XMMRegister src);
@@ -1011,6 +1015,7 @@ private:
void hlt();
void idivl(Register src);
+ void divl(Register src); // Unsigned division
void idivq(Register src);
@@ -1146,7 +1151,7 @@ private:
#ifdef _LP64
void movq(Register dst, Register src);
void movq(Register dst, Address src);
- void movq(Address dst, Register src);
+ void movq(Address dst, Register src);
#endif
void movq(Address dst, MMXRegister src );
@@ -1172,7 +1177,7 @@ private:
void movsbq(Register dst, Register src);
// Move signed 32bit immediate to 64bit extending sign
- void movslq(Address dst, int32_t imm64);
+ void movslq(Address dst, int32_t imm64);
void movslq(Register dst, int32_t imm64);
void movslq(Register dst, Address src);
@@ -1348,6 +1353,10 @@ private:
void sqrtsd(XMMRegister dst, Address src);
void sqrtsd(XMMRegister dst, XMMRegister src);
+ // Compute Square Root of Scalar Single-Precision Floating-Point Value
+ void sqrtss(XMMRegister dst, Address src);
+ void sqrtss(XMMRegister dst, XMMRegister src);
+
void std() { emit_byte(0xfd); }
void stmxcsr( Address dst );
@@ -1682,24 +1691,24 @@ class MacroAssembler: public Assembler {
void load_klass(Register dst, Register src);
void store_klass(Register dst, Register src);
+ void load_heap_oop(Register dst, Address src);
+ void store_heap_oop(Address dst, Register src);
+
+ // Used for storing NULL. All other oop constants should be
+ // stored using routines that take a jobject.
+ void store_heap_oop_null(Address dst);
+
void load_prototype_header(Register dst, Register src);
#ifdef _LP64
void store_klass_gap(Register dst, Register src);
- void load_heap_oop(Register dst, Address src);
- void store_heap_oop(Address dst, Register src);
-
// This dummy is to prevent a call to store_heap_oop from
// converting a zero (like NULL) into a Register by giving
// the compiler two choices it can't resolve
void store_heap_oop(Address dst, void* dummy);
- // Used for storing NULL. All other oop constants should be
- // stored using routines that take a jobject.
- void store_heap_oop_null(Address dst);
-
void encode_heap_oop(Register r);
void decode_heap_oop(Register r);
void encode_heap_oop_not_null(Register r);
@@ -1848,7 +1857,10 @@ class MacroAssembler: public Assembler {
Register t2, // temp register
Label& slow_case // continuation point if fast allocation fails
);
- void tlab_refill(Label& retry_tlab, Label& try_eden, Label& slow_case);
+ Register tlab_refill(Label& retry_tlab, Label& try_eden, Label& slow_case); // returns TLS address
+ void incr_allocated_bytes(Register thread,
+ Register var_size_in_bytes, int con_size_in_bytes,
+ Register t1 = noreg);
// interface method calling
void lookup_interface_method(Register recv_klass,
@@ -1927,7 +1939,7 @@ class MacroAssembler: public Assembler {
void untested() { stop("untested"); }
- void unimplemented(const char* what = "") { char* b = new char[1024]; jio_snprintf(b, sizeof(b), "unimplemented: %s", what); stop(b); }
+ void unimplemented(const char* what = "") { char* b = new char[1024]; jio_snprintf(b, 1024, "unimplemented: %s", what); stop(b); }
void should_not_reach_here() { stop("should not reach here"); }
@@ -2120,6 +2132,9 @@ class MacroAssembler: public Assembler {
void comisd(XMMRegister dst, Address src) { Assembler::comisd(dst, src); }
void comisd(XMMRegister dst, AddressLiteral src);
+ void fadd_s(Address src) { Assembler::fadd_s(src); }
+ void fadd_s(AddressLiteral src) { Assembler::fadd_s(as_Address(src)); }
+
void fldcw(Address src) { Assembler::fldcw(src); }
void fldcw(AddressLiteral src);
@@ -2133,6 +2148,9 @@ class MacroAssembler: public Assembler {
void fld_x(Address src) { Assembler::fld_x(src); }
void fld_x(AddressLiteral src);
+ void fmul_s(Address src) { Assembler::fmul_s(src); }
+ void fmul_s(AddressLiteral src) { Assembler::fmul_s(as_Address(src)); }
+
void ldmxcsr(Address src) { Assembler::ldmxcsr(src); }
void ldmxcsr(AddressLiteral src);
@@ -2149,10 +2167,50 @@ private:
public:
+ void addsd(XMMRegister dst, XMMRegister src) { Assembler::addsd(dst, src); }
+ void addsd(XMMRegister dst, Address src) { Assembler::addsd(dst, src); }
+ void addsd(XMMRegister dst, AddressLiteral src) { Assembler::addsd(dst, as_Address(src)); }
+
+ void addss(XMMRegister dst, XMMRegister src) { Assembler::addss(dst, src); }
+ void addss(XMMRegister dst, Address src) { Assembler::addss(dst, src); }
+ void addss(XMMRegister dst, AddressLiteral src) { Assembler::addss(dst, as_Address(src)); }
+
+ void divsd(XMMRegister dst, XMMRegister src) { Assembler::divsd(dst, src); }
+ void divsd(XMMRegister dst, Address src) { Assembler::divsd(dst, src); }
+ void divsd(XMMRegister dst, AddressLiteral src) { Assembler::divsd(dst, as_Address(src)); }
+
+ void divss(XMMRegister dst, XMMRegister src) { Assembler::divss(dst, src); }
+ void divss(XMMRegister dst, Address src) { Assembler::divss(dst, src); }
+ void divss(XMMRegister dst, AddressLiteral src) { Assembler::divss(dst, as_Address(src)); }
+
void movsd(XMMRegister dst, XMMRegister src) { Assembler::movsd(dst, src); }
void movsd(Address dst, XMMRegister src) { Assembler::movsd(dst, src); }
void movsd(XMMRegister dst, Address src) { Assembler::movsd(dst, src); }
- void movsd(XMMRegister dst, AddressLiteral src);
+ void movsd(XMMRegister dst, AddressLiteral src) { Assembler::movsd(dst, as_Address(src)); }
+
+ void mulsd(XMMRegister dst, XMMRegister src) { Assembler::mulsd(dst, src); }
+ void mulsd(XMMRegister dst, Address src) { Assembler::mulsd(dst, src); }
+ void mulsd(XMMRegister dst, AddressLiteral src) { Assembler::mulsd(dst, as_Address(src)); }
+
+ void mulss(XMMRegister dst, XMMRegister src) { Assembler::mulss(dst, src); }
+ void mulss(XMMRegister dst, Address src) { Assembler::mulss(dst, src); }
+ void mulss(XMMRegister dst, AddressLiteral src) { Assembler::mulss(dst, as_Address(src)); }
+
+ void sqrtsd(XMMRegister dst, XMMRegister src) { Assembler::sqrtsd(dst, src); }
+ void sqrtsd(XMMRegister dst, Address src) { Assembler::sqrtsd(dst, src); }
+ void sqrtsd(XMMRegister dst, AddressLiteral src) { Assembler::sqrtsd(dst, as_Address(src)); }
+
+ void sqrtss(XMMRegister dst, XMMRegister src) { Assembler::sqrtss(dst, src); }
+ void sqrtss(XMMRegister dst, Address src) { Assembler::sqrtss(dst, src); }
+ void sqrtss(XMMRegister dst, AddressLiteral src) { Assembler::sqrtss(dst, as_Address(src)); }
+
+ void subsd(XMMRegister dst, XMMRegister src) { Assembler::subsd(dst, src); }
+ void subsd(XMMRegister dst, Address src) { Assembler::subsd(dst, src); }
+ void subsd(XMMRegister dst, AddressLiteral src) { Assembler::subsd(dst, as_Address(src)); }
+
+ void subss(XMMRegister dst, XMMRegister src) { Assembler::subss(dst, src); }
+ void subss(XMMRegister dst, Address src) { Assembler::subss(dst, src); }
+ void subss(XMMRegister dst, AddressLiteral src) { Assembler::subss(dst, as_Address(src)); }
void ucomiss(XMMRegister dst, XMMRegister src) { Assembler::ucomiss(dst, src); }
void ucomiss(XMMRegister dst, Address src) { Assembler::ucomiss(dst, src); }
@@ -2272,3 +2330,5 @@ class SkipIfEqual {
#ifdef ASSERT
inline bool AbstractAssembler::pd_check_instruction_mark() { return true; }
#endif
+
+#endif // CPU_X86_VM_ASSEMBLER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp b/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp
index 1198dad1e58..125bf3ffff0 100644
--- a/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,14 @@
*
*/
+#ifndef CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP
+#define CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP
+
+#include "asm/assembler.inline.hpp"
+#include "asm/codeBuffer.hpp"
+#include "code/codeCache.hpp"
+#include "runtime/handles.inline.hpp"
+
inline void MacroAssembler::pd_patch_instruction(address branch, address target) {
unsigned char op = branch[0];
assert(op == 0xE8 /* call */ ||
@@ -85,3 +93,5 @@ inline void Assembler::emit_long64(jlong x) {
code_section()->set_end(_code_pos);
}
#endif // _LP64
+
+#endif // CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP
diff --git a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp
index bb6fe1e1d59..5e606224fac 100644
--- a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, 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,30 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_bytecodeInterpreter_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeInterpreter.hpp"
+#include "interpreter/bytecodeInterpreter.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+#ifdef TARGET_ARCH_MODEL_x86_32
+# include "interp_masm_x86_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_x86_64
+# include "interp_masm_x86_64.hpp"
+#endif
#ifdef CC_INTERP
diff --git a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp
index 00343c045b3..e4eaa751286 100644
--- a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP
+#define CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP
+
// Platform specific for C++ based Interpreter
private:
@@ -108,3 +111,5 @@ inline intptr_t* sender_sp() {
((VMJavaVal64*)(addr))->d)
#define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \
((VMJavaVal64*)(addr))->l)
+
+#endif // CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp
index 1c5616aa352..4f60b455801 100644
--- a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp
+++ b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP
+#define CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP
+
// Inline interpreter functions for IA32
inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { return op1 + op2; }
@@ -278,3 +281,5 @@ inline jshort BytecodeInterpreter::VMint2Short(jint val) {
inline jbyte BytecodeInterpreter::VMint2Byte(jint val) {
return (jbyte) val;
}
+
+#endif // CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP
diff --git a/hotspot/src/cpu/x86/vm/bytecodes_x86.cpp b/hotspot/src/cpu/x86/vm/bytecodes_x86.cpp
index d9ddba8dd38..4e6993548c9 100644
--- a/hotspot/src/cpu/x86/vm/bytecodes_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/bytecodes_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_bytecodes_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/bytecodes.hpp"
void Bytecodes::pd_initialize() {
diff --git a/hotspot/src/cpu/x86/vm/bytecodes_x86.hpp b/hotspot/src/cpu/x86/vm/bytecodes_x86.hpp
index aab08d90b42..e21c16a09ae 100644
--- a/hotspot/src/cpu/x86/vm/bytecodes_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/bytecodes_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,4 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_BYTECODES_X86_HPP
+#define CPU_X86_VM_BYTECODES_X86_HPP
+
// No i486 specific bytecodes
+
+#endif // CPU_X86_VM_BYTECODES_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/bytes_x86.hpp b/hotspot/src/cpu/x86/vm/bytes_x86.hpp
index d62120c7041..ac096dc3737 100644
--- a/hotspot/src/cpu/x86/vm/bytes_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/bytes_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,11 @@
*
*/
+#ifndef CPU_X86_VM_BYTES_X86_HPP
+#define CPU_X86_VM_BYTES_X86_HPP
+
+#include "memory/allocation.hpp"
+
class Bytes: AllStatic {
private:
#ifndef AMD64
@@ -67,4 +72,15 @@ class Bytes: AllStatic {
// The following header contains the implementations of swap_u2, swap_u4, and swap_u8[_base]
-#include "incls/_bytes_pd.inline.hpp.incl"
+#ifdef TARGET_OS_ARCH_linux_x86
+# include "bytes_linux_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_solaris_x86
+# include "bytes_solaris_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_windows_x86
+# include "bytes_windows_x86.inline.hpp"
+#endif
+
+
+#endif // CPU_X86_VM_BYTES_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
index 42269daf59e..62088bd100e 100644
--- a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
@@ -22,8 +22,18 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_c1_CodeStubs_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_CodeStubs.hpp"
+#include "c1/c1_FrameMap.hpp"
+#include "c1/c1_LIRAssembler.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "nativeInst_x86.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "vmreg_x86.inline.hpp"
+#ifndef SERIALGC
+#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
+#endif
#define __ ce->masm()->
@@ -83,7 +93,8 @@ RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index,
: _throw_index_out_of_bounds_exception(throw_index_out_of_bounds_exception)
, _index(index)
{
- _info = info == NULL ? NULL : new CodeEmitInfo(info);
+ assert(info != NULL, "must have info");
+ _info = new CodeEmitInfo(info);
}
@@ -472,7 +483,7 @@ void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
Register pre_val_reg = pre_val()->as_register();
- ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false);
+ ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
__ cmpptr(pre_val_reg, (int32_t) NULL_WORD);
__ jcc(Assembler::equal, _continuation);
@@ -498,7 +509,7 @@ void G1PostBarrierStub::emit_code(LIR_Assembler* ce) {
Register new_val_reg = new_val()->as_register();
__ cmpptr(new_val_reg, (int32_t) NULL_WORD);
__ jcc(Assembler::equal, _continuation);
- ce->store_parameter(addr()->as_register(), 0);
+ ce->store_parameter(addr()->as_pointer_register(), 0);
__ call(RuntimeAddress(Runtime1::entry_for(Runtime1::g1_post_barrier_slow_id)));
__ jmp(_continuation);
}
diff --git a/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp b/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp
index 2fd08e2140b..dab876adc8a 100644
--- a/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_C1_DEFS_X86_HPP
+#define CPU_X86_VM_C1_DEFS_X86_HPP
+
// native word offsets from memory address (little endian)
enum {
pd_lo_word_offset_in_bytes = 0,
@@ -58,8 +61,8 @@ enum {
pd_nof_xmm_regs_linearscan = pd_nof_xmm_regs_frame_map, // number of registers visible to linear scan
pd_first_cpu_reg = 0,
pd_last_cpu_reg = NOT_LP64(5) LP64_ONLY(11),
- pd_first_byte_reg = 2,
- pd_last_byte_reg = 5,
+ pd_first_byte_reg = NOT_LP64(2) LP64_ONLY(0),
+ pd_last_byte_reg = NOT_LP64(5) LP64_ONLY(11),
pd_first_fpu_reg = pd_nof_cpu_regs_frame_map,
pd_last_fpu_reg = pd_first_fpu_reg + 7,
pd_first_xmm_reg = pd_nof_cpu_regs_frame_map + pd_nof_fpu_regs_frame_map,
@@ -71,3 +74,5 @@ enum {
enum {
pd_float_saved_as_double = true
};
+
+#endif // CPU_X86_VM_C1_DEFS_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp b/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp
index f8ce059955d..3fbd57c5ca3 100644
--- a/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c1_FpuStackSim_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_FpuStackSim.hpp"
+#include "c1/c1_FrameMap.hpp"
+#include "utilities/array.hpp"
+#include "utilities/ostream.hpp"
//--------------------------------------------------------
// FpuStackSim
diff --git a/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp b/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp
index 29dabd254be..ae1e0d5904d 100644
--- a/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
+#define CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
+
// Simulates the FPU stack and maintains mapping [fpu-register -> stack offset]
// FPU registers are described as numbers from 0..nof_fpu_regs-1
@@ -65,3 +68,5 @@ class FpuStackSim VALUE_OBJ_CLASS_SPEC {
void print() PRODUCT_RETURN;
};
+
+#endif // CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp
index 20e78c242c5..52f42977f71 100644
--- a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp
@@ -22,8 +22,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c1_FrameMap_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_FrameMap.hpp"
+#include "c1/c1_LIR.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "vmreg_x86.inline.hpp"
const int FrameMap::pd_c_runtime_reserved_arg_size = 0;
@@ -155,9 +158,11 @@ void FrameMap::initialize() {
map_register( 6, r8); r8_opr = LIR_OprFact::single_cpu(6);
map_register( 7, r9); r9_opr = LIR_OprFact::single_cpu(7);
map_register( 8, r11); r11_opr = LIR_OprFact::single_cpu(8);
- map_register( 9, r12); r12_opr = LIR_OprFact::single_cpu(9);
- map_register(10, r13); r13_opr = LIR_OprFact::single_cpu(10);
- map_register(11, r14); r14_opr = LIR_OprFact::single_cpu(11);
+ map_register( 9, r13); r13_opr = LIR_OprFact::single_cpu(9);
+ map_register(10, r14); r14_opr = LIR_OprFact::single_cpu(10);
+ // r12 is allocated conditionally. With compressed oops it holds
+ // the heapbase value and is not visible to the allocator.
+ map_register(11, r12); r12_opr = LIR_OprFact::single_cpu(11);
// The unallocatable registers are at the end
map_register(12, r10); r10_opr = LIR_OprFact::single_cpu(12);
map_register(13, r15); r15_opr = LIR_OprFact::single_cpu(13);
@@ -188,9 +193,9 @@ void FrameMap::initialize() {
_caller_save_cpu_regs[6] = r8_opr;
_caller_save_cpu_regs[7] = r9_opr;
_caller_save_cpu_regs[8] = r11_opr;
- _caller_save_cpu_regs[9] = r12_opr;
- _caller_save_cpu_regs[10] = r13_opr;
- _caller_save_cpu_regs[11] = r14_opr;
+ _caller_save_cpu_regs[9] = r13_opr;
+ _caller_save_cpu_regs[10] = r14_opr;
+ _caller_save_cpu_regs[11] = r12_opr;
#endif // _LP64
diff --git a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp
index c479663ca6e..642701c2831 100644
--- a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_C1_FRAMEMAP_X86_HPP
+#define CPU_X86_VM_C1_FRAMEMAP_X86_HPP
+
// On i486 the frame looks as follows:
//
// +-----------------------------+---------+----------------------------------------+----------------+-----------
@@ -126,3 +129,16 @@
assert(i >= 0 && i < nof_caller_save_xmm_regs, "out of bounds");
return _caller_save_xmm_regs[i];
}
+
+ static int adjust_reg_range(int range) {
+ // Reduce the number of available regs (to free r12) in case of compressed oops
+ if (UseCompressedOops) return range - 1;
+ return range;
+ }
+
+ static int nof_caller_save_cpu_regs() { return adjust_reg_range(pd_nof_caller_save_cpu_regs_frame_map); }
+ static int last_cpu_reg() { return adjust_reg_range(pd_last_cpu_reg); }
+ static int last_byte_reg() { return adjust_reg_range(pd_last_byte_reg); }
+
+#endif // CPU_X86_VM_C1_FRAMEMAP_X86_HPP
+
diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
index 3af7df224e6..f3ba0a2ce02 100644
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
@@ -22,8 +22,20 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c1_LIRAssembler_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_Compilation.hpp"
+#include "c1/c1_LIRAssembler.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "c1/c1_ValueStack.hpp"
+#include "ci/ciArrayKlass.hpp"
+#include "ci/ciInstance.hpp"
+#include "gc_interface/collectedHeap.hpp"
+#include "memory/barrierSet.hpp"
+#include "memory/cardTableModRefBS.hpp"
+#include "nativeInst_x86.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "runtime/sharedRuntime.hpp"
// These masks are used to provide 128-bit aligned bitmasks to the XMM
@@ -331,8 +343,8 @@ int LIR_Assembler::check_icache() {
Register receiver = FrameMap::receiver_opr->as_register();
Register ic_klass = IC_Klass;
const int ic_cmp_size = LP64_ONLY(10) NOT_LP64(9);
-
- if (!VerifyOops) {
+ const bool do_post_padding = VerifyOops || UseCompressedOops;
+ if (!do_post_padding) {
// insert some nops so that the verified entry point is aligned on CodeEntryAlignment
while ((__ offset() + ic_cmp_size) % CodeEntryAlignment != 0) {
__ nop();
@@ -340,8 +352,8 @@ int LIR_Assembler::check_icache() {
}
int offset = __ offset();
__ inline_cache_check(receiver, IC_Klass);
- assert(__ offset() % CodeEntryAlignment == 0 || VerifyOops, "alignment must be correct");
- if (VerifyOops) {
+ assert(__ offset() % CodeEntryAlignment == 0 || do_post_padding, "alignment must be correct");
+ if (do_post_padding) {
// force alignment after the cache check.
// It's been verified to be aligned if !VerifyOops
__ align(CodeEntryAlignment);
@@ -488,7 +500,9 @@ int LIR_Assembler::emit_unwind_handler() {
}
if (compilation()->env()->dtrace_method_probes()) {
- __ movoop(Address(rsp, 0), method()->constant_encoding());
+ __ get_thread(rax);
+ __ movptr(Address(rsp, 0), rax);
+ __ movoop(Address(rsp, sizeof(void*)), method()->constant_encoding());
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit)));
}
@@ -545,16 +559,16 @@ void LIR_Assembler::emit_string_compare(LIR_Opr arg0, LIR_Opr arg1, LIR_Opr dst,
__ movptr (rax, arg1->as_register());
// Get addresses of first characters from both Strings
- __ movptr (rsi, Address(rax, java_lang_String::value_offset_in_bytes()));
- __ movptr (rcx, Address(rax, java_lang_String::offset_offset_in_bytes()));
- __ lea (rsi, Address(rsi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
+ __ load_heap_oop(rsi, Address(rax, java_lang_String::value_offset_in_bytes()));
+ __ movptr (rcx, Address(rax, java_lang_String::offset_offset_in_bytes()));
+ __ lea (rsi, Address(rsi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
// rbx, may be NULL
add_debug_info_for_null_check_here(info);
- __ movptr (rdi, Address(rbx, java_lang_String::value_offset_in_bytes()));
- __ movptr (rcx, Address(rbx, java_lang_String::offset_offset_in_bytes()));
- __ lea (rdi, Address(rdi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
+ __ load_heap_oop(rdi, Address(rbx, java_lang_String::value_offset_in_bytes()));
+ __ movptr (rcx, Address(rbx, java_lang_String::offset_offset_in_bytes()));
+ __ lea (rdi, Address(rdi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
// compute minimum length (in rax) and difference of lengths (on top of stack)
if (VM_Version::supports_cmov()) {
@@ -682,13 +696,18 @@ void LIR_Assembler::const2reg(LIR_Opr src, LIR_Opr dest, LIR_PatchCode patch_cod
LIR_Const* c = src->as_constant_ptr();
switch (c->type()) {
- case T_INT:
- case T_ADDRESS: {
+ case T_INT: {
assert(patch_code == lir_patch_none, "no patching handled here");
__ movl(dest->as_register(), c->as_jint());
break;
}
+ case T_ADDRESS: {
+ assert(patch_code == lir_patch_none, "no patching handled here");
+ __ movptr(dest->as_register(), c->as_jint());
+ break;
+ }
+
case T_LONG: {
assert(patch_code == lir_patch_none, "no patching handled here");
#ifdef _LP64
@@ -766,10 +785,13 @@ void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) {
switch (c->type()) {
case T_INT: // fall through
case T_FLOAT:
- case T_ADDRESS:
__ movl(frame_map()->address_for_slot(dest->single_stack_ix()), c->as_jint_bits());
break;
+ case T_ADDRESS:
+ __ movptr(frame_map()->address_for_slot(dest->single_stack_ix()), c->as_jint_bits());
+ break;
+
case T_OBJECT:
__ movoop(frame_map()->address_for_slot(dest->single_stack_ix()), c->as_jobject());
break;
@@ -792,7 +814,7 @@ void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) {
}
}
-void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info ) {
+void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info, bool wide) {
assert(src->is_constant(), "should not call otherwise");
assert(dest->is_address(), "should not call otherwise");
LIR_Const* c = src->as_constant_ptr();
@@ -802,14 +824,21 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
switch (type) {
case T_INT: // fall through
case T_FLOAT:
- case T_ADDRESS:
__ movl(as_Address(addr), c->as_jint_bits());
break;
+ case T_ADDRESS:
+ __ movptr(as_Address(addr), c->as_jint_bits());
+ break;
+
case T_OBJECT: // fall through
case T_ARRAY:
if (c->as_jobject() == NULL) {
- __ movptr(as_Address(addr), NULL_WORD);
+ if (UseCompressedOops && !wide) {
+ __ movl(as_Address(addr), (int32_t)NULL_WORD);
+ } else {
+ __ movptr(as_Address(addr), NULL_WORD);
+ }
} else {
if (is_literal_address(addr)) {
ShouldNotReachHere();
@@ -817,8 +846,14 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
} else {
#ifdef _LP64
__ movoop(rscratch1, c->as_jobject());
- null_check_here = code_offset();
- __ movptr(as_Address_lo(addr), rscratch1);
+ if (UseCompressedOops && !wide) {
+ __ encode_heap_oop(rscratch1);
+ null_check_here = code_offset();
+ __ movl(as_Address_lo(addr), rscratch1);
+ } else {
+ null_check_here = code_offset();
+ __ movptr(as_Address_lo(addr), rscratch1);
+ }
#else
__ movoop(as_Address(addr), c->as_jobject());
#endif
@@ -995,22 +1030,28 @@ void LIR_Assembler::reg2stack(LIR_Opr src, LIR_Opr dest, BasicType type, bool po
}
-void LIR_Assembler::reg2mem(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_PatchCode patch_code, CodeEmitInfo* info, bool pop_fpu_stack, bool /* unaligned */) {
+void LIR_Assembler::reg2mem(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_PatchCode patch_code, CodeEmitInfo* info, bool pop_fpu_stack, bool wide, bool /* unaligned */) {
LIR_Address* to_addr = dest->as_address_ptr();
PatchingStub* patch = NULL;
+ Register compressed_src = rscratch1;
if (type == T_ARRAY || type == T_OBJECT) {
__ verify_oop(src->as_register());
+#ifdef _LP64
+ if (UseCompressedOops && !wide) {
+ __ movptr(compressed_src, src->as_register());
+ __ encode_heap_oop(compressed_src);
+ }
+#endif
}
+
if (patch_code != lir_patch_none) {
patch = new PatchingStub(_masm, PatchingStub::access_field_id);
Address toa = as_Address(to_addr);
assert(toa.disp() != 0, "must have");
}
- if (info != NULL) {
- add_debug_info_for_null_check_here(info);
- }
+ int null_check_here = code_offset();
switch (type) {
case T_FLOAT: {
if (src->is_single_xmm()) {
@@ -1036,13 +1077,17 @@ void LIR_Assembler::reg2mem(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch
break;
}
- case T_ADDRESS: // fall through
case T_ARRAY: // fall through
case T_OBJECT: // fall through
-#ifdef _LP64
+ if (UseCompressedOops && !wide) {
+ __ movl(as_Address(to_addr), compressed_src);
+ } else {
+ __ movptr(as_Address(to_addr), src->as_register());
+ }
+ break;
+ case T_ADDRESS:
__ movptr(as_Address(to_addr), src->as_register());
break;
-#endif // _LP64
case T_INT:
__ movl(as_Address(to_addr), src->as_register());
break;
@@ -1099,6 +1144,9 @@ void LIR_Assembler::reg2mem(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch
default:
ShouldNotReachHere();
}
+ if (info != NULL) {
+ add_debug_info_for_null_check(null_check_here, info);
+ }
if (patch_code != lir_patch_none) {
patching_epilog(patch, patch_code, to_addr->base()->as_register(), info);
@@ -1182,7 +1230,7 @@ void LIR_Assembler::stack2stack(LIR_Opr src, LIR_Opr dest, BasicType type) {
}
-void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_PatchCode patch_code, CodeEmitInfo* info, bool /* unaligned */) {
+void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_PatchCode patch_code, CodeEmitInfo* info, bool wide, bool /* unaligned */) {
assert(src->is_address(), "should not call otherwise");
assert(dest->is_register(), "should not call otherwise");
@@ -1236,13 +1284,18 @@ void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch
break;
}
- case T_ADDRESS: // fall through
case T_OBJECT: // fall through
case T_ARRAY: // fall through
-#ifdef _LP64
+ if (UseCompressedOops && !wide) {
+ __ movl(dest->as_register(), from_addr);
+ } else {
+ __ movptr(dest->as_register(), from_addr);
+ }
+ break;
+
+ case T_ADDRESS:
__ movptr(dest->as_register(), from_addr);
break;
-#endif // _L64
case T_INT:
__ movl(dest->as_register(), from_addr);
break;
@@ -1337,6 +1390,11 @@ void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch
}
if (type == T_ARRAY || type == T_OBJECT) {
+#ifdef _LP64
+ if (UseCompressedOops && !wide) {
+ __ decode_heap_oop(dest->as_register());
+ }
+#endif
__ verify_oop(dest->as_register());
}
}
@@ -1658,11 +1716,8 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
ciMethod* method = op->profiled_method();
assert(method != NULL, "Should have method");
int bci = op->profiled_bci();
- md = method->method_data();
- if (md == NULL) {
- bailout("out of memory building methodDataOop");
- return;
- }
+ md = method->method_data_or_null();
+ assert(md != NULL, "Sanity");
data = md->bci_to_data(bci);
assert(data != NULL, "need data for type check");
assert(data->is_ReceiverTypeData(), "need ReceiverTypeData for type check");
@@ -1676,7 +1731,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
} else if (obj == klass_RInfo) {
klass_RInfo = dst;
}
- if (k->is_loaded()) {
+ if (k->is_loaded() && !UseCompressedOops) {
select_different_registers(obj, dst, k_RInfo, klass_RInfo);
} else {
Rtmp1 = op->tmp3()->as_register();
@@ -1713,21 +1768,26 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
if (op->fast_check()) {
// get object class
// not a safepoint as obj null check happens earlier
- if (k->is_loaded()) {
#ifdef _LP64
- __ cmpptr(k_RInfo, Address(obj, oopDesc::klass_offset_in_bytes()));
-#else
- __ cmpoop(Address(obj, oopDesc::klass_offset_in_bytes()), k->constant_encoding());
-#endif // _LP64
+ if (UseCompressedOops) {
+ __ load_klass(Rtmp1, obj);
+ __ cmpptr(k_RInfo, Rtmp1);
} else {
__ cmpptr(k_RInfo, Address(obj, oopDesc::klass_offset_in_bytes()));
}
+#else
+ if (k->is_loaded()) {
+ __ cmpoop(Address(obj, oopDesc::klass_offset_in_bytes()), k->constant_encoding());
+ } else {
+ __ cmpptr(k_RInfo, Address(obj, oopDesc::klass_offset_in_bytes()));
+ }
+#endif
__ jcc(Assembler::notEqual, *failure_target);
// successful cast, fall through to profile or jump
} else {
// get object class
// not a safepoint as obj null check happens earlier
- __ movptr(klass_RInfo, Address(obj, oopDesc::klass_offset_in_bytes()));
+ __ load_klass(klass_RInfo, obj);
if (k->is_loaded()) {
// See if we get an immediate positive hit
#ifdef _LP64
@@ -1782,7 +1842,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
Register mdo = klass_RInfo, recv = k_RInfo;
__ bind(profile_cast_success);
__ movoop(mdo, md->constant_encoding());
- __ movptr(recv, Address(obj, oopDesc::klass_offset_in_bytes()));
+ __ load_klass(recv, obj);
Label update_done;
type_profile_helper(mdo, md, data, recv, success);
__ jmp(*success);
@@ -1816,11 +1876,8 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
ciMethod* method = op->profiled_method();
assert(method != NULL, "Should have method");
int bci = op->profiled_bci();
- md = method->method_data();
- if (md == NULL) {
- bailout("out of memory building methodDataOop");
- return;
- }
+ md = method->method_data_or_null();
+ assert(md != NULL, "Sanity");
data = md->bci_to_data(bci);
assert(data != NULL, "need data for type check");
assert(data->is_ReceiverTypeData(), "need ReceiverTypeData for type check");
@@ -1846,10 +1903,10 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
}
add_debug_info_for_null_check_here(op->info_for_exception());
- __ movptr(k_RInfo, Address(array, oopDesc::klass_offset_in_bytes()));
- __ movptr(klass_RInfo, Address(value, oopDesc::klass_offset_in_bytes()));
+ __ load_klass(k_RInfo, array);
+ __ load_klass(klass_RInfo, value);
- // get instance klass
+ // get instance klass (it's already uncompressed)
__ movptr(k_RInfo, Address(k_RInfo, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc)));
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, success_target, failure_target, NULL);
@@ -1868,7 +1925,7 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
Register mdo = klass_RInfo, recv = k_RInfo;
__ bind(profile_cast_success);
__ movoop(mdo, md->constant_encoding());
- __ movptr(recv, Address(value, oopDesc::klass_offset_in_bytes()));
+ __ load_klass(recv, value);
Label update_done;
type_profile_helper(mdo, md, data, recv, &done);
__ jmpb(done);
@@ -1932,15 +1989,32 @@ void LIR_Assembler::emit_compare_and_swap(LIR_OpCompareAndSwap* op) {
assert(cmpval != newval, "cmp and new values must be in different registers");
assert(cmpval != addr, "cmp and addr must be in different registers");
assert(newval != addr, "new value and addr must be in different registers");
- if (os::is_MP()) {
- __ lock();
- }
+
if ( op->code() == lir_cas_obj) {
- __ cmpxchgptr(newval, Address(addr, 0));
- } else if (op->code() == lir_cas_int) {
- __ cmpxchgl(newval, Address(addr, 0));
+#ifdef _LP64
+ if (UseCompressedOops) {
+ __ encode_heap_oop(cmpval);
+ __ mov(rscratch1, newval);
+ __ encode_heap_oop(rscratch1);
+ if (os::is_MP()) {
+ __ lock();
+ }
+ // cmpval (rax) is implicitly used by this instruction
+ __ cmpxchgl(rscratch1, Address(addr, 0));
+ } else
+#endif
+ {
+ if (os::is_MP()) {
+ __ lock();
+ }
+ __ cmpxchgptr(newval, Address(addr, 0));
+ }
} else {
- LP64_ONLY(__ cmpxchgq(newval, Address(addr, 0)));
+ assert(op->code() == lir_cas_int, "lir_cas_int expected");
+ if (os::is_MP()) {
+ __ lock();
+ }
+ __ cmpxchgl(newval, Address(addr, 0));
}
#ifdef _LP64
} else if (op->code() == lir_cas_long) {
@@ -1962,7 +2036,7 @@ void LIR_Assembler::emit_compare_and_swap(LIR_OpCompareAndSwap* op) {
}
}
-void LIR_Assembler::cmove(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, LIR_Opr result) {
+void LIR_Assembler::cmove(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, LIR_Opr result, BasicType type) {
Assembler::Condition acond, ncond;
switch (condition) {
case lir_cond_equal: acond = Assembler::equal; ncond = Assembler::notEqual; break;
@@ -3181,8 +3255,13 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
}
if (flags & LIR_OpArrayCopy::type_check) {
- __ movptr(tmp, src_klass_addr);
- __ cmpptr(tmp, dst_klass_addr);
+ if (UseCompressedOops) {
+ __ movl(tmp, src_klass_addr);
+ __ cmpl(tmp, dst_klass_addr);
+ } else {
+ __ movptr(tmp, src_klass_addr);
+ __ cmpptr(tmp, dst_klass_addr);
+ }
__ jcc(Assembler::notEqual, *stub->entry());
}
@@ -3197,13 +3276,23 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
// but not necessarily exactly of type default_type.
Label known_ok, halt;
__ movoop(tmp, default_type->constant_encoding());
+#ifdef _LP64
+ if (UseCompressedOops) {
+ __ encode_heap_oop(tmp);
+ }
+#endif
+
if (basic_type != T_OBJECT) {
- __ cmpptr(tmp, dst_klass_addr);
+
+ if (UseCompressedOops) __ cmpl(tmp, dst_klass_addr);
+ else __ cmpptr(tmp, dst_klass_addr);
__ jcc(Assembler::notEqual, halt);
- __ cmpptr(tmp, src_klass_addr);
+ if (UseCompressedOops) __ cmpl(tmp, src_klass_addr);
+ else __ cmpptr(tmp, src_klass_addr);
__ jcc(Assembler::equal, known_ok);
} else {
- __ cmpptr(tmp, dst_klass_addr);
+ if (UseCompressedOops) __ cmpl(tmp, dst_klass_addr);
+ else __ cmpptr(tmp, dst_klass_addr);
__ jcc(Assembler::equal, known_ok);
__ cmpptr(src, dst);
__ jcc(Assembler::equal, known_ok);
@@ -3277,11 +3366,8 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
int bci = op->profiled_bci();
// Update counter for all call types
- ciMethodData* md = method->method_data();
- if (md == NULL) {
- bailout("out of memory building methodDataOop");
- return;
- }
+ ciMethodData* md = method->method_data_or_null();
+ assert(md != NULL, "Sanity");
ciProfileData* data = md->bci_to_data(bci);
assert(data->is_CounterData(), "need CounterData for calls");
assert(op->mdo()->is_single_cpu(), "mdo must be allocated");
@@ -3332,7 +3418,7 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
}
}
} else {
- __ movptr(recv, Address(recv, oopDesc::klass_offset_in_bytes()));
+ __ load_klass(recv, recv);
Label update_done;
type_profile_helper(mdo, md, data, recv, &update_done);
// Receiver did not match any saved receiver and there is no empty row for it.
diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp
index f1b0ed88021..daccb39e0f2 100644
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP
+#define CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP
+
private:
Address::ScaleFactor array_element_size(BasicType type) const;
@@ -56,3 +59,5 @@ public:
exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(175),
deopt_handler_size = NOT_LP64(10) LP64_ONLY(17)
};
+
+#endif // CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
index 05df6bda708..cdea66f3866 100644
--- a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
@@ -22,8 +22,20 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c1_LIRGenerator_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_Compilation.hpp"
+#include "c1/c1_FrameMap.hpp"
+#include "c1/c1_Instruction.hpp"
+#include "c1/c1_LIRAssembler.hpp"
+#include "c1/c1_LIRGenerator.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "c1/c1_ValueStack.hpp"
+#include "ci/ciArray.hpp"
+#include "ci/ciObjArrayKlass.hpp"
+#include "ci/ciTypeArrayKlass.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "vmreg_x86.inline.hpp"
#ifdef ASSERT
#define __ gen()->lir(__FILE__, __LINE__)->
@@ -107,7 +119,7 @@ bool LIRGenerator::can_store_as_constant(Value v, BasicType type) const {
return false;
}
Constant* c = v->as_Constant();
- if (c && c->state() == NULL) {
+ if (c && c->state_before() == NULL) {
// constants of any type can be stored directly, except for
// unloaded object constants.
return true;
@@ -250,7 +262,7 @@ void LIRGenerator::store_stack_parameter (LIR_Opr item, ByteSize offset_from_sp)
void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
bool needs_range_check = true;
bool use_length = x->length() != NULL;
bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT;
@@ -325,7 +337,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
LIRItem obj(x->obj(), this);
obj.load_item();
@@ -341,7 +353,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
CodeEmitInfo* info_for_exception = NULL;
if (x->needs_null_check()) {
- info_for_exception = state_for(x, x->lock_stack_before());
+ info_for_exception = state_for(x);
}
// this CodeEmitInfo must not have the xhandlers because here the
// object is already locked (xhandlers expect object to be unlocked)
@@ -352,7 +364,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
void LIRGenerator::do_MonitorExit(MonitorExit* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
LIRItem obj(x->obj(), this);
obj.dont_load_item();
@@ -729,7 +741,7 @@ void LIRGenerator::do_AttemptUpdate(Intrinsic* x) {
// generate conditional move of boolean result
LIR_Opr result = rlock_result(x);
- __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result);
+ __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result, T_LONG);
}
@@ -798,7 +810,8 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
// generate conditional move of boolean result
LIR_Opr result = rlock_result(x);
- __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result);
+ __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0),
+ result, as_BasicType(type));
if (type == objectType) { // Write-barrier needed for Object fields.
// Seems to be precise
post_barrier(addr, val.result());
@@ -862,6 +875,10 @@ void LIRGenerator::do_MathIntrinsic(Intrinsic* x) {
void LIRGenerator::do_ArrayCopy(Intrinsic* x) {
assert(x->number_of_arguments() == 5, "wrong type");
+
+ // Make all state_for calls early since they can emit code
+ CodeEmitInfo* info = state_for(x, x->state());
+
LIRItem src(x->argument_at(0), this);
LIRItem src_pos(x->argument_at(1), this);
LIRItem dst(x->argument_at(2), this);
@@ -904,7 +921,6 @@ void LIRGenerator::do_ArrayCopy(Intrinsic* x) {
ciArrayKlass* expected_type;
arraycopy_helper(x, &flags, &expected_type);
- CodeEmitInfo* info = state_for(x, x->state()); // we may want to have stack (deoptimization?)
__ arraycopy(src.result(), src_pos.result(), dst.result(), dst_pos.result(), length.result(), tmp, expected_type, flags, info); // does add_safepoint
}
@@ -984,9 +1000,11 @@ void LIRGenerator::do_Convert(Convert* x) {
void LIRGenerator::do_NewInstance(NewInstance* x) {
+#ifndef PRODUCT
if (PrintNotLoaded && !x->klass()->is_loaded()) {
- tty->print_cr(" ###class not loaded at new bci %d", x->bci());
+ tty->print_cr(" ###class not loaded at new bci %d", x->printable_bci());
}
+#endif
CodeEmitInfo* info = state_for(x, x->state());
LIR_Opr reg = result_register_for(x->type());
LIR_Opr klass_reg = new_register(objectType);
@@ -1127,7 +1145,7 @@ void LIRGenerator::do_CheckCast(CheckCast* x) {
obj.load_item();
// info for exceptions
- CodeEmitInfo* info_for_exception = state_for(x, x->state()->copy_locks());
+ CodeEmitInfo* info_for_exception = state_for(x);
CodeStub* stub;
if (x->is_incompatible_class_change_check()) {
@@ -1137,9 +1155,12 @@ void LIRGenerator::do_CheckCast(CheckCast* x) {
stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
}
LIR_Opr reg = rlock_result(x);
+ LIR_Opr tmp3 = LIR_OprFact::illegalOpr;
+ if (!x->klass()->is_loaded() || UseCompressedOops) {
+ tmp3 = new_register(objectType);
+ }
__ checkcast(reg, obj.result(), x->klass(),
- new_register(objectType), new_register(objectType),
- !x->klass()->is_loaded() ? new_register(objectType) : LIR_OprFact::illegalOpr,
+ new_register(objectType), new_register(objectType), tmp3,
x->direct_compare(), info_for_exception, patching_info, stub,
x->profiled_method(), x->profiled_bci());
}
@@ -1156,9 +1177,12 @@ void LIRGenerator::do_InstanceOf(InstanceOf* x) {
patching_info = state_for(x, x->state_before());
}
obj.load_item();
+ LIR_Opr tmp3 = LIR_OprFact::illegalOpr;
+ if (!x->klass()->is_loaded() || UseCompressedOops) {
+ tmp3 = new_register(objectType);
+ }
__ instanceof(reg, obj.result(), x->klass(),
- new_register(objectType), new_register(objectType),
- !x->klass()->is_loaded() ? new_register(objectType) : LIR_OprFact::illegalOpr,
+ new_register(objectType), new_register(objectType), tmp3,
x->direct_compare(), patching_info, x->profiled_method(), x->profiled_bci());
}
diff --git a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp
index f1d005d6ace..0c19851b31f 100644
--- a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,10 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_c1_LinearScan_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_Instruction.hpp"
+#include "c1/c1_LinearScan.hpp"
+#include "utilities/bitMap.inline.hpp"
//----------------------------------------------------------------------
diff --git a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp
index 814d25eaf1a..efb2002fd65 100644
--- a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,24 +22,26 @@
*
*/
+#ifndef CPU_X86_VM_C1_LINEARSCAN_X86_HPP
+#define CPU_X86_VM_C1_LINEARSCAN_X86_HPP
+
inline bool LinearScan::is_processed_reg_num(int reg_num) {
#ifndef _LP64
// rsp and rbp (numbers 6 ancd 7) are ignored
assert(FrameMap::rsp_opr->cpu_regnr() == 6, "wrong assumption below");
assert(FrameMap::rbp_opr->cpu_regnr() == 7, "wrong assumption below");
assert(reg_num >= 0, "invalid reg_num");
-
- return reg_num < 6 || reg_num > 7;
#else
- // rsp and rbp, r10, r15 (numbers 6 ancd 7) are ignored
+ // rsp and rbp, r10, r15 (numbers [12,15]) are ignored
+ // r12 (number 11) is conditional on compressed oops.
+ assert(FrameMap::r12_opr->cpu_regnr() == 11, "wrong assumption below");
assert(FrameMap::r10_opr->cpu_regnr() == 12, "wrong assumption below");
assert(FrameMap::r15_opr->cpu_regnr() == 13, "wrong assumption below");
assert(FrameMap::rsp_opr->cpu_regnrLo() == 14, "wrong assumption below");
assert(FrameMap::rbp_opr->cpu_regnrLo() == 15, "wrong assumption below");
assert(reg_num >= 0, "invalid reg_num");
-
- return reg_num < 12 || reg_num > 15;
#endif // _LP64
+ return reg_num <= FrameMap::last_cpu_reg() || reg_num >= pd_nof_cpu_regs_frame_map;
}
inline int LinearScan::num_physical_regs(BasicType type) {
@@ -101,7 +103,7 @@ inline bool LinearScanWalker::pd_init_regs_for_alloc(Interval* cur) {
if (allocator()->gen()->is_vreg_flag_set(cur->reg_num(), LIRGenerator::byte_reg)) {
assert(cur->type() != T_FLOAT && cur->type() != T_DOUBLE, "cpu regs only");
_first_reg = pd_first_byte_reg;
- _last_reg = pd_last_byte_reg;
+ _last_reg = FrameMap::last_byte_reg();
return true;
} else if ((UseSSE >= 1 && cur->type() == T_FLOAT) || (UseSSE >= 2 && cur->type() == T_DOUBLE)) {
_first_reg = pd_first_xmm_reg;
@@ -185,3 +187,5 @@ class FpuStackAllocator VALUE_OBJ_CLASS_SPEC {
FpuStackAllocator(Compilation* compilation, LinearScan* allocator);
void allocate();
};
+
+#endif // CPU_X86_VM_C1_LINEARSCAN_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp
index b3d8c1f2e66..d386a99a096 100644
--- a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, 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,18 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_c1_MacroAssembler_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "gc_interface/collectedHeap.hpp"
+#include "interpreter/interpreter.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/markOop.hpp"
+#include "runtime/basicLock.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/os.hpp"
+#include "runtime/stubRoutines.hpp"
int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Register scratch, Label& slow_case) {
const int aligned_mask = BytesPerWord -1;
@@ -131,6 +141,7 @@ void C1_MacroAssembler::try_allocate(Register obj, Register var_size_in_bytes, i
tlab_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, t2, slow_case);
} else {
eden_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, slow_case);
+ incr_allocated_bytes(noreg, var_size_in_bytes, con_size_in_bytes, t1);
}
}
@@ -145,11 +156,26 @@ void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register
// This assumes that all prototype bits fit in an int32_t
movptr(Address(obj, oopDesc::mark_offset_in_bytes ()), (int32_t)(intptr_t)markOopDesc::prototype());
}
+#ifdef _LP64
+ if (UseCompressedOops) { // Take care not to kill klass
+ movptr(t1, klass);
+ encode_heap_oop_not_null(t1);
+ movl(Address(obj, oopDesc::klass_offset_in_bytes()), t1);
+ } else
+#endif
+ {
+ movptr(Address(obj, oopDesc::klass_offset_in_bytes()), klass);
+ }
- movptr(Address(obj, oopDesc::klass_offset_in_bytes()), klass);
if (len->is_valid()) {
movl(Address(obj, arrayOopDesc::length_offset_in_bytes()), len);
}
+#ifdef _LP64
+ else if (UseCompressedOops) {
+ xorptr(t1, t1);
+ store_klass_gap(obj, t1);
+ }
+#endif
}
@@ -209,7 +235,7 @@ void C1_MacroAssembler::initialize_body(Register obj, Register len_in_bytes, int
void C1_MacroAssembler::allocate_object(Register obj, Register t1, Register t2, int header_size, int object_size, Register klass, Label& slow_case) {
assert(obj == rax, "obj must be in rax, for cmpxchg");
- assert(obj != t1 && obj != t2 && t1 != t2, "registers must be different"); // XXX really?
+ assert_different_registers(obj, t1, t2); // XXX really?
assert(header_size >= 0 && object_size >= header_size, "illegal sizes");
try_allocate(obj, noreg, object_size * BytesPerWord, t1, t2, slow_case);
@@ -220,7 +246,7 @@ void C1_MacroAssembler::allocate_object(Register obj, Register t1, Register t2,
void C1_MacroAssembler::initialize_object(Register obj, Register klass, Register var_size_in_bytes, int con_size_in_bytes, Register t1, Register t2) {
assert((con_size_in_bytes & MinObjAlignmentInBytesMask) == 0,
"con_size_in_bytes is not multiple of alignment");
- const int hdr_size_in_bytes = instanceOopDesc::base_offset_in_bytes();
+ const int hdr_size_in_bytes = instanceOopDesc::header_size() * HeapWordSize;
initialize_header(obj, klass, noreg, t1, t2);
@@ -307,13 +333,19 @@ void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) {
// check against inline cache
assert(!MacroAssembler::needs_explicit_null_check(oopDesc::klass_offset_in_bytes()), "must add explicit null check");
int start_offset = offset();
- cmpptr(iCache, Address(receiver, oopDesc::klass_offset_in_bytes()));
+
+ if (UseCompressedOops) {
+ load_klass(rscratch1, receiver);
+ cmpptr(rscratch1, iCache);
+ } else {
+ cmpptr(iCache, Address(receiver, oopDesc::klass_offset_in_bytes()));
+ }
// if icache check fails, then jump to runtime routine
// Note: RECEIVER must still contain the receiver!
jump_cc(Assembler::notEqual,
RuntimeAddress(SharedRuntime::get_ic_miss_stub()));
const int ic_cmp_size = LP64_ONLY(10) NOT_LP64(9);
- assert(offset() - start_offset == ic_cmp_size, "check alignment in emit_method_entry");
+ assert(UseCompressedOops || offset() - start_offset == ic_cmp_size, "check alignment in emit_method_entry");
}
diff --git a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp
index 56765a34f85..c53937c78a0 100644
--- a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP
+#define CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP
+
// C1_MacroAssembler contains high-level macros for C1
private:
@@ -113,3 +116,5 @@
}
void invalidate_registers(bool inv_rax, bool inv_rbx, bool inv_rcx, bool inv_rdx, bool inv_rsi, bool inv_rdi) PRODUCT_RETURN;
+
+#endif // CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp
index 9c9341038ec..0a56804258d 100644
--- a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, 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,20 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_c1_Runtime1_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "c1/c1_Defs.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "c1/c1_Runtime1.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_x86.hpp"
+#include "oops/compiledICHolderOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "register_x86.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/signature.hpp"
+#include "runtime/vframeArray.hpp"
+#include "vmreg_x86.inline.hpp"
// Implementation of StubAssembler
@@ -965,7 +977,6 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// verify that that there is really a valid exception in rax,
__ verify_not_null_oop(exception_oop);
-
oop_maps = new OopMapSet();
OopMap* oop_map = generate_oop_map(sasm, 1);
generate_handle_exception(sasm, oop_maps, oop_map);
@@ -1025,13 +1036,16 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// if we got here then the TLAB allocation failed, so try
// refilling the TLAB or allocating directly from eden.
Label retry_tlab, try_eden;
- __ tlab_refill(retry_tlab, try_eden, slow_path); // does not destroy rdx (klass)
+ const Register thread =
+ __ tlab_refill(retry_tlab, try_eden, slow_path); // does not destroy rdx (klass), returns rdi
__ bind(retry_tlab);
// get the instance size (size is postive so movl is fine for 64bit)
__ movl(obj_size, Address(klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes()));
+
__ tlab_allocate(obj, obj_size, 0, t1, t2, slow_path);
+
__ initialize_object(obj, klass, obj_size, 0, t1, t2);
__ verify_oop(obj);
__ pop(rbx);
@@ -1041,7 +1055,10 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
__ bind(try_eden);
// get the instance size (size is postive so movl is fine for 64bit)
__ movl(obj_size, Address(klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes()));
+
__ eden_allocate(obj, obj_size, 0, t1, slow_path);
+ __ incr_allocated_bytes(thread, obj_size, 0);
+
__ initialize_object(obj, klass, obj_size, 0, t1, t2);
__ verify_oop(obj);
__ pop(rbx);
@@ -1131,12 +1148,13 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// if we got here then the TLAB allocation failed, so try
// refilling the TLAB or allocating directly from eden.
Label retry_tlab, try_eden;
- __ tlab_refill(retry_tlab, try_eden, slow_path); // preserves rbx, & rdx
+ const Register thread =
+ __ tlab_refill(retry_tlab, try_eden, slow_path); // preserves rbx & rdx, returns rdi
__ bind(retry_tlab);
// get the allocation size: round_up(hdr + length << (layout_helper & 0x1F))
- // since size is postive movl does right thing on 64bit
+ // since size is positive movl does right thing on 64bit
__ movl(t1, Address(klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes()));
// since size is postive movl does right thing on 64bit
__ movl(arr_size, length);
@@ -1163,7 +1181,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
__ bind(try_eden);
// get the allocation size: round_up(hdr + length << (layout_helper & 0x1F))
- // since size is postive movl does right thing on 64bit
+ // since size is positive movl does right thing on 64bit
__ movl(t1, Address(klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes()));
// since size is postive movl does right thing on 64bit
__ movl(arr_size, length);
@@ -1176,6 +1194,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
__ andptr(arr_size, ~MinObjAlignmentInBytesMask);
__ eden_allocate(obj, arr_size, 0, t1, slow_path); // preserves arr_size
+ __ incr_allocated_bytes(thread, arr_size, 0);
__ initialize_header(obj, klass, length, t1, t2);
__ movb(t1, Address(klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes() + (Klass::_lh_header_size_shift / BitsPerByte)));
@@ -1249,7 +1268,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// load the klass and check the has finalizer flag
Label register_finalizer;
Register t = rsi;
- __ movptr(t, Address(rax, oopDesc::klass_offset_in_bytes()));
+ __ load_klass(t, rax);
__ movl(t, Address(t, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc)));
__ testl(t, JVM_ACC_HAS_FINALIZER);
__ jcc(Assembler::notZero, register_finalizer);
diff --git a/hotspot/src/cpu/x86/vm/c1_globals_x86.hpp b/hotspot/src/cpu/x86/vm/c1_globals_x86.hpp
index f3700f33c7b..d6a5cc45c10 100644
--- a/hotspot/src/cpu/x86/vm/c1_globals_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c1_globals_x86.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_X86_VM_C1_GLOBALS_X86_HPP
+#define CPU_X86_VM_C1_GLOBALS_X86_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
// Sets the default values for platform dependent flags used by the client compiler.
// (see c1_globals.hpp)
@@ -60,3 +66,5 @@ define_pd_global(bool, CSEArrayLength, false);
define_pd_global(bool, TwoOperandLIRForm, true );
define_pd_global(intx, SafepointPollOffset, 256 );
+
+#endif // CPU_X86_VM_C1_GLOBALS_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp b/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp
index ae3029c4064..f41d722b42f 100644
--- a/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_X86_VM_C2_GLOBALS_X86_HPP
+#define CPU_X86_VM_C2_GLOBALS_X86_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
// Sets the default values for platform dependent flags used by the server compiler.
// (see c2_globals.hpp). Alpha-sorted.
@@ -87,3 +93,5 @@ define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M));
// Ergonomics related flags
define_pd_global(bool, NeverActAsServerClassMachine, false);
+
+#endif // CPU_X86_VM_C2_GLOBALS_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c2_init_x86.cpp b/hotspot/src/cpu/x86/vm/c2_init_x86.cpp
index 2d54e39c3d0..286fec21376 100644
--- a/hotspot/src/cpu/x86/vm/c2_init_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c2_init_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,9 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_c2_init_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "opto/compile.hpp"
+#include "opto/node.hpp"
// processor dependent initialization for i486
diff --git a/hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp b/hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp
index 3b304a2b031..7f20314ffca 100644
--- a/hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,13 @@
*
*/
+#ifndef CPU_X86_VM_CODEBUFFER_X86_HPP
+#define CPU_X86_VM_CODEBUFFER_X86_HPP
+
private:
void pd_initialize() {}
public:
void flush_bundle(bool start_new_bundle) {}
+
+#endif // CPU_X86_VM_CODEBUFFER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/copy_x86.hpp b/hotspot/src/cpu/x86/vm/copy_x86.hpp
index 32229c5a695..dbadb0e9f9e 100644
--- a/hotspot/src/cpu/x86/vm/copy_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/copy_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,10 +22,22 @@
*
*/
+#ifndef CPU_X86_VM_COPY_X86_HPP
+#define CPU_X86_VM_COPY_X86_HPP
+
// Inline functions for memory copy and fill.
// Contains inline asm implementations
-#include "incls/_copy_pd.inline.hpp.incl"
+#ifdef TARGET_OS_ARCH_linux_x86
+# include "copy_linux_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_solaris_x86
+# include "copy_solaris_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_windows_x86
+# include "copy_windows_x86.inline.hpp"
+#endif
+
static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) {
#ifdef AMD64
@@ -58,3 +70,5 @@ static void pd_zero_to_words(HeapWord* tohw, size_t count) {
static void pd_zero_to_bytes(void* to, size_t count) {
(void)memset(to, 0, count);
}
+
+#endif // CPU_X86_VM_COPY_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp b/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp
index a6d1596911c..8f5bdd7d4ab 100644
--- a/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP
+#define CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP
+
protected:
#if 0
@@ -45,3 +48,5 @@
const Register prev_state,
const Register sender_sp,
bool native); // C++ interpreter only
+
+#endif // CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp
index e68219ec2cb..936bde4d811 100644
--- a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, 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,32 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_cppInterpreter_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/cppInterpreter.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+#ifdef SHARK
+#include "shark/shark_globals.hpp"
+#endif
#ifdef CC_INTERP
diff --git a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp
index 6fda06cb3fe..797fcebe385 100644
--- a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_CPPINTERPRETER_X86_HPP
+#define CPU_X86_VM_CPPINTERPRETER_X86_HPP
+
protected:
@@ -31,3 +34,5 @@
// Run with +PrintInterpreter to get the VM to print out the size.
// Max size with JVMTI
const static int InterpreterCodeSize = 168 * 1024;
+
+#endif // CPU_X86_VM_CPPINTERPRETER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/debug_x86.cpp b/hotspot/src/cpu/x86/vm/debug_x86.cpp
index 0169c28395e..b128439ef23 100644
--- a/hotspot/src/cpu/x86/vm/debug_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/debug_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,7 +22,13 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_debug_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "code/codeCache.hpp"
+#include "code/nmethod.hpp"
+#include "runtime/frame.hpp"
+#include "runtime/init.hpp"
+#include "runtime/os.hpp"
+#include "utilities/debug.hpp"
+#include "utilities/top.hpp"
void pd_ps(frame f) {}
diff --git a/hotspot/src/cpu/x86/vm/depChecker_x86.cpp b/hotspot/src/cpu/x86/vm/depChecker_x86.cpp
index 9277100d15f..f00d6453137 100644
--- a/hotspot/src/cpu/x86/vm/depChecker_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/depChecker_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,7 +22,8 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_depChecker_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "compiler/disassembler.hpp"
+#include "depChecker_x86.hpp"
// Nothing to do on i486
diff --git a/hotspot/src/cpu/x86/vm/depChecker_x86.hpp b/hotspot/src/cpu/x86/vm/depChecker_x86.hpp
index a9aeec14d8a..5654bbd12d4 100644
--- a/hotspot/src/cpu/x86/vm/depChecker_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/depChecker_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,4 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_DEPCHECKER_X86_HPP
+#define CPU_X86_VM_DEPCHECKER_X86_HPP
+
// Nothing to do on i486
+
+#endif // CPU_X86_VM_DEPCHECKER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/disassembler_x86.hpp b/hotspot/src/cpu/x86/vm/disassembler_x86.hpp
index d597da8bbe2..a3b74bac422 100644
--- a/hotspot/src/cpu/x86/vm/disassembler_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/disassembler_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_DISASSEMBLER_X86_HPP
+#define CPU_X86_VM_DISASSEMBLER_X86_HPP
+
static int pd_instruction_alignment() {
return 1;
}
@@ -29,3 +32,5 @@
static const char* pd_cpu_opts() {
return "";
}
+
+#endif // CPU_X86_VM_DISASSEMBLER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/dump_x86_32.cpp b/hotspot/src/cpu/x86/vm/dump_x86_32.cpp
index 057d47db1e8..a9e9ff0d91f 100644
--- a/hotspot/src/cpu/x86/vm/dump_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/dump_x86_32.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_dump_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_x86.inline.hpp"
+#include "memory/compactingPermGenGen.hpp"
+#include "memory/generation.inline.hpp"
+#include "memory/space.inline.hpp"
diff --git a/hotspot/src/cpu/x86/vm/dump_x86_64.cpp b/hotspot/src/cpu/x86/vm/dump_x86_64.cpp
index cc3a4ade2d2..b74d2ed72d0 100644
--- a/hotspot/src/cpu/x86/vm/dump_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/dump_x86_64.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_dump_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_x86.inline.hpp"
+#include "memory/compactingPermGenGen.hpp"
+#include "memory/generation.inline.hpp"
+#include "memory/space.inline.hpp"
diff --git a/hotspot/src/cpu/x86/vm/frame_x86.cpp b/hotspot/src/cpu/x86/vm/frame_x86.cpp
index a41ff1dbe3a..8f1585fb9fc 100644
--- a/hotspot/src/cpu/x86/vm/frame_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp
@@ -22,8 +22,24 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_frame_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/markOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/monitorChunk.hpp"
+#include "runtime/signature.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "vmreg_x86.inline.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#include "runtime/vframeArray.hpp"
+#endif
#ifdef ASSERT
void RegisterMap::check_location_valid() {
diff --git a/hotspot/src/cpu/x86/vm/frame_x86.hpp b/hotspot/src/cpu/x86/vm/frame_x86.hpp
index 8bb73797ba4..d949e250c59 100644
--- a/hotspot/src/cpu/x86/vm/frame_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/frame_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,12 @@
*
*/
+#ifndef CPU_X86_VM_FRAME_X86_HPP
+#define CPU_X86_VM_FRAME_X86_HPP
+
+#include "runtime/synchronizer.hpp"
+#include "utilities/top.hpp"
+
// A frame represents a physical stack frame (an activation). Frames can be
// C or Java frames, and the Java frames can be interpreted or compiled.
// In contrast, vframes represent source-level activations, so that one physical frame
@@ -199,3 +205,5 @@
#ifdef CC_INTERP
inline interpreterState get_interpreterState() const;
#endif // CC_INTERP
+
+#endif // CPU_X86_VM_FRAME_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp
index 0f4881c2b9a..bb9ac15cb31 100644
--- a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp
+++ b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_FRAME_X86_INLINE_HPP
+#define CPU_X86_VM_FRAME_X86_INLINE_HPP
+
// Inline functions for Intel frames:
// Constructors:
@@ -296,3 +299,5 @@ inline oop frame::saved_oop_result(RegisterMap* map) const {
inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) {
*((oop*) map->location(rax->as_VMReg())) = obj;
}
+
+#endif // CPU_X86_VM_FRAME_X86_INLINE_HPP
diff --git a/hotspot/src/cpu/x86/vm/globalDefinitions_x86.hpp b/hotspot/src/cpu/x86/vm/globalDefinitions_x86.hpp
index 3a339086201..1c032e632b2 100644
--- a/hotspot/src/cpu/x86/vm/globalDefinitions_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/globalDefinitions_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,4 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP
+#define CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP
+
const int StackAlignmentInBytes = 16;
+
+#endif // CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/globals_x86.hpp b/hotspot/src/cpu/x86/vm/globals_x86.hpp
index 307762d866b..41917378b56 100644
--- a/hotspot/src/cpu/x86/vm/globals_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/globals_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,12 @@
*
*/
+#ifndef CPU_X86_VM_GLOBALS_X86_HPP
+#define CPU_X86_VM_GLOBALS_X86_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
// Sets the default values for platform dependent flags used by the runtime system.
// (see globals.hpp)
@@ -63,3 +69,7 @@ define_pd_global(intx, PreInflateSpin, 10);
define_pd_global(bool, RewriteBytecodes, true);
define_pd_global(bool, RewriteFrequentPairs, true);
+
+define_pd_global(bool, UseMembar, false);
+
+#endif // CPU_X86_VM_GLOBALS_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/icBuffer_x86.cpp b/hotspot/src/cpu/x86/vm/icBuffer_x86.cpp
index a21a764d625..992a67947cf 100644
--- a/hotspot/src/cpu/x86/vm/icBuffer_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/icBuffer_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,16 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_icBuffer_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "code/icBuffer.hpp"
+#include "gc_interface/collectedHeap.inline.hpp"
+#include "interpreter/bytecodes.hpp"
+#include "memory/resourceArea.hpp"
+#include "nativeInst_x86.hpp"
+#include "oops/oop.inline.hpp"
+#include "oops/oop.inline2.hpp"
int InlineCacheBuffer::ic_stub_code_size() {
return NativeMovConstReg::instruction_size +
diff --git a/hotspot/src/cpu/x86/vm/icache_x86.cpp b/hotspot/src/cpu/x86/vm/icache_x86.cpp
index a03d9a32945..91d4f4da1c1 100644
--- a/hotspot/src/cpu/x86/vm/icache_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/icache_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_icache_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_x86.inline.hpp"
+#include "runtime/icache.hpp"
#define __ _masm->
diff --git a/hotspot/src/cpu/x86/vm/icache_x86.hpp b/hotspot/src/cpu/x86/vm/icache_x86.hpp
index 3c446979d87..e02b1031073 100644
--- a/hotspot/src/cpu/x86/vm/icache_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/icache_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_ICACHE_X86_HPP
+#define CPU_X86_VM_ICACHE_X86_HPP
+
// Interface for updating the instruction cache. Whenever the VM modifies
// code, part of the processor instruction cache potentially has to be flushed.
@@ -53,3 +56,5 @@ class ICache : public AbstractICache {
};
#endif // AMD64
};
+
+#endif // CPU_X86_VM_ICACHE_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp
index 013c6c03739..6cc321b5576 100644
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp
@@ -22,8 +22,29 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interp_masm_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "interp_masm_x86_32.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/markOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiRedefineClassesTrace.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/basicLock.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/sharedRuntime.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_windows
+# include "thread_windows.inline.hpp"
+#endif
// Implementation of InterpreterMacroAssembler
diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp
index 600f0566f7d..404b4d5723b 100644
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_X86_VM_INTERP_MASM_X86_32_HPP
+#define CPU_X86_VM_INTERP_MASM_X86_32_HPP
+
+#include "assembler_x86.inline.hpp"
+#include "interpreter/invocationCounter.hpp"
+
// This file specializes the assember with interpreter-specific macros
@@ -227,3 +233,5 @@ class InterpreterMacroAssembler: public MacroAssembler {
void notify_method_exit(TosState state, NotifyMethodExitMode mode);
};
+
+#endif // CPU_X86_VM_INTERP_MASM_X86_32_HPP
diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp
index 6392742aac5..a156d24d66a 100644
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp
@@ -22,8 +22,29 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interp_masm_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "interp_masm_x86_64.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/markOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiRedefineClassesTrace.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/basicLock.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/sharedRuntime.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_windows
+# include "thread_windows.inline.hpp"
+#endif
// Implementation of InterpreterMacroAssembler
@@ -428,10 +449,9 @@ void InterpreterMacroAssembler::jump_from_interpreted(Register method, Register
// JVMTI events, such as single-stepping, are implemented partly by avoiding running
// compiled code in threads for which the event is enabled. Check here for
// interp_only_mode if these events CAN be enabled.
- get_thread(temp);
// interp_only is an int, on little endian it is sufficient to test the byte only
- // Is a cmpl faster (ce
- cmpb(Address(temp, JavaThread::interp_only_mode_offset()), 0);
+ // Is a cmpl faster?
+ cmpb(Address(r15_thread, JavaThread::interp_only_mode_offset()), 0);
jcc(Assembler::zero, run_compiled_code);
jmp(Address(method, methodOopDesc::interpreter_entry_offset()));
bind(run_compiled_code);
diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp
index 6f485952580..62539a73548 100644
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_X86_VM_INTERP_MASM_X86_64_HPP
+#define CPU_X86_VM_INTERP_MASM_X86_64_HPP
+
+#include "assembler_x86.inline.hpp"
+#include "interpreter/invocationCounter.hpp"
+
// This file specializes the assember with interpreter-specific macros
@@ -243,3 +249,5 @@ class InterpreterMacroAssembler: public MacroAssembler {
void notify_method_entry();
void notify_method_exit(TosState state, NotifyMethodExitMode mode);
};
+
+#endif // CPU_X86_VM_INTERP_MASM_X86_64_HPP
diff --git a/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp b/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp
index e12ab0c850a..7f92fbd15c5 100644
--- a/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP
+#define CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP
+
// Generation of Interpreter
//
@@ -41,3 +44,5 @@
void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue);
void generate_counter_overflow(Label* do_continue);
+
+#endif // CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp b/hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp
index debe9c5c379..f35f0122d43 100644
--- a/hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,11 @@
*
*/
+#ifndef CPU_X86_VM_INTERPRETERRT_X86_HPP
+#define CPU_X86_VM_INTERPRETERRT_X86_HPP
+
+#include "memory/allocation.hpp"
+
// native method calls
class SignatureHandlerGenerator: public NativeSignatureIterator {
@@ -72,3 +77,5 @@ class SignatureHandlerGenerator: public NativeSignatureIterator {
static Register to();
static Register temp();
};
+
+#endif // CPU_X86_VM_INTERPRETERRT_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp b/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp
index ab70515a69f..05b3ded09e1 100644
--- a/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp
@@ -22,8 +22,17 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreterRT_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/universe.inline.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/icache.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/signature.hpp"
#define __ _masm->
diff --git a/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp b/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp
index 1a362b7b9bf..c3a1f5413d1 100644
--- a/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp
@@ -22,8 +22,17 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreterRT_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/universe.inline.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/icache.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/signature.hpp"
#define __ _masm->
diff --git a/hotspot/src/cpu/x86/vm/interpreter_x86.hpp b/hotspot/src/cpu/x86/vm/interpreter_x86.hpp
index 7c0cd214ff9..105a4038ced 100644
--- a/hotspot/src/cpu/x86/vm/interpreter_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/interpreter_x86.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_INTERPRETER_X86_HPP
+#define CPU_X86_VM_INTERPRETER_X86_HPP
+
public:
// Sentinel placed in the code for interpreter returns so
@@ -44,3 +47,5 @@
assert(i <= 0, "local direction already negated");
return stackElementWords * i;
}
+
+#endif // CPU_X86_VM_INTERPRETER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp b/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp
index 0dc6ffab9a2..d5424c63c58 100644
--- a/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp
@@ -22,8 +22,32 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreter_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
#define __ _masm->
diff --git a/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp b/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp
index 4c221d9e97e..373379663a8 100644
--- a/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,32 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreter_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
#define __ _masm->
diff --git a/hotspot/src/cpu/x86/vm/javaFrameAnchor_x86.hpp b/hotspot/src/cpu/x86/vm/javaFrameAnchor_x86.hpp
index d78bead14cb..77298e53770 100644
--- a/hotspot/src/cpu/x86/vm/javaFrameAnchor_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/javaFrameAnchor_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP
+#define CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP
+
private:
// FP value associated with _last_Java_sp:
@@ -79,3 +82,5 @@ public:
intptr_t* last_Java_fp(void) { return _last_Java_fp; }
// Assert (last_Java_sp == NULL || fp == NULL)
void set_last_Java_fp(intptr_t* fp) { _last_Java_fp = fp; }
+
+#endif // CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp
index 0a63657dcb4..57edd9b195b 100644
--- a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp
@@ -22,8 +22,12 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_jniFastGetField_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_x86.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm_misc.hpp"
+#include "runtime/safepoint.hpp"
#define __ masm->
diff --git a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp
index f07ae42e1a8..8b0d2e6fa6f 100644
--- a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp
@@ -22,8 +22,12 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_jniFastGetField_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_x86.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm_misc.hpp"
+#include "runtime/safepoint.hpp"
#define __ masm->
diff --git a/hotspot/src/cpu/x86/vm/jniTypes_x86.hpp b/hotspot/src/cpu/x86/vm/jniTypes_x86.hpp
index d858ad136ef..170cd6e3adc 100644
--- a/hotspot/src/cpu/x86/vm/jniTypes_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/jniTypes_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,13 @@
*
*/
+#ifndef CPU_X86_VM_JNITYPES_X86_HPP
+#define CPU_X86_VM_JNITYPES_X86_HPP
+
+#include "memory/allocation.hpp"
+#include "oops/oop.hpp"
+#include "prims/jni.h"
+
// This file holds platform-dependent routines used to write primitive jni
// types to the array of arguments passed into JavaCalls::call
@@ -122,3 +129,5 @@ public:
static inline jdouble get_double(intptr_t *from) { return *(jdouble *)(from + _JNI_SLOT_OFFSET); }
#undef _JNI_SLOT_OFFSET
};
+
+#endif // CPU_X86_VM_JNITYPES_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/jni_x86.h b/hotspot/src/cpu/x86/vm/jni_x86.h
index 887afbdd099..c6d322f2b24 100644
--- a/hotspot/src/cpu/x86/vm/jni_x86.h
+++ b/hotspot/src/cpu/x86/vm/jni_x86.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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
diff --git a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp
index e8cd888cd71..f92beb4839f 100644
--- a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp
@@ -22,8 +22,10 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_methodHandles_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "memory/allocation.inline.hpp"
+#include "prims/methodHandles.hpp"
#define __ _masm->
@@ -123,11 +125,9 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
}
// given the MethodType, find out where the MH argument is buried
- __ movptr(rdx_temp, Address(rax_mtype,
- __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
+ __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
Register rdx_vmslots = rdx_temp;
- __ movl(rdx_vmslots, Address(rdx_temp,
- __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, rdi_temp)));
+ __ movl(rdx_vmslots, Address(rdx_temp, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, rdi_temp)));
__ movptr(rcx_recv, __ argument_address(rdx_vmslots));
trace_method_handle(_masm, "invokeExact");
@@ -154,20 +154,18 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
rcx_argslot, rbx_temp, rdx_temp);
// load up an adapter from the calling type (Java weaves this)
- __ movptr(rdx_temp, Address(rax_mtype,
- __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
+ __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
Register rdx_adapter = rdx_temp;
- // movptr(rdx_adapter, Address(rdx_temp, java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes()));
+ // __ load_heap_oop(rdx_adapter, Address(rdx_temp, java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes()));
// deal with old JDK versions:
- __ lea(rdi_temp, Address(rdx_temp,
- __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, rdi_temp)));
+ __ lea(rdi_temp, Address(rdx_temp, __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, rdi_temp)));
__ cmpptr(rdi_temp, rdx_temp);
Label sorry_no_invoke_generic;
- __ jccb(Assembler::below, sorry_no_invoke_generic);
+ __ jcc(Assembler::below, sorry_no_invoke_generic);
- __ movptr(rdx_adapter, Address(rdi_temp, 0));
+ __ load_heap_oop(rdx_adapter, Address(rdi_temp, 0));
__ testptr(rdx_adapter, rdx_adapter);
- __ jccb(Assembler::zero, sorry_no_invoke_generic);
+ __ jcc(Assembler::zero, sorry_no_invoke_generic);
__ movptr(Address(rcx_argslot, 1 * Interpreter::stackElementSize), rdx_adapter);
// As a trusted first argument, pass the type being called, so the adapter knows
// the actual types of the arguments and return values.
@@ -346,7 +344,7 @@ void trace_method_handle_stub(const char* adaptername,
if (stack_dump_count > 64) stack_dump_count = 48;
for (i = 0; i < stack_dump_count; i += 4) {
printf(" dump at SP[%d] "INTPTR_FORMAT": "INTPTR_FORMAT" "INTPTR_FORMAT" "INTPTR_FORMAT" "INTPTR_FORMAT"\n",
- i, &entry_sp[i+0], entry_sp[i+0], entry_sp[i+1], entry_sp[i+2], entry_sp[i+3]);
+ i, (intptr_t) &entry_sp[i+0], entry_sp[i+0], entry_sp[i+1], entry_sp[i+2], entry_sp[i+3]);
}
print_method_handle(mh);
}
@@ -387,9 +385,12 @@ int MethodHandles::adapter_conversion_ops_supported_mask() {
// FIXME: MethodHandlesTest gets a crash if we enable OP_SPREAD_ARGS.
}
+//------------------------------------------------------------------------------
+// MethodHandles::generate_method_handle_stub
+//
// Generate an "entry" field for a method handle.
// This determines how the method handle will respond to calls.
-void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHandles::EntryKind ek) {
+void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHandles::EntryKind ek, TRAPS) {
// Here is the register state during an interpreted call,
// as set up by generate_method_handle_interpreter_entry():
// - rbx: garbage temp (was MethodHandle.invoke methodOop, unused)
@@ -398,14 +399,21 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
// - rsi/r13: sender SP (must preserve; see prepare_to_jump_from_interpreted)
// - rdx: garbage temp, can blow away
- Register rcx_recv = rcx;
- Register rax_argslot = rax;
- Register rbx_temp = rbx;
- Register rdx_temp = rdx;
+ const Register rcx_recv = rcx;
+ const Register rax_argslot = rax;
+ const Register rbx_temp = rbx;
+ const Register rdx_temp = rdx;
// This guy is set up by prepare_to_jump_from_interpreted (from interpreted calls)
// and gen_c2i_adapter (from compiled calls):
- Register saved_last_sp = LP64_ONLY(r13) NOT_LP64(rsi);
+ const Register saved_last_sp = LP64_ONLY(r13) NOT_LP64(rsi);
+
+ // Argument registers for _raise_exception.
+ // 32-bit: Pass first two oop/int args in registers ECX and EDX.
+ const Register rarg0_code = LP64_ONLY(j_rarg0) NOT_LP64(rcx);
+ const Register rarg1_actual = LP64_ONLY(j_rarg1) NOT_LP64(rdx);
+ const Register rarg2_required = LP64_ONLY(j_rarg2) NOT_LP64(rdi);
+ assert_different_registers(rarg0_code, rarg1_actual, rarg2_required, saved_last_sp);
guarantee(java_dyn_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
@@ -431,7 +439,6 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
}
address interp_entry = __ pc();
- if (UseCompressedOops) __ unimplemented("UseCompressedOops");
trace_method_handle(_masm, entry_name(ek));
@@ -440,47 +447,41 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
switch ((int) ek) {
case _raise_exception:
{
- // Not a real MH entry, but rather shared code for raising an exception.
- // Extra local arguments are pushed on stack, as required type at TOS+8,
- // failing object (or NULL) at TOS+4, failing bytecode type at TOS.
- // Beyond those local arguments are the PC, of course.
- Register rdx_code = rdx_temp;
- Register rcx_fail = rcx_recv;
- Register rax_want = rax_argslot;
- Register rdi_pc = rdi;
- __ pop(rdx_code); // TOS+0
- __ pop(rcx_fail); // TOS+4
- __ pop(rax_want); // TOS+8
- __ pop(rdi_pc); // caller PC
+ // Not a real MH entry, but rather shared code for raising an
+ // exception. Since we use a C2I adapter to set up the
+ // interpreter state, arguments are expected in compiler
+ // argument registers.
+ methodHandle mh(raise_exception_method());
+ address c2i_entry = methodOopDesc::make_adapters(mh, CHECK);
- __ mov(rsp, rsi); // cut the stack back to where the caller started
-
- // Repush the arguments as if coming from the interpreter.
- __ push(rdx_code);
- __ push(rcx_fail);
- __ push(rax_want);
+ const Register rdi_pc = rax;
+ __ pop(rdi_pc); // caller PC
+ __ mov(rsp, saved_last_sp); // cut the stack back to where the caller started
Register rbx_method = rbx_temp;
- Label no_method;
+ Label L_no_method;
// FIXME: fill in _raise_exception_method with a suitable sun.dyn method
__ movptr(rbx_method, ExternalAddress((address) &_raise_exception_method));
__ testptr(rbx_method, rbx_method);
- __ jccb(Assembler::zero, no_method);
- int jobject_oop_offset = 0;
+ __ jccb(Assembler::zero, L_no_method);
+
+ const int jobject_oop_offset = 0;
__ movptr(rbx_method, Address(rbx_method, jobject_oop_offset)); // dereference the jobject
__ testptr(rbx_method, rbx_method);
- __ jccb(Assembler::zero, no_method);
+ __ jccb(Assembler::zero, L_no_method);
__ verify_oop(rbx_method);
- __ push(rdi_pc); // and restore caller PC
- __ jmp(rbx_method_fie);
+
+ // 32-bit: push remaining arguments as if coming from the compiler.
+ NOT_LP64(__ push(rarg2_required));
+
+ __ push(rdi_pc); // restore caller PC
+ __ jump(ExternalAddress(c2i_entry)); // do C2I transition
// If we get here, the Java runtime did not do its job of creating the exception.
// Do something that is at least causes a valid throw from the interpreter.
- __ bind(no_method);
- __ pop(rax_want);
- __ pop(rcx_fail);
- __ push(rax_want);
- __ push(rcx_fail);
+ __ bind(L_no_method);
+ __ push(rarg2_required);
+ __ push(rarg1_actual);
__ jump(ExternalAddress(Interpreter::throw_WrongMethodType_entry()));
}
break;
@@ -489,7 +490,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
case _invokespecial_mh:
{
Register rbx_method = rbx_temp;
- __ movptr(rbx_method, rcx_mh_vmtarget); // target is a methodOop
+ __ load_heap_oop(rbx_method, rcx_mh_vmtarget); // target is a methodOop
__ verify_oop(rbx_method);
// same as TemplateTable::invokestatic or invokespecial,
// minus the CP setup and profiling:
@@ -546,8 +547,8 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
__ load_method_handle_vmslots(rax_argslot, rcx_recv, rdx_temp);
Register rdx_intf = rdx_temp;
Register rbx_index = rbx_temp;
- __ movptr(rdx_intf, rcx_mh_vmtarget);
- __ movl(rbx_index, rcx_dmh_vmindex);
+ __ load_heap_oop(rdx_intf, rcx_mh_vmtarget);
+ __ movl(rbx_index, rcx_dmh_vmindex);
__ movptr(rcx_recv, __ argument_address(rax_argslot, -1));
__ null_check(rcx_recv, oopDesc::klass_offset_in_bytes());
@@ -575,9 +576,11 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
__ bind(no_such_interface);
// Throw an exception.
// For historical reasons, it will be IncompatibleClassChangeError.
- __ pushptr(Address(rdx_intf, java_mirror_offset)); // required interface
- __ push(rcx_recv); // bad receiver
- __ push((int)Bytecodes::_invokeinterface); // who is complaining?
+ __ mov(rbx_temp, rcx_recv); // rarg2_required might be RCX
+ assert_different_registers(rarg2_required, rbx_temp);
+ __ movptr(rarg2_required, Address(rdx_intf, java_mirror_offset)); // required interface
+ __ mov( rarg1_actual, rbx_temp); // bad receiver
+ __ movl( rarg0_code, (int) Bytecodes::_invokeinterface); // who is complaining?
__ jump(ExternalAddress(from_interpreted_entry(_raise_exception)));
}
break;
@@ -602,7 +605,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
rax_argslot, rbx_temp, rdx_temp);
// store bound argument into the new stack slot:
- __ movptr(rbx_temp, rcx_bmh_argument);
+ __ load_heap_oop(rbx_temp, rcx_bmh_argument);
Address prim_value_addr(rbx_temp, java_lang_boxing_object::value_offset_in_bytes(arg_type));
if (arg_type == T_OBJECT) {
__ movptr(Address(rax_argslot, 0), rbx_temp);
@@ -620,11 +623,11 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
if (direct_to_method) {
Register rbx_method = rbx_temp;
- __ movptr(rbx_method, rcx_mh_vmtarget);
+ __ load_heap_oop(rbx_method, rcx_mh_vmtarget);
__ verify_oop(rbx_method);
__ jmp(rbx_method_fie);
} else {
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ verify_oop(rcx_recv);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
@@ -634,7 +637,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
case _adapter_retype_only:
case _adapter_retype_raw:
// immediately jump to the next MH layer:
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ verify_oop(rcx_recv);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
// This is OK when all parameter types widen.
@@ -651,13 +654,13 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
vmarg = __ argument_address(rax_argslot);
// What class are we casting to?
- __ movptr(rbx_klass, rcx_amh_argument); // this is a Class object!
- __ movptr(rbx_klass, Address(rbx_klass, java_lang_Class::klass_offset_in_bytes()));
+ __ load_heap_oop(rbx_klass, rcx_amh_argument); // this is a Class object!
+ __ load_heap_oop(rbx_klass, Address(rbx_klass, java_lang_Class::klass_offset_in_bytes()));
Label done;
__ movptr(rdx_temp, vmarg);
__ testptr(rdx_temp, rdx_temp);
- __ jccb(Assembler::zero, done); // no cast if null
+ __ jcc(Assembler::zero, done); // no cast if null
__ load_klass(rdx_temp, rdx_temp);
// live at this point:
@@ -672,14 +675,15 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
__ movl(rax_argslot, rcx_amh_vmargslot); // reload argslot field
__ movptr(rdx_temp, vmarg);
- __ pushptr(rcx_amh_argument); // required class
- __ push(rdx_temp); // bad object
- __ push((int)Bytecodes::_checkcast); // who is complaining?
+ assert_different_registers(rarg2_required, rdx_temp);
+ __ load_heap_oop(rarg2_required, rcx_amh_argument); // required class
+ __ mov( rarg1_actual, rdx_temp); // bad object
+ __ movl( rarg0_code, (int) Bytecodes::_checkcast); // who is complaining?
__ jump(ExternalAddress(from_interpreted_entry(_raise_exception)));
__ bind(done);
// get the new MH:
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -741,7 +745,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
assert(CONV_VMINFO_SHIFT == 0, "preshifted");
// get the new MH:
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
// (now we are done with the old MH)
// original 32-bit vmdata word must be of this form:
@@ -816,7 +820,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
ShouldNotReachHere();
}
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -858,7 +862,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
rax_argslot, rbx_temp, rdx_temp);
}
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -969,7 +973,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
}
}
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -1029,7 +1033,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
__ pop(rdi); // restore temp
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -1052,7 +1056,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
__ pop(rdi); // restore temp
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -1103,8 +1107,8 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
// Check the array type.
Register rbx_klass = rbx_temp;
- __ movptr(rbx_klass, rcx_amh_argument); // this is a Class object!
- __ movptr(rbx_klass, Address(rbx_klass, java_lang_Class::klass_offset_in_bytes()));
+ __ load_heap_oop(rbx_klass, rcx_amh_argument); // this is a Class object!
+ __ load_heap_oop(rbx_klass, Address(rbx_klass, java_lang_Class::klass_offset_in_bytes()));
Label ok_array_klass, bad_array_klass, bad_array_length;
__ check_klass_subtype(rdx_array_klass, rbx_klass, rdi, ok_array_klass);
@@ -1186,21 +1190,23 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
// Arguments are spread. Move to next method handle.
UNPUSH_RSI_RDI;
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
__ bind(bad_array_klass);
UNPUSH_RSI_RDI;
- __ pushptr(Address(rdx_array_klass, java_mirror_offset)); // required type
- __ pushptr(vmarg); // bad array
- __ push((int)Bytecodes::_aaload); // who is complaining?
+ assert(!vmarg.uses(rarg2_required), "must be different registers");
+ __ movptr(rarg2_required, Address(rdx_array_klass, java_mirror_offset)); // required type
+ __ movptr(rarg1_actual, vmarg); // bad array
+ __ movl( rarg0_code, (int) Bytecodes::_aaload); // who is complaining?
__ jump(ExternalAddress(from_interpreted_entry(_raise_exception)));
__ bind(bad_array_length);
UNPUSH_RSI_RDI;
- __ push(rcx_recv); // AMH requiring a certain length
- __ pushptr(vmarg); // bad array
- __ push((int)Bytecodes::_arraylength); // who is complaining?
+ assert(!vmarg.uses(rarg2_required), "must be different registers");
+ __ mov (rarg2_required, rcx_recv); // AMH requiring a certain length
+ __ movptr(rarg1_actual, vmarg); // bad array
+ __ movl( rarg0_code, (int) Bytecodes::_arraylength); // who is complaining?
__ jump(ExternalAddress(from_interpreted_entry(_raise_exception)));
#undef UNPUSH_RSI_RDI
diff --git a/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp b/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp
index 1c68f604864..7ec07737f61 100644
--- a/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,18 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_nativeInst_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_x86.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "nativeInst_x86.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/handles.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "utilities/ostream.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
void NativeInstruction::wrote(int offset) {
ICache::invalidate_word(addr_at(offset));
diff --git a/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp b/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp
index b99aacab5fd..d41bcccdb31 100644
--- a/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,15 @@
*
*/
+#ifndef CPU_X86_VM_NATIVEINST_X86_HPP
+#define CPU_X86_VM_NATIVEINST_X86_HPP
+
+#include "asm/assembler.hpp"
+#include "memory/allocation.hpp"
+#include "runtime/icache.hpp"
+#include "runtime/os.hpp"
+#include "utilities/top.hpp"
+
// We have interfaces for the following instructions:
// - NativeInstruction
// - - NativeCall
@@ -547,3 +556,5 @@ inline bool NativeInstruction::is_mov_literal64() {
return false;
#endif // AMD64
}
+
+#endif // CPU_X86_VM_NATIVEINST_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/registerMap_x86.hpp b/hotspot/src/cpu/x86/vm/registerMap_x86.hpp
index 7087589a160..5d91b1ba755 100644
--- a/hotspot/src/cpu/x86/vm/registerMap_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/registerMap_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_REGISTERMAP_X86_HPP
+#define CPU_X86_VM_REGISTERMAP_X86_HPP
+
// machine-dependent implemention for register maps
friend class frame;
@@ -37,3 +40,5 @@
void pd_clear() {}
void pd_initialize() {}
void pd_initialize_from(const RegisterMap* map) {}
+
+#endif // CPU_X86_VM_REGISTERMAP_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp b/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp
index ee19fdd26cc..f1fd229b96b 100644
--- a/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp
@@ -22,8 +22,16 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_register_definitions_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "asm/register.hpp"
+#include "register_x86.hpp"
+#ifdef TARGET_ARCH_MODEL_x86_32
+# include "interp_masm_x86_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_x86_64
+# include "interp_masm_x86_64.hpp"
+#endif
REGISTER_DEFINITION(Register, noreg);
REGISTER_DEFINITION(Register, rax);
diff --git a/hotspot/src/cpu/x86/vm/register_x86.cpp b/hotspot/src/cpu/x86/vm/register_x86.cpp
index c5ada7d9a93..a6301eafe4d 100644
--- a/hotspot/src/cpu/x86/vm/register_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/register_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_register_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "register_x86.hpp"
+
#ifndef AMD64
const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers;
#else
diff --git a/hotspot/src/cpu/x86/vm/register_x86.hpp b/hotspot/src/cpu/x86/vm/register_x86.hpp
index 846f65a8cef..2f4cd0dcac6 100644
--- a/hotspot/src/cpu/x86/vm/register_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/register_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,12 @@
*
*/
+#ifndef CPU_X86_VM_REGISTER_X86_HPP
+#define CPU_X86_VM_REGISTER_X86_HPP
+
+#include "asm/register.hpp"
+#include "vm_version_x86.hpp"
+
class VMRegImpl;
typedef VMRegImpl* VMReg;
@@ -219,3 +225,5 @@ class ConcreteRegisterImpl : public AbstractRegisterImpl {
static const int max_xmm;
};
+
+#endif // CPU_X86_VM_REGISTER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp b/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp
index 0c49edf39e8..97e3645bd3c 100644
--- a/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,13 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_relocInfo_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.inline.hpp"
+#include "assembler_x86.inline.hpp"
+#include "code/relocInfo.hpp"
+#include "nativeInst_x86.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/safepoint.hpp"
void Relocation::pd_set_data_value(address x, intptr_t o) {
diff --git a/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp b/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp
index a27e4698cc9..32855b343c2 100644
--- a/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_RELOCINFO_X86_HPP
+#define CPU_X86_VM_RELOCINFO_X86_HPP
+
// machine-dependent parts of class relocInfo
private:
enum {
@@ -36,3 +39,5 @@
format_width = 2
#endif
};
+
+#endif // CPU_X86_VM_RELOCINFO_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp b/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp
index 9a32a67fe74..a541fa213c3 100644
--- a/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp
@@ -22,9 +22,23 @@
*
*/
+#include "precompiled.hpp"
+#ifdef COMPILER2
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "code/vmreg.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_x86.hpp"
+#include "opto/runtime.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/globalDefinitions.hpp"
+#include "vmreg_x86.inline.hpp"
+#endif
-#include "incls/_precompiled.incl"
-#include "incls/_runtime_x86_32.cpp.incl"
#define __ masm->
diff --git a/hotspot/src/cpu/x86/vm/runtime_x86_64.cpp b/hotspot/src/cpu/x86/vm/runtime_x86_64.cpp
index 79fa77e62c0..8f53518bb4b 100644
--- a/hotspot/src/cpu/x86/vm/runtime_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/runtime_x86_64.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,7 +22,23 @@
*
*/
-#include "incls/_precompiled.incl"
+#include "precompiled.hpp"
+#ifdef COMPILER2
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "code/vmreg.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_x86.hpp"
+#include "opto/runtime.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/globalDefinitions.hpp"
+#include "vmreg_x86.inline.hpp"
+#endif
+
// This file should really contain the code for generating the OptoRuntime
// exception_blob. However that code uses SimpleRuntimeFrame which only
diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
index 847e68fda37..5a34d46314c 100644
--- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
@@ -22,8 +22,24 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_sharedRuntime_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "code/debugInfoRec.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "oops/compiledICHolderOop.hpp"
+#include "prims/jvmtiRedefineClassesTrace.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/vframeArray.hpp"
+#include "vmreg_x86.inline.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
#define __ masm->
#ifdef COMPILER2
diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
index 4f679636492..e3455dea520 100644
--- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
@@ -22,8 +22,24 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_sharedRuntime_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "code/debugInfoRec.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "oops/compiledICHolderOop.hpp"
+#include "prims/jvmtiRedefineClassesTrace.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/vframeArray.hpp"
+#include "vmreg_x86.inline.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
DeoptimizationBlob *SharedRuntime::_deopt_blob;
#ifdef COMPILER2
diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp
index 9a7c6a022da..c3cf3f84835 100644
--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp
@@ -22,8 +22,34 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubGenerator_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_x86.hpp"
+#include "oops/instanceOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "utilities/top.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_windows
+# include "thread_windows.inline.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// Declaration and definition of StubGenerator (no .hpp file).
// For a more detailed description of the stub routine structure
diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp
index 57d3b5147d4..3d5bcc99bfb 100644
--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp
@@ -22,8 +22,34 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubGenerator_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_x86.hpp"
+#include "oops/instanceOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "utilities/top.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_windows
+# include "thread_windows.inline.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// Declaration and definition of StubGenerator (no .hpp file).
// For a more detailed description of the stub routine structure
@@ -2171,9 +2197,6 @@ class StubGenerator: public StubCodeGenerator {
__ enter(); // required for proper stackwalking of RuntimeStub frame
- checkcast_copy_entry = __ pc();
- BLOCK_COMMENT("Entry:");
-
#ifdef ASSERT
// caller guarantees that the arrays really are different
// otherwise, we would have to make conjoint checks
@@ -2184,26 +2207,28 @@ class StubGenerator: public StubCodeGenerator {
}
#endif //ASSERT
- // allocate spill slots for r13, r14
- enum {
- saved_r13_offset,
- saved_r14_offset,
- saved_rbp_offset,
- saved_rip_offset,
- saved_rarg0_offset
- };
- __ subptr(rsp, saved_rbp_offset * wordSize);
- __ movptr(Address(rsp, saved_r13_offset * wordSize), r13);
- __ movptr(Address(rsp, saved_r14_offset * wordSize), r14);
setup_arg_regs(4); // from => rdi, to => rsi, length => rdx
// ckoff => rcx, ckval => r8
// r9 and r10 may be used to save non-volatile registers
#ifdef _WIN64
// last argument (#4) is on stack on Win64
- const int ckval_offset = saved_rarg0_offset + 4;
- __ movptr(ckval, Address(rsp, ckval_offset * wordSize));
+ __ movptr(ckval, Address(rsp, 6 * wordSize));
#endif
+ // Caller of this entry point must set up the argument registers.
+ checkcast_copy_entry = __ pc();
+ BLOCK_COMMENT("Entry:");
+
+ // allocate spill slots for r13, r14
+ enum {
+ saved_r13_offset,
+ saved_r14_offset,
+ saved_rbp_offset
+ };
+ __ subptr(rsp, saved_rbp_offset * wordSize);
+ __ movptr(Address(rsp, saved_r13_offset * wordSize), r13);
+ __ movptr(Address(rsp, saved_r14_offset * wordSize), r14);
+
// check that int operands are properly extended to size_t
assert_clean_int(length, rax);
assert_clean_int(ckoff, rax);
@@ -2417,11 +2442,10 @@ class StubGenerator: public StubCodeGenerator {
const Register src_pos = c_rarg1; // source position
const Register dst = c_rarg2; // destination array oop
const Register dst_pos = c_rarg3; // destination position
- // elements count is on stack on Win64
-#ifdef _WIN64
-#define C_RARG4 Address(rsp, 6 * wordSize)
+#ifndef _WIN64
+ const Register length = c_rarg4;
#else
-#define C_RARG4 c_rarg4
+ const Address length(rsp, 6 * wordSize); // elements count is on stack on Win64
#endif
{ int modulus = CodeEntryAlignment;
@@ -2488,27 +2512,27 @@ class StubGenerator: public StubCodeGenerator {
// registers used as temp
const Register r11_length = r11; // elements count to copy
const Register r10_src_klass = r10; // array klass
- const Register r9_dst_klass = r9; // dest array klass
// if (length < 0) return -1;
- __ movl(r11_length, C_RARG4); // length (elements count, 32-bits value)
+ __ movl(r11_length, length); // length (elements count, 32-bits value)
__ testl(r11_length, r11_length);
__ jccb(Assembler::negative, L_failed_0);
__ load_klass(r10_src_klass, src);
#ifdef ASSERT
// assert(src->klass() != NULL);
- BLOCK_COMMENT("assert klasses not null");
- { Label L1, L2;
+ {
+ BLOCK_COMMENT("assert klasses not null {");
+ Label L1, L2;
__ testptr(r10_src_klass, r10_src_klass);
__ jcc(Assembler::notZero, L2); // it is broken if klass is NULL
__ bind(L1);
__ stop("broken null klass");
__ bind(L2);
- __ load_klass(r9_dst_klass, dst);
- __ cmpq(r9_dst_klass, 0);
+ __ load_klass(rax, dst);
+ __ cmpq(rax, 0);
__ jcc(Assembler::equal, L1); // this would be broken also
- BLOCK_COMMENT("assert done");
+ BLOCK_COMMENT("} assert klasses not null done");
}
#endif
@@ -2520,34 +2544,36 @@ class StubGenerator: public StubCodeGenerator {
// array_tag: typeArray = 0x3, objArray = 0x2, non-array = 0x0
//
- int lh_offset = klassOopDesc::header_size() * HeapWordSize +
- Klass::layout_helper_offset_in_bytes();
-
- const Register rax_lh = rax; // layout helper
-
- __ movl(rax_lh, Address(r10_src_klass, lh_offset));
+ const int lh_offset = klassOopDesc::header_size() * HeapWordSize +
+ Klass::layout_helper_offset_in_bytes();
// Handle objArrays completely differently...
- jint objArray_lh = Klass::array_layout_helper(T_OBJECT);
- __ cmpl(rax_lh, objArray_lh);
+ const jint objArray_lh = Klass::array_layout_helper(T_OBJECT);
+ __ cmpl(Address(r10_src_klass, lh_offset), objArray_lh);
__ jcc(Assembler::equal, L_objArray);
// if (src->klass() != dst->klass()) return -1;
- __ load_klass(r9_dst_klass, dst);
- __ cmpq(r10_src_klass, r9_dst_klass);
+ __ load_klass(rax, dst);
+ __ cmpq(r10_src_klass, rax);
__ jcc(Assembler::notEqual, L_failed);
+ const Register rax_lh = rax; // layout helper
+ __ movl(rax_lh, Address(r10_src_klass, lh_offset));
+
// if (!src->is_Array()) return -1;
__ cmpl(rax_lh, Klass::_lh_neutral_value);
__ jcc(Assembler::greaterEqual, L_failed);
// At this point, it is known to be a typeArray (array_tag 0x3).
#ifdef ASSERT
- { Label L;
+ {
+ BLOCK_COMMENT("assert primitive array {");
+ Label L;
__ cmpl(rax_lh, (Klass::_lh_array_tag_type_value << Klass::_lh_array_tag_shift));
__ jcc(Assembler::greaterEqual, L);
__ stop("must be a primitive array");
__ bind(L);
+ BLOCK_COMMENT("} assert primitive array done");
}
#endif
@@ -2605,11 +2631,14 @@ class StubGenerator: public StubCodeGenerator {
__ BIND(L_copy_longs);
#ifdef ASSERT
- { Label L;
+ {
+ BLOCK_COMMENT("assert long copy {");
+ Label L;
__ cmpl(rax_elsize, LogBytesPerLong);
__ jcc(Assembler::equal, L);
__ stop("must be long copy, but elsize is wrong");
__ bind(L);
+ BLOCK_COMMENT("} assert long copy done");
}
#endif
__ lea(from, Address(src, src_pos, Address::times_8, 0));// src_addr
@@ -2619,12 +2648,12 @@ class StubGenerator: public StubCodeGenerator {
// objArrayKlass
__ BIND(L_objArray);
- // live at this point: r10_src_klass, src[_pos], dst[_pos]
+ // live at this point: r10_src_klass, r11_length, src[_pos], dst[_pos]
Label L_plain_copy, L_checkcast_copy;
// test array classes for subtyping
- __ load_klass(r9_dst_klass, dst);
- __ cmpq(r10_src_klass, r9_dst_klass); // usual case is exact equality
+ __ load_klass(rax, dst);
+ __ cmpq(r10_src_klass, rax); // usual case is exact equality
__ jcc(Assembler::notEqual, L_checkcast_copy);
// Identically typed arrays can be copied without element-wise checks.
@@ -2640,41 +2669,33 @@ class StubGenerator: public StubCodeGenerator {
__ jump(RuntimeAddress(oop_copy_entry));
__ BIND(L_checkcast_copy);
- // live at this point: r10_src_klass, !r11_length
+ // live at this point: r10_src_klass, r11_length, rax (dst_klass)
{
- // assert(r11_length == C_RARG4); // will reload from here
- Register r11_dst_klass = r11;
- __ load_klass(r11_dst_klass, dst);
-
// Before looking at dst.length, make sure dst is also an objArray.
- __ cmpl(Address(r11_dst_klass, lh_offset), objArray_lh);
+ __ cmpl(Address(rax, lh_offset), objArray_lh);
__ jcc(Assembler::notEqual, L_failed);
// It is safe to examine both src.length and dst.length.
-#ifndef _WIN64
- arraycopy_range_checks(src, src_pos, dst, dst_pos, C_RARG4,
- rax, L_failed);
-#else
- __ movl(r11_length, C_RARG4); // reload
arraycopy_range_checks(src, src_pos, dst, dst_pos, r11_length,
rax, L_failed);
+
+ const Register r11_dst_klass = r11;
__ load_klass(r11_dst_klass, dst); // reload
-#endif
// Marshal the base address arguments now, freeing registers.
__ lea(from, Address(src, src_pos, TIMES_OOP,
arrayOopDesc::base_offset_in_bytes(T_OBJECT)));
__ lea(to, Address(dst, dst_pos, TIMES_OOP,
arrayOopDesc::base_offset_in_bytes(T_OBJECT)));
- __ movl(count, C_RARG4); // length (reloaded)
+ __ movl(count, length); // length (reloaded)
Register sco_temp = c_rarg3; // this register is free now
assert_different_registers(from, to, count, sco_temp,
r11_dst_klass, r10_src_klass);
assert_clean_int(count, sco_temp);
// Generate the type check.
- int sco_offset = (klassOopDesc::header_size() * HeapWordSize +
- Klass::super_check_offset_offset_in_bytes());
+ const int sco_offset = (klassOopDesc::header_size() * HeapWordSize +
+ Klass::super_check_offset_offset_in_bytes());
__ movl(sco_temp, Address(r11_dst_klass, sco_offset));
assert_clean_int(sco_temp, rax);
generate_type_check(r10_src_klass, sco_temp, r11_dst_klass, L_plain_copy);
@@ -2683,12 +2704,14 @@ class StubGenerator: public StubCodeGenerator {
int ek_offset = (klassOopDesc::header_size() * HeapWordSize +
objArrayKlass::element_klass_offset_in_bytes());
__ movptr(r11_dst_klass, Address(r11_dst_klass, ek_offset));
- __ movl(sco_temp, Address(r11_dst_klass, sco_offset));
+ __ movl( sco_temp, Address(r11_dst_klass, sco_offset));
assert_clean_int(sco_temp, rax);
// the checkcast_copy loop needs two extra arguments:
assert(c_rarg3 == sco_temp, "#3 already in place");
- __ movptr(C_RARG4, r11_dst_klass); // dst.klass.element_klass
+ // Set up arguments for checkcast_copy_entry.
+ setup_arg_regs(4);
+ __ movptr(r8, r11_dst_klass); // dst.klass.element_klass, r8 is c_rarg4 on Linux/Solaris
__ jump(RuntimeAddress(checkcast_copy_entry));
}
@@ -2701,8 +2724,6 @@ class StubGenerator: public StubCodeGenerator {
return start;
}
-#undef length_arg
-
void generate_arraycopy_stubs() {
// Call the conjoint generation methods immediately after
// the disjoint ones so that short branches from the former
diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp
index baf766d4df2..a04b3f29a1a 100644
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,19 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubRoutines_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/stubRoutines.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_windows
+# include "thread_windows.inline.hpp"
+#endif
// Implementation of the platform-specific part of StubRoutines - for
// a description of how to extend it, see the stubRoutines.hpp file.
diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp
index cfbd52fde9f..0a78618e1b0 100644
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_STUBROUTINES_X86_32_HPP
+#define CPU_X86_VM_STUBROUTINES_X86_32_HPP
+
// This file holds the platform specific parts of the StubRoutines
// definition. See stubRoutines.hpp for a description on how to
// extend it.
@@ -60,3 +63,5 @@ class x86 {
static bool returns_to_call_stub(address return_pc) { return (return_pc == _call_stub_return_address) ||
return_pc == x86::get_call_stub_compiled_return(); }
+
+#endif // CPU_X86_VM_STUBROUTINES_X86_32_HPP
diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp
index c0588a322a4..caab63bfc1c 100644
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,19 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubRoutines_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/stubRoutines.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "thread_solaris.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_windows
+# include "thread_windows.inline.hpp"
+#endif
// Implementation of the platform-specific part of StubRoutines - for
// a description of how to extend it, see the stubRoutines.hpp file.
diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp
index 393d868d903..b1726caa692 100644
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_STUBROUTINES_X86_64_HPP
+#define CPU_X86_VM_STUBROUTINES_X86_64_HPP
+
// This file holds the platform specific parts of the StubRoutines
// definition. See stubRoutines.hpp for a description on how to
// extend it.
@@ -35,7 +38,7 @@ enum platform_dependent_constants {
// MethodHandles adapters
enum method_handles_platform_dependent_constants {
- method_handles_adapters_code_size = 26000
+ method_handles_adapters_code_size = 40000
};
class x86 {
@@ -113,3 +116,5 @@ class x86 {
return _mxcsr_std;
}
};
+
+#endif // CPU_X86_VM_STUBROUTINES_X86_64_HPP
diff --git a/hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp b/hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp
index bcec7e124a2..60e95057cef 100644
--- a/hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,13 @@
*
*/
+#ifndef CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP
+#define CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP
+
protected:
void generate_fixed_frame(bool native_call);
// address generate_asm_interpreter_entry(bool synchronized);
+
+#endif // CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86.hpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86.hpp
index a0e22b6af00..c828c90fba1 100644
--- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP
+#define CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP
+
protected:
@@ -35,3 +38,5 @@
#else
const static int InterpreterCodeSize = 168 * 1024;
#endif // AMD64
+
+#endif // CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp
index 513263486ec..ee518b31405 100644
--- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp
@@ -22,8 +22,28 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_templateInterpreter_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
#define __ _masm->
diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp
index b39c7f8575d..2d7aa60cfca 100644
--- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp
@@ -22,8 +22,28 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreter_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
#define __ _masm->
@@ -1049,7 +1069,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
// runtime call by hand.
//
__ mov(c_rarg0, r15_thread);
- __ mov(r12, rsp); // remember sp
+ __ mov(r12, rsp); // remember sp (can only use r12 if not using call_VM)
__ subptr(rsp, frame::arg_reg_save_area_bytes); // windows
__ andptr(rsp, -16); // align stack as required by ABI
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, JavaThread::check_special_condition_for_native_trans)));
@@ -1096,7 +1116,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
__ jcc(Assembler::notEqual, no_reguard);
__ pusha(); // XXX only save smashed registers
- __ mov(r12, rsp); // remember sp
+ __ mov(r12, rsp); // remember sp (can only use r12 if not using call_VM)
__ subptr(rsp, frame::arg_reg_save_area_bytes); // windows
__ andptr(rsp, -16); // align stack as required by ABI
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::reguard_yellow_pages)));
@@ -1887,7 +1907,7 @@ void TemplateInterpreterGenerator::trace_bytecode(Template* t) {
assert(Interpreter::trace_code(t->tos_in()) != NULL,
"entry must have been generated");
- __ mov(r12, rsp); // remember sp
+ __ mov(r12, rsp); // remember sp (can only use r12 if not using call_VM)
__ andptr(rsp, -16); // align stack as required by ABI
__ call(RuntimeAddress(Interpreter::trace_code(t->tos_in())));
__ mov(rsp, r12); // restore sp
diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
index 5da242409c0..345b5f62c5e 100644
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, 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,18 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_templateTable_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "memory/universe.inline.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
#ifndef CC_INTERP
#define __ _masm->
@@ -399,6 +409,23 @@ void TemplateTable::fast_aldc(bool wide) {
if (VerifyOops) {
__ verify_oop(rax);
}
+
+ Label L_done, L_throw_exception;
+ const Register con_klass_temp = rcx; // same as Rcache
+ __ movptr(con_klass_temp, Address(rax, oopDesc::klass_offset_in_bytes()));
+ __ cmpptr(con_klass_temp, ExternalAddress((address)Universe::systemObjArrayKlassObj_addr()));
+ __ jcc(Assembler::notEqual, L_done);
+ __ cmpl(Address(rax, arrayOopDesc::length_offset_in_bytes()), 0);
+ __ jcc(Assembler::notEqual, L_throw_exception);
+ __ xorptr(rax, rax);
+ __ jmp(L_done);
+
+ // Load the exception from the system-array which wraps it:
+ __ bind(L_throw_exception);
+ __ movptr(rax, Address(rax, arrayOopDesc::base_offset_in_bytes(T_OBJECT)));
+ __ jump(ExternalAddress(Interpreter::throw_exception_entry()));
+
+ __ bind(L_done);
}
void TemplateTable::ldc2_w() {
@@ -3111,19 +3138,22 @@ void TemplateTable::invokedynamic(int byte_no) {
// rax: CallSite object (f1)
// rbx: unused (f2)
+ // rcx: receiver address
// rdx: flags (unused)
+ Register rax_callsite = rax;
+ Register rcx_method_handle = rcx;
+
if (ProfileInterpreter) {
- Label L;
// %%% should make a type profile for any invokedynamic that takes a ref argument
// profile this call
__ profile_call(rsi);
}
- __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
- __ null_check(rcx);
+ __ movptr(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
+ __ null_check(rcx_method_handle);
__ prepare_to_jump_from_interpreted();
- __ jump_to_method_handle_entry(rcx, rdx);
+ __ jump_to_method_handle_entry(rcx_method_handle, rdx);
}
//----------------------------------------------------------------------------------------------------
@@ -3173,10 +3203,12 @@ void TemplateTable::_new() {
const bool allow_shared_alloc =
Universe::heap()->supports_inline_contig_alloc() && !CMSIncrementalMode;
- if (UseTLAB) {
- const Register thread = rcx;
-
+ const Register thread = rcx;
+ if (UseTLAB || allow_shared_alloc) {
__ get_thread(thread);
+ }
+
+ if (UseTLAB) {
__ movptr(rax, Address(thread, in_bytes(JavaThread::tlab_top_offset())));
__ lea(rbx, Address(rax, rdx, Address::times_1));
__ cmpptr(rbx, Address(thread, in_bytes(JavaThread::tlab_end_offset())));
@@ -3217,6 +3249,8 @@ void TemplateTable::_new() {
// if someone beat us on the allocation, try again, otherwise continue
__ jcc(Assembler::notEqual, retry);
+
+ __ incr_allocated_bytes(thread, rdx, 0);
}
if (UseTLAB || Universe::heap()->supports_inline_contig_alloc()) {
@@ -3226,12 +3260,12 @@ void TemplateTable::_new() {
__ decrement(rdx, sizeof(oopDesc));
__ jcc(Assembler::zero, initialize_header);
- // Initialize topmost object field, divide rdx by 8, check if odd and
- // test if zero.
+ // Initialize topmost object field, divide rdx by 8, check if odd and
+ // test if zero.
__ xorl(rcx, rcx); // use zero reg to clear memory (shorter code)
__ shrl(rdx, LogBytesPerLong); // divide by 2*oopSize and set carry flag if odd
- // rdx must have been multiple of 8
+ // rdx must have been multiple of 8
#ifdef ASSERT
// make sure rdx was multiple of 8
Label L;
diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp
index 39652a59271..05293afe878 100644
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_TEMPLATETABLE_X86_32_HPP
+#define CPU_X86_VM_TEMPLATETABLE_X86_32_HPP
+
static void prepare_invoke(Register method, Register index, int byte_no);
static void invokevirtual_helper(Register index, Register recv,
Register flags);
@@ -30,3 +33,5 @@
// Helpers
static void index_check(Register array, Register index);
static void index_check_without_pop(Register array, Register index);
+
+#endif // CPU_X86_VM_TEMPLATETABLE_X86_32_HPP
diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
index 4f46e9f800d..cd45253d592 100644
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, 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,18 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_templateTable_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "memory/universe.inline.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
#ifndef CC_INTERP
@@ -413,6 +423,25 @@ void TemplateTable::fast_aldc(bool wide) {
if (VerifyOops) {
__ verify_oop(rax);
}
+
+ Label L_done, L_throw_exception;
+ const Register con_klass_temp = rcx; // same as cache
+ const Register array_klass_temp = rdx; // same as index
+ __ movptr(con_klass_temp, Address(rax, oopDesc::klass_offset_in_bytes()));
+ __ lea(array_klass_temp, ExternalAddress((address)Universe::systemObjArrayKlassObj_addr()));
+ __ cmpptr(con_klass_temp, Address(array_klass_temp, 0));
+ __ jcc(Assembler::notEqual, L_done);
+ __ cmpl(Address(rax, arrayOopDesc::length_offset_in_bytes()), 0);
+ __ jcc(Assembler::notEqual, L_throw_exception);
+ __ xorptr(rax, rax);
+ __ jmp(L_done);
+
+ // Load the exception from the system-array which wraps it:
+ __ bind(L_throw_exception);
+ __ movptr(rax, Address(rax, arrayOopDesc::base_offset_in_bytes(T_OBJECT)));
+ __ jump(ExternalAddress(Interpreter::throw_exception_entry()));
+
+ __ bind(L_done);
}
void TemplateTable::ldc2_w() {
@@ -2733,7 +2762,7 @@ void TemplateTable::fast_accessfield(TosState state) {
// access constant pool cache entry
__ get_cache_entry_pointer_at_bcp(c_rarg2, rcx, 1);
__ verify_oop(rax);
- __ mov(r12, rax); // save object pointer before call_VM() clobbers it
+ __ push_ptr(rax); // save object pointer before call_VM() clobbers it
__ mov(c_rarg1, rax);
// c_rarg1: object pointer copied above
// c_rarg2: cache entry pointer
@@ -2741,8 +2770,7 @@ void TemplateTable::fast_accessfield(TosState state) {
CAST_FROM_FN_PTR(address,
InterpreterRuntime::post_field_access),
c_rarg1, c_rarg2);
- __ mov(rax, r12); // restore object pointer
- __ reinit_heapbase();
+ __ pop_ptr(rax); // restore object pointer
__ bind(L1);
}
@@ -3120,17 +3148,19 @@ void TemplateTable::invokedynamic(int byte_no) {
// rcx: receiver address
// rdx: flags (unused)
+ Register rax_callsite = rax;
+ Register rcx_method_handle = rcx;
+
if (ProfileInterpreter) {
- Label L;
// %%% should make a type profile for any invokedynamic that takes a ref argument
// profile this call
__ profile_call(r13);
}
- __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
- __ null_check(rcx);
+ __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
+ __ null_check(rcx_method_handle);
__ prepare_to_jump_from_interpreted();
- __ jump_to_method_handle_entry(rcx, rdx);
+ __ jump_to_method_handle_entry(rcx_method_handle, rdx);
}
@@ -3236,6 +3266,8 @@ void TemplateTable::_new() {
// if someone beat us on the allocation, try again, otherwise continue
__ jcc(Assembler::notEqual, retry);
+
+ __ incr_allocated_bytes(r15_thread, rdx, 0);
}
if (UseTLAB || Universe::heap()->supports_inline_contig_alloc()) {
@@ -3334,10 +3366,7 @@ void TemplateTable::checkcast() {
JVM_CONSTANT_Class);
__ jcc(Assembler::equal, quicked);
__ push(atos); // save receiver for result, and for GC
- __ mov(r12, rcx); // save rcx XXX
call_VM(rax, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
- __ movq(rcx, r12); // restore rcx XXX
- __ reinit_heapbase();
__ pop_ptr(rdx); // restore receiver
__ jmpb(resolved);
@@ -3391,11 +3420,9 @@ void TemplateTable::instanceof() {
__ jcc(Assembler::equal, quicked);
__ push(atos); // save receiver for result, and for GC
- __ mov(r12, rcx); // save rcx
call_VM(rax, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
- __ movq(rcx, r12); // restore rcx
- __ reinit_heapbase();
__ pop_ptr(rdx); // restore receiver
+ __ verify_oop(rdx);
__ load_klass(rdx, rdx);
__ jmpb(resolved);
diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.hpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.hpp
index fce09f5c4f1..922e49542e6 100644
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.hpp
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_TEMPLATETABLE_X86_64_HPP
+#define CPU_X86_VM_TEMPLATETABLE_X86_64_HPP
+
static void prepare_invoke(Register method, Register index, int byte_no);
static void invokevirtual_helper(Register index, Register recv,
Register flags);
@@ -30,3 +33,5 @@
// Helpers
static void index_check(Register array, Register index);
static void index_check_without_pop(Register array, Register index);
+
+#endif // CPU_X86_VM_TEMPLATETABLE_X86_64_HPP
diff --git a/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp b/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp
index bb3c3b68db4..8dddc9c3e1d 100644
--- a/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_VMSTRUCTS_X86_HPP
+#define CPU_X86_VM_VMSTRUCTS_X86_HPP
+
// These are the CPU-specific fields, types and integer
// constants required by the Serviceability Agent. This file is
// referenced by vmStructs.cpp.
@@ -60,3 +63,5 @@
/* NOTE that we do not use the last_entry() macro here; it is used */
/* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */
/* be present there) */
+
+#endif // CPU_X86_VM_VMSTRUCTS_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
index 887e71b79e7..df40c5638b7 100644
--- a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
@@ -22,8 +22,21 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_vm_version_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_x86.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "runtime/java.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "vm_version_x86.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "os_linux.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_solaris
+# include "os_solaris.inline.hpp"
+#endif
+#ifdef TARGET_OS_FAMILY_windows
+# include "os_windows.inline.hpp"
+#endif
int VM_Version::_cpu;
diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp
index 5cbfda1bc62..6f23cb0cada 100644
--- a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef CPU_X86_VM_VM_VERSION_X86_HPP
+#define CPU_X86_VM_VM_VERSION_X86_HPP
+
+#include "runtime/globals_extension.hpp"
+#include "runtime/vm_version.hpp"
+
class VM_Version : public Abstract_VM_Version {
public:
// cpuid result register layouts. These are all unions of a uint32_t
@@ -446,6 +452,10 @@ public:
static bool supports_lzcnt() { return (_cpuFeatures & CPU_LZCNT) != 0; }
static bool supports_sse4a() { return (_cpuFeatures & CPU_SSE4A) != 0; }
+ // Intel Core and newer cpus have fast IDIV instruction (excluding Atom).
+ static bool has_fast_idiv() { return is_intel() && cpu_family() == 6 &&
+ supports_sse3() && _model != 0x1C; }
+
static bool supports_compare_and_exchange() { return true; }
static const char* cpu_features() { return _features_str; }
@@ -516,3 +526,5 @@ public:
return count >= 0 ? count : 1;
}
};
+
+#endif // CPU_X86_VM_VM_VERSION_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/vmreg_x86.cpp b/hotspot/src/cpu/x86/vm/vmreg_x86.cpp
index 88f775c81b8..a0bfe6e69c1 100644
--- a/hotspot/src/cpu/x86/vm/vmreg_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/vmreg_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_vmreg_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "code/vmreg.hpp"
diff --git a/hotspot/src/cpu/x86/vm/vmreg_x86.hpp b/hotspot/src/cpu/x86/vm/vmreg_x86.hpp
index 7195f3e1c36..38d47dccfc3 100644
--- a/hotspot/src/cpu/x86/vm/vmreg_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/vmreg_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_VMREG_X86_HPP
+#define CPU_X86_VM_VMREG_X86_HPP
+
bool is_Register();
Register as_Register();
@@ -30,3 +33,5 @@
bool is_XMMRegister();
XMMRegister as_XMMRegister();
+
+#endif // CPU_X86_VM_VMREG_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp b/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp
index 8de4d0ea13d..88201bd3d83 100644
--- a/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp
+++ b/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_X86_VM_VMREG_X86_INLINE_HPP
+#define CPU_X86_VM_VMREG_X86_INLINE_HPP
+
inline VMReg RegisterImpl::as_VMReg() {
if( this==noreg ) return VMRegImpl::Bad();
#ifdef AMD64
@@ -82,3 +85,5 @@ inline bool VMRegImpl::is_concrete() {
#endif // AMD64
return is_even(value());
}
+
+#endif // CPU_X86_VM_VMREG_X86_INLINE_HPP
diff --git a/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp b/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp
index e6fe9dd381b..1517ca30bf3 100644
--- a/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,19 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_vtableStubs_x86_32.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "code/vtableStubs.hpp"
+#include "interp_masm_x86_32.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/instanceKlass.hpp"
+#include "oops/klassVtable.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "vmreg_x86.inline.hpp"
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// machine-dependent part of VtableStubs: create VtableStub of correct size and
// initialize its code
diff --git a/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp b/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp
index 6a27f4fdeef..f12d85aa787 100644
--- a/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp
@@ -22,8 +22,19 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_vtableStubs_x86_64.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "code/vtableStubs.hpp"
+#include "interp_masm_x86_64.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/instanceKlass.hpp"
+#include "oops/klassVtable.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "vmreg_x86.inline.hpp"
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// machine-dependent part of VtableStubs: create VtableStub of correct size and
// initialize its code
diff --git a/hotspot/src/cpu/x86/vm/x86_32.ad b/hotspot/src/cpu/x86/vm/x86_32.ad
index b2efb1099b2..b73bcda7fa9 100644
--- a/hotspot/src/cpu/x86/vm/x86_32.ad
+++ b/hotspot/src/cpu/x86/vm/x86_32.ad
@@ -506,6 +506,25 @@ void encode_CopyXD( CodeBuffer &cbuf, int dst_encoding, int src_encoding ) {
}
+//=============================================================================
+const bool Matcher::constant_table_absolute_addressing = true;
+const RegMask& MachConstantBaseNode::_out_RegMask = RegMask::Empty;
+
+void MachConstantBaseNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const {
+ // Empty encoding
+}
+
+uint MachConstantBaseNode::size(PhaseRegAlloc* ra_) const {
+ return 0;
+}
+
+#ifndef PRODUCT
+void MachConstantBaseNode::format(PhaseRegAlloc* ra_, outputStream* st) const {
+ st->print("# MachConstantBaseNode (empty encoding)");
+}
+#endif
+
+
//=============================================================================
#ifndef PRODUCT
void MachPrologNode::format( PhaseRegAlloc *ra_, outputStream* st ) const {
@@ -1320,29 +1339,6 @@ int emit_deopt_handler(CodeBuffer& cbuf) {
}
-static void emit_double_constant(CodeBuffer& cbuf, double x) {
- int mark = cbuf.insts()->mark_off();
- MacroAssembler _masm(&cbuf);
- address double_address = __ double_constant(x);
- cbuf.insts()->set_mark_off(mark); // preserve mark across masm shift
- emit_d32_reloc(cbuf,
- (int)double_address,
- internal_word_Relocation::spec(double_address),
- RELOC_DISP32);
-}
-
-static void emit_float_constant(CodeBuffer& cbuf, float x) {
- int mark = cbuf.insts()->mark_off();
- MacroAssembler _masm(&cbuf);
- address float_address = __ float_constant(x);
- cbuf.insts()->set_mark_off(mark); // preserve mark across masm shift
- emit_d32_reloc(cbuf,
- (int)float_address,
- internal_word_Relocation::spec(float_address),
- RELOC_DISP32);
-}
-
-
const bool Matcher::match_rule_supported(int opcode) {
if (!has_match_rule(opcode))
return false;
@@ -1354,22 +1350,6 @@ int Matcher::regnum_to_fpu_offset(int regnum) {
return regnum - 32; // The FP registers are in the second chunk
}
-bool is_positive_zero_float(jfloat f) {
- return jint_cast(f) == jint_cast(0.0F);
-}
-
-bool is_positive_one_float(jfloat f) {
- return jint_cast(f) == jint_cast(1.0F);
-}
-
-bool is_positive_zero_double(jdouble d) {
- return jlong_cast(d) == jlong_cast(0.0);
-}
-
-bool is_positive_one_double(jdouble d) {
- return jlong_cast(d) == jlong_cast(1.0);
-}
-
// This is UltraSparc specific, true just means we have fast l2f conversion
const bool Matcher::convL2FSupported(void) {
return true;
@@ -1508,6 +1488,16 @@ bool Matcher::is_spillable_arg( int reg ) {
return can_be_java_arg(reg);
}
+bool Matcher::use_asm_for_ldiv_by_con( jlong divisor ) {
+ // Use hardware integer DIV instruction when
+ // it is faster than a code which use multiply.
+ // Only when constant divisor fits into 32 bit
+ // (min_jint is excluded to get only correct
+ // positive 32 bit values from negative).
+ return VM_Version::has_fast_idiv() &&
+ (divisor == (int)divisor && divisor != min_jint);
+}
+
// Register for DIVI projection of divmodI
RegMask Matcher::divI_proj_mask() {
return EAX_REG_mask;
@@ -1546,6 +1536,9 @@ bool is_operand_hi32_zero(Node* n) {
return true;
}
}
+ if (opc == Op_ConL && (n->get_long() & 0xFFFFFFFF00000000LL) == 0LL) {
+ return true;
+ }
return false;
}
@@ -2023,67 +2016,6 @@ encode %{
%}
- enc_class LdImmD (immD src) %{ // Load Immediate
- if( is_positive_zero_double($src$$constant)) {
- // FLDZ
- emit_opcode(cbuf,0xD9);
- emit_opcode(cbuf,0xEE);
- } else if( is_positive_one_double($src$$constant)) {
- // FLD1
- emit_opcode(cbuf,0xD9);
- emit_opcode(cbuf,0xE8);
- } else {
- emit_opcode(cbuf,0xDD);
- emit_rm(cbuf, 0x0, 0x0, 0x5);
- emit_double_constant(cbuf, $src$$constant);
- }
- %}
-
-
- enc_class LdImmF (immF src) %{ // Load Immediate
- if( is_positive_zero_float($src$$constant)) {
- emit_opcode(cbuf,0xD9);
- emit_opcode(cbuf,0xEE);
- } else if( is_positive_one_float($src$$constant)) {
- emit_opcode(cbuf,0xD9);
- emit_opcode(cbuf,0xE8);
- } else {
- $$$emit8$primary;
- // Load immediate does not have a zero or sign extended version
- // for 8-bit immediates
- // First load to TOS, then move to dst
- emit_rm(cbuf, 0x0, 0x0, 0x5);
- emit_float_constant(cbuf, $src$$constant);
- }
- %}
-
- enc_class LdImmX (regX dst, immXF con) %{ // Load Immediate
- emit_rm(cbuf, 0x0, $dst$$reg, 0x5);
- emit_float_constant(cbuf, $con$$constant);
- %}
-
- enc_class LdImmXD (regXD dst, immXD con) %{ // Load Immediate
- emit_rm(cbuf, 0x0, $dst$$reg, 0x5);
- emit_double_constant(cbuf, $con$$constant);
- %}
-
- enc_class load_conXD (regXD dst, immXD con) %{ // Load double constant
- // UseXmmLoadAndClearUpper ? movsd(dst, con) : movlpd(dst, con)
- emit_opcode(cbuf, UseXmmLoadAndClearUpper ? 0xF2 : 0x66);
- emit_opcode(cbuf, 0x0F);
- emit_opcode(cbuf, UseXmmLoadAndClearUpper ? 0x10 : 0x12);
- emit_rm(cbuf, 0x0, $dst$$reg, 0x5);
- emit_double_constant(cbuf, $con$$constant);
- %}
-
- enc_class Opc_MemImm_F(immF src) %{
- cbuf.set_insts_mark();
- $$$emit8$primary;
- emit_rm(cbuf, 0x0, $secondary, 0x5);
- emit_float_constant(cbuf, $src$$constant);
- %}
-
-
enc_class MovI2X_reg(regX dst, eRegI src) %{
emit_opcode(cbuf, 0x66 ); // MOVD dst,src
emit_opcode(cbuf, 0x0F );
@@ -2309,9 +2241,11 @@ encode %{
enc_class move_long_big_shift_sign( eRegL dst, immI_32_63 cnt ) %{
emit_opcode( cbuf, 0x8B ); // Move
emit_rm(cbuf, 0x3, $dst$$reg, HIGH_FROM_LOW($dst$$reg));
- emit_d8(cbuf,$primary);
- emit_rm(cbuf, 0x3, $secondary, $dst$$reg);
- emit_d8(cbuf,$cnt$$constant-32);
+ if( $cnt$$constant > 32 ) { // Shift, if not by zero
+ emit_d8(cbuf,$primary);
+ emit_rm(cbuf, 0x3, $secondary, $dst$$reg);
+ emit_d8(cbuf,$cnt$$constant-32);
+ }
emit_d8(cbuf,$primary);
emit_rm(cbuf, 0x3, $secondary, HIGH_FROM_LOW($dst$$reg));
emit_d8(cbuf,31);
@@ -4786,7 +4720,7 @@ operand immD0() %{
interface(CONST_INTER);
%}
-// Double Immediate
+// Double Immediate one
operand immD1() %{
predicate( UseSSE<=1 && n->getd() == 1.0 );
match(ConD);
@@ -4829,7 +4763,17 @@ operand immXD0() %{
// Float Immediate zero
operand immF0() %{
- predicate( UseSSE == 0 && n->getf() == 0.0 );
+ predicate(UseSSE == 0 && n->getf() == 0.0F);
+ match(ConF);
+
+ op_cost(5);
+ format %{ %}
+ interface(CONST_INTER);
+%}
+
+// Float Immediate one
+operand immF1() %{
+ predicate(UseSSE == 0 && n->getf() == 1.0F);
match(ConF);
op_cost(5);
@@ -7200,24 +7144,53 @@ instruct loadConL0(eRegL dst, immL0 src, eFlagsReg cr) %{
%}
// The instruction usage is guarded by predicate in operand immF().
-instruct loadConF(regF dst, immF src) %{
- match(Set dst src);
+instruct loadConF(regF dst, immF con) %{
+ match(Set dst con);
ins_cost(125);
-
- format %{ "FLD_S ST,$src\n\t"
+ format %{ "FLD_S ST,[$constantaddress]\t# load from constant table: float=$con\n\t"
"FSTP $dst" %}
- opcode(0xD9, 0x00); /* D9 /0 */
- ins_encode(LdImmF(src), Pop_Reg_F(dst) );
- ins_pipe( fpu_reg_con );
+ ins_encode %{
+ __ fld_s($constantaddress($con));
+ __ fstp_d($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_con);
+%}
+
+// The instruction usage is guarded by predicate in operand immF0().
+instruct loadConF0(regF dst, immF0 con) %{
+ match(Set dst con);
+ ins_cost(125);
+ format %{ "FLDZ ST\n\t"
+ "FSTP $dst" %}
+ ins_encode %{
+ __ fldz();
+ __ fstp_d($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_con);
+%}
+
+// The instruction usage is guarded by predicate in operand immF1().
+instruct loadConF1(regF dst, immF1 con) %{
+ match(Set dst con);
+ ins_cost(125);
+ format %{ "FLD1 ST\n\t"
+ "FSTP $dst" %}
+ ins_encode %{
+ __ fld1();
+ __ fstp_d($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_con);
%}
// The instruction usage is guarded by predicate in operand immXF().
instruct loadConX(regX dst, immXF con) %{
match(Set dst con);
ins_cost(125);
- format %{ "MOVSS $dst,[$con]" %}
- ins_encode( Opcode(0xF3), Opcode(0x0F), Opcode(0x10), LdImmX(dst, con));
- ins_pipe( pipe_slow );
+ format %{ "MOVSS $dst,[$constantaddress]\t# load from constant table: float=$con" %}
+ ins_encode %{
+ __ movflt($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
// The instruction usage is guarded by predicate in operand immXF0().
@@ -7225,28 +7198,63 @@ instruct loadConX0(regX dst, immXF0 src) %{
match(Set dst src);
ins_cost(100);
format %{ "XORPS $dst,$dst\t# float 0.0" %}
- ins_encode( Opcode(0x0F), Opcode(0x57), RegReg(dst,dst));
- ins_pipe( pipe_slow );
+ ins_encode %{
+ __ xorps($dst$$XMMRegister, $dst$$XMMRegister);
+ %}
+ ins_pipe(pipe_slow);
%}
// The instruction usage is guarded by predicate in operand immD().
-instruct loadConD(regD dst, immD src) %{
- match(Set dst src);
+instruct loadConD(regD dst, immD con) %{
+ match(Set dst con);
ins_cost(125);
- format %{ "FLD_D ST,$src\n\t"
+ format %{ "FLD_D ST,[$constantaddress]\t# load from constant table: double=$con\n\t"
"FSTP $dst" %}
- ins_encode(LdImmD(src), Pop_Reg_D(dst) );
- ins_pipe( fpu_reg_con );
+ ins_encode %{
+ __ fld_d($constantaddress($con));
+ __ fstp_d($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_con);
+%}
+
+// The instruction usage is guarded by predicate in operand immD0().
+instruct loadConD0(regD dst, immD0 con) %{
+ match(Set dst con);
+ ins_cost(125);
+
+ format %{ "FLDZ ST\n\t"
+ "FSTP $dst" %}
+ ins_encode %{
+ __ fldz();
+ __ fstp_d($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_con);
+%}
+
+// The instruction usage is guarded by predicate in operand immD1().
+instruct loadConD1(regD dst, immD1 con) %{
+ match(Set dst con);
+ ins_cost(125);
+
+ format %{ "FLD1 ST\n\t"
+ "FSTP $dst" %}
+ ins_encode %{
+ __ fld1();
+ __ fstp_d($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_con);
%}
// The instruction usage is guarded by predicate in operand immXD().
instruct loadConXD(regXD dst, immXD con) %{
match(Set dst con);
ins_cost(125);
- format %{ "MOVSD $dst,[$con]" %}
- ins_encode(load_conXD(dst, con));
- ins_pipe( pipe_slow );
+ format %{ "MOVSD $dst,[$constantaddress]\t# load from constant table: double=$con" %}
+ ins_encode %{
+ __ movdbl($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
// The instruction usage is guarded by predicate in operand immXD0().
@@ -8842,6 +8850,144 @@ instruct modL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI
ins_pipe( pipe_slow );
%}
+// Divide Register Long (no special case since divisor != -1)
+instruct divL_eReg_imm32( eADXRegL dst, immL32 imm, eRegI tmp, eRegI tmp2, eFlagsReg cr ) %{
+ match(Set dst (DivL dst imm));
+ effect( TEMP tmp, TEMP tmp2, KILL cr );
+ ins_cost(1000);
+ format %{ "MOV $tmp,abs($imm) # ldiv EDX:EAX,$imm\n\t"
+ "XOR $tmp2,$tmp2\n\t"
+ "CMP $tmp,EDX\n\t"
+ "JA,s fast\n\t"
+ "MOV $tmp2,EAX\n\t"
+ "MOV EAX,EDX\n\t"
+ "MOV EDX,0\n\t"
+ "JLE,s pos\n\t"
+ "LNEG EAX : $tmp2\n\t"
+ "DIV $tmp # unsigned division\n\t"
+ "XCHG EAX,$tmp2\n\t"
+ "DIV $tmp\n\t"
+ "LNEG $tmp2 : EAX\n\t"
+ "JMP,s done\n"
+ "pos:\n\t"
+ "DIV $tmp\n\t"
+ "XCHG EAX,$tmp2\n"
+ "fast:\n\t"
+ "DIV $tmp\n"
+ "done:\n\t"
+ "MOV EDX,$tmp2\n\t"
+ "NEG EDX:EAX # if $imm < 0" %}
+ ins_encode %{
+ int con = (int)$imm$$constant;
+ assert(con != 0 && con != -1 && con != min_jint, "wrong divisor");
+ int pcon = (con > 0) ? con : -con;
+ Label Lfast, Lpos, Ldone;
+
+ __ movl($tmp$$Register, pcon);
+ __ xorl($tmp2$$Register,$tmp2$$Register);
+ __ cmpl($tmp$$Register, HIGH_FROM_LOW($dst$$Register));
+ __ jccb(Assembler::above, Lfast); // result fits into 32 bit
+
+ __ movl($tmp2$$Register, $dst$$Register); // save
+ __ movl($dst$$Register, HIGH_FROM_LOW($dst$$Register));
+ __ movl(HIGH_FROM_LOW($dst$$Register),0); // preserve flags
+ __ jccb(Assembler::lessEqual, Lpos); // result is positive
+
+ // Negative dividend.
+ // convert value to positive to use unsigned division
+ __ lneg($dst$$Register, $tmp2$$Register);
+ __ divl($tmp$$Register);
+ __ xchgl($dst$$Register, $tmp2$$Register);
+ __ divl($tmp$$Register);
+ // revert result back to negative
+ __ lneg($tmp2$$Register, $dst$$Register);
+ __ jmpb(Ldone);
+
+ __ bind(Lpos);
+ __ divl($tmp$$Register); // Use unsigned division
+ __ xchgl($dst$$Register, $tmp2$$Register);
+ // Fallthrow for final divide, tmp2 has 32 bit hi result
+
+ __ bind(Lfast);
+ // fast path: src is positive
+ __ divl($tmp$$Register); // Use unsigned division
+
+ __ bind(Ldone);
+ __ movl(HIGH_FROM_LOW($dst$$Register),$tmp2$$Register);
+ if (con < 0) {
+ __ lneg(HIGH_FROM_LOW($dst$$Register), $dst$$Register);
+ }
+ %}
+ ins_pipe( pipe_slow );
+%}
+
+// Remainder Register Long (remainder fit into 32 bits)
+instruct modL_eReg_imm32( eADXRegL dst, immL32 imm, eRegI tmp, eRegI tmp2, eFlagsReg cr ) %{
+ match(Set dst (ModL dst imm));
+ effect( TEMP tmp, TEMP tmp2, KILL cr );
+ ins_cost(1000);
+ format %{ "MOV $tmp,abs($imm) # lrem EDX:EAX,$imm\n\t"
+ "CMP $tmp,EDX\n\t"
+ "JA,s fast\n\t"
+ "MOV $tmp2,EAX\n\t"
+ "MOV EAX,EDX\n\t"
+ "MOV EDX,0\n\t"
+ "JLE,s pos\n\t"
+ "LNEG EAX : $tmp2\n\t"
+ "DIV $tmp # unsigned division\n\t"
+ "MOV EAX,$tmp2\n\t"
+ "DIV $tmp\n\t"
+ "NEG EDX\n\t"
+ "JMP,s done\n"
+ "pos:\n\t"
+ "DIV $tmp\n\t"
+ "MOV EAX,$tmp2\n"
+ "fast:\n\t"
+ "DIV $tmp\n"
+ "done:\n\t"
+ "MOV EAX,EDX\n\t"
+ "SAR EDX,31\n\t" %}
+ ins_encode %{
+ int con = (int)$imm$$constant;
+ assert(con != 0 && con != -1 && con != min_jint, "wrong divisor");
+ int pcon = (con > 0) ? con : -con;
+ Label Lfast, Lpos, Ldone;
+
+ __ movl($tmp$$Register, pcon);
+ __ cmpl($tmp$$Register, HIGH_FROM_LOW($dst$$Register));
+ __ jccb(Assembler::above, Lfast); // src is positive and result fits into 32 bit
+
+ __ movl($tmp2$$Register, $dst$$Register); // save
+ __ movl($dst$$Register, HIGH_FROM_LOW($dst$$Register));
+ __ movl(HIGH_FROM_LOW($dst$$Register),0); // preserve flags
+ __ jccb(Assembler::lessEqual, Lpos); // result is positive
+
+ // Negative dividend.
+ // convert value to positive to use unsigned division
+ __ lneg($dst$$Register, $tmp2$$Register);
+ __ divl($tmp$$Register);
+ __ movl($dst$$Register, $tmp2$$Register);
+ __ divl($tmp$$Register);
+ // revert remainder back to negative
+ __ negl(HIGH_FROM_LOW($dst$$Register));
+ __ jmpb(Ldone);
+
+ __ bind(Lpos);
+ __ divl($tmp$$Register);
+ __ movl($dst$$Register, $tmp2$$Register);
+
+ __ bind(Lfast);
+ // fast path: src is positive
+ __ divl($tmp$$Register);
+
+ __ bind(Ldone);
+ __ movl($dst$$Register, HIGH_FROM_LOW($dst$$Register));
+ __ sarl(HIGH_FROM_LOW($dst$$Register), 31); // result sign
+
+ %}
+ ins_pipe( pipe_slow );
+%}
+
// Integer Shift Instructions
// Shift Left by one
instruct shlI_eReg_1(eRegI dst, immI1 shift, eFlagsReg cr) %{
@@ -10150,41 +10296,45 @@ instruct addD_mem_reg(memory dst, regD src) %{
ins_pipe( fpu_reg_mem );
%}
-instruct addD_reg_imm1(regD dst, immD1 src) %{
+instruct addD_reg_imm1(regD dst, immD1 con) %{
predicate(UseSSE<=1);
- match(Set dst (AddD dst src));
+ match(Set dst (AddD dst con));
ins_cost(125);
format %{ "FLD1\n\t"
"DADDp $dst,ST" %}
- opcode(0xDE, 0x00);
- ins_encode( LdImmD(src),
- OpcP, RegOpc(dst) );
- ins_pipe( fpu_reg );
+ ins_encode %{
+ __ fld1();
+ __ faddp($dst$$reg);
+ %}
+ ins_pipe(fpu_reg);
%}
-instruct addD_reg_imm(regD dst, immD src) %{
+instruct addD_reg_imm(regD dst, immD con) %{
predicate(UseSSE<=1 && _kids[1]->_leaf->getd() != 0.0 && _kids[1]->_leaf->getd() != 1.0 );
- match(Set dst (AddD dst src));
+ match(Set dst (AddD dst con));
ins_cost(200);
- format %{ "FLD_D [$src]\n\t"
+ format %{ "FLD_D [$constantaddress]\t# load from constant table: double=$con\n\t"
"DADDp $dst,ST" %}
- opcode(0xDE, 0x00); /* DE /0 */
- ins_encode( LdImmD(src),
- OpcP, RegOpc(dst));
- ins_pipe( fpu_reg_mem );
+ ins_encode %{
+ __ fld_d($constantaddress($con));
+ __ faddp($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_mem);
%}
instruct addD_reg_imm_round(stackSlotD dst, regD src, immD con) %{
predicate(UseSSE<=1 && _kids[0]->_kids[1]->_leaf->getd() != 0.0 && _kids[0]->_kids[1]->_leaf->getd() != 1.0 );
match(Set dst (RoundDouble (AddD src con)));
ins_cost(200);
- format %{ "FLD_D [$con]\n\t"
+ format %{ "FLD_D [$constantaddress]\t# load from constant table: double=$con\n\t"
"DADD ST,$src\n\t"
"FSTP_D $dst\t# D-round" %}
- opcode(0xD8, 0x00); /* D8 /0 */
- ins_encode( LdImmD(con),
- OpcP, RegOpc(src), Pop_Mem_D(dst));
- ins_pipe( fpu_mem_reg_con );
+ ins_encode %{
+ __ fld_d($constantaddress($con));
+ __ fadd($src$$reg);
+ __ fstp_d(Address(rsp, $dst$$disp));
+ %}
+ ins_pipe(fpu_mem_reg_con);
%}
// Add two double precision floating point values in xmm
@@ -10199,9 +10349,11 @@ instruct addXD_reg(regXD dst, regXD src) %{
instruct addXD_imm(regXD dst, immXD con) %{
predicate(UseSSE>=2);
match(Set dst (AddD dst con));
- format %{ "ADDSD $dst,[$con]" %}
- ins_encode( Opcode(0xF2), Opcode(0x0F), Opcode(0x58), LdImmXD(dst, con) );
- ins_pipe( pipe_slow );
+ format %{ "ADDSD $dst,[$constantaddress]\t# load from constant table: double=$con" %}
+ ins_encode %{
+ __ addsd($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
instruct addXD_mem(regXD dst, memory mem) %{
@@ -10224,9 +10376,11 @@ instruct subXD_reg(regXD dst, regXD src) %{
instruct subXD_imm(regXD dst, immXD con) %{
predicate(UseSSE>=2);
match(Set dst (SubD dst con));
- format %{ "SUBSD $dst,[$con]" %}
- ins_encode( Opcode(0xF2), Opcode(0x0F), Opcode(0x5C), LdImmXD(dst, con) );
- ins_pipe( pipe_slow );
+ format %{ "SUBSD $dst,[$constantaddress]\t# load from constant table: double=$con" %}
+ ins_encode %{
+ __ subsd($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
instruct subXD_mem(regXD dst, memory mem) %{
@@ -10249,9 +10403,11 @@ instruct mulXD_reg(regXD dst, regXD src) %{
instruct mulXD_imm(regXD dst, immXD con) %{
predicate(UseSSE>=2);
match(Set dst (MulD dst con));
- format %{ "MULSD $dst,[$con]" %}
- ins_encode( Opcode(0xF2), Opcode(0x0F), Opcode(0x59), LdImmXD(dst, con) );
- ins_pipe( pipe_slow );
+ format %{ "MULSD $dst,[$constantaddress]\t# load from constant table: double=$con" %}
+ ins_encode %{
+ __ mulsd($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
instruct mulXD_mem(regXD dst, memory mem) %{
@@ -10275,9 +10431,11 @@ instruct divXD_reg(regXD dst, regXD src) %{
instruct divXD_imm(regXD dst, immXD con) %{
predicate(UseSSE>=2);
match(Set dst (DivD dst con));
- format %{ "DIVSD $dst,[$con]" %}
- ins_encode( Opcode(0xF2), Opcode(0x0F), Opcode(0x5E), LdImmXD(dst, con));
- ins_pipe( pipe_slow );
+ format %{ "DIVSD $dst,[$constantaddress]\t# load from constant table: double=$con" %}
+ ins_encode %{
+ __ divsd($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
instruct divXD_mem(regXD dst, memory mem) %{
@@ -10328,16 +10486,17 @@ instruct strictfp_mulD_reg(regDPR1 dst, regnotDPR1 src) %{
ins_pipe( fpu_reg_reg );
%}
-instruct mulD_reg_imm(regD dst, immD src) %{
+instruct mulD_reg_imm(regD dst, immD con) %{
predicate( UseSSE<=1 && _kids[1]->_leaf->getd() != 0.0 && _kids[1]->_leaf->getd() != 1.0 );
- match(Set dst (MulD dst src));
+ match(Set dst (MulD dst con));
ins_cost(200);
- format %{ "FLD_D [$src]\n\t"
+ format %{ "FLD_D [$constantaddress]\t# load from constant table: double=$con\n\t"
"DMULp $dst,ST" %}
- opcode(0xDE, 0x1); /* DE /1 */
- ins_encode( LdImmD(src),
- OpcP, RegOpc(dst) );
- ins_pipe( fpu_reg_mem );
+ ins_encode %{
+ __ fld_d($constantaddress($con));
+ __ fmulp($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_mem);
%}
@@ -11071,9 +11230,11 @@ instruct addX_reg(regX dst, regX src) %{
instruct addX_imm(regX dst, immXF con) %{
predicate(UseSSE>=1);
match(Set dst (AddF dst con));
- format %{ "ADDSS $dst,[$con]" %}
- ins_encode( Opcode(0xF3), Opcode(0x0F), Opcode(0x58), LdImmX(dst, con) );
- ins_pipe( pipe_slow );
+ format %{ "ADDSS $dst,[$constantaddress]\t# load from constant table: float=$con" %}
+ ins_encode %{
+ __ addss($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
instruct addX_mem(regX dst, memory mem) %{
@@ -11096,9 +11257,11 @@ instruct subX_reg(regX dst, regX src) %{
instruct subX_imm(regX dst, immXF con) %{
predicate(UseSSE>=1);
match(Set dst (SubF dst con));
- format %{ "SUBSS $dst,[$con]" %}
- ins_encode( Opcode(0xF3), Opcode(0x0F), Opcode(0x5C), LdImmX(dst, con) );
- ins_pipe( pipe_slow );
+ format %{ "SUBSS $dst,[$constantaddress]\t# load from constant table: float=$con" %}
+ ins_encode %{
+ __ subss($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
instruct subX_mem(regX dst, memory mem) %{
@@ -11121,9 +11284,11 @@ instruct mulX_reg(regX dst, regX src) %{
instruct mulX_imm(regX dst, immXF con) %{
predicate(UseSSE>=1);
match(Set dst (MulF dst con));
- format %{ "MULSS $dst,[$con]" %}
- ins_encode( Opcode(0xF3), Opcode(0x0F), Opcode(0x59), LdImmX(dst, con) );
- ins_pipe( pipe_slow );
+ format %{ "MULSS $dst,[$constantaddress]\t# load from constant table: float=$con" %}
+ ins_encode %{
+ __ mulss($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
instruct mulX_mem(regX dst, memory mem) %{
@@ -11146,9 +11311,11 @@ instruct divX_reg(regX dst, regX src) %{
instruct divX_imm(regX dst, immXF con) %{
predicate(UseSSE>=1);
match(Set dst (DivF dst con));
- format %{ "DIVSS $dst,[$con]" %}
- ins_encode( Opcode(0xF3), Opcode(0x0F), Opcode(0x5E), LdImmX(dst, con) );
- ins_pipe( pipe_slow );
+ format %{ "DIVSS $dst,[$constantaddress]\t# load from constant table: float=$con" %}
+ ins_encode %{
+ __ divss($dst$$XMMRegister, $constantaddress($con));
+ %}
+ ins_pipe(pipe_slow);
%}
instruct divX_mem(regX dst, memory mem) %{
@@ -11303,31 +11470,33 @@ instruct addF24_mem_mem(stackSlotF dst, memory src1, memory src2) %{
// Spill to obtain 24-bit precision
-instruct addF24_reg_imm(stackSlotF dst, regF src1, immF src2) %{
+instruct addF24_reg_imm(stackSlotF dst, regF src, immF con) %{
predicate(UseSSE==0 && Compile::current()->select_24_bit_instr());
- match(Set dst (AddF src1 src2));
- format %{ "FLD $src1\n\t"
- "FADD $src2\n\t"
+ match(Set dst (AddF src con));
+ format %{ "FLD $src\n\t"
+ "FADD_S [$constantaddress]\t# load from constant table: float=$con\n\t"
"FSTP_S $dst" %}
- opcode(0xD8, 0x00); /* D8 /0 */
- ins_encode( Push_Reg_F(src1),
- Opc_MemImm_F(src2),
- Pop_Mem_F(dst));
- ins_pipe( fpu_mem_reg_con );
+ ins_encode %{
+ __ fld_s($src$$reg - 1); // FLD ST(i-1)
+ __ fadd_s($constantaddress($con));
+ __ fstp_s(Address(rsp, $dst$$disp));
+ %}
+ ins_pipe(fpu_mem_reg_con);
%}
//
// This instruction does not round to 24-bits
-instruct addF_reg_imm(regF dst, regF src1, immF src2) %{
+instruct addF_reg_imm(regF dst, regF src, immF con) %{
predicate(UseSSE==0 && !Compile::current()->select_24_bit_instr());
- match(Set dst (AddF src1 src2));
- format %{ "FLD $src1\n\t"
- "FADD $src2\n\t"
- "FSTP_S $dst" %}
- opcode(0xD8, 0x00); /* D8 /0 */
- ins_encode( Push_Reg_F(src1),
- Opc_MemImm_F(src2),
- Pop_Reg_F(dst));
- ins_pipe( fpu_reg_reg_con );
+ match(Set dst (AddF src con));
+ format %{ "FLD $src\n\t"
+ "FADD_S [$constantaddress]\t# load from constant table: float=$con\n\t"
+ "FSTP $dst" %}
+ ins_encode %{
+ __ fld_s($src$$reg - 1); // FLD ST(i-1)
+ __ fadd_s($constantaddress($con));
+ __ fstp_d($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_reg_con);
%}
// Spill to obtain 24-bit precision
@@ -11406,29 +11575,35 @@ instruct mulF24_mem_mem(stackSlotF dst, memory src1, memory src2) %{
%}
// Spill to obtain 24-bit precision
-instruct mulF24_reg_imm(stackSlotF dst, regF src1, immF src2) %{
+instruct mulF24_reg_imm(stackSlotF dst, regF src, immF con) %{
predicate(UseSSE==0 && Compile::current()->select_24_bit_instr());
- match(Set dst (MulF src1 src2));
+ match(Set dst (MulF src con));
- format %{ "FMULc $dst,$src1,$src2" %}
- opcode(0xD8, 0x1); /* D8 /1*/
- ins_encode( Push_Reg_F(src1),
- Opc_MemImm_F(src2),
- Pop_Mem_F(dst));
- ins_pipe( fpu_mem_reg_con );
+ format %{ "FLD $src\n\t"
+ "FMUL_S [$constantaddress]\t# load from constant table: float=$con\n\t"
+ "FSTP_S $dst" %}
+ ins_encode %{
+ __ fld_s($src$$reg - 1); // FLD ST(i-1)
+ __ fmul_s($constantaddress($con));
+ __ fstp_s(Address(rsp, $dst$$disp));
+ %}
+ ins_pipe(fpu_mem_reg_con);
%}
//
// This instruction does not round to 24-bits
-instruct mulF_reg_imm(regF dst, regF src1, immF src2) %{
+instruct mulF_reg_imm(regF dst, regF src, immF con) %{
predicate(UseSSE==0 && !Compile::current()->select_24_bit_instr());
- match(Set dst (MulF src1 src2));
+ match(Set dst (MulF src con));
- format %{ "FMULc $dst. $src1, $src2" %}
- opcode(0xD8, 0x1); /* D8 /1*/
- ins_encode( Push_Reg_F(src1),
- Opc_MemImm_F(src2),
- Pop_Reg_F(dst));
- ins_pipe( fpu_reg_reg_con );
+ format %{ "FLD $src\n\t"
+ "FMUL_S [$constantaddress]\t# load from constant table: float=$con\n\t"
+ "FSTP $dst" %}
+ ins_encode %{
+ __ fld_s($src$$reg - 1); // FLD ST(i-1)
+ __ fmul_s($constantaddress($con));
+ __ fstp_d($dst$$reg);
+ %}
+ ins_pipe(fpu_reg_reg_con);
%}
@@ -12786,16 +12961,11 @@ instruct maxI_eReg(eRegI dst, eRegI src, eFlagsReg flags) %{
instruct jumpXtnd(eRegI switch_val) %{
match(Jump switch_val);
ins_cost(350);
-
- format %{ "JMP [table_base](,$switch_val,1)\n\t" %}
-
+ format %{ "JMP [$constantaddress](,$switch_val,1)\n\t" %}
ins_encode %{
- address table_base = __ address_table_constant(_index2label);
-
// Jump to Address(table_base + switch_reg)
- InternalAddress table(table_base);
Address index(noreg, $switch_val$$Register, Address::times_1);
- __ jump(ArrayAddress(table, index));
+ __ jump(ArrayAddress($constantaddress, index));
%}
ins_pc_relative(1);
ins_pipe(pipe_jmp);
diff --git a/hotspot/src/cpu/x86/vm/x86_64.ad b/hotspot/src/cpu/x86/vm/x86_64.ad
index b0f73012f5f..e007ce96cc8 100644
--- a/hotspot/src/cpu/x86/vm/x86_64.ad
+++ b/hotspot/src/cpu/x86/vm/x86_64.ad
@@ -832,6 +832,25 @@ void encode_CopyXD( CodeBuffer &cbuf, int dst_encoding, int src_encoding ) {
}
+//=============================================================================
+const bool Matcher::constant_table_absolute_addressing = true;
+const RegMask& MachConstantBaseNode::_out_RegMask = RegMask::Empty;
+
+void MachConstantBaseNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const {
+ // Empty encoding
+}
+
+uint MachConstantBaseNode::size(PhaseRegAlloc* ra_) const {
+ return 0;
+}
+
+#ifndef PRODUCT
+void MachConstantBaseNode::format(PhaseRegAlloc* ra_, outputStream* st) const {
+ st->print("# MachConstantBaseNode (empty encoding)");
+}
+#endif
+
+
//=============================================================================
#ifndef PRODUCT
void MachPrologNode::format(PhaseRegAlloc* ra_, outputStream* st) const
@@ -1922,28 +1941,6 @@ int emit_deopt_handler(CodeBuffer& cbuf)
return offset;
}
-static void emit_double_constant(CodeBuffer& cbuf, double x) {
- int mark = cbuf.insts()->mark_off();
- MacroAssembler _masm(&cbuf);
- address double_address = __ double_constant(x);
- cbuf.insts()->set_mark_off(mark); // preserve mark across masm shift
- emit_d32_reloc(cbuf,
- (int) (double_address - cbuf.insts_end() - 4),
- internal_word_Relocation::spec(double_address),
- RELOC_DISP32);
-}
-
-static void emit_float_constant(CodeBuffer& cbuf, float x) {
- int mark = cbuf.insts()->mark_off();
- MacroAssembler _masm(&cbuf);
- address float_address = __ float_constant(x);
- cbuf.insts()->set_mark_off(mark); // preserve mark across masm shift
- emit_d32_reloc(cbuf,
- (int) (float_address - cbuf.insts_end() - 4),
- internal_word_Relocation::spec(float_address),
- RELOC_DISP32);
-}
-
const bool Matcher::match_rule_supported(int opcode) {
if (!has_match_rule(opcode))
@@ -2065,6 +2062,13 @@ bool Matcher::is_spillable_arg(int reg)
return can_be_java_arg(reg);
}
+bool Matcher::use_asm_for_ldiv_by_con( jlong divisor ) {
+ // In 64 bit mode a code which use multiply when
+ // devisor is constant is faster than hardware
+ // DIV instruction (it uses MulHiL).
+ return false;
+}
+
// Register for DIVI projection of divmodI
RegMask Matcher::divI_proj_mask() {
return INT_RAX_REG_mask;
@@ -2782,43 +2786,6 @@ encode %{
}
%}
- enc_class load_immF(regF dst, immF con)
- %{
- // XXX reg_mem doesn't support RIP-relative addressing yet
- emit_rm(cbuf, 0x0, $dst$$reg & 7, 0x5); // 00 reg 101
- emit_float_constant(cbuf, $con$$constant);
- %}
-
- enc_class load_immD(regD dst, immD con)
- %{
- // XXX reg_mem doesn't support RIP-relative addressing yet
- emit_rm(cbuf, 0x0, $dst$$reg & 7, 0x5); // 00 reg 101
- emit_double_constant(cbuf, $con$$constant);
- %}
-
- enc_class load_conF (regF dst, immF con) %{ // Load float constant
- emit_opcode(cbuf, 0xF3);
- if ($dst$$reg >= 8) {
- emit_opcode(cbuf, Assembler::REX_R);
- }
- emit_opcode(cbuf, 0x0F);
- emit_opcode(cbuf, 0x10);
- emit_rm(cbuf, 0x0, $dst$$reg & 7, 0x5); // 00 reg 101
- emit_float_constant(cbuf, $con$$constant);
- %}
-
- enc_class load_conD (regD dst, immD con) %{ // Load double constant
- // UseXmmLoadAndClearUpper ? movsd(dst, con) : movlpd(dst, con)
- emit_opcode(cbuf, UseXmmLoadAndClearUpper ? 0xF2 : 0x66);
- if ($dst$$reg >= 8) {
- emit_opcode(cbuf, Assembler::REX_R);
- }
- emit_opcode(cbuf, 0x0F);
- emit_opcode(cbuf, UseXmmLoadAndClearUpper ? 0x10 : 0x12);
- emit_rm(cbuf, 0x0, $dst$$reg & 7, 0x5); // 00 reg 101
- emit_double_constant(cbuf, $con$$constant);
- %}
-
// Encode a reg-reg copy. If it is useless, then empty encoding.
enc_class enc_copy(rRegI dst, rRegI src)
%{
@@ -2919,63 +2886,6 @@ encode %{
emit_d32(cbuf, 0x00);
%}
- enc_class jump_enc(rRegL switch_val, rRegI dest) %{
- MacroAssembler masm(&cbuf);
-
- Register switch_reg = as_Register($switch_val$$reg);
- Register dest_reg = as_Register($dest$$reg);
- address table_base = masm.address_table_constant(_index2label);
-
- // We could use jump(ArrayAddress) except that the macro assembler needs to use r10
- // to do that and the compiler is using that register as one it can allocate.
- // So we build it all by hand.
- // Address index(noreg, switch_reg, Address::times_1);
- // ArrayAddress dispatch(table, index);
-
- Address dispatch(dest_reg, switch_reg, Address::times_1);
-
- masm.lea(dest_reg, InternalAddress(table_base));
- masm.jmp(dispatch);
- %}
-
- enc_class jump_enc_addr(rRegL switch_val, immI2 shift, immL32 offset, rRegI dest) %{
- MacroAssembler masm(&cbuf);
-
- Register switch_reg = as_Register($switch_val$$reg);
- Register dest_reg = as_Register($dest$$reg);
- address table_base = masm.address_table_constant(_index2label);
-
- // We could use jump(ArrayAddress) except that the macro assembler needs to use r10
- // to do that and the compiler is using that register as one it can allocate.
- // So we build it all by hand.
- // Address index(noreg, switch_reg, (Address::ScaleFactor)$shift$$constant, (int)$offset$$constant);
- // ArrayAddress dispatch(table, index);
-
- Address dispatch(dest_reg, switch_reg, (Address::ScaleFactor)$shift$$constant, (int)$offset$$constant);
-
- masm.lea(dest_reg, InternalAddress(table_base));
- masm.jmp(dispatch);
- %}
-
- enc_class jump_enc_offset(rRegL switch_val, immI2 shift, rRegI dest) %{
- MacroAssembler masm(&cbuf);
-
- Register switch_reg = as_Register($switch_val$$reg);
- Register dest_reg = as_Register($dest$$reg);
- address table_base = masm.address_table_constant(_index2label);
-
- // We could use jump(ArrayAddress) except that the macro assembler needs to use r10
- // to do that and the compiler is using that register as one it can allocate.
- // So we build it all by hand.
- // Address index(noreg, switch_reg, (Address::ScaleFactor)$shift$$constant);
- // ArrayAddress dispatch(table, index);
-
- Address dispatch(dest_reg, switch_reg, (Address::ScaleFactor)$shift$$constant);
- masm.lea(dest_reg, InternalAddress(table_base));
- masm.jmp(dispatch);
-
- %}
-
enc_class lock_prefix()
%{
if (os::is_MP()) {
@@ -6634,12 +6544,11 @@ instruct loadConL32(rRegL dst, immL32 src)
ins_pipe(ialu_reg);
%}
-instruct loadConP(rRegP dst, immP src)
-%{
- match(Set dst src);
+instruct loadConP(rRegP dst, immP con) %{
+ match(Set dst con);
- format %{ "movq $dst, $src\t# ptr" %}
- ins_encode(load_immP(dst, src));
+ format %{ "movq $dst, $con\t# ptr" %}
+ ins_encode(load_immP(dst, con));
ins_pipe(ialu_reg_fat); // XXX
%}
@@ -6666,13 +6575,13 @@ instruct loadConP31(rRegP dst, immP31 src, rFlagsReg cr)
ins_pipe(ialu_reg);
%}
-instruct loadConF(regF dst, immF src)
-%{
- match(Set dst src);
+instruct loadConF(regF dst, immF con) %{
+ match(Set dst con);
ins_cost(125);
-
- format %{ "movss $dst, [$src]" %}
- ins_encode(load_conF(dst, src));
+ format %{ "movss $dst, [$constantaddress]\t# load from constant table: float=$con" %}
+ ins_encode %{
+ __ movflt($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -6714,13 +6623,13 @@ instruct loadConF0(regF dst, immF0 src)
%}
// Use the same format since predicate() can not be used here.
-instruct loadConD(regD dst, immD src)
-%{
- match(Set dst src);
+instruct loadConD(regD dst, immD con) %{
+ match(Set dst con);
ins_cost(125);
-
- format %{ "movsd $dst, [$src]" %}
- ins_encode(load_conD(dst, src));
+ format %{ "movsd $dst, [$constantaddress]\t# load from constant table: double=$con" %}
+ ins_encode %{
+ __ movdbl($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -7349,43 +7258,6 @@ instruct bytes_reverse_short(rRegI dst) %{
ins_pipe( ialu_reg );
%}
-instruct loadI_reversed(rRegI dst, memory src) %{
- match(Set dst (ReverseBytesI (LoadI src)));
-
- format %{ "bswap_movl $dst, $src" %}
- opcode(0x8B, 0x0F, 0xC8); /* Opcode 8B 0F C8 */
- ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src), REX_reg(dst), OpcS, opc3_reg(dst));
- ins_pipe( ialu_reg_mem );
-%}
-
-instruct loadL_reversed(rRegL dst, memory src) %{
- match(Set dst (ReverseBytesL (LoadL src)));
-
- format %{ "bswap_movq $dst, $src" %}
- opcode(0x8B, 0x0F, 0xC8); /* Opcode 8B 0F C8 */
- ins_encode(REX_reg_mem_wide(dst, src), OpcP, reg_mem(dst, src), REX_reg_wide(dst), OpcS, opc3_reg(dst));
- ins_pipe( ialu_reg_mem );
-%}
-
-instruct storeI_reversed(memory dst, rRegI src) %{
- match(Set dst (StoreI dst (ReverseBytesI src)));
-
- format %{ "movl_bswap $dst, $src" %}
- opcode(0x0F, 0xC8, 0x89); /* Opcode 0F C8 89 */
- ins_encode( REX_reg(src), OpcP, opc2_reg(src), REX_reg_mem(src, dst), OpcT, reg_mem(src, dst) );
- ins_pipe( ialu_mem_reg );
-%}
-
-instruct storeL_reversed(memory dst, rRegL src) %{
- match(Set dst (StoreL dst (ReverseBytesL src)));
-
- format %{ "movq_bswap $dst, $src" %}
- opcode(0x0F, 0xC8, 0x89); /* Opcode 0F C8 89 */
- ins_encode( REX_reg_wide(src), OpcP, opc2_reg(src), REX_reg_mem_wide(src, dst), OpcT, reg_mem(src, dst) );
- ins_pipe( ialu_mem_reg );
-%}
-
-
//---------- Zeros Count Instructions ------------------------------------------
instruct countLeadingZerosI(rRegI dst, rRegI src, rFlagsReg cr) %{
@@ -7724,9 +7596,18 @@ instruct jumpXtnd_offset(rRegL switch_val, immI2 shift, rRegI dest) %{
predicate(false);
effect(TEMP dest);
- format %{ "leaq $dest, table_base\n\t"
+ format %{ "leaq $dest, [$constantaddress]\n\t"
"jmp [$dest + $switch_val << $shift]\n\t" %}
- ins_encode(jump_enc_offset(switch_val, shift, dest));
+ ins_encode %{
+ // We could use jump(ArrayAddress) except that the macro assembler needs to use r10
+ // to do that and the compiler is using that register as one it can allocate.
+ // So we build it all by hand.
+ // Address index(noreg, switch_reg, (Address::ScaleFactor)$shift$$constant);
+ // ArrayAddress dispatch(table, index);
+ Address dispatch($dest$$Register, $switch_val$$Register, (Address::ScaleFactor) $shift$$constant);
+ __ lea($dest$$Register, $constantaddress);
+ __ jmp(dispatch);
+ %}
ins_pipe(pipe_jmp);
ins_pc_relative(1);
%}
@@ -7736,9 +7617,18 @@ instruct jumpXtnd_addr(rRegL switch_val, immI2 shift, immL32 offset, rRegI dest)
ins_cost(350);
effect(TEMP dest);
- format %{ "leaq $dest, table_base\n\t"
+ format %{ "leaq $dest, [$constantaddress]\n\t"
"jmp [$dest + $switch_val << $shift + $offset]\n\t" %}
- ins_encode(jump_enc_addr(switch_val, shift, offset, dest));
+ ins_encode %{
+ // We could use jump(ArrayAddress) except that the macro assembler needs to use r10
+ // to do that and the compiler is using that register as one it can allocate.
+ // So we build it all by hand.
+ // Address index(noreg, switch_reg, (Address::ScaleFactor) $shift$$constant, (int) $offset$$constant);
+ // ArrayAddress dispatch(table, index);
+ Address dispatch($dest$$Register, $switch_val$$Register, (Address::ScaleFactor) $shift$$constant, (int) $offset$$constant);
+ __ lea($dest$$Register, $constantaddress);
+ __ jmp(dispatch);
+ %}
ins_pipe(pipe_jmp);
ins_pc_relative(1);
%}
@@ -7748,9 +7638,18 @@ instruct jumpXtnd(rRegL switch_val, rRegI dest) %{
ins_cost(350);
effect(TEMP dest);
- format %{ "leaq $dest, table_base\n\t"
+ format %{ "leaq $dest, [$constantaddress]\n\t"
"jmp [$dest + $switch_val]\n\t" %}
- ins_encode(jump_enc(switch_val, dest));
+ ins_encode %{
+ // We could use jump(ArrayAddress) except that the macro assembler needs to use r10
+ // to do that and the compiler is using that register as one it can allocate.
+ // So we build it all by hand.
+ // Address index(noreg, switch_reg, Address::times_1);
+ // ArrayAddress dispatch(table, index);
+ Address dispatch($dest$$Register, $switch_val$$Register, Address::times_1);
+ __ lea($dest$$Register, $constantaddress);
+ __ jmp(dispatch);
+ %}
ins_pipe(pipe_jmp);
ins_pc_relative(1);
%}
@@ -10406,30 +10305,36 @@ instruct cmpF_cc_memCF(rFlagsRegUCF cr, regF src1, memory src2) %{
ins_pipe(pipe_slow);
%}
-instruct cmpF_cc_imm(rFlagsRegU cr, regF src1, immF src2)
-%{
- match(Set cr (CmpF src1 src2));
+instruct cmpF_cc_imm(rFlagsRegU cr, regF src, immF con) %{
+ match(Set cr (CmpF src con));
ins_cost(145);
- format %{ "ucomiss $src1, $src2\n\t"
+ format %{ "ucomiss $src, [$constantaddress]\t# load from constant table: float=$con\n\t"
"jnp,s exit\n\t"
"pushfq\t# saw NaN, set CF\n\t"
"andq [rsp], #0xffffff2b\n\t"
"popfq\n"
"exit: nop\t# avoid branch to branch" %}
- opcode(0x0F, 0x2E);
- ins_encode(REX_reg_mem(src1, src2), OpcP, OpcS, load_immF(src1, src2),
- cmpfp_fixup);
+ ins_encode %{
+ Label L_exit;
+ __ ucomiss($src$$XMMRegister, $constantaddress($con));
+ __ jcc(Assembler::noParity, L_exit);
+ __ pushf();
+ __ andq(rsp, 0xffffff2b);
+ __ popf();
+ __ bind(L_exit);
+ __ nop();
+ %}
ins_pipe(pipe_slow);
%}
-instruct cmpF_cc_immCF(rFlagsRegUCF cr, regF src1, immF src2) %{
- match(Set cr (CmpF src1 src2));
-
+instruct cmpF_cc_immCF(rFlagsRegUCF cr, regF src, immF con) %{
+ match(Set cr (CmpF src con));
ins_cost(100);
- format %{ "ucomiss $src1, $src2" %}
- opcode(0x0F, 0x2E);
- ins_encode(REX_reg_mem(src1, src2), OpcP, OpcS, load_immF(src1, src2));
+ format %{ "ucomiss $src, [$constantaddress]\t# load from constant table: float=$con" %}
+ ins_encode %{
+ __ ucomiss($src$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10488,30 +10393,36 @@ instruct cmpD_cc_memCF(rFlagsRegUCF cr, regD src1, memory src2) %{
ins_pipe(pipe_slow);
%}
-instruct cmpD_cc_imm(rFlagsRegU cr, regD src1, immD src2)
-%{
- match(Set cr (CmpD src1 src2));
+instruct cmpD_cc_imm(rFlagsRegU cr, regD src, immD con) %{
+ match(Set cr (CmpD src con));
ins_cost(145);
- format %{ "ucomisd $src1, [$src2]\n\t"
+ format %{ "ucomisd $src, [$constantaddress]\t# load from constant table: double=$con\n\t"
"jnp,s exit\n\t"
"pushfq\t# saw NaN, set CF\n\t"
"andq [rsp], #0xffffff2b\n\t"
"popfq\n"
"exit: nop\t# avoid branch to branch" %}
- opcode(0x66, 0x0F, 0x2E);
- ins_encode(OpcP, REX_reg_mem(src1, src2), OpcS, OpcT, load_immD(src1, src2),
- cmpfp_fixup);
+ ins_encode %{
+ Label L_exit;
+ __ ucomisd($src$$XMMRegister, $constantaddress($con));
+ __ jcc(Assembler::noParity, L_exit);
+ __ pushf();
+ __ andq(rsp, 0xffffff2b);
+ __ popf();
+ __ bind(L_exit);
+ __ nop();
+ %}
ins_pipe(pipe_slow);
%}
-instruct cmpD_cc_immCF(rFlagsRegUCF cr, regD src1, immD src2) %{
- match(Set cr (CmpD src1 src2));
-
+instruct cmpD_cc_immCF(rFlagsRegUCF cr, regD src, immD con) %{
+ match(Set cr (CmpD src con));
ins_cost(100);
- format %{ "ucomisd $src1, [$src2]" %}
- opcode(0x66, 0x0F, 0x2E);
- ins_encode(OpcP, REX_reg_mem(src1, src2), OpcS, OpcT, load_immD(src1, src2));
+ format %{ "ucomisd $src, [$constantaddress]\t# load from constant table: double=$con" %}
+ ins_encode %{
+ __ ucomisd($src$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10558,23 +10469,29 @@ instruct cmpF_mem(rRegI dst, regF src1, memory src2, rFlagsReg cr)
%}
// Compare into -1,0,1
-instruct cmpF_imm(rRegI dst, regF src1, immF src2, rFlagsReg cr)
-%{
- match(Set dst (CmpF3 src1 src2));
+instruct cmpF_imm(rRegI dst, regF src, immF con, rFlagsReg cr) %{
+ match(Set dst (CmpF3 src con));
effect(KILL cr);
ins_cost(275);
- format %{ "ucomiss $src1, [$src2]\n\t"
+ format %{ "ucomiss $src, [$constantaddress]\t# load from constant table: float=$con\n\t"
"movl $dst, #-1\n\t"
"jp,s done\n\t"
"jb,s done\n\t"
"setne $dst\n\t"
"movzbl $dst, $dst\n"
"done:" %}
-
- opcode(0x0F, 0x2E);
- ins_encode(REX_reg_mem(src1, src2), OpcP, OpcS, load_immF(src1, src2),
- cmpfp3(dst));
+ ins_encode %{
+ Label L_done;
+ Register Rdst = $dst$$Register;
+ __ ucomiss($src$$XMMRegister, $constantaddress($con));
+ __ movl(Rdst, -1);
+ __ jcc(Assembler::parity, L_done);
+ __ jcc(Assembler::below, L_done);
+ __ setb(Assembler::notEqual, Rdst);
+ __ movzbl(Rdst, Rdst);
+ __ bind(L_done);
+ %}
ins_pipe(pipe_slow);
%}
@@ -10621,23 +10538,29 @@ instruct cmpD_mem(rRegI dst, regD src1, memory src2, rFlagsReg cr)
%}
// Compare into -1,0,1
-instruct cmpD_imm(rRegI dst, regD src1, immD src2, rFlagsReg cr)
-%{
- match(Set dst (CmpD3 src1 src2));
+instruct cmpD_imm(rRegI dst, regD src, immD con, rFlagsReg cr) %{
+ match(Set dst (CmpD3 src con));
effect(KILL cr);
ins_cost(275);
- format %{ "ucomisd $src1, [$src2]\n\t"
+ format %{ "ucomisd $src, [$constantaddress]\t# load from constant table: double=$con\n\t"
"movl $dst, #-1\n\t"
"jp,s done\n\t"
"jb,s done\n\t"
"setne $dst\n\t"
"movzbl $dst, $dst\n"
"done:" %}
-
- opcode(0x66, 0x0F, 0x2E);
- ins_encode(OpcP, REX_reg_mem(src1, src2), OpcS, OpcT, load_immD(src1, src2),
- cmpfp3(dst));
+ ins_encode %{
+ Register Rdst = $dst$$Register;
+ Label L_done;
+ __ ucomisd($src$$XMMRegister, $constantaddress($con));
+ __ movl(Rdst, -1);
+ __ jcc(Assembler::parity, L_done);
+ __ jcc(Assembler::below, L_done);
+ __ setb(Assembler::notEqual, Rdst);
+ __ movzbl(Rdst, Rdst);
+ __ bind(L_done);
+ %}
ins_pipe(pipe_slow);
%}
@@ -10663,14 +10586,13 @@ instruct addF_mem(regF dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct addF_imm(regF dst, immF src)
-%{
- match(Set dst (AddF dst src));
-
- format %{ "addss $dst, [$src]" %}
+instruct addF_imm(regF dst, immF con) %{
+ match(Set dst (AddF dst con));
+ format %{ "addss $dst, [$constantaddress]\t# load from constant table: float=$con" %}
ins_cost(150); // XXX
- opcode(0xF3, 0x0F, 0x58);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immF(dst, src));
+ ins_encode %{
+ __ addss($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10696,14 +10618,13 @@ instruct addD_mem(regD dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct addD_imm(regD dst, immD src)
-%{
- match(Set dst (AddD dst src));
-
- format %{ "addsd $dst, [$src]" %}
+instruct addD_imm(regD dst, immD con) %{
+ match(Set dst (AddD dst con));
+ format %{ "addsd $dst, [$constantaddress]\t# load from constant table: double=$con" %}
ins_cost(150); // XXX
- opcode(0xF2, 0x0F, 0x58);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immD(dst, src));
+ ins_encode %{
+ __ addsd($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10729,14 +10650,13 @@ instruct subF_mem(regF dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct subF_imm(regF dst, immF src)
-%{
- match(Set dst (SubF dst src));
-
- format %{ "subss $dst, [$src]" %}
+instruct subF_imm(regF dst, immF con) %{
+ match(Set dst (SubF dst con));
+ format %{ "subss $dst, [$constantaddress]\t# load from constant table: float=$con" %}
ins_cost(150); // XXX
- opcode(0xF3, 0x0F, 0x5C);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immF(dst, src));
+ ins_encode %{
+ __ subss($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10762,14 +10682,13 @@ instruct subD_mem(regD dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct subD_imm(regD dst, immD src)
-%{
- match(Set dst (SubD dst src));
-
- format %{ "subsd $dst, [$src]" %}
+instruct subD_imm(regD dst, immD con) %{
+ match(Set dst (SubD dst con));
+ format %{ "subsd $dst, [$constantaddress]\t# load from constant table: double=$con" %}
ins_cost(150); // XXX
- opcode(0xF2, 0x0F, 0x5C);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immD(dst, src));
+ ins_encode %{
+ __ subsd($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10795,14 +10714,13 @@ instruct mulF_mem(regF dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct mulF_imm(regF dst, immF src)
-%{
- match(Set dst (MulF dst src));
-
- format %{ "mulss $dst, [$src]" %}
+instruct mulF_imm(regF dst, immF con) %{
+ match(Set dst (MulF dst con));
+ format %{ "mulss $dst, [$constantaddress]\t# load from constant table: float=$con" %}
ins_cost(150); // XXX
- opcode(0xF3, 0x0F, 0x59);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immF(dst, src));
+ ins_encode %{
+ __ mulss($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10828,14 +10746,13 @@ instruct mulD_mem(regD dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct mulD_imm(regD dst, immD src)
-%{
- match(Set dst (MulD dst src));
-
- format %{ "mulsd $dst, [$src]" %}
+instruct mulD_imm(regD dst, immD con) %{
+ match(Set dst (MulD dst con));
+ format %{ "mulsd $dst, [$constantaddress]\t# load from constant table: double=$con" %}
ins_cost(150); // XXX
- opcode(0xF2, 0x0F, 0x59);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immD(dst, src));
+ ins_encode %{
+ __ mulsd($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10861,14 +10778,13 @@ instruct divF_mem(regF dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct divF_imm(regF dst, immF src)
-%{
- match(Set dst (DivF dst src));
-
- format %{ "divss $dst, [$src]" %}
+instruct divF_imm(regF dst, immF con) %{
+ match(Set dst (DivF dst con));
+ format %{ "divss $dst, [$constantaddress]\t# load from constant table: float=$con" %}
ins_cost(150); // XXX
- opcode(0xF3, 0x0F, 0x5E);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immF(dst, src));
+ ins_encode %{
+ __ divss($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10894,14 +10810,13 @@ instruct divD_mem(regD dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct divD_imm(regD dst, immD src)
-%{
- match(Set dst (DivD dst src));
-
- format %{ "divsd $dst, [$src]" %}
+instruct divD_imm(regD dst, immD con) %{
+ match(Set dst (DivD dst con));
+ format %{ "divsd $dst, [$constantaddress]\t# load from constant table: double=$con" %}
ins_cost(150); // XXX
- opcode(0xF2, 0x0F, 0x5E);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immD(dst, src));
+ ins_encode %{
+ __ divsd($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10927,14 +10842,13 @@ instruct sqrtF_mem(regF dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct sqrtF_imm(regF dst, immF src)
-%{
- match(Set dst (ConvD2F (SqrtD (ConvF2D src))));
-
- format %{ "sqrtss $dst, [$src]" %}
+instruct sqrtF_imm(regF dst, immF con) %{
+ match(Set dst (ConvD2F (SqrtD (ConvF2D con))));
+ format %{ "sqrtss $dst, [$constantaddress]\t# load from constant table: float=$con" %}
ins_cost(150); // XXX
- opcode(0xF3, 0x0F, 0x51);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immF(dst, src));
+ ins_encode %{
+ __ sqrtss($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
@@ -10960,14 +10874,13 @@ instruct sqrtD_mem(regD dst, memory src)
ins_pipe(pipe_slow);
%}
-instruct sqrtD_imm(regD dst, immD src)
-%{
- match(Set dst (SqrtD src));
-
- format %{ "sqrtsd $dst, [$src]" %}
+instruct sqrtD_imm(regD dst, immD con) %{
+ match(Set dst (SqrtD con));
+ format %{ "sqrtsd $dst, [$constantaddress]\t# load from constant table: double=$con" %}
ins_cost(150); // XXX
- opcode(0xF2, 0x0F, 0x51);
- ins_encode(OpcP, REX_reg_mem(dst, src), OpcS, OpcT, load_immD(dst, src));
+ ins_encode %{
+ __ sqrtsd($dst$$XMMRegister, $constantaddress($con));
+ %}
ins_pipe(pipe_slow);
%}
diff --git a/hotspot/src/cpu/zero/vm/assembler_zero.cpp b/hotspot/src/cpu/zero/vm/assembler_zero.cpp
index a748d4009c2..a3e36276415 100644
--- a/hotspot/src/cpu/zero/vm/assembler_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/assembler_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,24 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_assembler_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_zero.inline.hpp"
+#include "gc_interface/collectedHeap.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "memory/cardTableModRefBS.hpp"
+#include "memory/resourceArea.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/objectMonitor.hpp"
+#include "runtime/os.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#ifndef SERIALGC
+#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
+#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
+#include "gc_implementation/g1/heapRegion.hpp"
+#endif
int AbstractAssembler::code_fill_byte() {
return 0;
diff --git a/hotspot/src/cpu/zero/vm/assembler_zero.hpp b/hotspot/src/cpu/zero/vm/assembler_zero.hpp
index ec7ac47920e..2cc25a73aa0 100644
--- a/hotspot/src/cpu/zero/vm/assembler_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/assembler_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_ASSEMBLER_ZERO_HPP
+#define CPU_ZERO_VM_ASSEMBLER_ZERO_HPP
+
// In normal, CPU-specific ports of HotSpot these two classes are used
// for generating assembly language. We don't do any of this in zero,
// of course, but we do sneak entry points around in CodeBuffers so we
@@ -62,3 +65,5 @@ inline bool AbstractAssembler::pd_check_instruction_mark() {
address ShouldNotCallThisStub();
address ShouldNotCallThisEntry();
+
+#endif // CPU_ZERO_VM_ASSEMBLER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp b/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp
index 1e7f6703a71..274ded2a097 100644
--- a/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp
+++ b/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,14 @@
*
*/
+#ifndef CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP
+#define CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP
+
+#include "asm/assembler.inline.hpp"
+#include "asm/codeBuffer.hpp"
+#include "code/codeCache.hpp"
+#include "runtime/handles.inline.hpp"
+
// This file is intentionally empty
+
+#endif // CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP
diff --git a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp
index 0ef2c5db186..1dc891231bb 100644
--- a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,25 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_cppInterpreter_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interp_masm_zero.hpp"
+#include "interpreter/bytecodeInterpreter.hpp"
+#include "interpreter/bytecodeInterpreter.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
#ifdef CC_INTERP
diff --git a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp
index 49da4359d25..1980be2ba5c 100644
--- a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP
+#define CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP
+
// Platform specific for C++ based Interpreter
#if defined(PPC) || defined(SPARC) || defined(IA64)
@@ -146,3 +149,5 @@
((VMJavaVal64*)(addr))->d)
#define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \
((VMJavaVal64*)(addr))->l)
+
+#endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp
index a35809f0a5b..6a32ea6a39f 100644
--- a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp
+++ b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP
+#define CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP
+
// Inline interpreter functions for zero
inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) {
@@ -299,3 +302,5 @@ inline jshort BytecodeInterpreter::VMint2Short(jint val) {
inline jbyte BytecodeInterpreter::VMint2Byte(jint val) {
return (jbyte) val;
}
+
+#endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP
diff --git a/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp b/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp
index 0655291158d..e3f801f400a 100644
--- a/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,8 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_bytecodes_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/bytecodes.hpp"
void Bytecodes::pd_initialize() {
// No zero specific initialization
diff --git a/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp b/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp
index 1e7f6703a71..f214bb74512 100644
--- a/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_BYTECODES_ZERO_HPP
+#define CPU_ZERO_VM_BYTECODES_ZERO_HPP
+
// This file is intentionally empty
+
+#endif // CPU_ZERO_VM_BYTECODES_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/bytes_zero.hpp b/hotspot/src/cpu/zero/vm/bytes_zero.hpp
index 5bd0254c481..39caaeabcc3 100644
--- a/hotspot/src/cpu/zero/vm/bytes_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/bytes_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,11 @@
*
*/
+#ifndef CPU_ZERO_VM_BYTES_ZERO_HPP
+#define CPU_ZERO_VM_BYTES_ZERO_HPP
+
+#include "memory/allocation.hpp"
+
typedef union unaligned {
u4 u;
u2 us;
@@ -160,5 +165,10 @@ class Bytes: AllStatic {
#ifdef VM_LITTLE_ENDIAN
// The following header contains the implementations of swap_u2,
// swap_u4, and swap_u8
-#include "incls/_bytes_pd.inline.hpp.incl"
+#ifdef TARGET_OS_ARCH_linux_zero
+# include "bytes_linux_zero.inline.hpp"
+#endif
+
#endif // VM_LITTLE_ENDIAN
+
+#endif // CPU_ZERO_VM_BYTES_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp b/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp
index c3348ba8cd0..7837f9a239c 100644
--- a/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,5 +23,10 @@
*
*/
+#ifndef CPU_ZERO_VM_CODEBUFFER_ZERO_HPP
+#define CPU_ZERO_VM_CODEBUFFER_ZERO_HPP
+
private:
void pd_initialize() {}
+
+#endif // CPU_ZERO_VM_CODEBUFFER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/copy_zero.hpp b/hotspot/src/cpu/zero/vm/copy_zero.hpp
index 971d45d05c0..1837e2b98eb 100644
--- a/hotspot/src/cpu/zero/vm/copy_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/copy_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_COPY_ZERO_HPP
+#define CPU_ZERO_VM_COPY_ZERO_HPP
+
// Inline functions for memory copy and fill.
static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) {
@@ -176,3 +179,5 @@ static void pd_zero_to_words(HeapWord* tohw, size_t count) {
static void pd_zero_to_bytes(void* to, size_t count) {
memset(to, 0, count);
}
+
+#endif // CPU_ZERO_VM_COPY_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp b/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp
index 78bacdfa2b4..ff61306c760 100644
--- a/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP
+#define CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP
+
protected:
MacroAssembler* assembler() const {
return _masm;
@@ -35,3 +38,5 @@
entry->set_entry_point(entry_point);
return (address) entry;
}
+
+#endif // CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
index 3d55bbecd37..1c945f22dd4 100644
--- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,33 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_cppInterpreter_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/cppInterpreter.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "stack_zero.inline.hpp"
+#include "utilities/debug.hpp"
+#ifdef SHARK
+#include "shark/shark_globals.hpp"
+#endif
#ifdef CC_INTERP
diff --git a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp
index 9c101e91382..26f0e0414c8 100644
--- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP
+#define CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP
+
protected:
// Size of interpreter code
const static int InterpreterCodeSize = 6 * K;
@@ -41,3 +44,5 @@
private:
// Fast result type determination
static BasicType result_type_of(methodOop method);
+
+#endif // CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/debug_zero.cpp b/hotspot/src/cpu/zero/vm/debug_zero.cpp
index 062198e52f5..19d00e33cdc 100644
--- a/hotspot/src/cpu/zero/vm/debug_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/debug_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,14 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_debug_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "code/codeCache.hpp"
+#include "code/nmethod.hpp"
+#include "runtime/frame.hpp"
+#include "runtime/init.hpp"
+#include "runtime/os.hpp"
+#include "utilities/debug.hpp"
+#include "utilities/top.hpp"
void pd_ps(frame f) {
ShouldNotCallThis();
diff --git a/hotspot/src/cpu/zero/vm/depChecker_zero.cpp b/hotspot/src/cpu/zero/vm/depChecker_zero.cpp
index 1e7f6703a71..fcc514141e5 100644
--- a/hotspot/src/cpu/zero/vm/depChecker_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/depChecker_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,8 @@
*
*/
+#include "precompiled.hpp"
+#include "compiler/disassembler.hpp"
+#include "depChecker_zero.hpp"
+
// This file is intentionally empty
diff --git a/hotspot/src/cpu/zero/vm/depChecker_zero.hpp b/hotspot/src/cpu/zero/vm/depChecker_zero.hpp
index 1e7f6703a71..cf5a401c4a8 100644
--- a/hotspot/src/cpu/zero/vm/depChecker_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/depChecker_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_DEPCHECKER_ZERO_HPP
+#define CPU_ZERO_VM_DEPCHECKER_ZERO_HPP
+
// This file is intentionally empty
+
+#endif // CPU_ZERO_VM_DEPCHECKER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/disassembler_zero.cpp b/hotspot/src/cpu/zero/vm/disassembler_zero.cpp
index 1e7f6703a71..944a52f5dd9 100644
--- a/hotspot/src/cpu/zero/vm/disassembler_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/disassembler_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,6 @@
*
*/
+#include "precompiled.hpp"
+
// This file is intentionally empty
diff --git a/hotspot/src/cpu/zero/vm/disassembler_zero.hpp b/hotspot/src/cpu/zero/vm/disassembler_zero.hpp
index c488cf8e765..889b91330e6 100644
--- a/hotspot/src/cpu/zero/vm/disassembler_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/disassembler_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP
+#define CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP
+
static int pd_instruction_alignment() {
return 1;
}
@@ -30,3 +33,5 @@
static const char* pd_cpu_opts() {
return "";
}
+
+#endif // CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/dump_zero.cpp b/hotspot/src/cpu/zero/vm/dump_zero.cpp
index 5ff4d60d59f..c9f341bdc05 100644
--- a/hotspot/src/cpu/zero/vm/dump_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/dump_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,11 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_dump_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_zero.inline.hpp"
+#include "memory/compactingPermGenGen.hpp"
+#include "memory/generation.inline.hpp"
+#include "memory/space.inline.hpp"
void CompactingPermGenGen::generate_vtable_methods(void** vtbl_list,
void** vtable,
diff --git a/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp b/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp
index 95643f906a9..434b11adf1f 100644
--- a/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,12 @@
*
*/
+#ifndef CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP
+#define CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP
+
+#include "runtime/javaCalls.hpp"
+#include "stack_zero.hpp"
+
// | ... |
// +--------------------+ ------------------
// | parameter n-1 | low addresses
@@ -63,3 +69,5 @@ class EntryFrame : public ZeroFrame {
char* valuebuf,
int buflen) const;
};
+
+#endif // CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/entry_zero.hpp b/hotspot/src/cpu/zero/vm/entry_zero.hpp
index ed7dff57720..78e25a6757d 100644
--- a/hotspot/src/cpu/zero/vm/entry_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/entry_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP
+#define CPU_ZERO_VM_ENTRY_ZERO_HPP
+
class ZeroEntry {
public:
ZeroEntry() {
@@ -72,3 +75,5 @@ class ZeroEntry {
return byte_offset_of(ZeroEntry, _entry_point);
}
};
+
+#endif // CPU_ZERO_VM_ENTRY_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp b/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp
index ccaf9f5bb71..b7a3b01ca80 100644
--- a/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,11 @@
*
*/
+#ifndef CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP
+#define CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP
+
+#include "stack_zero.hpp"
+
// | ... |
// +--------------------+ ------------------
// | frame_type | low addresses
@@ -51,3 +56,5 @@ class FakeStubFrame : public ZeroFrame {
char* valuebuf,
int buflen) const {}
};
+
+#endif // CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/frame_zero.cpp b/hotspot/src/cpu/zero/vm/frame_zero.cpp
index cc68ec905e6..a1e5ea6cfa1 100644
--- a/hotspot/src/cpu/zero/vm/frame_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/frame_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,26 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_frame_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "code/scopeDesc.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/markOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/monitorChunk.hpp"
+#include "runtime/signature.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "vmreg_zero.inline.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#include "runtime/vframeArray.hpp"
+#endif
#ifdef ASSERT
void RegisterMap::check_location_valid() {
diff --git a/hotspot/src/cpu/zero/vm/frame_zero.hpp b/hotspot/src/cpu/zero/vm/frame_zero.hpp
index f70e8d44148..56f0a1716b0 100644
--- a/hotspot/src/cpu/zero/vm/frame_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/frame_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,12 @@
*
*/
+#ifndef CPU_ZERO_VM_FRAME_ZERO_HPP
+#define CPU_ZERO_VM_FRAME_ZERO_HPP
+
+#include "runtime/synchronizer.hpp"
+#include "utilities/top.hpp"
+
// A frame represents a physical stack frame on the Zero stack.
public:
@@ -72,3 +78,5 @@
outputStream* st,
char* buf,
int buflen) const;
+
+#endif // CPU_ZERO_VM_FRAME_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp b/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp
index 50fda705ad9..9ad237de945 100644
--- a/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp
+++ b/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP
+#define CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP
+
// Constructors
inline frame::frame() {
@@ -149,3 +152,5 @@ inline intptr_t* frame::unextended_sp() const {
else
return (intptr_t *) -1;
}
+
+#endif // CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP
diff --git a/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp b/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp
index 2ab140aa4c5..ceb010f3cc8 100644
--- a/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
+#define CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
+
#include
+
+#endif // CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/globals_zero.hpp b/hotspot/src/cpu/zero/vm/globals_zero.hpp
index f9d1635cb4c..88c7d0888df 100644
--- a/hotspot/src/cpu/zero/vm/globals_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/globals_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,12 @@
*
*/
+#ifndef CPU_ZERO_VM_GLOBALS_ZERO_HPP
+#define CPU_ZERO_VM_GLOBALS_ZERO_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
// Set the default values for platform dependent flags used by the
// runtime system. See globals.hpp for details of what they do.
@@ -45,3 +51,7 @@ define_pd_global(intx, StackShadowPages, 5 LP64_ONLY(+1) DEBUG_ONLY(+3));
define_pd_global(bool, RewriteBytecodes, true);
define_pd_global(bool, RewriteFrequentPairs, true);
+
+define_pd_global(bool, UseMembar, false);
+
+#endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp b/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp
index 3291c387dba..85e9f729140 100644
--- a/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,16 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_icBuffer_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_zero.inline.hpp"
+#include "code/icBuffer.hpp"
+#include "gc_interface/collectedHeap.inline.hpp"
+#include "interpreter/bytecodes.hpp"
+#include "memory/resourceArea.hpp"
+#include "nativeInst_zero.hpp"
+#include "oops/oop.inline.hpp"
+#include "oops/oop.inline2.hpp"
int InlineCacheBuffer::ic_stub_code_size() {
// NB set this once the functions below are implemented
diff --git a/hotspot/src/cpu/zero/vm/icache_zero.cpp b/hotspot/src/cpu/zero/vm/icache_zero.cpp
index 5253ff55e7a..b37465016dd 100644
--- a/hotspot/src/cpu/zero/vm/icache_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/icache_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_icache_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_zero.inline.hpp"
+#include "runtime/icache.hpp"
void ICacheStubGenerator::generate_icache_flush(
ICache::flush_icache_stub_t* flush_icache_stub) {
diff --git a/hotspot/src/cpu/zero/vm/icache_zero.hpp b/hotspot/src/cpu/zero/vm/icache_zero.hpp
index 7dd2bcb79e3..2383d211e2e 100644
--- a/hotspot/src/cpu/zero/vm/icache_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/icache_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_ICACHE_ZERO_HPP
+#define CPU_ZERO_VM_ICACHE_ZERO_HPP
+
// Interface for updating the instruction cache. Whenever the VM
// modifies code, part of the processor instruction cache potentially
// has to be flushed. This implementation is empty: Zero never deals
@@ -34,3 +37,5 @@ class ICache : public AbstractICache {
static void invalidate_word(address addr) {}
static void invalidate_range(address start, int nbytes) {}
};
+
+#endif // CPU_ZERO_VM_ICACHE_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp b/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp
index 1e7f6703a71..8b470ebcee7 100644
--- a/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,22 @@
*
*/
+#include "precompiled.hpp"
+#include "interp_masm_zero.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/markOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiRedefineClassesTrace.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/basicLock.hpp"
+#include "runtime/biasedLocking.hpp"
+#include "runtime/sharedRuntime.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+
// This file is intentionally empty
diff --git a/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp b/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp
index 75b9be05e04..493f0b7909d 100644
--- a/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,12 @@
*
*/
+#ifndef CPU_ZERO_VM_INTERP_MASM_ZERO_HPP
+#define CPU_ZERO_VM_INTERP_MASM_ZERO_HPP
+
+#include "assembler_zero.inline.hpp"
+#include "interpreter/invocationCounter.hpp"
+
// This file specializes the assember with interpreter-specific macros
class InterpreterMacroAssembler : public MacroAssembler {
@@ -36,3 +42,5 @@ class InterpreterMacroAssembler : public MacroAssembler {
ShouldNotCallThis();
}
};
+
+#endif // CPU_ZERO_VM_INTERP_MASM_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp b/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp
index e0f3a5eac76..0e2b7888077 100644
--- a/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,14 @@
*
*/
+#ifndef CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP
+#define CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP
+
+#include "interpreter/bytecodeInterpreter.hpp"
+#include "oops/methodOop.hpp"
+#include "runtime/thread.hpp"
+#include "stack_zero.hpp"
+
#ifdef CC_INTERP
// | ... |
// +--------------------+ ------------------
@@ -71,3 +79,5 @@ class InterpreterFrame : public ZeroFrame {
int buflen) const;
};
#endif // CC_INTERP
+
+#endif // CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp b/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp
index 2f0ce7ad11e..fe9acbf7595 100644
--- a/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP
+#define CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP
+
// Generation of Interpreter
//
friend class AbstractInterpreterGenerator;
@@ -35,3 +38,5 @@
address generate_empty_entry();
address generate_accessor_entry();
address generate_method_handle_entry();
+
+#endif // CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp b/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
index c8c50a47aa1..785645ac77e 100644
--- a/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,18 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreterRT_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/universe.inline.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/icache.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/signature.hpp"
+#include "stack_zero.inline.hpp"
void InterpreterRuntime::SignatureHandlerGeneratorBase::pass_int() {
push(T_INT);
diff --git a/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp b/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp
index 692450210a5..6330dd4fe4b 100644
--- a/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,11 @@
*
*/
+#ifndef CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP
+#define CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP
+
+#include "memory/allocation.hpp"
+
class SignatureHandler {
public:
static SignatureHandler *from_handlerAddr(address handlerAddr) {
@@ -92,15 +97,15 @@ class SignatureHandlerGenerator : public SignatureHandlerGeneratorBase {
public:
SignatureHandlerGenerator(methodHandle method, CodeBuffer* buffer)
- : SignatureHandlerGeneratorBase(method, (ffi_cif *) buffer->code_end()),
+ : SignatureHandlerGeneratorBase(method, (ffi_cif *) buffer->insts_end()),
_cb(buffer) {
- _cb->set_code_end((address) (cif() + 1));
+ _cb->set_insts_end((address) (cif() + 1));
}
private:
void push(intptr_t value) {
- intptr_t *dst = (intptr_t *) _cb->code_end();
- _cb->set_code_end((address) (dst + 1));
+ intptr_t *dst = (intptr_t *) _cb->insts_end();
+ _cb->set_insts_end((address) (dst + 1));
*dst = value;
}
};
@@ -125,3 +130,5 @@ class SlowSignatureHandlerGenerator : public SignatureHandlerGeneratorBase {
return (SignatureHandler *) cif();
}
};
+
+#endif // CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/interpreter_zero.cpp b/hotspot/src/cpu/zero/vm/interpreter_zero.cpp
index a74cef8ae01..027d372a2f6 100644
--- a/hotspot/src/cpu/zero/vm/interpreter_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/interpreter_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,32 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_interpreter_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
address AbstractInterpreterGenerator::generate_slow_signature_handler() {
_masm->advance(1);
diff --git a/hotspot/src/cpu/zero/vm/interpreter_zero.hpp b/hotspot/src/cpu/zero/vm/interpreter_zero.hpp
index 192fe210391..b7b0f1d8b32 100644
--- a/hotspot/src/cpu/zero/vm/interpreter_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/interpreter_zero.hpp
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_INTERPRETER_ZERO_HPP
+#define CPU_ZERO_VM_INTERPRETER_ZERO_HPP
+
public:
static void invoke_method(methodOop method, address entry_point, TRAPS) {
((ZeroEntry *) entry_point)->invoke(method, THREAD);
@@ -47,3 +50,5 @@
assert(i <= 0, "local direction already negated");
return stackElementWords * i;
}
+
+#endif // CPU_ZERO_VM_INTERPRETER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp b/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp
index 0763790b64e..275fcf53dca 100644
--- a/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP
+#define CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP
+
private:
ZeroFrame* volatile _last_Java_fp;
@@ -89,3 +92,5 @@
static ByteSize last_Java_fp_offset() {
return byte_offset_of(JavaFrameAnchor, _last_Java_fp);
}
+
+#endif // CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp b/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp
index 1d089430b97..d37ed807b69 100644
--- a/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,12 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_jniFastGetField_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_zero.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm_misc.hpp"
+#include "runtime/safepoint.hpp"
address JNI_FastGetField::generate_fast_get_boolean_field() {
return (address) -1;
diff --git a/hotspot/src/cpu/zero/vm/jniTypes_zero.hpp b/hotspot/src/cpu/zero/vm/jniTypes_zero.hpp
index 0ee26a77215..766b5e1d6bc 100644
--- a/hotspot/src/cpu/zero/vm/jniTypes_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/jniTypes_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,13 @@
*
*/
+#ifndef CPU_ZERO_VM_JNITYPES_ZERO_HPP
+#define CPU_ZERO_VM_JNITYPES_ZERO_HPP
+
+#include "memory/allocation.hpp"
+#include "oops/oop.hpp"
+#include "prims/jni.h"
+
// This file holds platform-dependent routines used to write primitive jni
// types to the array of arguments passed into JavaCalls::call
@@ -106,3 +113,5 @@ public:
#endif
};
+
+#endif // CPU_ZERO_VM_JNITYPES_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/jni_zero.h b/hotspot/src/cpu/zero/vm/jni_zero.h
index e814a9e1c9c..0e21634dff6 100644
--- a/hotspot/src/cpu/zero/vm/jni_zero.h
+++ b/hotspot/src/cpu/zero/vm/jni_zero.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
diff --git a/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp b/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp
index fa6e675f93f..b76b2a7c2f9 100644
--- a/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,10 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_methodHandles_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "memory/allocation.inline.hpp"
+#include "prims/methodHandles.hpp"
int MethodHandles::adapter_conversion_ops_supported_mask() {
ShouldNotCallThis();
diff --git a/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp b/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp
index 60fb24f2d1d..98a2121a8da 100644
--- a/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,18 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_nativeInst_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "assembler_zero.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "nativeInst_zero.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/handles.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "utilities/ostream.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
// This method is called by nmethod::make_not_entrant_or_zombie to
// insert a jump to SharedRuntime::get_handle_wrong_method_stub()
diff --git a/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp b/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp
index 005574dff28..16d1d3f0dee 100644
--- a/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,15 @@
*
*/
+#ifndef CPU_ZERO_VM_NATIVEINST_ZERO_HPP
+#define CPU_ZERO_VM_NATIVEINST_ZERO_HPP
+
+#include "asm/assembler.hpp"
+#include "memory/allocation.hpp"
+#include "runtime/icache.hpp"
+#include "runtime/os.hpp"
+#include "utilities/top.hpp"
+
// We have interfaces for the following instructions:
// - NativeInstruction
// - - NativeCall
@@ -183,3 +192,5 @@ class NativeGeneralJump : public NativeInstruction {
inline NativeGeneralJump* nativeGeneralJump_at(address address) {
ShouldNotCallThis();
}
+
+#endif // CPU_ZERO_VM_NATIVEINST_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/registerMap_zero.hpp b/hotspot/src/cpu/zero/vm/registerMap_zero.hpp
index 64a6b65afae..6c9e0e6827b 100644
--- a/hotspot/src/cpu/zero/vm/registerMap_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/registerMap_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef CPU_ZERO_VM_REGISTERMAP_ZERO_HPP
+#define CPU_ZERO_VM_REGISTERMAP_ZERO_HPP
+
// machine-dependent implemention for register maps
friend class frame;
@@ -37,3 +40,5 @@
void pd_clear() {}
void pd_initialize() {}
void pd_initialize_from(const RegisterMap* map) {}
+
+#endif // CPU_ZERO_VM_REGISTERMAP_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp b/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp
index 1e7f6703a71..4ed89fe2b28 100644
--- a/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,10 @@
*
*/
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "asm/register.hpp"
+#include "interp_masm_zero.hpp"
+#include "register_zero.hpp"
+
// This file is intentionally empty
diff --git a/hotspot/src/cpu/zero/vm/register_zero.cpp b/hotspot/src/cpu/zero/vm/register_zero.cpp
index ddea3c248ff..31bee7baf78 100644
--- a/hotspot/src/cpu/zero/vm/register_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/register_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,8 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_register_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "register_zero.hpp"
const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers;
const int ConcreteRegisterImpl::max_fpr =
diff --git a/hotspot/src/cpu/zero/vm/register_zero.hpp b/hotspot/src/cpu/zero/vm/register_zero.hpp
index 65f5ca6eda9..0bcc7638248 100644
--- a/hotspot/src/cpu/zero/vm/register_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/register_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,12 @@
*
*/
+#ifndef CPU_ZERO_VM_REGISTER_ZERO_HPP
+#define CPU_ZERO_VM_REGISTER_ZERO_HPP
+
+#include "asm/register.hpp"
+#include "vm_version_zero.hpp"
+
class VMRegImpl;
typedef VMRegImpl* VMReg;
@@ -108,3 +114,5 @@ class ConcreteRegisterImpl : public AbstractRegisterImpl {
};
CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1));
+
+#endif // CPU_ZERO_VM_REGISTER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp b/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp
index 637d9c799d8..e04acad8fd0 100644
--- a/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,13 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_relocInfo_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.inline.hpp"
+#include "assembler_zero.inline.hpp"
+#include "code/relocInfo.hpp"
+#include "nativeInst_zero.hpp"
+#include "oops/oop.inline.hpp"
+#include "runtime/safepoint.hpp"
void Relocation::pd_set_data_value(address x, intptr_t o) {
ShouldNotCallThis();
diff --git a/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp b/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp
index 6abcb888152..75cf0eaf9af 100644
--- a/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_RELOCINFO_ZERO_HPP
+#define CPU_ZERO_VM_RELOCINFO_ZERO_HPP
+
// machine-dependent parts of class relocInfo
private:
enum {
@@ -30,3 +33,5 @@
offset_unit = 1,
format_width = 1
};
+
+#endif // CPU_ZERO_VM_RELOCINFO_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
index 2fa914482eb..b88c5e810f6 100644
--- a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,28 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_sharedRuntime_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_zero.inline.hpp"
+#include "code/debugInfoRec.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "oops/compiledICHolderOop.hpp"
+#include "prims/jvmtiRedefineClassesTrace.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/vframeArray.hpp"
+#include "vmreg_zero.inline.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
+#ifdef SHARK
+#include "compiler/compileBroker.hpp"
+#include "shark/sharkCompiler.hpp"
+#endif
DeoptimizationBlob *SharedRuntime::_deopt_blob;
SafepointBlob *SharedRuntime::_polling_page_safepoint_handler_blob;
diff --git a/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp b/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp
index 4cea6594d32..0dd4b0a52d7 100644
--- a/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,12 @@
*
*/
+#ifndef CPU_ZERO_VM_SHARKFRAME_ZERO_HPP
+#define CPU_ZERO_VM_SHARKFRAME_ZERO_HPP
+
+#include "oops/methodOop.hpp"
+#include "stack_zero.hpp"
+
// | ... |
// +--------------------+ ------------------
// | stack slot n-1 | low addresses
@@ -77,3 +83,5 @@ class SharkFrame : public ZeroFrame {
char* valuebuf,
int buflen) const;
};
+
+#endif // CPU_ZERO_VM_SHARKFRAME_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp b/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp
index 30151973840..32a2646139f 100644
--- a/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP
+#define CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP
+
// Set the default values for platform dependent flags used by the
// Shark compiler. See globals.hpp for details of what they do.
@@ -60,3 +63,5 @@ define_pd_global(uintx, MaxPermSize, 64*M );
define_pd_global(bool, NeverActAsServerClassMachine, true );
define_pd_global(uint64_t, MaxRAM, 1ULL*G);
define_pd_global(bool, CICompileOSR, true );
+
+#endif // CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/stack_zero.cpp b/hotspot/src/cpu/zero/vm/stack_zero.cpp
index 59e94978baf..f1b31cc95ae 100644
--- a/hotspot/src/cpu/zero/vm/stack_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/stack_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,10 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stack_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "stack_zero.hpp"
+#include "stack_zero.inline.hpp"
int ZeroStack::suggest_size(Thread *thread) const {
assert(needs_setup(), "already set up");
diff --git a/hotspot/src/cpu/zero/vm/stack_zero.hpp b/hotspot/src/cpu/zero/vm/stack_zero.hpp
index 304944aa1a2..5f34b7c1cb7 100644
--- a/hotspot/src/cpu/zero/vm/stack_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/stack_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,11 @@
*
*/
+#ifndef CPU_ZERO_VM_STACK_ZERO_HPP
+#define CPU_ZERO_VM_STACK_ZERO_HPP
+
+#include "utilities/sizes.hpp"
+
class ZeroStack {
private:
intptr_t *_base; // the last available word
@@ -217,3 +222,5 @@ class ZeroFrame {
char* fieldbuf,
int buflen) const;
};
+
+#endif // CPU_ZERO_VM_STACK_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp b/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
index 516312f436a..f0387bb7bfd 100644
--- a/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
+++ b/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,12 @@
*
*/
+#ifndef CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
+#define CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
+
+#include "runtime/thread.hpp"
+#include "stack_zero.hpp"
+
// This function should match SharkStack::CreateStackOverflowCheck
inline void ZeroStack::overflow_check(int required_words, TRAPS) {
// Check the Zero stack
@@ -46,3 +52,5 @@ inline int ZeroStack::abi_stack_available(Thread *thread) const {
int stack_free = thread->stack_size() - stack_used;
return stack_free - shadow_pages_size();
}
+
+#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
diff --git a/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp b/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp
index ada26e089bc..77d23a4ffb7 100644
--- a/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,29 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubGenerator_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_zero.inline.hpp"
+#include "interpreter/interpreter.hpp"
+#include "nativeInst_zero.hpp"
+#include "oops/instanceOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "stack_zero.inline.hpp"
+#include "utilities/top.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// Declaration and definition of StubGenerator (no .hpp file).
// For a more detailed description of the stub routine structure
diff --git a/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp b/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp
index ba92c3b9324..4a8c7cb9329 100644
--- a/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,13 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubRoutines_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/stubRoutines.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "thread_linux.inline.hpp"
+#endif
#ifdef IA32
address StubRoutines::x86::_call_stub_compiled_return = NULL;
diff --git a/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp b/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp
index b088f548a36..d4d521b4bc4 100644
--- a/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_STUBROUTINES_ZERO_HPP
+#define CPU_ZERO_VM_STUBROUTINES_ZERO_HPP
+
// This file holds the platform specific parts of the StubRoutines
// definition. See stubRoutines.hpp for a description on how to
// extend it.
@@ -53,3 +56,5 @@
static address _call_stub_compiled_return;
};
#endif // IA32
+
+#endif // CPU_ZERO_VM_STUBROUTINES_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp b/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp
index 1e7f6703a71..1747bc6ea26 100644
--- a/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP
+#define CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP
+
// This file is intentionally empty
+
+#endif // CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp
index 1e7f6703a71..53486a3907b 100644
--- a/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,27 @@
*
*/
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "interpreter/bytecodeHistogram.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterGenerator.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "oops/arrayOop.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/jvmtiExport.hpp"
+#include "prims/jvmtiThreadState.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+#include "runtime/timer.hpp"
+#include "runtime/vframeArray.hpp"
+#include "utilities/debug.hpp"
+
// This file is intentionally empty
diff --git a/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp b/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp
index 1e7f6703a71..fb0e266a3a9 100644
--- a/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP
+#define CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP
+
// This file is intentionally empty
+
+#endif // CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/templateTable_zero.cpp b/hotspot/src/cpu/zero/vm/templateTable_zero.cpp
index 1e7f6703a71..e5fb7b17f7a 100644
--- a/hotspot/src/cpu/zero/vm/templateTable_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/templateTable_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,17 @@
*
*/
+#include "precompiled.hpp"
+#include "interpreter/interpreter.hpp"
+#include "interpreter/interpreterRuntime.hpp"
+#include "interpreter/templateTable.hpp"
+#include "memory/universe.inline.hpp"
+#include "oops/methodDataOop.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.inline.hpp"
+#include "prims/methodHandles.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/synchronizer.hpp"
+
// This file is intentionally empty
diff --git a/hotspot/src/cpu/zero/vm/templateTable_zero.hpp b/hotspot/src/cpu/zero/vm/templateTable_zero.hpp
index 1e7f6703a71..6fc38560522 100644
--- a/hotspot/src/cpu/zero/vm/templateTable_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/templateTable_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP
+#define CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP
+
// This file is intentionally empty
+
+#endif // CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/vmStructs_zero.hpp b/hotspot/src/cpu/zero/vm/vmStructs_zero.hpp
index 872d37fcc25..1b3815a0a2c 100644
--- a/hotspot/src/cpu/zero/vm/vmStructs_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/vmStructs_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP
+#define CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP
+
// These are the CPU-specific fields, types and integer
// constants required by the Serviceability Agent. This file is
// referenced by vmStructs.cpp.
@@ -50,3 +53,5 @@
/* NOTE that we do not use the last_entry() macro here; it is used */
/* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */
/* be present there) */
+
+#endif // CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/vm_version_zero.cpp b/hotspot/src/cpu/zero/vm/vm_version_zero.cpp
index 1e7f6703a71..87ff88be5ae 100644
--- a/hotspot/src/cpu/zero/vm/vm_version_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/vm_version_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,14 @@
*
*/
+#include "precompiled.hpp"
+#include "assembler_zero.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "runtime/java.hpp"
+#include "runtime/stubCodeGenerator.hpp"
+#include "vm_version_zero.hpp"
+#ifdef TARGET_OS_FAMILY_linux
+# include "os_linux.inline.hpp"
+#endif
+
// This file is intentionally empty
diff --git a/hotspot/src/cpu/zero/vm/vm_version_zero.hpp b/hotspot/src/cpu/zero/vm/vm_version_zero.hpp
index c16ab5ddc71..78109b933f4 100644
--- a/hotspot/src/cpu/zero/vm/vm_version_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/vm_version_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,9 +23,17 @@
*
*/
+#ifndef CPU_ZERO_VM_VM_VERSION_ZERO_HPP
+#define CPU_ZERO_VM_VM_VERSION_ZERO_HPP
+
+#include "runtime/globals_extension.hpp"
+#include "runtime/vm_version.hpp"
+
class VM_Version : public Abstract_VM_Version {
public:
static const char* cpu_features() {
return "";
}
};
+
+#endif // CPU_ZERO_VM_VM_VERSION_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/vmreg_zero.cpp b/hotspot/src/cpu/zero/vm/vmreg_zero.cpp
index 8385cb976dc..a5181cf8f53 100644
--- a/hotspot/src/cpu/zero/vm/vmreg_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/vmreg_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_vmreg_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "code/vmreg.hpp"
void VMRegImpl::set_regName() {
int i = 0;
diff --git a/hotspot/src/cpu/zero/vm/vmreg_zero.hpp b/hotspot/src/cpu/zero/vm/vmreg_zero.hpp
index 6234fdd6f85..60354a11ca0 100644
--- a/hotspot/src/cpu/zero/vm/vmreg_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/vmreg_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,13 @@
*
*/
+#ifndef CPU_ZERO_VM_VMREG_ZERO_HPP
+#define CPU_ZERO_VM_VMREG_ZERO_HPP
+
bool is_Register();
Register as_Register();
bool is_FloatRegister();
FloatRegister as_FloatRegister();
+
+#endif // CPU_ZERO_VM_VMREG_ZERO_HPP
diff --git a/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp b/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp
index 56c7b8712ce..0c771062a25 100644
--- a/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp
+++ b/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP
+#define CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP
+
inline VMReg RegisterImpl::as_VMReg() {
return VMRegImpl::as_VMReg(encoding());
}
@@ -30,3 +33,5 @@ inline VMReg RegisterImpl::as_VMReg() {
inline VMReg FloatRegisterImpl::as_VMReg() {
return VMRegImpl::as_VMReg(encoding() + ConcreteRegisterImpl::max_gpr);
}
+
+#endif // CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP
diff --git a/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp b/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp
index 13605d9362d..e4ea32e44c1 100644
--- a/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,19 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_vtableStubs_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_zero.inline.hpp"
+#include "code/vtableStubs.hpp"
+#include "interp_masm_zero.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/instanceKlass.hpp"
+#include "oops/klassVtable.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "vmreg_zero.inline.hpp"
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
ShouldNotCallThis();
diff --git a/hotspot/src/os/linux/launcher/java.h b/hotspot/src/os/linux/launcher/java.h
deleted file mode 100644
index 88b0ccb541d..00000000000
--- a/hotspot/src/os/linux/launcher/java.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 1999, 2008, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-/*
- * Gamma (Hotspot internal engineering test) launcher based on 1.6.0-b28 JDK,
- * search "GAMMA" for gamma specific changes.
- */
-
-#ifndef _JAVA_H_
-#define _JAVA_H_
-
-/*
- * Get system specific defines.
- */
-#include "jni.h"
-#include "java_md.h"
-
-/*
- * Pointers to the needed JNI invocation API, initialized by LoadJavaVM.
- */
-typedef jint (JNICALL *CreateJavaVM_t)(JavaVM **pvm, void **env, void *args);
-typedef jint (JNICALL *GetDefaultJavaVMInitArgs_t)(void *args);
-
-typedef struct {
- CreateJavaVM_t CreateJavaVM;
- GetDefaultJavaVMInitArgs_t GetDefaultJavaVMInitArgs;
-} InvocationFunctions;
-
-/*
- * Prototypes for launcher functions in the system specific java_md.c.
- */
-
-jboolean
-LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn);
-
-void
-GetXUsagePath(char *buf, jint bufsize);
-
-jboolean
-GetApplicationHome(char *buf, jint bufsize);
-
-const char *
-GetArch();
-
-void CreateExecutionEnvironment(int *_argc,
- char ***_argv,
- char jrepath[],
- jint so_jrepath,
- char jvmpath[],
- jint so_jvmpath,
- char **original_argv);
-
-/*
- * Report an error message to stderr or a window as appropriate. The
- * flag always is set to JNI_TRUE if message is to be reported to both
- * strerr and windows and set to JNI_FALSE if the message should only
- * be sent to a window.
- */
-void ReportErrorMessage(char * message, jboolean always);
-void ReportErrorMessage2(char * format, char * string, jboolean always);
-
-/*
- * Report an exception which terminates the vm to stderr or a window
- * as appropriate.
- */
-void ReportExceptionDescription(JNIEnv * env);
-
-jboolean RemovableMachineDependentOption(char * option);
-void PrintMachineDependentOptions();
-
-/*
- * Functions defined in java.c and used in java_md.c.
- */
-jint ReadKnownVMs(const char *jrepath, char * arch, jboolean speculative);
-char *CheckJvmType(int *argc, char ***argv, jboolean speculative);
-void* MemAlloc(size_t size);
-
-/*
- * Make launcher spit debug output.
- */
-extern jboolean _launcher_debug;
-/*
- * This allows for finding classes from the VM's bootstrap class loader
- * directly, FindClass uses the application class loader internally, this will
- * cause unnecessary searching of the classpath for the required classes.
- */
-typedef jclass (JNICALL FindClassFromBootLoader_t(JNIEnv *env,
- const char *name,
- jboolean throwError));
-
-jclass FindBootStrapClass(JNIEnv *env, const char *classname);
-
-#endif /* _JAVA_H_ */
diff --git a/hotspot/src/os/linux/vm/attachListener_linux.cpp b/hotspot/src/os/linux/vm/attachListener_linux.cpp
index 837410ab3bd..5b9c7294995 100644
--- a/hotspot/src/os/linux/vm/attachListener_linux.cpp
+++ b/hotspot/src/os/linux/vm/attachListener_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_attachListener_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/os.hpp"
+#include "services/attachListener.hpp"
+#include "services/dtraceAttacher.hpp"
#include
#include
@@ -176,10 +179,10 @@ int LinuxAttachListener::init() {
int n = snprintf(path, UNIX_PATH_MAX, "%s/.java_pid%d",
os::get_temp_directory(), os::current_process_id());
- if (n <= (int)UNIX_PATH_MAX) {
+ if (n < (int)UNIX_PATH_MAX) {
n = snprintf(initial_path, UNIX_PATH_MAX, "%s.tmp", path);
}
- if (n > (int)UNIX_PATH_MAX) {
+ if (n >= (int)UNIX_PATH_MAX) {
return -1;
}
diff --git a/hotspot/src/os/linux/vm/c1_globals_linux.hpp b/hotspot/src/os/linux/vm/c1_globals_linux.hpp
index 301d169c178..0507898060a 100644
--- a/hotspot/src/os/linux/vm/c1_globals_linux.hpp
+++ b/hotspot/src/os/linux/vm/c1_globals_linux.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,7 +22,15 @@
*
*/
+#ifndef OS_LINUX_VM_C1_GLOBALS_LINUX_HPP
+#define OS_LINUX_VM_C1_GLOBALS_LINUX_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
//
// Sets the default values for operating system dependent flags used by the
// client compiler. (see c1_globals.hpp)
//
+
+#endif // OS_LINUX_VM_C1_GLOBALS_LINUX_HPP
diff --git a/hotspot/src/os/linux/vm/c2_globals_linux.hpp b/hotspot/src/os/linux/vm/c2_globals_linux.hpp
index b14af55c55c..d81638946c4 100644
--- a/hotspot/src/os/linux/vm/c2_globals_linux.hpp
+++ b/hotspot/src/os/linux/vm/c2_globals_linux.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,7 +22,15 @@
*
*/
+#ifndef OS_LINUX_VM_C2_GLOBALS_LINUX_HPP
+#define OS_LINUX_VM_C2_GLOBALS_LINUX_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
//
// Sets the default values for operating system dependent flags used by the
// server compiler. (see c2_globals.hpp)
//
+
+#endif // OS_LINUX_VM_C2_GLOBALS_LINUX_HPP
diff --git a/hotspot/src/os/linux/vm/chaitin_linux.cpp b/hotspot/src/os/linux/vm/chaitin_linux.cpp
index 461ad342c53..e4925644dbc 100644
--- a/hotspot/src/os/linux/vm/chaitin_linux.cpp
+++ b/hotspot/src/os/linux/vm/chaitin_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_chaitin_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "opto/chaitin.hpp"
+#include "opto/machnode.hpp"
void PhaseRegAlloc::pd_preallocate_hook() {
// no action
diff --git a/hotspot/src/os/linux/vm/objectMonitor_linux.cpp b/hotspot/src/os/linux/vm/decoder_linux.cpp
similarity index 58%
rename from hotspot/src/os/linux/vm/objectMonitor_linux.cpp
rename to hotspot/src/os/linux/vm/decoder_linux.cpp
index 4e7878d22fe..88da33b65b3 100644
--- a/hotspot/src/os/linux/vm/objectMonitor_linux.cpp
+++ b/hotspot/src/os/linux/vm/decoder_linux.cpp
@@ -1,6 +1,5 @@
-
/*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,3 +21,25 @@
* questions.
*
*/
+
+#include "prims/jvm.h"
+#include "utilities/decoder.hpp"
+
+#include
+
+bool Decoder::demangle(const char* symbol, char *buf, int buflen) {
+ int status;
+ char* result;
+ size_t size = (size_t)buflen;
+
+ // Don't pass buf to __cxa_demangle. In case of the 'buf' is too small,
+ // __cxa_demangle will call system "realloc" for additional memory, which
+ // may use different malloc/realloc mechanism that allocates 'buf'.
+ if ((result = abi::__cxa_demangle(symbol, NULL, NULL, &status)) != NULL) {
+ jio_snprintf(buf, buflen, "%s", result);
+ // call c library's free
+ ::free(result);
+ return true;
+ }
+ return false;
+}
diff --git a/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp b/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp
index a7be2486e13..0f340fb5730 100644
--- a/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp
+++ b/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,16 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_dtraceJSDT_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "classfile/javaClasses.hpp"
+#include "code/codeBlob.hpp"
+#include "memory/allocation.hpp"
+#include "prims/jvm.h"
+#include "runtime/dtraceJSDT.hpp"
+#include "runtime/jniHandles.hpp"
+#include "runtime/os.hpp"
+#include "runtime/signature.hpp"
+#include "utilities/globalDefinitions.hpp"
int DTraceJSDT::pd_activate(
void* baseAddress, jstring module,
diff --git a/hotspot/src/os/linux/vm/globals_linux.hpp b/hotspot/src/os/linux/vm/globals_linux.hpp
index 75b31373703..cd74589e40c 100644
--- a/hotspot/src/os/linux/vm/globals_linux.hpp
+++ b/hotspot/src/os/linux/vm/globals_linux.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_LINUX_VM_GLOBALS_LINUX_HPP
+#define OS_LINUX_VM_GLOBALS_LINUX_HPP
+
//
// Defines Linux specific flags. They are not available on other platforms.
//
@@ -42,3 +45,5 @@ define_pd_global(bool, UseLargePages, false);
define_pd_global(bool, UseLargePagesIndividualAllocation, false);
define_pd_global(bool, UseOSErrorReporting, false);
define_pd_global(bool, UseThreadPriorities, true) ;
+
+#endif // OS_LINUX_VM_GLOBALS_LINUX_HPP
diff --git a/hotspot/src/os/linux/vm/hpi_linux.cpp b/hotspot/src/os/linux/vm/hpi_linux.cpp
deleted file mode 100644
index 04bec5d2db0..00000000000
--- a/hotspot/src/os/linux/vm/hpi_linux.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 1999, 2006, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-# include "incls/_precompiled.incl"
-# include "incls/_hpi_linux.cpp.incl"
-
-# include
-# include
-
-typedef jint (JNICALL *init_t)(GetInterfaceFunc *, void *);
-
-void hpi::initialize_get_interface(vm_calls_t *callbacks) {
- char buf[JVM_MAXPATHLEN];
- void *hpi_handle;
- GetInterfaceFunc& getintf = _get_interface;
- jint (JNICALL * DLL_Initialize)(GetInterfaceFunc *, void *);
-
- if (HPILibPath && HPILibPath[0]) {
- strncpy(buf, HPILibPath, JVM_MAXPATHLEN - 1);
- buf[JVM_MAXPATHLEN - 1] = '\0';
- } else {
- const char *thread_type = "native_threads";
-
- os::jvm_path(buf, JVM_MAXPATHLEN);
-
-#ifdef PRODUCT
- const char * hpi_lib = "/libhpi.so";
-#else
- char * ptr = strrchr(buf, '/');
- assert(strstr(ptr, "/libjvm") == ptr, "invalid library name");
- const char * hpi_lib = strstr(ptr, "_g") ? "/libhpi_g.so" : "/libhpi.so";
-#endif
-
- *(strrchr(buf, '/')) = '\0'; /* get rid of /libjvm.so */
- char* p = strrchr(buf, '/');
- if (p != NULL) p[1] = '\0'; /* get rid of hotspot */
- strcat(buf, thread_type);
- strcat(buf, hpi_lib);
- }
-
- if (TraceHPI) tty->print_cr("Loading HPI %s ", buf);
-#ifdef SPARC
- // On 64-bit Ubuntu Sparc RTLD_NOW leads to unresolved deps in libpthread.so
-# define OPEN_MODE RTLD_LAZY
-#else
- // We use RTLD_NOW because of bug 4032715
-# define OPEN_MODE RTLD_NOW
-#endif
- hpi_handle = dlopen(buf, OPEN_MODE);
-#undef OPEN_MODE
-
- if (hpi_handle == NULL) {
- if (TraceHPI) tty->print_cr("HPI dlopen failed: %s", dlerror());
- return;
- }
- DLL_Initialize = CAST_TO_FN_PTR(jint (JNICALL *)(GetInterfaceFunc *, void *),
- dlsym(hpi_handle, "DLL_Initialize"));
- if (TraceHPI && DLL_Initialize == NULL) tty->print_cr("HPI dlsym of DLL_Initialize failed: %s", dlerror());
- if (DLL_Initialize == NULL ||
- (*DLL_Initialize)(&getintf, callbacks) < 0) {
- if (TraceHPI) tty->print_cr("HPI DLL_Initialize failed");
- return;
- }
- if (TraceHPI) tty->print_cr("HPI loaded successfully");
-}
diff --git a/hotspot/src/os/linux/vm/hpi_linux.hpp b/hotspot/src/os/linux/vm/hpi_linux.hpp
deleted file mode 100644
index 5e0daf8e722..00000000000
--- a/hotspot/src/os/linux/vm/hpi_linux.hpp
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (c) 1999, 2005, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-//
-// Because the interruptible IO has been dropped for HotSpot/Linux,
-// the following HPI interface is very different from HotSparc.
-//
-
-#include
-#include
-#include
-#include
-#include
-
-// HPI_FileInterface
-
-inline int hpi::close(int fd) {
- return ::close(fd);
-}
-
-inline size_t hpi::read(int fd, void *buf, unsigned int nBytes) {
- size_t res;
- RESTARTABLE( (size_t) ::read(fd, buf, (size_t) nBytes), res);
- return res;
-}
-
-inline size_t hpi::write(int fd, const void *buf, unsigned int nBytes) {
- size_t res;
- RESTARTABLE((size_t) ::write(fd, buf, (size_t) nBytes), res);
- return res;
-}
-
-
-// HPI_SocketInterface
-
-inline int hpi::socket_close(int fd) {
- return ::close(fd);
-}
-
-inline int hpi::socket(int domain, int type, int protocol) {
- return ::socket(domain, type, protocol);
-}
-
-inline int hpi::recv(int fd, char *buf, int nBytes, int flags) {
- RESTARTABLE_RETURN_INT(::recv(fd, buf, nBytes, (unsigned int) flags));
-}
-
-inline int hpi::send(int fd, char *buf, int nBytes, int flags) {
- RESTARTABLE_RETURN_INT(::send(fd, buf, nBytes, (unsigned int) flags));
-}
-
-inline int hpi::raw_send(int fd, char *buf, int nBytes, int flags) {
- return send(fd, buf, nBytes, flags);
-}
-
-inline int hpi::timeout(int fd, long timeout) {
- julong prevtime,newtime;
- struct timeval t;
-
- gettimeofday(&t, NULL);
- prevtime = ((julong)t.tv_sec * 1000) + t.tv_usec / 1000;
-
- for(;;) {
- struct pollfd pfd;
-
- pfd.fd = fd;
- pfd.events = POLLIN | POLLERR;
-
- int res = ::poll(&pfd, 1, timeout);
-
- if (res == OS_ERR && errno == EINTR) {
-
- // On Linux any value < 0 means "forever"
-
- if(timeout >= 0) {
- gettimeofday(&t, NULL);
- newtime = ((julong)t.tv_sec * 1000) + t.tv_usec / 1000;
- timeout -= newtime - prevtime;
- if(timeout <= 0)
- return OS_OK;
- prevtime = newtime;
- }
- } else
- return res;
- }
-}
-
-inline int hpi::listen(int fd, int count) {
- return ::listen(fd, count);
-}
-
-inline int hpi::connect(int fd, struct sockaddr *him, int len) {
- RESTARTABLE_RETURN_INT(::connect(fd, him, len));
-}
-
-inline int hpi::accept(int fd, struct sockaddr *him, int *len) {
- // This cast is from int to unsigned int on linux. Since we
- // only pass the parameter "len" around the vm and don't try to
- // fetch it's value, this cast is safe for now. The java.net group
- // may need and want to change this interface someday if socklen_t goes
- // to 64 bits on some platform that we support.
- // Linux doc says this can't return EINTR, unlike accept() on Solaris
-
- return ::accept(fd, him, (socklen_t *)len);
-}
-
-inline int hpi::recvfrom(int fd, char *buf, int nBytes, int flags,
- sockaddr *from, int *fromlen) {
- RESTARTABLE_RETURN_INT(::recvfrom(fd, buf, nBytes, (unsigned int) flags, from, (socklen_t *)fromlen));
-}
-
-inline int hpi::sendto(int fd, char *buf, int len, int flags,
- struct sockaddr *to, int tolen) {
- RESTARTABLE_RETURN_INT(::sendto(fd, buf, len, (unsigned int) flags, to, tolen));
-}
-
-inline int hpi::socket_available(int fd, jint *pbytes) {
- // Linux doc says EINTR not returned, unlike Solaris
- int ret = ::ioctl(fd, FIONREAD, pbytes);
-
- //%% note ioctl can return 0 when successful, JVM_SocketAvailable
- // is expected to return 0 on failure and 1 on success to the jdk.
- return (ret < 0) ? 0 : 1;
-}
-
-
-// following methods have been updated to avoid problems in
-// hpi's sockets calls based on sys_api_td.c (JDK1.3)
-
-/*
-HPIDECL(socket_shutdown, "socket_shutdown", _socket, SocketShutdown,
- int, "%d",
- (int fd, int howto),
- ("fd = %d, howto = %d", fd, howto),
- (fd, howto));
- */
-inline int hpi::socket_shutdown(int fd, int howto){
- return ::shutdown(fd, howto);
-}
-
-/*
-HPIDECL(bind, "bind", _socket, Bind,
- int, "%d",
- (int fd, struct sockaddr *him, int len),
- ("fd = %d, him = %p, len = %d",
- fd, him, len),
- (fd, him, len));
-*/
-inline int hpi::bind(int fd, struct sockaddr *him, int len){
- return ::bind(fd, him, len);
-}
-
-/*
-HPIDECL(get_sock_name, "get_sock_name", _socket, GetSocketName,
- int, "%d",
- (int fd, struct sockaddr *him, int *len),
- ("fd = %d, him = %p, len = %p",
- fd, him, len),
- (fd, him, len));
- */
-inline int hpi::get_sock_name(int fd, struct sockaddr *him, int *len){
- return ::getsockname(fd, him, (socklen_t *)len);
-}
-
-/*
-HPIDECL(get_host_name, "get_host_name", _socket, GetHostName, int, "%d",
- (char *hostname, int namelen),
- ("hostname = %p, namelen = %d",
- hostname, namelen),
- (hostname, namelen));
- */
-inline int hpi::get_host_name(char* name, int namelen){
- return ::gethostname(name, namelen);
-}
-
-/*
-HPIDECL(get_sock_opt, "get_sock_opt", _socket, SocketGetOption, int, "%d",
- (int fd, int level, int optname, char *optval, int* optlen),
- ("fd = %d, level = %d, optname = %d, optval = %p, optlen = %p",
- fd, level, optname, optval, optlen),
- (fd, level, optname, optval, optlen));
- */
-inline int hpi::get_sock_opt(int fd, int level, int optname,
- char *optval, int* optlen){
- return ::getsockopt(fd, level, optname, optval, (socklen_t *)optlen);
-}
-
-/*
-HPIDECL(set_sock_opt, "set_sock_opt", _socket, SocketSetOption, int, "%d",
- (int fd, int level, int optname, const char *optval, int optlen),
- ("fd = %d, level = %d, optname = %d, optval = %p, optlen = %d",
- fd, level, optname, optval, optlen),
- (fd, level, optname, optval, optlen));
- */
-inline int hpi::set_sock_opt(int fd, int level, int optname,
- const char *optval, int optlen){
- return ::setsockopt(fd, level, optname, optval, optlen);
-}
-
-
-// Reconciliation History
-// hpi_solaris.hpp 1.9 99/08/30 16:31:23
-// End
diff --git a/hotspot/src/os/linux/vm/interfaceSupport_linux.hpp b/hotspot/src/os/linux/vm/interfaceSupport_linux.hpp
index acc096be80f..5ea58c3b945 100644
--- a/hotspot/src/os/linux/vm/interfaceSupport_linux.hpp
+++ b/hotspot/src/os/linux/vm/interfaceSupport_linux.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,13 @@
*
*/
+#ifndef OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP
+#define OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP
+
// Contains inlined functions for class InterfaceSupport
static inline void serialize_memory(JavaThread *thread) {
os::write_memory_serialize_page(thread);
}
+
+#endif // OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP
diff --git a/hotspot/src/os/linux/vm/jsig.c b/hotspot/src/os/linux/vm/jsig.c
index 638b5e70ec5..13ddb668341 100644
--- a/hotspot/src/os/linux/vm/jsig.c
+++ b/hotspot/src/os/linux/vm/jsig.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
diff --git a/hotspot/src/os/linux/vm/jvm_linux.cpp b/hotspot/src/os/linux/vm/jvm_linux.cpp
index 0d1615eb1f2..ea5bf2d36c7 100644
--- a/hotspot/src/os/linux/vm/jvm_linux.cpp
+++ b/hotspot/src/os/linux/vm/jvm_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,10 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_jvm_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "prims/jvm.h"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/osThread.hpp"
#include
diff --git a/hotspot/src/os/linux/vm/jvm_linux.h b/hotspot/src/os/linux/vm/jvm_linux.h
index 63ef30353c6..795fec11337 100644
--- a/hotspot/src/os/linux/vm/jvm_linux.h
+++ b/hotspot/src/os/linux/vm/jvm_linux.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_LINUX_VM_JVM_LINUX_H
+#define OS_LINUX_VM_JVM_LINUX_H
+
/*
// HotSpot integration note:
//
@@ -95,3 +98,5 @@
// Reconciliation History
// jvm_solaris.h 1.6 99/06/22 16:38:47
// End
+
+#endif // OS_LINUX_VM_JVM_LINUX_H
diff --git a/hotspot/src/os/linux/vm/mutex_linux.cpp b/hotspot/src/os/linux/vm/mutex_linux.cpp
index 3cc4bbd4239..864aca7e86a 100644
--- a/hotspot/src/os/linux/vm/mutex_linux.cpp
+++ b/hotspot/src/os/linux/vm/mutex_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, 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,12 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_mutex_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "mutex_linux.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/mutex.hpp"
+#include "thread_linux.inline.hpp"
+#include "utilities/events.hpp"
// put OS-includes here
# include
diff --git a/hotspot/src/os/linux/vm/mutex_linux.inline.hpp b/hotspot/src/os/linux/vm/mutex_linux.inline.hpp
index 87c6a3701ec..cde6dfe428b 100644
--- a/hotspot/src/os/linux/vm/mutex_linux.inline.hpp
+++ b/hotspot/src/os/linux/vm/mutex_linux.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,7 +22,16 @@
*
*/
+#ifndef OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP
+#define OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP
+
+#include "os_linux.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "thread_linux.inline.hpp"
+
// Reconciliation History
// mutex_solaris.inline.hpp 1.5 99/06/22 16:38:49
// End
+
+#endif // OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP
diff --git a/hotspot/src/os/linux/vm/objectMonitor_linux.inline.hpp b/hotspot/src/os/linux/vm/objectMonitor_linux.inline.hpp
deleted file mode 100644
index 2e84f688281..00000000000
--- a/hotspot/src/os/linux/vm/objectMonitor_linux.inline.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 1999, 2005, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
diff --git a/hotspot/src/os/linux/vm/osThread_linux.cpp b/hotspot/src/os/linux/vm/osThread_linux.cpp
index 6a387225e29..f4ec9f78faa 100644
--- a/hotspot/src/os/linux/vm/osThread_linux.cpp
+++ b/hotspot/src/os/linux/vm/osThread_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,23 @@
*
*/
-// do not include precompiled header file
-# include "incls/_osThread_linux.cpp.incl"
+// no precompiled headers
+#include "runtime/atomic.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/os.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/safepoint.hpp"
+#include "runtime/vmThread.hpp"
+#ifdef TARGET_ARCH_x86
+# include "assembler_x86.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_sparc
+# include "assembler_sparc.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_zero
+# include "assembler_zero.inline.hpp"
+#endif
void OSThread::pd_initialize() {
diff --git a/hotspot/src/os/linux/vm/osThread_linux.hpp b/hotspot/src/os/linux/vm/osThread_linux.hpp
index 389e4a8722c..22945135b78 100644
--- a/hotspot/src/os/linux/vm/osThread_linux.hpp
+++ b/hotspot/src/os/linux/vm/osThread_linux.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_LINUX_VM_OSTHREAD_LINUX_HPP
+#define OS_LINUX_VM_OSTHREAD_LINUX_HPP
+
private:
int _thread_type;
@@ -139,3 +142,5 @@ private:
// Reconciliation History
// osThread_solaris.hpp 1.24 99/08/27 13:11:54
// End
+
+#endif // OS_LINUX_VM_OSTHREAD_LINUX_HPP
diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
index e3e117eb5fb..330e347a7e5 100644
--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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
@@ -24,8 +24,64 @@
# define __STDC_FORMAT_MACROS
-// do not include precompiled header file
-# include "incls/_os_linux.cpp.incl"
+// no precompiled headers
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "compiler/compileBroker.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_linux.h"
+#include "memory/allocation.inline.hpp"
+#include "memory/filemap.hpp"
+#include "mutex_linux.inline.hpp"
+#include "oops/oop.inline.hpp"
+#include "os_share_linux.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/globals.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/objectMonitor.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/perfMemory.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/statSampler.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/threadCritical.hpp"
+#include "runtime/timer.hpp"
+#include "services/attachListener.hpp"
+#include "services/runtimeService.hpp"
+#include "thread_linux.inline.hpp"
+#include "utilities/decoder.hpp"
+#include "utilities/defaultStream.hpp"
+#include "utilities/events.hpp"
+#include "utilities/growableArray.hpp"
+#include "utilities/vmError.hpp"
+#ifdef TARGET_ARCH_x86
+# include "assembler_x86.inline.hpp"
+# include "nativeInst_x86.hpp"
+#endif
+#ifdef TARGET_ARCH_sparc
+# include "assembler_sparc.inline.hpp"
+# include "nativeInst_sparc.hpp"
+#endif
+#ifdef TARGET_ARCH_zero
+# include "assembler_zero.inline.hpp"
+# include "nativeInst_zero.hpp"
+#endif
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// put OS-includes here
# include
@@ -59,6 +115,7 @@
# include
# include
# include
+# include
#define MAX_PATH (2 * K)
@@ -827,8 +884,10 @@ bool os::create_thread(Thread* thread, ThreadType thr_type, size_t stack_size) {
switch (thr_type) {
case os::java_thread:
- // Java threads use ThreadStackSize which default value can be changed with the flag -Xss
- if (JavaThread::stack_size_at_create() > 0) stack_size = JavaThread::stack_size_at_create();
+ // Java threads use ThreadStackSize which default value can be
+ // changed with the flag -Xss
+ assert (JavaThread::stack_size_at_create() > 0, "this should be set");
+ stack_size = JavaThread::stack_size_at_create();
break;
case os::compiler_thread:
if (CompilerThreadStackSize > 0) {
@@ -1507,6 +1566,24 @@ void os::die() {
// unused on linux for now.
void os::set_error_file(const char *logfile) {}
+
+// This method is a copy of JDK's sysGetLastErrorString
+// from src/solaris/hpi/src/system_md.c
+
+size_t os::lasterror(char *buf, size_t len) {
+
+ if (errno == 0) return 0;
+
+ const char *s = ::strerror(errno);
+ size_t n = ::strlen(s);
+ if (n >= len) {
+ n = len - 1;
+ }
+ ::strncpy(buf, s, n);
+ buf[n] = '\0';
+ return n;
+}
+
intx os::current_thread_id() { return (intx)pthread_self(); }
int os::current_process_id() {
@@ -1613,14 +1690,23 @@ bool os::dll_address_to_function_name(address addr, char *buf,
Dl_info dlinfo;
if (dladdr((void*)addr, &dlinfo) && dlinfo.dli_sname != NULL) {
- if (buf) jio_snprintf(buf, buflen, "%s", dlinfo.dli_sname);
- if (offset) *offset = addr - (address)dlinfo.dli_saddr;
+ if (buf != NULL) {
+ if(!Decoder::demangle(dlinfo.dli_sname, buf, buflen)) {
+ jio_snprintf(buf, buflen, "%s", dlinfo.dli_sname);
+ }
+ }
+ if (offset != NULL) *offset = addr - (address)dlinfo.dli_saddr;
return true;
- } else {
- if (buf) buf[0] = '\0';
- if (offset) *offset = -1;
- return false;
+ } else if (dlinfo.dli_fname != NULL && dlinfo.dli_fbase != 0) {
+ if (Decoder::decode((address)(addr - (address)dlinfo.dli_fbase),
+ dlinfo.dli_fname, buf, buflen, offset) == Decoder::no_error) {
+ return true;
+ }
}
+
+ if (buf != NULL) buf[0] = '\0';
+ if (offset != NULL) *offset = -1;
+ return false;
}
struct _address_to_library_name {
@@ -1871,19 +1957,19 @@ void* os::dll_lookup(void* handle, const char* name) {
}
-bool _print_ascii_file(const char* filename, outputStream* st) {
- int fd = open(filename, O_RDONLY);
+static bool _print_ascii_file(const char* filename, outputStream* st) {
+ int fd = ::open(filename, O_RDONLY);
if (fd == -1) {
return false;
}
char buf[32];
int bytes;
- while ((bytes = read(fd, buf, sizeof(buf))) > 0) {
+ while ((bytes = ::read(fd, buf, sizeof(buf))) > 0) {
st->print_raw(buf, bytes);
}
- close(fd);
+ ::close(fd);
return true;
}
@@ -2161,8 +2247,6 @@ void os::jvm_path(char *buf, jint buflen) {
// Use current module name "libjvm[_g].so" instead of
// "libjvm"debug_only("_g")".so" since for fastdebug version
// we should have "libjvm.so" but debug_only("_g") adds "_g"!
- // It is used when we are choosing the HPI library's name
- // "libhpi[_g].so" in hpi::initialize_get_interface().
len = strlen(buf);
snprintf(buf + len, buflen-len, "/hotspot/libjvm%s.so", p);
} else {
@@ -2346,18 +2430,18 @@ void linux_wrap_code(char* base, size_t size) {
os::get_temp_directory(), os::current_process_id(), num);
unlink(buf);
- int fd = open(buf, O_CREAT | O_RDWR, S_IRWXU);
+ int fd = ::open(buf, O_CREAT | O_RDWR, S_IRWXU);
if (fd != -1) {
- off_t rv = lseek(fd, size-2, SEEK_SET);
+ off_t rv = ::lseek(fd, size-2, SEEK_SET);
if (rv != (off_t)-1) {
- if (write(fd, "", 1) == 1) {
+ if (::write(fd, "", 1) == 1) {
mmap(base, size,
PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE, fd, 0);
}
}
- close(fd);
+ ::close(fd);
unlink(buf);
}
}
@@ -3922,12 +4006,21 @@ jint os::init_2(void)
Linux::signal_sets_init();
Linux::install_signal_handlers();
+ // Check minimum allowable stack size for thread creation and to initialize
+ // the java system classes, including StackOverflowError - depends on page
+ // size. Add a page for compiler2 recursion in main thread.
+ // Add in 2*BytesPerWord times page size to account for VM stack during
+ // class initialization depending on 32 or 64 bit VM.
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
+ 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
+
size_t threadStackSizeInBytes = ThreadStackSize * K;
if (threadStackSizeInBytes != 0 &&
- threadStackSizeInBytes < Linux::min_stack_allowed) {
+ threadStackSizeInBytes < os::Linux::min_stack_allowed) {
tty->print_cr("\nThe stack size specified is too small, "
"Specify at least %dk",
- Linux::min_stack_allowed / K);
+ os::Linux::min_stack_allowed/ K);
return JNI_ERR;
}
@@ -3980,13 +4073,6 @@ jint os::init_2(void)
// Initialize lock used to serialize thread creation (see os::create_thread)
Linux::set_createThread_lock(new Mutex(Mutex::leaf, "createThread_lock", false));
- // Initialize HPI.
- jint hpi_result = hpi::initialize();
- if (hpi_result != JNI_OK) {
- tty->print_cr("There was an error trying to initialize the HPI library.");
- return hpi_result;
- }
-
// at-exit methods are called in the reverse order of their registration.
// atexit functions are called on return from main or as a result of a
// call to exit(3C). There can be only 32 of these functions registered
@@ -4184,7 +4270,7 @@ int os::stat(const char *path, struct stat *sbuf) {
errno = ENAMETOOLONG;
return -1;
}
- hpi::native_path(strcpy(pathbuf, path));
+ os::native_path(strcpy(pathbuf, path));
return ::stat(pathbuf, sbuf);
}
@@ -4216,6 +4302,85 @@ bool os::dir_is_empty(const char* path) {
return result;
}
+// This code originates from JDK's sysOpen and open64_w
+// from src/solaris/hpi/src/system_md.c
+
+#ifndef O_DELETE
+#define O_DELETE 0x10000
+#endif
+
+// Open a file. Unlink the file immediately after open returns
+// if the specified oflag has the O_DELETE flag set.
+// O_DELETE is used only in j2se/src/share/native/java/util/zip/ZipFile.c
+
+int os::open(const char *path, int oflag, int mode) {
+
+ if (strlen(path) > MAX_PATH - 1) {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+ int fd;
+ int o_delete = (oflag & O_DELETE);
+ oflag = oflag & ~O_DELETE;
+
+ fd = ::open64(path, oflag, mode);
+ if (fd == -1) return -1;
+
+ //If the open succeeded, the file might still be a directory
+ {
+ struct stat64 buf64;
+ int ret = ::fstat64(fd, &buf64);
+ int st_mode = buf64.st_mode;
+
+ if (ret != -1) {
+ if ((st_mode & S_IFMT) == S_IFDIR) {
+ errno = EISDIR;
+ ::close(fd);
+ return -1;
+ }
+ } else {
+ ::close(fd);
+ return -1;
+ }
+ }
+
+ /*
+ * All file descriptors that are opened in the JVM and not
+ * specifically destined for a subprocess should have the
+ * close-on-exec flag set. If we don't set it, then careless 3rd
+ * party native code might fork and exec without closing all
+ * appropriate file descriptors (e.g. as we do in closeDescriptors in
+ * UNIXProcess.c), and this in turn might:
+ *
+ * - cause end-of-file to fail to be detected on some file
+ * descriptors, resulting in mysterious hangs, or
+ *
+ * - might cause an fopen in the subprocess to fail on a system
+ * suffering from bug 1085341.
+ *
+ * (Yes, the default setting of the close-on-exec flag is a Unix
+ * design flaw)
+ *
+ * See:
+ * 1085341: 32-bit stdio routines should support file descriptors >255
+ * 4843136: (process) pipe file descriptor from Runtime.exec not being closed
+ * 6339493: (process) Runtime.exec does not close all file descriptors on Solaris 9
+ */
+#ifdef FD_CLOEXEC
+ {
+ int flags = ::fcntl(fd, F_GETFD);
+ if (flags != -1)
+ ::fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
+ }
+#endif
+
+ if (o_delete != 0) {
+ ::unlink(path);
+ }
+ return fd;
+}
+
+
// create binary file, rewriting existing file if required
int os::create_binary_file(const char* path, bool rewrite_existing) {
int oflags = O_WRONLY | O_CREAT;
@@ -4235,6 +4400,49 @@ jlong os::seek_to_file_offset(int fd, jlong offset) {
return (jlong)::lseek64(fd, (off64_t)offset, SEEK_SET);
}
+// This code originates from JDK's sysAvailable
+// from src/solaris/hpi/src/native_threads/src/sys_api_td.c
+
+int os::available(int fd, jlong *bytes) {
+ jlong cur, end;
+ int mode;
+ struct stat64 buf64;
+
+ if (::fstat64(fd, &buf64) >= 0) {
+ mode = buf64.st_mode;
+ if (S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode)) {
+ /*
+ * XXX: is the following call interruptible? If so, this might
+ * need to go through the INTERRUPT_IO() wrapper as for other
+ * blocking, interruptible calls in this file.
+ */
+ int n;
+ if (::ioctl(fd, FIONREAD, &n) >= 0) {
+ *bytes = n;
+ return 1;
+ }
+ }
+ }
+ if ((cur = ::lseek64(fd, 0L, SEEK_CUR)) == -1) {
+ return 0;
+ } else if ((end = ::lseek64(fd, 0L, SEEK_END)) == -1) {
+ return 0;
+ } else if (::lseek64(fd, cur, SEEK_SET) == -1) {
+ return 0;
+ }
+ *bytes = end - cur;
+ return 1;
+}
+
+int os::socket_available(int fd, jint *pbytes) {
+ // Linux doc says EINTR not returned, unlike Solaris
+ int ret = ::ioctl(fd, FIONREAD, pbytes);
+
+ //%% note ioctl can return 0 when successful, JVM_SocketAvailable
+ // is expected to return 0 on failure and 1 on success to the jdk.
+ return (ret < 0) ? 0 : 1;
+}
+
// Map a block of memory.
char* os::map_memory(int fd, const char* file_name, size_t file_offset,
char *addr, size_t bytes, bool read_only,
@@ -4461,7 +4669,7 @@ void os::pause() {
int fd = ::open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
if (fd != -1) {
struct stat buf;
- close(fd);
+ ::close(fd);
while (::stat(filename, &buf) == 0) {
(void)::poll(NULL, 0, 100);
}
@@ -4839,7 +5047,7 @@ void Parker::park(bool isAbsolute, jlong time) {
// Next, demultiplex/decode time arguments
timespec absTime;
- if (time < 0) { // don't wait at all
+ if (time < 0 || (isAbsolute && time == 0) ) { // don't wait at all
return;
}
if (time > 0) {
diff --git a/hotspot/src/os/linux/vm/os_linux.hpp b/hotspot/src/os/linux/vm/os_linux.hpp
index 15b2c1efc69..18803ac3496 100644
--- a/hotspot/src/os/linux/vm/os_linux.hpp
+++ b/hotspot/src/os/linux/vm/os_linux.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_LINUX_VM_OS_LINUX_HPP
+#define OS_LINUX_VM_OS_LINUX_HPP
+
// Linux_OS defines the interface to Linux operating systems
/* pthread_getattr_np comes with LinuxThreads-0.9-7 on RedHat 7.1 */
@@ -328,3 +331,5 @@ class PlatformParker : public CHeapObj {
assert_status(status == 0, status, "mutex_init");
}
} ;
+
+#endif // OS_LINUX_VM_OS_LINUX_HPP
diff --git a/hotspot/src/os/linux/vm/os_linux.inline.hpp b/hotspot/src/os/linux/vm/os_linux.inline.hpp
index 035465da8c7..9af7e789764 100644
--- a/hotspot/src/os/linux/vm/os_linux.inline.hpp
+++ b/hotspot/src/os/linux/vm/os_linux.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,31 @@
*
*/
+#ifndef OS_LINUX_VM_OS_LINUX_INLINE_HPP
+#define OS_LINUX_VM_OS_LINUX_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#ifdef TARGET_OS_ARCH_linux_x86
+# include "atomic_linux_x86.inline.hpp"
+# include "orderAccess_linux_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_sparc
+# include "atomic_linux_sparc.inline.hpp"
+# include "orderAccess_linux_sparc.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_zero
+# include "atomic_linux_zero.inline.hpp"
+# include "orderAccess_linux_zero.inline.hpp"
+#endif
+
+// System includes
+
+#include
+#include
+#include
+#include
+
inline void* os::thread_local_storage_at(int index) {
return pthread_getspecific((pthread_key_t)index);
}
@@ -75,6 +100,12 @@ inline void os::split_reserved_memory(char *base, size_t size,
inline void os::bang_stack_shadow_pages() {
}
+inline void os::dll_unload(void *lib) {
+ ::dlclose(lib);
+}
+
+inline const int os::default_file_open_flags() { return 0;}
+
inline DIR* os::opendir(const char* dirname)
{
assert(dirname != NULL, "just checking");
@@ -86,6 +117,22 @@ inline int os::readdir_buf_size(const char *path)
return NAME_MAX + sizeof(dirent) + 1;
}
+inline jlong os::lseek(int fd, jlong offset, int whence) {
+ return (jlong) ::lseek64(fd, offset, whence);
+}
+
+inline int os::fsync(int fd) {
+ return ::fsync(fd);
+}
+
+inline char* os::native_path(char *path) {
+ return path;
+}
+
+inline int os::ftruncate(int fd, jlong length) {
+ return ::ftruncate64(fd, length);
+}
+
inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
{
dirent* p;
@@ -103,9 +150,8 @@ inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
return p;
}
-inline int os::closedir(DIR *dirp)
-{
- assert(dirp != NULL, "just checking");
+inline int os::closedir(DIR *dirp) {
+ assert(dirp != NULL, "argument is NULL");
return ::closedir(dirp);
}
@@ -123,3 +169,130 @@ inline int os::closedir(DIR *dirp)
inline bool os::numa_has_static_binding() { return true; }
inline bool os::numa_has_group_homing() { return false; }
+
+inline size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
+ size_t res;
+ RESTARTABLE( (size_t) ::read(fd, buf, (size_t) nBytes), res);
+ return res;
+}
+
+inline size_t os::write(int fd, const void *buf, unsigned int nBytes) {
+ size_t res;
+ RESTARTABLE((size_t) ::write(fd, buf, (size_t) nBytes), res);
+ return res;
+}
+
+inline int os::close(int fd) {
+ return ::close(fd);
+}
+
+inline int os::socket_close(int fd) {
+ return ::close(fd);
+}
+
+inline int os::socket(int domain, int type, int protocol) {
+ return ::socket(domain, type, protocol);
+}
+
+inline int os::recv(int fd, char *buf, int nBytes, int flags) {
+ RESTARTABLE_RETURN_INT(::recv(fd, buf, nBytes, (unsigned int) flags));
+}
+
+inline int os::send(int fd, char *buf, int nBytes, int flags) {
+ RESTARTABLE_RETURN_INT(::send(fd, buf, nBytes, (unsigned int) flags));
+}
+
+inline int os::raw_send(int fd, char *buf, int nBytes, int flags) {
+ return os::send(fd, buf, nBytes, flags);
+}
+
+inline int os::timeout(int fd, long timeout) {
+ julong prevtime,newtime;
+ struct timeval t;
+
+ gettimeofday(&t, NULL);
+ prevtime = ((julong)t.tv_sec * 1000) + t.tv_usec / 1000;
+
+ for(;;) {
+ struct pollfd pfd;
+
+ pfd.fd = fd;
+ pfd.events = POLLIN | POLLERR;
+
+ int res = ::poll(&pfd, 1, timeout);
+
+ if (res == OS_ERR && errno == EINTR) {
+
+ // On Linux any value < 0 means "forever"
+
+ if(timeout >= 0) {
+ gettimeofday(&t, NULL);
+ newtime = ((julong)t.tv_sec * 1000) + t.tv_usec / 1000;
+ timeout -= newtime - prevtime;
+ if(timeout <= 0)
+ return OS_OK;
+ prevtime = newtime;
+ }
+ } else
+ return res;
+ }
+}
+
+inline int os::listen(int fd, int count) {
+ return ::listen(fd, count);
+}
+
+inline int os::connect(int fd, struct sockaddr *him, int len) {
+ RESTARTABLE_RETURN_INT(::connect(fd, him, len));
+}
+
+inline int os::accept(int fd, struct sockaddr *him, int *len) {
+ // This cast is from int to unsigned int on linux. Since we
+ // only pass the parameter "len" around the vm and don't try to
+ // fetch it's value, this cast is safe for now. The java.net group
+ // may need and want to change this interface someday if socklen_t goes
+ // to 64 bits on some platform that we support.
+ // Linux doc says this can't return EINTR, unlike accept() on Solaris
+
+ return ::accept(fd, him, (socklen_t *)len);
+}
+
+inline int os::recvfrom(int fd, char *buf, int nBytes, int flags,
+ sockaddr *from, int *fromlen) {
+ RESTARTABLE_RETURN_INT(::recvfrom(fd, buf, nBytes, (unsigned int) flags, from, (socklen_t *)fromlen));
+}
+
+inline int os::sendto(int fd, char *buf, int len, int flags,
+ struct sockaddr *to, int tolen) {
+ RESTARTABLE_RETURN_INT(::sendto(fd, buf, len, (unsigned int) flags, to, tolen));
+}
+
+inline int os::socket_shutdown(int fd, int howto){
+ return ::shutdown(fd, howto);
+}
+
+inline int os::bind(int fd, struct sockaddr *him, int len){
+ return ::bind(fd, him, len);
+}
+
+inline int os::get_sock_name(int fd, struct sockaddr *him, int *len){
+ return ::getsockname(fd, him, (socklen_t *)len);
+}
+
+inline int os::get_host_name(char* name, int namelen){
+ return ::gethostname(name, namelen);
+}
+
+inline struct hostent* os::get_host_by_name(char* name) {
+ return ::gethostbyname(name);
+}
+inline int os::get_sock_opt(int fd, int level, int optname,
+ char *optval, int* optlen){
+ return ::getsockopt(fd, level, optname, optval, (socklen_t *)optlen);
+}
+
+inline int os::set_sock_opt(int fd, int level, int optname,
+ const char *optval, int optlen){
+ return ::setsockopt(fd, level, optname, optval, optlen);
+}
+#endif // OS_LINUX_VM_OS_LINUX_INLINE_HPP
diff --git a/hotspot/src/os/linux/vm/os_share_linux.hpp b/hotspot/src/os/linux/vm/os_share_linux.hpp
index 5b9d5321c02..7cc2635980a 100644
--- a/hotspot/src/os/linux/vm/os_share_linux.hpp
+++ b/hotspot/src/os/linux/vm/os_share_linux.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_LINUX_VM_OS_SHARE_LINUX_HPP
+#define OS_LINUX_VM_OS_SHARE_LINUX_HPP
+
// misc
void signalHandler(int, siginfo_t*, ucontext_t*);
void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, address pc, address adjusted_pc);
@@ -30,3 +33,5 @@ void continue_with_dump(void);
#endif
#define PROCFILE_LENGTH 128
+
+#endif // OS_LINUX_VM_OS_SHARE_LINUX_HPP
diff --git a/hotspot/src/os/linux/vm/perfMemory_linux.cpp b/hotspot/src/os/linux/vm/perfMemory_linux.cpp
index da5e0d643b7..1cd430cfbc7 100644
--- a/hotspot/src/os/linux/vm/perfMemory_linux.cpp
+++ b/hotspot/src/os/linux/vm/perfMemory_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,15 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_perfMemory_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/oop.inline.hpp"
+#include "os_linux.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/perfMemory.hpp"
+#include "utilities/exceptions.hpp"
// put OS-includes here
# include
@@ -628,7 +635,29 @@ static int create_sharedmem_resources(const char* dirname, const char* filename,
return -1;
}
- return fd;
+ // Verify that we have enough disk space for this file.
+ // We'll get random SIGBUS crashes on memory accesses if
+ // we don't.
+
+ for (size_t seekpos = 0; seekpos < size; seekpos += os::vm_page_size()) {
+ int zero_int = 0;
+ result = (int)os::seek_to_file_offset(fd, (jlong)(seekpos));
+ if (result == -1 ) break;
+ RESTARTABLE(::write(fd, &zero_int, 1), result);
+ if (result != 1) {
+ if (errno == ENOSPC) {
+ warning("Insufficient space for shared memory file:\n %s\nTry using the -Djava.io.tmpdir= option to select an alternate temp location.\n", filename);
+ }
+ break;
+ }
+ }
+
+ if (result != -1) {
+ return fd;
+ } else {
+ RESTARTABLE(::close(fd), result);
+ return -1;
+ }
}
// open the shared memory file for the given user and vmid. returns
diff --git a/hotspot/src/os/linux/vm/stubRoutines_linux.cpp b/hotspot/src/os/linux/vm/stubRoutines_linux.cpp
index c705716dc56..3723a0f7dfa 100644
--- a/hotspot/src/os/linux/vm/stubRoutines_linux.cpp
+++ b/hotspot/src/os/linux/vm/stubRoutines_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,5 +22,7 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubRoutines_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "runtime/stubRoutines.hpp"
+
diff --git a/hotspot/src/os/linux/vm/threadCritical_linux.cpp b/hotspot/src/os/linux/vm/threadCritical_linux.cpp
index 526352ce910..b1d9ab2aa44 100644
--- a/hotspot/src/os/linux/vm/threadCritical_linux.cpp
+++ b/hotspot/src/os/linux/vm/threadCritical_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_threadCritical_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/threadCritical.hpp"
+#include "thread_linux.inline.hpp"
// put OS-includes here
# include
diff --git a/hotspot/src/os/linux/vm/thread_linux.inline.hpp b/hotspot/src/os/linux/vm/thread_linux.inline.hpp
index 5367a569e0d..f09ed2877ef 100644
--- a/hotspot/src/os/linux/vm/thread_linux.inline.hpp
+++ b/hotspot/src/os/linux/vm/thread_linux.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,31 @@
*
*/
+#ifndef OS_LINUX_VM_THREAD_LINUX_INLINE_HPP
+#define OS_LINUX_VM_THREAD_LINUX_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/prefetch.hpp"
+#include "runtime/thread.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#ifdef TARGET_OS_ARCH_linux_x86
+# include "atomic_linux_x86.inline.hpp"
+# include "orderAccess_linux_x86.inline.hpp"
+# include "prefetch_linux_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_sparc
+# include "atomic_linux_sparc.inline.hpp"
+# include "orderAccess_linux_sparc.inline.hpp"
+# include "prefetch_linux_sparc.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_zero
+# include "atomic_linux_zero.inline.hpp"
+# include "orderAccess_linux_zero.inline.hpp"
+# include "prefetch_linux_zero.inline.hpp"
+#endif
+
// Contains inlined functions for class Thread and ThreadLocalStorage
inline void ThreadLocalStorage::pd_invalidate_all() {} // nothing to do
+
+#endif // OS_LINUX_VM_THREAD_LINUX_INLINE_HPP
diff --git a/hotspot/src/os/linux/vm/vmError_linux.cpp b/hotspot/src/os/linux/vm/vmError_linux.cpp
index 8e73d288634..8ec6ca04c25 100644
--- a/hotspot/src/os/linux/vm/vmError_linux.cpp
+++ b/hotspot/src/os/linux/vm/vmError_linux.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_vmError_linux.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/os.hpp"
+#include "runtime/thread.hpp"
+#include "utilities/vmError.hpp"
#include
#include
@@ -41,11 +44,11 @@ void VMError::show_message_box(char *buf, int buflen) {
jio_snprintf(p, buflen - len,
"\n\n"
"Do you want to debug the problem?\n\n"
- "To debug, run 'gdb /proc/%d/exe %d'; then switch to thread " INTX_FORMAT "\n"
+ "To debug, run 'gdb /proc/%d/exe %d'; then switch to thread " INTX_FORMAT " (" INTPTR_FORMAT ")\n"
"Enter 'yes' to launch gdb automatically (PATH must include gdb)\n"
"Otherwise, press RETURN to abort...",
os::current_process_id(), os::current_process_id(),
- os::current_thread_id());
+ os::current_thread_id(), os::current_thread_id());
yes = os::message_box("Unexpected Error", buf);
diff --git a/hotspot/src/os/linux/launcher/java_md.c b/hotspot/src/os/posix/launcher/java_md.c
similarity index 88%
rename from hotspot/src/os/linux/launcher/java_md.c
rename to hotspot/src/os/posix/launcher/java_md.c
index 3308ff62df3..3ee0f20a77d 100644
--- a/hotspot/src/os/linux/launcher/java_md.c
+++ b/hotspot/src/os/posix/launcher/java_md.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,10 +22,6 @@
*
*/
-/*
- * Gamma (Hotspot internal engineering test) launcher based on 1.6.0-b28 JDK,
- * search "GAMMA" for gamma specific changes.
- */
#include "java.h"
#include
@@ -45,64 +41,42 @@
#include "version_comp.h"
#endif
+#ifdef __linux__
+#include
+#else
+#include
+#endif
+
#define JVM_DLL "libjvm.so"
#define JAVA_DLL "libjava.so"
#ifndef GAMMA /* launcher.make defines ARCH */
-
/*
* If a processor / os combination has the ability to run binaries of
* two data models and cohabitation of jre/jdk bits with both data
* models is supported, then DUAL_MODE is defined. When DUAL_MODE is
* defined, the architecture names for the narrow and wide version of
- * the architecture are defined in BIG_ARCH and SMALL_ARCH. Currently
+ * the architecture are defined in LIBARCH64NAME and LIBARCH32NAME. Currently
* only Solaris on sparc/sparcv9 and i586/amd64 is DUAL_MODE; linux
* i586/amd64 could be defined as DUAL_MODE but that is not the
* current policy.
*/
-#ifdef _LP64
-
-# ifdef ia64
-# define ARCH "ia64"
-# elif defined(amd64)
-# define ARCH "amd64"
-# elif defined(__sparc)
-# define ARCH "sparcv9"
-# else
-# define ARCH "unknown" /* unknown 64-bit architecture */
-# endif
-
-#else /* 32-bit data model */
-
-# ifdef i586
-# define ARCH "i386"
-# elif defined(__sparc)
-# define ARCH "sparc"
-# elif defined(arm)
-# define ARCH "arm"
-# elif defined(PPC)
-# define ARCH "ppc"
-# endif
-
-#endif /* _LP64 */
+#ifndef LIBARCHNAME
+# error "The macro LIBARCHNAME was not defined on the compile line"
+#endif
#ifdef __sun
# define DUAL_MODE
-# ifdef __sparc
-# define BIG_ARCH "sparcv9"
-# define SMALL_ARCH "sparc"
-# else
-# define BIG_ARCH "amd64"
-# define SMALL_ARCH "i386"
+# ifndef LIBARCH32NAME
+# error "The macro LIBARCH32NAME was not defined on the compile line"
+# endif
+# ifndef LIBARCH64NAME
+# error "The macro LIBARCH64NAME was not defined on the compile line"
# endif
# include
# include
# include
-#else
-# ifndef ARCH
-# include
-# endif
#endif
#endif /* ifndef GAMMA */
@@ -111,7 +85,6 @@
extern char **environ;
#ifndef GAMMA
-
/*
* A collection of useful strings. One should think of these as #define
* entries, but actual strings can be more efficient (with many compilers).
@@ -124,7 +97,7 @@ static const char *system_dir = "/usr/jdk";
static const char *user_dir = "/jdk";
#endif
-#endif /* ifndef GAMMA */
+#endif /* ifndef GAMMA */
/*
* Flowchart of launcher execs and options processing on unix
@@ -196,23 +169,13 @@ static jboolean GetJVMPath(const char *jrepath, const char *jvmtype,
char *jvmpath, jint jvmpathsize, char * arch);
static jboolean GetJREPath(char *path, jint pathsize, char * arch, jboolean speculative);
+#ifndef GAMMA
const char *
GetArch()
{
- static char *arch = NULL;
- static char buf[12];
- if (arch) {
- return arch;
- }
-
-#ifdef ARCH
- strcpy(buf, ARCH);
-#else
- sysinfo(SI_ARCHITECTURE, buf, sizeof(buf));
-#endif
- arch = buf;
- return arch;
+ return LIBARCHNAME;
}
+#endif /* ifndef GAMMA */
void
CreateExecutionEnvironment(int *_argcp,
@@ -287,7 +250,7 @@ CreateExecutionEnvironment(int *_argcp,
{ /* open new scope to declare local variables */
int i;
- newargv = (char **)MemAlloc((argc+1) * sizeof(*newargv));
+ newargv = (char **)JLI_MemAlloc((argc+1) * sizeof(*newargv));
newargv[newargc++] = argv[0];
/* scan for data model arguments and remove from argument list;
@@ -358,7 +321,7 @@ CreateExecutionEnvironment(int *_argcp,
#ifdef DUAL_MODE
if (running != wanted) {
/* Find out where the JRE is that we will be using. */
- if (!GetJREPath(jrepath, so_jrepath, ((wanted==64)?BIG_ARCH:SMALL_ARCH), JNI_TRUE)) {
+ if (!GetJREPath(jrepath, so_jrepath, ((wanted==64)?LIBARCH64NAME:LIBARCH32NAME), JNI_TRUE)) {
goto EndDataModelSpeculate;
}
@@ -366,14 +329,14 @@ CreateExecutionEnvironment(int *_argcp,
* Read in jvm.cfg for target data model and process vm
* selection options.
*/
- if (ReadKnownVMs(jrepath, ((wanted==64)?BIG_ARCH:SMALL_ARCH), JNI_TRUE) < 1) {
+ if (ReadKnownVMs(jrepath, ((wanted==64)?LIBARCH64NAME:LIBARCH32NAME), JNI_TRUE) < 1) {
goto EndDataModelSpeculate;
}
jvmpath[0] = '\0';
jvmtype = CheckJvmType(_argcp, _argvp, JNI_TRUE);
/* exec child can do error checking on the existence of the path */
jvmpathExists = GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath,
- ((wanted==64)?BIG_ARCH:SMALL_ARCH));
+ ((wanted==64)?LIBARCH64NAME:LIBARCH32NAME));
}
EndDataModelSpeculate: /* give up and let other code report error message */
@@ -388,8 +351,8 @@ CreateExecutionEnvironment(int *_argcp,
* We will set the LD_LIBRARY_PATH as follows:
*
* o $JVMPATH (directory portion only)
- * o $JRE/lib/$ARCH
- * o $JRE/../lib/$ARCH
+ * o $JRE/lib/$LIBARCHNAME
+ * o $JRE/../lib/$LIBARCHNAME
*
* followed by the user's previous effective LD_LIBRARY_PATH, if
* any.
@@ -483,8 +446,8 @@ CreateExecutionEnvironment(int *_argcp,
/* runpath contains current effective LD_LIBRARY_PATH setting */
- jvmpath = strdup(jvmpath);
- new_runpath = MemAlloc( ((runpath!=NULL)?strlen(runpath):0) +
+ jvmpath = JLI_StringDup(jvmpath);
+ new_runpath = JLI_MemAlloc( ((runpath!=NULL)?strlen(runpath):0) +
2*strlen(jrepath) + 2*strlen(arch) +
strlen(jvmpath) + 52);
newpath = new_runpath + strlen("LD_LIBRARY_PATH=");
@@ -500,7 +463,7 @@ CreateExecutionEnvironment(int *_argcp,
*lastslash = '\0';
- /* jvmpath, ((running != wanted)?((wanted==64)?"/"BIG_ARCH:"/.."):""), */
+ /* jvmpath, ((running != wanted)?((wanted==64)?"/"LIBARCH64NAME:"/.."):""), */
sprintf(new_runpath, "LD_LIBRARY_PATH="
"%s:"
@@ -508,8 +471,8 @@ CreateExecutionEnvironment(int *_argcp,
"%s/../lib/%s",
jvmpath,
#ifdef DUAL_MODE
- jrepath, ((wanted==64)?BIG_ARCH:SMALL_ARCH),
- jrepath, ((wanted==64)?BIG_ARCH:SMALL_ARCH)
+ jrepath, ((wanted==64)?LIBARCH64NAME:LIBARCH32NAME),
+ jrepath, ((wanted==64)?LIBARCH64NAME:LIBARCH32NAME)
#else
jrepath, arch,
jrepath, arch
@@ -576,7 +539,7 @@ CreateExecutionEnvironment(int *_argcp,
* executable must be updated accordingly; the executable name
* and directory the executable resides in are separate. In the
* case of 32 => 64, the new bits are assumed to reside in, e.g.
- * "olddir/BIGARCH/execname"; in the case of 64 => 32,
+ * "olddir/LIBARCH64NAME/execname"; in the case of 64 => 32,
* the bits are assumed to be in "olddir/../execname". For example,
*
* olddir/sparcv9/execname
@@ -586,19 +549,21 @@ CreateExecutionEnvironment(int *_argcp,
*/
if (running != wanted) {
- char *oldexec = strcpy(MemAlloc(strlen(execname) + 1), execname);
+ char *oldexec = strcpy(JLI_MemAlloc(strlen(execname) + 1), execname);
char *olddir = oldexec;
char *oldbase = strrchr(oldexec, '/');
- newexec = MemAlloc(strlen(execname) + 20);
+ newexec = JLI_MemAlloc(strlen(execname) + 20);
*oldbase++ = 0;
sprintf(newexec, "%s/%s/%s", olddir,
- ((wanted==64) ? BIG_ARCH : ".."), oldbase);
+ ((wanted==64) ? LIBARCH64NAME : ".."), oldbase);
argv[0] = newexec;
}
#endif
+ (void)fflush(stdout);
+ (void)fflush(stderr);
execve(newexec, argv, newenvp);
perror("execve()");
@@ -630,12 +595,14 @@ CreateExecutionEnvironment(int *_argcp,
#else /* ifndef GAMMA */
- /* gamma launcher is simpler in that it doesn't handle VM flavors, data */
- /* model, LD_LIBRARY_PATH, etc. Assuming everything is set-up correctly */
- /* all we need to do here is to return correct path names. See also */
- /* GetJVMPath() and GetApplicationHome(). */
+ /*
+ * gamma launcher is simpler in that it doesn't handle VM flavors, data
+ * model, LD_LIBRARY_PATH, etc. Assuming everything is set-up correctly
+ * all we need to do here is to return correct path names. See also
+ * GetJVMPath() and GetApplicationHome().
+ */
- { char *arch = (char *)GetArch(); /* like sparc or sparcv9 */
+ { char *arch = (char *) ARCH; /* like sparc or sparcv9 */
char *p;
if (!GetJREPath(jrepath, so_jrepath, arch, JNI_FALSE) ) {
@@ -669,9 +636,11 @@ GetJVMPath(const char *jrepath, const char *jvmtype,
sprintf(jvmpath, "%s/lib/%s/%s/" JVM_DLL, jrepath, arch, jvmtype);
}
#else
- /* For gamma launcher, JVM is either built-in or in the same directory. */
- /* Either way we return "/libjvm.so" where is the */
- /* directory where gamma launcher is located. */
+ /*
+ * For gamma launcher, JVM is either built-in or in the same directory.
+ * Either way we return "/libjvm.so" where is the
+ * directory where gamma launcher is located.
+ */
char *p;
@@ -684,7 +653,7 @@ GetJVMPath(const char *jrepath, const char *jvmtype,
/* this case shouldn't happen */
snprintf(jvmpath, jvmpathsize, "%s", JVM_DLL);
}
-#endif
+#endif /* ifndef GAMMA */
if (_launcher_debug)
printf("Does `%s' exist ... ", jvmpath);
@@ -742,7 +711,7 @@ LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn)
ifn->GetDefaultJavaVMInitArgs = JNI_GetDefaultJavaVMInitArgs;
return JNI_TRUE;
#else
- Dl_info dlinfo;
+ Dl_info dlinfo;
void *libjvm;
if (_launcher_debug) {
@@ -813,24 +782,7 @@ LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn)
error:
fprintf(stderr, "Error: failed %s, because %s\n", jvmpath, dlerror());
return JNI_FALSE;
-#endif /* GAMMA */
-}
-
-/*
- * Get the path to the file that has the usage message for -X options.
- */
-void
-GetXUsagePath(char *buf, jint bufsize)
-{
- static const char Xusage_txt[] = "/Xusage.txt";
- Dl_info dlinfo;
-
- /* we use RTLD_NOW because of problems with ld.so.1 and green threads */
- dladdr(dlsym(dlopen(JVM_DLL, RTLD_NOW), "JNI_CreateJavaVM"), &dlinfo);
- strncpy(buf, (char *)dlinfo.dli_fname, bufsize - sizeof(Xusage_txt));
-
- buf[bufsize-1] = '\0';
- strcpy(strrchr(buf, '/'), Xusage_txt);
+#endif /* ifndef GAMMA */
}
/*
@@ -860,13 +812,13 @@ GetApplicationHome(char *buf, jint bufsize)
#ifdef GAMMA
{
- /* gamma launcher uses JAVA_HOME environment variable to find JDK/JRE */
- char* java_home_var = getenv("JAVA_HOME");
- if (java_home_var == NULL) {
- printf("JAVA_HOME must point to a valid JDK/JRE to run gamma\n");
- return JNI_FALSE;
- }
- snprintf(buf, bufsize, "%s", java_home_var);
+ /* gamma launcher uses JAVA_HOME environment variable to find JDK/JRE */
+ char* java_home_var = getenv("JAVA_HOME");
+ if (java_home_var == NULL) {
+ printf("JAVA_HOME must point to a valid JDK/JRE to run gamma\n");
+ return JNI_FALSE;
+ }
+ snprintf(buf, bufsize, "%s", java_home_var);
}
#else
if (strrchr(buf, '/') == 0) {
@@ -885,7 +837,7 @@ GetApplicationHome(char *buf, jint bufsize)
return JNI_FALSE;
}
*(strrchr(buf, '/')) = '\0'; /* bin */
-#endif /* GAMMA */
+#endif /* ifndef GAMMA */
return JNI_TRUE;
}
@@ -915,7 +867,7 @@ Resolve(char *indir, char *cmd)
if ((strlen(indir) + strlen(cmd) + 1) > PATH_MAX) return 0;
sprintf(name, "%s%c%s", indir, FILE_SEPARATOR, cmd);
if (!ProgramExists(name)) return 0;
- real = MemAlloc(PATH_MAX + 2);
+ real = JLI_MemAlloc(PATH_MAX + 2);
if (!realpath(name, real))
strcpy(real, name);
return real;
@@ -948,7 +900,7 @@ FindExecName(char *program)
/* from search path? */
path = getenv("PATH");
if (!path || !*path) path = ".";
- tmp_path = MemAlloc(strlen(path) + 2);
+ tmp_path = JLI_MemAlloc(strlen(path) + 2);
strcpy(tmp_path, path);
for (f=tmp_path; *f && result==0; ) {
@@ -967,7 +919,7 @@ FindExecName(char *program)
if (result != 0) break;
}
- free(tmp_path);
+ JLI_MemFree(tmp_path);
return result;
}
@@ -1000,11 +952,11 @@ SetExecname(char **argv)
{
Dl_info dlinfo;
if (dladdr((void*)&SetExecname, &dlinfo)) {
- char *resolved = (char*)MemAlloc(PATH_MAX+1);
+ char *resolved = (char*)JLI_MemAlloc(PATH_MAX+1);
if (resolved != NULL) {
exec_path = realpath(dlinfo.dli_fname, resolved);
if (exec_path == NULL) {
- free(resolved);
+ JLI_MemFree(resolved);
}
}
}
@@ -1016,7 +968,7 @@ SetExecname(char **argv)
int len = readlink(self, buf, PATH_MAX);
if (len >= 0) {
buf[len] = '\0'; /* readlink doesn't nul terminate */
- exec_path = strdup(buf);
+ exec_path = JLI_StringDup(buf);
}
}
#else /* !__sun && !__linux */
@@ -1091,8 +1043,7 @@ void PrintMachineDependentOptions() {
return;
}
-#ifndef GAMMA /* gamma launcher does not have ergonomics */
-
+#ifndef GAMMA
/*
* The following methods (down to ServerClassMachine()) answer
* the question about whether a machine is a "server-class"
@@ -1164,7 +1115,7 @@ solaris_sparc_ServerClassMachine(void) {
}
}
if (_launcher_debug) {
- printf("solaris_" ARCH "_ServerClassMachine: %s\n",
+ printf("solaris_" LIBARCHNAME "_ServerClassMachine: %s\n",
(result == JNI_TRUE ? "JNI_TRUE" : "JNI_FALSE"));
}
return result;
@@ -1262,7 +1213,6 @@ get_cpuid(uint32_t arg,
uint32_t value_of_edx = 0;
__asm__ volatile (/* Instructions */
/* ebx is callee-save, so push it */
- /* even though it's in the clobbers section */
" pushl %%ebx \n"
" movl %4, %%eax \n"
" cpuid \n"
@@ -1281,7 +1231,7 @@ get_cpuid(uint32_t arg,
: /* Inputs */
"m" (arg)
: /* Clobbers */
- "%eax", "%ebx", "%ecx", "%edx"
+ "%eax", "%ecx", "%edx"
);
*eaxp = value_of_eax;
*ebxp = value_of_ebx;
@@ -1461,7 +1411,7 @@ solaris_i586_ServerClassMachine(void) {
}
}
if (_launcher_debug) {
- printf("solaris_" ARCH "_ServerClassMachine: %s\n",
+ printf("solaris_" LIBARCHNAME "_ServerClassMachine: %s\n",
(result == JNI_TRUE ? "true" : "false"));
}
return result;
@@ -1494,7 +1444,7 @@ linux_i586_ServerClassMachine(void) {
}
}
if (_launcher_debug) {
- printf("linux_" ARCH "_ServerClassMachine: %s\n",
+ printf("linux_" LIBARCHNAME "_ServerClassMachine: %s\n",
(result == JNI_TRUE ? "true" : "false"));
}
return result;
@@ -1506,7 +1456,11 @@ linux_i586_ServerClassMachine(void) {
jboolean
ServerClassMachine(void) {
jboolean result = JNI_FALSE;
-#if defined(__sun) && defined(__sparc)
+#if defined(NEVER_ACT_AS_SERVER_CLASS_MACHINE)
+ result = JNI_FALSE;
+#elif defined(ALWAYS_ACT_AS_SERVER_CLASS_MACHINE)
+ result = JNI_TRUE;
+#elif defined(__sun) && defined(__sparc)
result = solaris_sparc_ServerClassMachine();
#elif defined(__sun) && defined(i586)
result = solaris_i586_ServerClassMachine();
@@ -1521,10 +1475,6 @@ ServerClassMachine(void) {
return result;
}
-#endif /* ifndef GAMMA */
-
-#ifndef GAMMA /* gamma launcher does not choose JDK/JRE/JVM */
-
/*
* Since using the file system as a registry is a bit risky, perform
* additional sanity checks on the identified directory to validate
@@ -1591,13 +1541,13 @@ static char
else if (strncmp(dp->d_name, "j2sdk", 5) == 0)
offset = 5;
if (offset > 0) {
- if ((acceptable_release(dp->d_name + offset,
+ if ((JLI_AcceptableRelease(dp->d_name + offset,
info->jre_version)) && CheckSanity(dirname, dp->d_name))
- if ((best == NULL) || (exact_version_id(
+ if ((best == NULL) || (JLI_ExactVersionId(
dp->d_name + offset, best + best_offset) > 0)) {
if (best != NULL)
- free(best);
- best = strdup(dp->d_name);
+ JLI_MemFree(best);
+ best = JLI_StringDup(dp->d_name);
best_offset = offset;
}
}
@@ -1607,9 +1557,9 @@ static char
if (best == NULL)
return (NULL);
else {
- ret_str = MemAlloc(strlen(dirname) + strlen(best) + 2);
+ ret_str = JLI_MemAlloc(strlen(dirname) + strlen(best) + 2);
ret_str = strcat(strcat(strcpy(ret_str, dirname), "/"), best);
- free(best);
+ JLI_MemFree(best);
return (ret_str);
}
}
@@ -1636,16 +1586,17 @@ LocateJRE(manifest_info* info)
* Start by getting JAVA_VERSION_PATH
*/
if (info->jre_restrict_search)
- path = strdup(system_dir);
+ path = JLI_StringDup(system_dir);
else if ((path = getenv("JAVA_VERSION_PATH")) != NULL)
- path = strdup(path);
+ path = JLI_StringDup(path);
else
if ((home = getenv("HOME")) != NULL) {
- path = (char *)MemAlloc(strlen(home) + 13);
+ path = (char *)JLI_MemAlloc(strlen(home) + strlen(system_dir) +
+ strlen(user_dir) + 2);
path = strcat(strcat(strcat(strcpy(path, home),
user_dir), ":"), system_dir);
} else
- path = strdup(system_dir);
+ path = JLI_StringDup(system_dir);
/*
* Step through each directory on the path. Terminate the scan with
@@ -1662,7 +1613,7 @@ LocateJRE(manifest_info* info)
if (dp != NULL)
dp++;
}
- free(path);
+ JLI_MemFree(path);
return (target);
}
@@ -1740,16 +1691,19 @@ ExecJRE(char *jre, char **argv)
argv[0] = progname;
if (_launcher_debug) {
int i;
- printf("execv(\"%s\"", wanted);
- for (i = 0; argv[i] != NULL; i++)
- printf(", \"%s\"", argv[i]);
- printf(")\n");
+ printf("ReExec Command: %s (%s)\n", wanted, argv[0]);
+ printf("ReExec Args:");
+ for (i = 1; argv[i] != NULL; i++)
+ printf(" %s", argv[i]);
+ printf("\n");
}
+ (void)fflush(stdout);
+ (void)fflush(stderr);
execv(wanted, argv);
+ perror("execv()");
fprintf(stderr, "Exec of %s failed\n", wanted);
exit(1);
}
-
#endif /* ifndef GAMMA */
/*
@@ -1830,23 +1784,92 @@ UnsetEnv(char *name)
{
return(borrowed_unsetenv(name));
}
-/*
- * The implementation for finding classes from the bootstrap
- * class loader, refer to java.h
- */
-static FindClassFromBootLoader_t *findBootClass = NULL;
-jclass
-FindBootStrapClass(JNIEnv *env, const char* classname)
-{
- if (findBootClass == NULL) {
- findBootClass = (FindClassFromBootLoader_t *)dlsym(RTLD_DEFAULT,
- "JVM_FindClassFromBootLoader");
- if (findBootClass == NULL) {
- fprintf(stderr, "Error: could load method JVM_FindClassFromBootLoader");
- return NULL;
- }
- }
- return findBootClass(env, classname, JNI_FALSE);
+/* --- Splash Screen shared library support --- */
+
+static const char* SPLASHSCREEN_SO = "libsplashscreen.so";
+
+static void* hSplashLib = NULL;
+
+void* SplashProcAddress(const char* name) {
+ if (!hSplashLib) {
+ hSplashLib = dlopen(SPLASHSCREEN_SO, RTLD_LAZY | RTLD_GLOBAL);
+ }
+ if (hSplashLib) {
+ void* sym = dlsym(hSplashLib, name);
+ return sym;
+ } else {
+ return NULL;
+ }
}
+void SplashFreeLibrary() {
+ if (hSplashLib) {
+ dlclose(hSplashLib);
+ hSplashLib = NULL;
+ }
+}
+
+const char *
+jlong_format_specifier() {
+ return "%lld";
+}
+
+/*
+ * Block current thread and continue execution in a new thread
+ */
+int
+ContinueInNewThread(int (JNICALL *continuation)(void *), jlong stack_size, void * args) {
+ int rslt;
+#ifdef __linux__
+ pthread_t tid;
+ pthread_attr_t attr;
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+
+ if (stack_size > 0) {
+ pthread_attr_setstacksize(&attr, stack_size);
+ }
+
+ if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
+ void * tmp;
+ pthread_join(tid, &tmp);
+ rslt = (int)(intptr_t)tmp;
+ } else {
+ /*
+ * Continue execution in current thread if for some reason (e.g. out of
+ * memory/LWP) a new thread can't be created. This will likely fail
+ * later in continuation as JNI_CreateJavaVM needs to create quite a
+ * few new threads, anyway, just give it a try..
+ */
+ rslt = continuation(args);
+ }
+
+ pthread_attr_destroy(&attr);
+#else
+ thread_t tid;
+ long flags = 0;
+ if (thr_create(NULL, stack_size, (void *(*)(void *))continuation, args, flags, &tid) == 0) {
+ void * tmp;
+ thr_join(tid, NULL, &tmp);
+ rslt = (int)(intptr_t)tmp;
+ } else {
+ /* See above. Continue in current thread if thr_create() failed */
+ rslt = continuation(args);
+ }
+#endif
+ return rslt;
+}
+
+/* Coarse estimation of number of digits assuming the worst case is a 64-bit pid. */
+#define MAX_PID_STR_SZ 20
+
+void SetJavaLauncherPlatformProps() {
+ /* Linux only */
+#ifdef __linux__
+ const char *substr = "-Dsun.java.launcher.pid=";
+ char *pid_prop_str = (char *)JLI_MemAlloc(strlen(substr) + MAX_PID_STR_SZ + 1);
+ sprintf(pid_prop_str, "%s%d", substr, getpid());
+ AddOption(pid_prop_str, NULL);
+#endif
+}
diff --git a/hotspot/src/os/solaris/launcher/java_md.h b/hotspot/src/os/posix/launcher/java_md.h
similarity index 89%
rename from hotspot/src/os/solaris/launcher/java_md.h
rename to hotspot/src/os/posix/launcher/java_md.h
index 9b025060341..ed36fd1af67 100644
--- a/hotspot/src/os/solaris/launcher/java_md.h
+++ b/hotspot/src/os/posix/launcher/java_md.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,11 +22,6 @@
*
*/
-/*
- * Gamma (Hotspot internal engineering test) launcher based on 1.6.0-b28 JDK,
- * search "GAMMA" for gamma specific changes.
- */
-
#ifndef JAVA_MD_H
#define JAVA_MD_H
@@ -36,10 +31,12 @@
#ifndef GAMMA
#include "manifest_info.h"
#endif
+#include "jli_util.h"
#define PATH_SEPARATOR ':'
#define FILESEP "/"
#define FILE_SEPARATOR '/'
+#define IS_FILE_SEPARATOR(c) ((c) == '/')
#ifndef MAXNAMELEN
#define MAXNAMELEN PATH_MAX
#endif
@@ -71,7 +68,7 @@
* Function prototypes.
*/
#ifndef GAMMA
-char *LocateJRE(manifest_info* info);
+char *LocateJRE(manifest_info *info);
void ExecJRE(char *jre, char **argv);
#endif
int UnsetEnv(char *name);
diff --git a/hotspot/src/os/posix/launcher/launcher.script b/hotspot/src/os/posix/launcher/launcher.script
new file mode 100644
index 00000000000..22ed66b9c2f
--- /dev/null
+++ b/hotspot/src/os/posix/launcher/launcher.script
@@ -0,0 +1,212 @@
+#!/bin/bash
+
+# Copyright (c) 2010, 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
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+
+# This script launches HotSpot.
+#
+# If the first parameter is either "-gdb" or "-gud", HotSpot will be
+# launched inside gdb. "-gud" means "open an Emacs window and run gdb
+# inside Emacs".
+#
+# If the first parameter is "-dbx", HotSpot will be launched inside dbx.
+#
+# If the first parameter is "-valgrind", HotSpot will be launched
+# inside Valgrind (http://valgrind.kde.org) using the Memcheck skin,
+# and with memory leak detection enabled. This currently (2005jan19)
+# requires at least Valgrind 2.3.0. -Xmx16m will also be passed as
+# the first parameter to HotSpot, since lowering HotSpot's memory
+# consumption makes execution inside of Valgrind *a lot* faster.
+#
+
+
+#
+# User changeable parameters ------------------------------------------------
+#
+
+# This is the name of the gdb binary to use
+if [ ! "$GDB" ]
+then
+ GDB=gdb
+fi
+
+# This is the name of the gdb binary to use
+if [ ! "$DBX" ]
+then
+ DBX=dbx
+fi
+
+# This is the name of the Valgrind binary to use
+if [ ! "$VALGRIND" ]
+then
+ VALGRIND=valgrind
+fi
+
+# This is the name of Emacs for running GUD
+EMACS=emacs
+
+#
+# End of user changeable parameters -----------------------------------------
+#
+
+# Make sure the paths are fully specified, i.e. they must begin with /.
+SCRIPT=$(cd $(dirname $0) && pwd)/$(basename $0)
+RUNDIR=$(pwd)
+
+# Look whether the user wants to run inside gdb
+case "$1" in
+ -gdb)
+ MODE=gdb
+ shift
+ ;;
+ -gud)
+ MODE=gud
+ shift
+ ;;
+ -dbx)
+ MODE=dbx
+ shift
+ ;;
+ -valgrind)
+ MODE=valgrind
+ shift
+ ;;
+ *)
+ MODE=run
+ ;;
+esac
+
+# Find out the absolute path to this script
+MYDIR=$(cd $(dirname $SCRIPT) && pwd)
+
+JDK=
+if [ "${ALT_JAVA_HOME}" = "" ]; then
+ source ${MYDIR}/jdkpath.sh
+else
+ JDK=${ALT_JAVA_HOME%%/jre};
+fi
+
+if [ "${JDK}" = "" ]; then
+ echo Failed to find JDK. ALT_JAVA_HOME is not set or ./jdkpath.sh is empty or not found.
+ exit 1
+fi
+
+# We will set the LD_LIBRARY_PATH as follows:
+# o $JVMPATH (directory portion only)
+# o $JRE/lib/$ARCH
+# followed by the user's previous effective LD_LIBRARY_PATH, if
+# any.
+JRE=$JDK/jre
+JAVA_HOME=$JDK
+ARCH=@@LIBARCH@@
+
+# Find out the absolute path to this script
+MYDIR=$(cd $(dirname $SCRIPT) && pwd)
+
+SBP=${MYDIR}:${JRE}/lib/${ARCH}
+
+# Set up a suitable LD_LIBRARY_PATH
+
+if [ -z "$LD_LIBRARY_PATH" ]
+then
+ LD_LIBRARY_PATH="$SBP"
+else
+ LD_LIBRARY_PATH="$SBP:$LD_LIBRARY_PATH"
+fi
+
+export LD_LIBRARY_PATH
+export JAVA_HOME
+
+JPARMS="$@ $JAVA_ARGS";
+
+# Locate the gamma development launcher
+LAUNCHER=${MYDIR}/gamma
+if [ ! -x $LAUNCHER ] ; then
+ echo Error: Cannot find the gamma development launcher \"$LAUNCHER\"
+ exit 1
+fi
+
+GDBSRCDIR=$MYDIR
+BASEDIR=$(cd $MYDIR/../../.. && pwd)
+
+init_gdb() {
+# Create a gdb script in case we should run inside gdb
+ GDBSCR=/tmp/hsl.$$
+ rm -f $GDBSCR
+ cat >>$GDBSCR <= 22.1
+ case $($EMACS -version 2> /dev/null) in
+ *GNU\ Emacs\ 2[23]*)
+ emacs_gud_cmd="gdba"
+ emacs_gud_args="--annotate=3"
+ ;;
+ *)
+ emacs_gud_cmd="gdb"
+ emacs_gud_args=
+ ;;
+ esac
+ $EMACS --eval "($emacs_gud_cmd \"$GDB $emacs_gud_args -x $GDBSCR\")";
+ rm -f $GDBSCR
+ ;;
+ dbx)
+ $DBX -s $MYDIR/.dbxrc $LAUNCHER $JPARAMS
+ ;;
+ valgrind)
+ echo Warning: Defaulting to 16Mb heap to make Valgrind run faster, use -Xmx for larger heap
+ echo
+ $VALGRIND --tool=memcheck --leak-check=yes --num-callers=50 $LAUNCHER -Xmx16m $JPARMS
+ ;;
+ run)
+ LD_PRELOAD=$PRELOADING exec $LAUNCHER $JPARMS
+ ;;
+ *)
+ echo Error: Internal error, unknown launch mode \"$MODE\"
+ exit 1
+ ;;
+esac
+RETVAL=$?
+exit $RETVAL
diff --git a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp
index d60d0bb6469..632a2126394 100644
--- a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp
+++ b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp
@@ -38,9 +38,22 @@
#define protected public
#include
-#include "incls/_precompiled.incl"
-#include "incls/_vmStructs.cpp.incl"
-
+#include "code/codeBlob.hpp"
+#include "code/nmethod.hpp"
+#include "code/pcDesc.hpp"
+#include "gc_interface/collectedHeap.hpp"
+#include "memory/heap.hpp"
+#include "memory/memRegion.hpp"
+#include "memory/universe.hpp"
+#include "oops/constMethodOop.hpp"
+#include "oops/klass.hpp"
+#include "oops/methodOop.hpp"
+#include "oops/oop.hpp"
+#include "oops/symbolOop.hpp"
+#include "runtime/virtualspace.hpp"
+#include "runtime/vmStructs.hpp"
+#include "utilities/accessFlags.hpp"
+#include "utilities/globalDefinitions.hpp"
#ifdef COMPILER1
#if defined(DEBUG) || defined(FASTDEBUG)
diff --git a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.h b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.h
index eb425828673..99146f12c3b 100644
--- a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.h
+++ b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H
+#define OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H
+
#include
#include
@@ -36,3 +39,5 @@ extern "C" {
void gen_prologue(GEN_variant gen_var);
void gen_epilogue(GEN_variant gen_var);
}
+
+#endif // OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H
diff --git a/hotspot/src/os/solaris/dtrace/generateJvmOffsetsMain.c b/hotspot/src/os/solaris/dtrace/generateJvmOffsetsMain.c
index d253c74a383..4cd8ebfb49e 100644
--- a/hotspot/src/os/solaris/dtrace/generateJvmOffsetsMain.c
+++ b/hotspot/src/os/solaris/dtrace/generateJvmOffsetsMain.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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
diff --git a/hotspot/src/os/solaris/dtrace/hotspot.d b/hotspot/src/os/solaris/dtrace/hotspot.d
index 08cf99ad303..1f7d51b8cec 100644
--- a/hotspot/src/os/solaris/dtrace/hotspot.d
+++ b/hotspot/src/os/solaris/dtrace/hotspot.d
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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
diff --git a/hotspot/src/os/solaris/dtrace/jvm_dtrace.c b/hotspot/src/os/solaris/dtrace/jvm_dtrace.c
index 81884196397..fd0c4333cba 100644
--- a/hotspot/src/os/solaris/dtrace/jvm_dtrace.c
+++ b/hotspot/src/os/solaris/dtrace/jvm_dtrace.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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
diff --git a/hotspot/src/os/solaris/dtrace/jvm_dtrace.h b/hotspot/src/os/solaris/dtrace/jvm_dtrace.h
index ba1cebc7724..edc6dbdfc3b 100644
--- a/hotspot/src/os/solaris/dtrace/jvm_dtrace.h
+++ b/hotspot/src/os/solaris/dtrace/jvm_dtrace.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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
diff --git a/hotspot/src/os/solaris/dtrace/libjvm_db.h b/hotspot/src/os/solaris/dtrace/libjvm_db.h
index 2893646236a..d1c5a5ee074 100644
--- a/hotspot/src/os/solaris/dtrace/libjvm_db.h
+++ b/hotspot/src/os/solaris/dtrace/libjvm_db.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_SOLARIS_DTRACE_LIBJVM_DB_H
+#define OS_SOLARIS_DTRACE_LIBJVM_DB_H
+
#include
#ifdef __cplusplus
@@ -61,3 +64,5 @@ void Jagent_destroy(jvm_agent_t *J);
#ifdef __cplusplus
} /* extern "C" */
#endif /* __cplusplus */
+
+#endif // OS_SOLARIS_DTRACE_LIBJVM_DB_H
diff --git a/hotspot/src/os/solaris/launcher/java.c b/hotspot/src/os/solaris/launcher/java.c
deleted file mode 100644
index d62f8dd5d43..00000000000
--- a/hotspot/src/os/solaris/launcher/java.c
+++ /dev/null
@@ -1,1842 +0,0 @@
-/*
- * Copyright (c) 1998, 2008, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-/*
- * Gamma (Hotspot internal engineering test) launcher based on 1.6.0-b28 JDK,
- * search "GAMMA" for gamma specific changes.
- *
- * GAMMA: gamma launcher is much simpler than regular java launcher in that
- * JVM is either statically linked in or it is installed in the
- * same directory where the launcher exists, so we don't have to
- * worry about choosing the right JVM based on command line flag, jar
- * file and/or ergonomics. Intead of removing unused logic from source
- * they are commented out with #ifndef GAMMA, hopefully it'll be easier
- * to maintain this file in sync with regular JDK launcher.
- */
-
-/*
- * Shared source for 'java' command line tool.
- *
- * If JAVA_ARGS is defined, then acts as a launcher for applications. For
- * instance, the JDK command line tools such as javac and javadoc (see
- * makefiles for more details) are built with this program. Any arguments
- * prefixed with '-J' will be passed directly to the 'java' command.
- */
-
-#ifdef GAMMA
-# ifdef JAVA_ARGS
-# error Do NOT define JAVA_ARGS when building gamma launcher
-# endif
-# if !defined(LINK_INTO_AOUT) && !defined(LINK_INTO_LIBJVM)
-# error Either LINK_INTO_AOUT or LINK_INTO_LIBJVM must be defined
-# endif
-#endif
-
-/*
- * One job of the launcher is to remove command line options which the
- * vm does not understand and will not process. These options include
- * options which select which style of vm is run (e.g. -client and
- * -server) as well as options which select the data model to use.
- * Additionally, for tools which invoke an underlying vm "-J-foo"
- * options are turned into "-foo" options to the vm. This option
- * filtering is handled in a number of places in the launcher, some of
- * it in machine-dependent code. In this file, the function
- * CheckJVMType removes vm style options and TranslateDashJArgs
- * removes "-J" prefixes. On unix platforms, the
- * CreateExecutionEnvironment function from the unix java_md.c file
- * processes and removes -d options. However, in case
- * CreateExecutionEnvironment does not need to exec because
- * LD_LIBRARY_PATH is set acceptably and the data model does not need
- * to be changed, ParseArguments will screen out the redundant -d
- * options and prevent them from being passed to the vm; this is done
- * by using the machine-dependent call
- * RemovableMachineDependentOption.
- */
-
-#include
-#include
-#include
-
-#include
-#include "java.h"
-
-#ifndef GAMMA
-#include "manifest_info.h"
-#include "version_comp.h"
-#endif
-
-#ifndef FULL_VERSION
-#define FULL_VERSION JDK_MAJOR_VERSION "." JDK_MINOR_VERSION
-#endif
-
-/*
- * The following environment variable is used to influence the behavior
- * of the jre exec'd through the SelectVersion routine. The command line
- * options which specify the version are not passed to the exec'd version,
- * because that jre may be an older version which wouldn't recognize them.
- * This environment variable is known to this (and later) version and serves
- * to suppress the version selection code. This is not only for efficiency,
- * but also for correctness, since any command line options have been
- * removed which would cause any value found in the manifest to be used.
- * This would be incorrect because the command line options are defined
- * to take precedence.
- *
- * The value associated with this environment variable is the MainClass
- * name from within the executable jar file (if any). This is strictly a
- * performance enhancement to avoid re-reading the jar file manifest.
- *
- * A NOTE TO DEVELOPERS: For performance reasons it is important that
- * the program image remain relatively small until after SelectVersion
- * CreateExecutionEnvironment have finished their possibly recursive
- * processing. Watch everything, but resist all temptations to use Java
- * interfaces.
- */
-#define ENV_ENTRY "_JAVA_VERSION_SET"
-
-static jboolean printVersion = JNI_FALSE; /* print and exit */
-static jboolean showVersion = JNI_FALSE; /* print but continue */
-static char *progname;
-jboolean _launcher_debug = JNI_FALSE;
-
-/*
- * List of VM options to be specified when the VM is created.
- */
-static JavaVMOption *options;
-static int numOptions, maxOptions;
-
-/*
- * Prototypes for functions internal to launcher.
- */
-static void AddOption(char *str, void *info);
-static void SetClassPath(char *s);
-static void SelectVersion(int argc, char **argv, char **main_class);
-static jboolean ParseArguments(int *pargc, char ***pargv, char **pjarfile,
- char **pclassname, int *pret);
-static jboolean InitializeJVM(JavaVM **pvm, JNIEnv **penv,
- InvocationFunctions *ifn);
-static jstring NewPlatformString(JNIEnv *env, char *s);
-static jobjectArray NewPlatformStringArray(JNIEnv *env, char **strv, int strc);
-static jclass LoadClass(JNIEnv *env, char *name);
-static jstring GetMainClassName(JNIEnv *env, char *jarname);
-static void SetJavaCommandLineProp(char* classname, char* jarfile, int argc, char** argv);
-#ifdef GAMMA
-static void SetJavaLauncherProp(void);
-#endif
-
-#ifdef JAVA_ARGS
-static void TranslateDashJArgs(int *pargc, char ***pargv);
-static jboolean AddApplicationOptions(void);
-#endif
-
-static void PrintJavaVersion(JNIEnv *env);
-static void PrintUsage(void);
-static jint PrintXUsage(void);
-
-static void SetPaths(int argc, char **argv);
-
-/* Maximum supported entries from jvm.cfg. */
-#define INIT_MAX_KNOWN_VMS 10
-/* Values for vmdesc.flag */
-#define VM_UNKNOWN -1
-#define VM_KNOWN 0
-#define VM_ALIASED_TO 1
-#define VM_WARN 2
-#define VM_ERROR 3
-#define VM_IF_SERVER_CLASS 4
-#define VM_IGNORE 5
-struct vmdesc {
- char *name;
- int flag;
- char *alias;
- char *server_class;
-};
-static struct vmdesc *knownVMs = NULL;
-static int knownVMsCount = 0;
-static int knownVMsLimit = 0;
-
-static void GrowKnownVMs();
-static int KnownVMIndex(const char* name);
-static void FreeKnownVMs();
-
-jboolean ServerClassMachine();
-
-/* flag which if set suppresses error messages from the launcher */
-static int noExitErrorMessage = 0;
-
-/*
- * Entry point.
- */
-int
-main(int argc, char ** argv)
-{
- JavaVM *vm = 0;
- JNIEnv *env = 0;
- char *jarfile = 0;
- char *classname = 0;
- char *s = 0;
- char *main_class = NULL;
- jstring mainClassName;
- jclass mainClass;
- jmethodID mainID;
- jobjectArray mainArgs;
- int ret;
- InvocationFunctions ifn;
- jlong start, end;
- char jrepath[MAXPATHLEN], jvmpath[MAXPATHLEN];
- char ** original_argv = argv;
-
- /*
- * Error message to print or display; by default the message will
- * only be displayed in a window.
- */
- char * message = "Fatal exception occurred. Program will exit.";
- jboolean messageDest = JNI_FALSE;
-
- if (getenv("_JAVA_LAUNCHER_DEBUG") != 0) {
- _launcher_debug = JNI_TRUE;
- printf("----_JAVA_LAUNCHER_DEBUG----\n");
- }
-
-#ifndef GAMMA
- /*
- * Make sure the specified version of the JRE is running.
- *
- * There are three things to note about the SelectVersion() routine:
- * 1) If the version running isn't correct, this routine doesn't
- * return (either the correct version has been exec'd or an error
- * was issued).
- * 2) Argc and Argv in this scope are *not* altered by this routine.
- * It is the responsibility of subsequent code to ignore the
- * arguments handled by this routine.
- * 3) As a side-effect, the variable "main_class" is guaranteed to
- * be set (if it should ever be set). This isn't exactly the
- * poster child for structured programming, but it is a small
- * price to pay for not processing a jar file operand twice.
- * (Note: This side effect has been disabled. See comment on
- * bugid 5030265 below.)
- */
- SelectVersion(argc, argv, &main_class);
-#endif /* ifndef GAMMA */
-
- /* copy original argv */
- {
- int i;
- original_argv = (char**)MemAlloc(sizeof(char*)*(argc+1));
- for(i = 0; i < argc+1; i++)
- original_argv[i] = argv[i];
- }
-
- CreateExecutionEnvironment(&argc, &argv,
- jrepath, sizeof(jrepath),
- jvmpath, sizeof(jvmpath),
- original_argv);
- ifn.CreateJavaVM = 0;
- ifn.GetDefaultJavaVMInitArgs = 0;
-
- if (_launcher_debug)
- start = CounterGet();
- if (!LoadJavaVM(jvmpath, &ifn)) {
- exit(6);
- }
- if (_launcher_debug) {
- end = CounterGet();
- printf("%ld micro seconds to LoadJavaVM\n",
- (long)(jint)Counter2Micros(end-start));
- }
-
-#ifdef JAVA_ARGS /* javac, jar and friends. */
- progname = "java";
-#else /* java, oldjava, javaw and friends */
-#ifdef PROGNAME
- progname = PROGNAME;
-#else
- progname = *argv;
- if ((s = strrchr(progname, FILE_SEPARATOR)) != 0) {
- progname = s + 1;
- }
-#endif /* PROGNAME */
-#endif /* JAVA_ARGS */
- ++argv;
- --argc;
-
-#ifdef JAVA_ARGS
- /* Preprocess wrapper arguments */
- TranslateDashJArgs(&argc, &argv);
- if (!AddApplicationOptions()) {
- exit(1);
- }
-#endif
-
- /* Set default CLASSPATH */
- if ((s = getenv("CLASSPATH")) == 0) {
- s = ".";
- }
-#ifndef JAVA_ARGS
- SetClassPath(s);
-#endif
-
- /*
- * Parse command line options; if the return value of
- * ParseArguments is false, the program should exit.
- */
- if (!ParseArguments(&argc, &argv, &jarfile, &classname, &ret)) {
- exit(ret);
- }
-
- /* Override class path if -jar flag was specified */
- if (jarfile != 0) {
- SetClassPath(jarfile);
- }
-
- /* set the -Dsun.java.command pseudo property */
- SetJavaCommandLineProp(classname, jarfile, argc, argv);
-
-#ifdef GAMMA
- /* Set the -Dsun.java.launcher pseudo property */
- SetJavaLauncherProp();
-#endif
-
- /*
- * Done with all command line processing and potential re-execs so
- * clean up the environment.
- */
- (void)UnsetEnv(ENV_ENTRY);
-
- /* Initialize the virtual machine */
-
- if (_launcher_debug)
- start = CounterGet();
- if (!InitializeJVM(&vm, &env, &ifn)) {
- ReportErrorMessage("Could not create the Java virtual machine.",
- JNI_TRUE);
- exit(1);
- }
-
- if (printVersion || showVersion) {
- PrintJavaVersion(env);
- if ((*env)->ExceptionOccurred(env)) {
- ReportExceptionDescription(env);
- goto leave;
- }
- if (printVersion) {
- ret = 0;
- message = NULL;
- goto leave;
- }
- if (showVersion) {
- fprintf(stderr, "\n");
- }
- }
-
- /* If the user specified neither a class name nor a JAR file */
- if (jarfile == 0 && classname == 0) {
- PrintUsage();
- message = NULL;
- goto leave;
- }
-
-#ifndef GAMMA
- FreeKnownVMs(); /* after last possible PrintUsage() */
-#endif
-
- if (_launcher_debug) {
- end = CounterGet();
- printf("%ld micro seconds to InitializeJVM\n",
- (long)(jint)Counter2Micros(end-start));
- }
-
- /* At this stage, argc/argv have the applications' arguments */
- if (_launcher_debug) {
- int i = 0;
- printf("Main-Class is '%s'\n", classname ? classname : "");
- printf("Apps' argc is %d\n", argc);
- for (; i < argc; i++) {
- printf(" argv[%2d] = '%s'\n", i, argv[i]);
- }
- }
-
- ret = 1;
-
- /*
- * Get the application's main class.
- *
- * See bugid 5030265. The Main-Class name has already been parsed
- * from the manifest, but not parsed properly for UTF-8 support.
- * Hence the code here ignores the value previously extracted and
- * uses the pre-existing code to reextract the value. This is
- * possibly an end of release cycle expedient. However, it has
- * also been discovered that passing some character sets through
- * the environment has "strange" behavior on some variants of
- * Windows. Hence, maybe the manifest parsing code local to the
- * launcher should never be enhanced.
- *
- * Hence, future work should either:
- * 1) Correct the local parsing code and verify that the
- * Main-Class attribute gets properly passed through
- * all environments,
- * 2) Remove the vestages of maintaining main_class through
- * the environment (and remove these comments).
- */
- if (jarfile != 0) {
- mainClassName = GetMainClassName(env, jarfile);
- if ((*env)->ExceptionOccurred(env)) {
- ReportExceptionDescription(env);
- goto leave;
- }
- if (mainClassName == NULL) {
- const char * format = "Failed to load Main-Class manifest "
- "attribute from\n%s";
- message = (char*)MemAlloc((strlen(format) + strlen(jarfile)) *
- sizeof(char));
- sprintf(message, format, jarfile);
- messageDest = JNI_TRUE;
- goto leave;
- }
- classname = (char *)(*env)->GetStringUTFChars(env, mainClassName, 0);
- if (classname == NULL) {
- ReportExceptionDescription(env);
- goto leave;
- }
- mainClass = LoadClass(env, classname);
- if(mainClass == NULL) { /* exception occurred */
- ReportExceptionDescription(env);
- message = "Could not find the main class. Program will exit.";
- goto leave;
- }
- (*env)->ReleaseStringUTFChars(env, mainClassName, classname);
- } else {
- mainClassName = NewPlatformString(env, classname);
- if (mainClassName == NULL) {
- const char * format = "Failed to load Main Class: %s";
- message = (char *)MemAlloc((strlen(format) + strlen(classname)) *
- sizeof(char) );
- sprintf(message, format, classname);
- messageDest = JNI_TRUE;
- goto leave;
- }
- classname = (char *)(*env)->GetStringUTFChars(env, mainClassName, 0);
- if (classname == NULL) {
- ReportExceptionDescription(env);
- goto leave;
- }
- mainClass = LoadClass(env, classname);
- if(mainClass == NULL) { /* exception occurred */
- ReportExceptionDescription(env);
- message = "Could not find the main class. Program will exit.";
- goto leave;
- }
- (*env)->ReleaseStringUTFChars(env, mainClassName, classname);
- }
-
- /* Get the application's main method */
- mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
- "([Ljava/lang/String;)V");
- if (mainID == NULL) {
- if ((*env)->ExceptionOccurred(env)) {
- ReportExceptionDescription(env);
- } else {
- message = "No main method found in specified class.";
- messageDest = JNI_TRUE;
- }
- goto leave;
- }
-
- { /* Make sure the main method is public */
- jint mods;
- jmethodID mid;
- jobject obj = (*env)->ToReflectedMethod(env, mainClass,
- mainID, JNI_TRUE);
-
- if( obj == NULL) { /* exception occurred */
- ReportExceptionDescription(env);
- goto leave;
- }
-
- mid =
- (*env)->GetMethodID(env,
- (*env)->GetObjectClass(env, obj),
- "getModifiers", "()I");
- if ((*env)->ExceptionOccurred(env)) {
- ReportExceptionDescription(env);
- goto leave;
- }
-
- mods = (*env)->CallIntMethod(env, obj, mid);
- if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
- message = "Main method not public.";
- messageDest = JNI_TRUE;
- goto leave;
- }
- }
-
- /* Build argument array */
- mainArgs = NewPlatformStringArray(env, argv, argc);
- if (mainArgs == NULL) {
- ReportExceptionDescription(env);
- goto leave;
- }
-
- /* Invoke main method. */
- (*env)->CallStaticVoidMethod(env, mainClass, mainID, mainArgs);
-
- /*
- * The launcher's exit code (in the absence of calls to
- * System.exit) will be non-zero if main threw an exception.
- */
- ret = (*env)->ExceptionOccurred(env) == NULL ? 0 : 1;
-
- /*
- * Detach the main thread so that it appears to have ended when
- * the application's main method exits. This will invoke the
- * uncaught exception handler machinery if main threw an
- * exception. An uncaught exception handler cannot change the
- * launcher's return code except by calling System.exit.
- */
- if ((*vm)->DetachCurrentThread(vm) != 0) {
- message = "Could not detach main thread.";
- messageDest = JNI_TRUE;
- ret = 1;
- goto leave;
- }
-
- message = NULL;
-
- leave:
- /*
- * Wait for all non-daemon threads to end, then destroy the VM.
- * This will actually create a trivial new Java waiter thread
- * named "DestroyJavaVM", but this will be seen as a different
- * thread from the one that executed main, even though they are
- * the same C thread. This allows mainThread.join() and
- * mainThread.isAlive() to work as expected.
- */
- (*vm)->DestroyJavaVM(vm);
-
- if(message != NULL && !noExitErrorMessage)
- ReportErrorMessage(message, messageDest);
- return ret;
-}
-
-
-#ifndef GAMMA
-/*
- * Checks the command line options to find which JVM type was
- * specified. If no command line option was given for the JVM type,
- * the default type is used. The environment variable
- * JDK_ALTERNATE_VM and the command line option -XXaltjvm= are also
- * checked as ways of specifying which JVM type to invoke.
- */
-char *
-CheckJvmType(int *pargc, char ***argv, jboolean speculative) {
- int i, argi;
- int argc;
- char **newArgv;
- int newArgvIdx = 0;
- int isVMType;
- int jvmidx = -1;
- char *jvmtype = getenv("JDK_ALTERNATE_VM");
-
- argc = *pargc;
-
- /* To make things simpler we always copy the argv array */
- newArgv = MemAlloc((argc + 1) * sizeof(char *));
-
- /* The program name is always present */
- newArgv[newArgvIdx++] = (*argv)[0];
-
- for (argi = 1; argi < argc; argi++) {
- char *arg = (*argv)[argi];
- isVMType = 0;
-
-#ifdef JAVA_ARGS
- if (arg[0] != '-') {
- newArgv[newArgvIdx++] = arg;
- continue;
- }
-#else
- if (strcmp(arg, "-classpath") == 0 ||
- strcmp(arg, "-cp") == 0) {
- newArgv[newArgvIdx++] = arg;
- argi++;
- if (argi < argc) {
- newArgv[newArgvIdx++] = (*argv)[argi];
- }
- continue;
- }
- if (arg[0] != '-') break;
-#endif
-
- /* Did the user pass an explicit VM type? */
- i = KnownVMIndex(arg);
- if (i >= 0) {
- jvmtype = knownVMs[jvmidx = i].name + 1; /* skip the - */
- isVMType = 1;
- *pargc = *pargc - 1;
- }
-
- /* Did the user specify an "alternate" VM? */
- else if (strncmp(arg, "-XXaltjvm=", 10) == 0 || strncmp(arg, "-J-XXaltjvm=", 12) == 0) {
- isVMType = 1;
- jvmtype = arg+((arg[1]=='X')? 10 : 12);
- jvmidx = -1;
- }
-
- if (!isVMType) {
- newArgv[newArgvIdx++] = arg;
- }
- }
-
- /*
- * Finish copying the arguments if we aborted the above loop.
- * NOTE that if we aborted via "break" then we did NOT copy the
- * last argument above, and in addition argi will be less than
- * argc.
- */
- while (argi < argc) {
- newArgv[newArgvIdx++] = (*argv)[argi];
- argi++;
- }
-
- /* argv is null-terminated */
- newArgv[newArgvIdx] = 0;
-
- /* Copy back argv */
- *argv = newArgv;
- *pargc = newArgvIdx;
-
- /* use the default VM type if not specified (no alias processing) */
- if (jvmtype == NULL) {
- char* result = knownVMs[0].name+1;
- /* Use a different VM type if we are on a server class machine? */
- if ((knownVMs[0].flag == VM_IF_SERVER_CLASS) &&
- (ServerClassMachine() == JNI_TRUE)) {
- result = knownVMs[0].server_class+1;
- }
- if (_launcher_debug) {
- printf("Default VM: %s\n", result);
- }
- return result;
- }
-
- /* if using an alternate VM, no alias processing */
- if (jvmidx < 0)
- return jvmtype;
-
- /* Resolve aliases first */
- {
- int loopCount = 0;
- while (knownVMs[jvmidx].flag == VM_ALIASED_TO) {
- int nextIdx = KnownVMIndex(knownVMs[jvmidx].alias);
-
- if (loopCount > knownVMsCount) {
- if (!speculative) {
- ReportErrorMessage("Error: Corrupt jvm.cfg file; cycle in alias list.",
- JNI_TRUE);
- exit(1);
- } else {
- return "ERROR";
- /* break; */
- }
- }
-
- if (nextIdx < 0) {
- if (!speculative) {
- ReportErrorMessage2("Error: Unable to resolve VM alias %s",
- knownVMs[jvmidx].alias, JNI_TRUE);
- exit(1);
- } else {
- return "ERROR";
- }
- }
- jvmidx = nextIdx;
- jvmtype = knownVMs[jvmidx].name+1;
- loopCount++;
- }
- }
-
- switch (knownVMs[jvmidx].flag) {
- case VM_WARN:
- if (!speculative) {
- fprintf(stderr, "Warning: %s VM not supported; %s VM will be used\n",
- jvmtype, knownVMs[0].name + 1);
- }
- /* fall through */
- case VM_IGNORE:
- jvmtype = knownVMs[jvmidx=0].name + 1;
- /* fall through */
- case VM_KNOWN:
- break;
- case VM_ERROR:
- if (!speculative) {
- ReportErrorMessage2("Error: %s VM not supported", jvmtype, JNI_TRUE);
- exit(1);
- } else {
- return "ERROR";
- }
- }
-
- return jvmtype;
-}
-#endif /* ifndef GAMMA */
-
-/*
- * Adds a new VM option with the given given name and value.
- */
-static void
-AddOption(char *str, void *info)
-{
- /*
- * Expand options array if needed to accommodate at least one more
- * VM option.
- */
- if (numOptions >= maxOptions) {
- if (options == 0) {
- maxOptions = 4;
- options = MemAlloc(maxOptions * sizeof(JavaVMOption));
- } else {
- JavaVMOption *tmp;
- maxOptions *= 2;
- tmp = MemAlloc(maxOptions * sizeof(JavaVMOption));
- memcpy(tmp, options, numOptions * sizeof(JavaVMOption));
- free(options);
- options = tmp;
- }
- }
- options[numOptions].optionString = str;
- options[numOptions++].extraInfo = info;
-}
-
-static void
-SetClassPath(char *s)
-{
- char *def = MemAlloc(strlen(s) + 40);
- sprintf(def, "-Djava.class.path=%s", s);
- AddOption(def, NULL);
-}
-
-#ifndef GAMMA
-/*
- * The SelectVersion() routine ensures that an appropriate version of
- * the JRE is running. The specification for the appropriate version
- * is obtained from either the manifest of a jar file (preferred) or
- * from command line options.
- */
-static void
-SelectVersion(int argc, char **argv, char **main_class)
-{
- char *arg;
- char **new_argv;
- char **new_argp;
- char *operand;
- char *version = NULL;
- char *jre = NULL;
- int jarflag = 0;
- int restrict_search = -1; /* -1 implies not known */
- manifest_info info;
- char env_entry[MAXNAMELEN + 24] = ENV_ENTRY "=";
- char *env_in;
- int res;
-
- /*
- * If the version has already been selected, set *main_class
- * with the value passed through the environment (if any) and
- * simply return.
- */
- if ((env_in = getenv(ENV_ENTRY)) != NULL) {
- if (*env_in != '\0')
- *main_class = strdup(env_in);
- return;
- }
-
- /*
- * Scan through the arguments for options relevant to multiple JRE
- * support. For reference, the command line syntax is defined as:
- *
- * SYNOPSIS
- * java [options] class [argument...]
- *
- * java [options] -jar file.jar [argument...]
- *
- * As the scan is performed, make a copy of the argument list with
- * the version specification options (new to 1.5) removed, so that
- * a version less than 1.5 can be exec'd.
- */
- new_argv = MemAlloc((argc + 1) * sizeof(char*));
- new_argv[0] = argv[0];
- new_argp = &new_argv[1];
- argc--;
- argv++;
- while ((arg = *argv) != 0 && *arg == '-') {
- if (strncmp(arg, "-version:", 9) == 0) {
- version = arg + 9;
- } else if (strcmp(arg, "-jre-restrict-search") == 0) {
- restrict_search = 1;
- } else if (strcmp(arg, "-no-jre-restrict-search") == 0) {
- restrict_search = 0;
- } else {
- if (strcmp(arg, "-jar") == 0)
- jarflag = 1;
- /* deal with "unfortunate" classpath syntax */
- if ((strcmp(arg, "-classpath") == 0 || strcmp(arg, "-cp") == 0) &&
- (argc >= 2)) {
- *new_argp++ = arg;
- argc--;
- argv++;
- arg = *argv;
- }
- *new_argp++ = arg;
- }
- argc--;
- argv++;
- }
- if (argc <= 0) { /* No operand? Possibly legit with -[full]version */
- operand = NULL;
- } else {
- argc--;
- *new_argp++ = operand = *argv++;
- }
- while (argc-- > 0) /* Copy over [argument...] */
- *new_argp++ = *argv++;
- *new_argp = NULL;
-
- /*
- * If there is a jar file, read the manifest. If the jarfile can't be
- * read, the manifest can't be read from the jar file, or the manifest
- * is corrupt, issue the appropriate error messages and exit.
- *
- * Even if there isn't a jar file, construct a manifest_info structure
- * containing the command line information. It's a convenient way to carry
- * this data around.
- */
- if (jarflag && operand) {
- if ((res = parse_manifest(operand, &info)) != 0) {
- if (res == -1)
- ReportErrorMessage2("Unable to access jarfile %s",
- operand, JNI_TRUE);
- else
- ReportErrorMessage2("Invalid or corrupt jarfile %s",
- operand, JNI_TRUE);
- exit(1);
- }
- } else {
- info.manifest_version = NULL;
- info.main_class = NULL;
- info.jre_version = NULL;
- info.jre_restrict_search = 0;
- }
-
- /*
- * The JRE-Version and JRE-Restrict-Search values (if any) from the
- * manifest are overwritten by any specified on the command line.
- */
- if (version != NULL)
- info.jre_version = version;
- if (restrict_search != -1)
- info.jre_restrict_search = restrict_search;
-
- /*
- * "Valid" returns (other than unrecoverable errors) follow. Set
- * main_class as a side-effect of this routine.
- */
- if (info.main_class != NULL)
- *main_class = strdup(info.main_class);
-
- /*
- * If no version selection information is found either on the command
- * line or in the manifest, simply return.
- */
- if (info.jre_version == NULL) {
- free_manifest();
- free(new_argv);
- return;
- }
-
- /*
- * Check for correct syntax of the version specification (JSR 56).
- */
- if (!valid_version_string(info.jre_version)) {
- ReportErrorMessage2("Syntax error in version specification \"%s\"",
- info.jre_version, JNI_TRUE);
- exit(1);
- }
-
- /*
- * Find the appropriate JVM on the system. Just to be as forgiving as
- * possible, if the standard algorithms don't locate an appropriate
- * jre, check to see if the one running will satisfy the requirements.
- * This can happen on systems which haven't been set-up for multiple
- * JRE support.
- */
- jre = LocateJRE(&info);
- if (_launcher_debug)
- printf("JRE-Version = %s, JRE-Restrict-Search = %s Selected = %s\n",
- (info.jre_version?info.jre_version:"null"),
- (info.jre_restrict_search?"true":"false"), (jre?jre:"null"));
- if (jre == NULL) {
- if (acceptable_release(FULL_VERSION, info.jre_version)) {
- free_manifest();
- free(new_argv);
- return;
- } else {
- ReportErrorMessage2(
- "Unable to locate JRE meeting specification \"%s\"",
- info.jre_version, JNI_TRUE);
- exit(1);
- }
- }
-
- /*
- * If I'm not the chosen one, exec the chosen one. Returning from
- * ExecJRE indicates that I am indeed the chosen one.
- *
- * The private environment variable _JAVA_VERSION_SET is used to
- * prevent the chosen one from re-reading the manifest file and
- * using the values found within to override the (potential) command
- * line flags stripped from argv (because the target may not
- * understand them). Passing the MainClass value is an optimization
- * to avoid locating, expanding and parsing the manifest extra
- * times.
- */
- if (info.main_class != NULL)
- (void)strcat(env_entry, info.main_class);
- (void)putenv(env_entry);
- ExecJRE(jre, new_argv);
- free_manifest();
- free(new_argv);
- return;
-}
-#endif /* ifndef GAMMA */
-
-/*
- * Parses command line arguments. Returns JNI_FALSE if launcher
- * should exit without starting vm (e.g. certain version and usage
- * options); returns JNI_TRUE if vm needs to be started to process
- * given options. *pret (the launcher process return value) is set to
- * 0 for a normal exit.
- */
-static jboolean
-ParseArguments(int *pargc, char ***pargv, char **pjarfile,
- char **pclassname, int *pret)
-{
- int argc = *pargc;
- char **argv = *pargv;
- jboolean jarflag = JNI_FALSE;
- char *arg;
-
- *pret = 1;
- while ((arg = *argv) != 0 && *arg == '-') {
- argv++; --argc;
- if (strcmp(arg, "-classpath") == 0 || strcmp(arg, "-cp") == 0) {
- if (argc < 1) {
- ReportErrorMessage2("%s requires class path specification",
- arg, JNI_TRUE);
- PrintUsage();
- return JNI_FALSE;
- }
- SetClassPath(*argv);
- argv++; --argc;
- } else if (strcmp(arg, "-jar") == 0) {
- jarflag = JNI_TRUE;
- } else if (strcmp(arg, "-help") == 0 ||
- strcmp(arg, "-h") == 0 ||
- strcmp(arg, "-?") == 0) {
- PrintUsage();
- *pret = 0;
- return JNI_FALSE;
- } else if (strcmp(arg, "-version") == 0) {
- printVersion = JNI_TRUE;
- return JNI_TRUE;
- } else if (strcmp(arg, "-showversion") == 0) {
- showVersion = JNI_TRUE;
- } else if (strcmp(arg, "-X") == 0) {
- *pret = PrintXUsage();
- return JNI_FALSE;
-/*
- * The following case provide backward compatibility with old-style
- * command line options.
- */
- } else if (strcmp(arg, "-fullversion") == 0) {
- fprintf(stderr, "%s full version \"%s\"\n", progname,
- FULL_VERSION);
- *pret = 0;
- return JNI_FALSE;
- } else if (strcmp(arg, "-verbosegc") == 0) {
- AddOption("-verbose:gc", NULL);
- } else if (strcmp(arg, "-t") == 0) {
- AddOption("-Xt", NULL);
- } else if (strcmp(arg, "-tm") == 0) {
- AddOption("-Xtm", NULL);
- } else if (strcmp(arg, "-debug") == 0) {
- AddOption("-Xdebug", NULL);
- } else if (strcmp(arg, "-noclassgc") == 0) {
- AddOption("-Xnoclassgc", NULL);
- } else if (strcmp(arg, "-Xfuture") == 0) {
- AddOption("-Xverify:all", NULL);
- } else if (strcmp(arg, "-verify") == 0) {
- AddOption("-Xverify:all", NULL);
- } else if (strcmp(arg, "-verifyremote") == 0) {
- AddOption("-Xverify:remote", NULL);
- } else if (strcmp(arg, "-noverify") == 0) {
- AddOption("-Xverify:none", NULL);
- } else if (strcmp(arg, "-XXsuppressExitMessage") == 0) {
- noExitErrorMessage = 1;
- } else if (strncmp(arg, "-prof", 5) == 0) {
- char *p = arg + 5;
- char *tmp = MemAlloc(strlen(arg) + 50);
- if (*p) {
- sprintf(tmp, "-Xrunhprof:cpu=old,file=%s", p + 1);
- } else {
- sprintf(tmp, "-Xrunhprof:cpu=old,file=java.prof");
- }
- AddOption(tmp, NULL);
- } else if (strncmp(arg, "-ss", 3) == 0 ||
- strncmp(arg, "-oss", 4) == 0 ||
- strncmp(arg, "-ms", 3) == 0 ||
- strncmp(arg, "-mx", 3) == 0) {
- char *tmp = MemAlloc(strlen(arg) + 6);
- sprintf(tmp, "-X%s", arg + 1); /* skip '-' */
- AddOption(tmp, NULL);
- } else if (strcmp(arg, "-checksource") == 0 ||
- strcmp(arg, "-cs") == 0 ||
- strcmp(arg, "-noasyncgc") == 0) {
- /* No longer supported */
- fprintf(stderr,
- "Warning: %s option is no longer supported.\n",
- arg);
- } else if (strncmp(arg, "-version:", 9) == 0 ||
- strcmp(arg, "-no-jre-restrict-search") == 0 ||
- strcmp(arg, "-jre-restrict-search") == 0) {
- ; /* Ignore machine independent options already handled */
- } else if (RemovableMachineDependentOption(arg) ) {
- ; /* Do not pass option to vm. */
- }
- else {
- AddOption(arg, NULL);
- }
- }
-
- if (--argc >= 0) {
- if (jarflag) {
- *pjarfile = *argv++;
- *pclassname = 0;
- } else {
- *pjarfile = 0;
- *pclassname = *argv++;
- }
- *pargc = argc;
- *pargv = argv;
- }
-
- return JNI_TRUE;
-}
-
-/*
- * Initializes the Java Virtual Machine. Also frees options array when
- * finished.
- */
-static jboolean
-InitializeJVM(JavaVM **pvm, JNIEnv **penv, InvocationFunctions *ifn)
-{
- JavaVMInitArgs args;
- jint r;
-
- memset(&args, 0, sizeof(args));
- args.version = JNI_VERSION_1_2;
- args.nOptions = numOptions;
- args.options = options;
- args.ignoreUnrecognized = JNI_FALSE;
-
- if (_launcher_debug) {
- int i = 0;
- printf("JavaVM args:\n ");
- printf("version 0x%08lx, ", (long)args.version);
- printf("ignoreUnrecognized is %s, ",
- args.ignoreUnrecognized ? "JNI_TRUE" : "JNI_FALSE");
- printf("nOptions is %ld\n", (long)args.nOptions);
- for (i = 0; i < numOptions; i++)
- printf(" option[%2d] = '%s'\n",
- i, args.options[i].optionString);
- }
-
- r = ifn->CreateJavaVM(pvm, (void **)penv, &args);
- free(options);
- return r == JNI_OK;
-}
-
-
-#define NULL_CHECK0(e) if ((e) == 0) return 0
-#define NULL_CHECK(e) if ((e) == 0) return
-
-/*
- * Returns a pointer to a block of at least 'size' bytes of memory.
- * Prints error message and exits if the memory could not be allocated.
- */
-void *
-MemAlloc(size_t size)
-{
- void *p = malloc(size);
- if (p == 0) {
- perror("malloc");
- exit(1);
- }
- return p;
-}
-
-static jstring platformEncoding = NULL;
-static jstring getPlatformEncoding(JNIEnv *env) {
- if (platformEncoding == NULL) {
- jstring propname = (*env)->NewStringUTF(env, "sun.jnu.encoding");
- if (propname) {
- jclass cls;
- jmethodID mid;
- NULL_CHECK0 (cls = FindBootStrapClass(env, "java/lang/System"));
- NULL_CHECK0 (mid = (*env)->GetStaticMethodID(
- env, cls,
- "getProperty",
- "(Ljava/lang/String;)Ljava/lang/String;"));
- platformEncoding = (*env)->CallStaticObjectMethod (
- env, cls, mid, propname);
- }
- }
- return platformEncoding;
-}
-
-static jboolean isEncodingSupported(JNIEnv *env, jstring enc) {
- jclass cls;
- jmethodID mid;
- NULL_CHECK0 (cls = FindBootStrapClass(env, "java/nio/charset/Charset"));
- NULL_CHECK0 (mid = (*env)->GetStaticMethodID(
- env, cls,
- "isSupported",
- "(Ljava/lang/String;)Z"));
- return (jboolean)(*env)->CallStaticObjectMethod (env, cls, mid, enc);
-}
-
-/*
- * Returns a new Java string object for the specified platform string.
- */
-static jstring
-NewPlatformString(JNIEnv *env, char *s)
-{
- int len = (int)strlen(s);
- jclass cls;
- jmethodID mid;
- jbyteArray ary;
- jstring enc;
-
- if (s == NULL)
- return 0;
- enc = getPlatformEncoding(env);
-
- ary = (*env)->NewByteArray(env, len);
- if (ary != 0) {
- jstring str = 0;
- (*env)->SetByteArrayRegion(env, ary, 0, len, (jbyte *)s);
- if (!(*env)->ExceptionOccurred(env)) {
-#ifdef GAMMA
- /* We support running JVM with older JDK, so here we have to deal */
- /* with the case that sun.jnu.encoding is undefined (enc == NULL) */
- if (enc != NULL && isEncodingSupported(env, enc) == JNI_TRUE) {
-#else
- if (isEncodingSupported(env, enc) == JNI_TRUE) {
-#endif
- NULL_CHECK0(cls = FindBootStrapClass(env, "java/lang/String"));
- NULL_CHECK0(mid = (*env)->GetMethodID(env, cls, "",
- "([BLjava/lang/String;)V"));
- str = (*env)->NewObject(env, cls, mid, ary, enc);
- } else {
- /*If the encoding specified in sun.jnu.encoding is not
- endorsed by "Charset.isSupported" we have to fall back
- to use String(byte[]) explicitly here without specifying
- the encoding name, in which the StringCoding class will
- pickup the iso-8859-1 as the fallback converter for us.
- */
- NULL_CHECK0(cls = FindBootStrapClass(env, "java/lang/String"));
- NULL_CHECK0(mid = (*env)->GetMethodID(env, cls, "",
- "([B)V"));
- str = (*env)->NewObject(env, cls, mid, ary);
- }
- (*env)->DeleteLocalRef(env, ary);
- return str;
- }
- }
- return 0;
-}
-
-/*
- * Returns a new array of Java string objects for the specified
- * array of platform strings.
- */
-static jobjectArray
-NewPlatformStringArray(JNIEnv *env, char **strv, int strc)
-{
- jarray cls;
- jarray ary;
- int i;
-
- NULL_CHECK0(cls = FindBootStrapClass(env, "java/lang/String"));
- NULL_CHECK0(ary = (*env)->NewObjectArray(env, strc, cls, 0));
- for (i = 0; i < strc; i++) {
- jstring str = NewPlatformString(env, *strv++);
- NULL_CHECK0(str);
- (*env)->SetObjectArrayElement(env, ary, i, str);
- (*env)->DeleteLocalRef(env, str);
- }
- return ary;
-}
-
-/*
- * Loads a class, convert the '.' to '/'.
- */
-static jclass
-LoadClass(JNIEnv *env, char *name)
-{
- char *buf = MemAlloc(strlen(name) + 1);
- char *s = buf, *t = name, c;
- jclass cls;
- jlong start, end;
-
- if (_launcher_debug)
- start = CounterGet();
-
- do {
- c = *t++;
- *s++ = (c == '.') ? '/' : c;
- } while (c != '\0');
- // use the application class loader for the main-class
- cls = (*env)->FindClass(env, buf);
- free(buf);
-
- if (_launcher_debug) {
- end = CounterGet();
- printf("%ld micro seconds to load main class\n",
- (long)(jint)Counter2Micros(end-start));
- printf("----_JAVA_LAUNCHER_DEBUG----\n");
- }
-
- return cls;
-}
-
-
-/*
- * Returns the main class name for the specified jar file.
- */
-static jstring
-GetMainClassName(JNIEnv *env, char *jarname)
-{
-#define MAIN_CLASS "Main-Class"
- jclass cls;
- jmethodID mid;
- jobject jar, man, attr;
- jstring str, result = 0;
-
- NULL_CHECK0(cls = FindBootStrapClass(env, "java/util/jar/JarFile"));
- NULL_CHECK0(mid = (*env)->GetMethodID(env, cls, "",
- "(Ljava/lang/String;)V"));
- NULL_CHECK0(str = NewPlatformString(env, jarname));
- NULL_CHECK0(jar = (*env)->NewObject(env, cls, mid, str));
- NULL_CHECK0(mid = (*env)->GetMethodID(env, cls, "getManifest",
- "()Ljava/util/jar/Manifest;"));
- man = (*env)->CallObjectMethod(env, jar, mid);
- if (man != 0) {
- NULL_CHECK0(mid = (*env)->GetMethodID(env,
- (*env)->GetObjectClass(env, man),
- "getMainAttributes",
- "()Ljava/util/jar/Attributes;"));
- attr = (*env)->CallObjectMethod(env, man, mid);
- if (attr != 0) {
- NULL_CHECK0(mid = (*env)->GetMethodID(env,
- (*env)->GetObjectClass(env, attr),
- "getValue",
- "(Ljava/lang/String;)Ljava/lang/String;"));
- NULL_CHECK0(str = NewPlatformString(env, MAIN_CLASS));
- result = (*env)->CallObjectMethod(env, attr, mid, str);
- }
- }
- return result;
-}
-
-#ifdef JAVA_ARGS
-static char *java_args[] = JAVA_ARGS;
-static char *app_classpath[] = APP_CLASSPATH;
-
-/*
- * For tools convert 'javac -J-ms32m' to 'java -ms32m ...'
- */
-static void
-TranslateDashJArgs(int *pargc, char ***pargv)
-{
- const int NUM_ARGS = (sizeof(java_args) / sizeof(char *));
- int argc = *pargc;
- char **argv = *pargv;
- int nargc = argc + NUM_ARGS;
- char **nargv = MemAlloc((nargc + 1) * sizeof(char *));
- int i;
-
- *pargc = nargc;
- *pargv = nargv;
-
- /* Copy the VM arguments (i.e. prefixed with -J) */
- for (i = 0; i < NUM_ARGS; i++) {
- char *arg = java_args[i];
- if (arg[0] == '-' && arg[1] == 'J') {
- *nargv++ = arg + 2;
- }
- }
-
- for (i = 0; i < argc; i++) {
- char *arg = argv[i];
- if (arg[0] == '-' && arg[1] == 'J') {
- if (arg[2] == '\0') {
- ReportErrorMessage("Error: the -J option should not be "
- "followed by a space.", JNI_TRUE);
- exit(1);
- }
- *nargv++ = arg + 2;
- }
- }
-
- /* Copy the rest of the arguments */
- for (i = 0; i < NUM_ARGS; i++) {
- char *arg = java_args[i];
- if (arg[0] != '-' || arg[1] != 'J') {
- *nargv++ = arg;
- }
- }
- for (i = 0; i < argc; i++) {
- char *arg = argv[i];
- if (arg[0] != '-' || arg[1] != 'J') {
- *nargv++ = arg;
- }
- }
- *nargv = 0;
-}
-
-/*
- * For our tools, we try to add 3 VM options:
- * -Denv.class.path=
- * -Dapplication.home=
- * -Djava.class.path=
- * is the user's setting of CLASSPATH -- for instance the user
- * tells javac where to find binary classes through this environment
- * variable. Notice that users will be able to compile against our
- * tools classes (sun.tools.javac.Main) only if they explicitly add
- * tools.jar to CLASSPATH.
- * is the directory where the application is installed.
- * is the classpath to where our apps' classfiles are.
- */
-static jboolean
-AddApplicationOptions()
-{
- const int NUM_APP_CLASSPATH = (sizeof(app_classpath) / sizeof(char *));
- char *s, *envcp, *appcp, *apphome;
- char home[MAXPATHLEN]; /* application home */
- char separator[] = { PATH_SEPARATOR, '\0' };
- int size, i;
- int strlenHome;
-
- s = getenv("CLASSPATH");
- if (s) {
- /* 40 for -Denv.class.path= */
- envcp = (char *)MemAlloc(strlen(s) + 40);
- sprintf(envcp, "-Denv.class.path=%s", s);
- AddOption(envcp, NULL);
- }
-
- if (!GetApplicationHome(home, sizeof(home))) {
- ReportErrorMessage("Can't determine application home", JNI_TRUE);
- return JNI_FALSE;
- }
-
- /* 40 for '-Dapplication.home=' */
- apphome = (char *)MemAlloc(strlen(home) + 40);
- sprintf(apphome, "-Dapplication.home=%s", home);
- AddOption(apphome, NULL);
-
- /* How big is the application's classpath? */
- size = 40; /* 40: "-Djava.class.path=" */
- strlenHome = (int)strlen(home);
- for (i = 0; i < NUM_APP_CLASSPATH; i++) {
- size += strlenHome + (int)strlen(app_classpath[i]) + 1; /* 1: separator */
- }
- appcp = (char *)MemAlloc(size + 1);
- strcpy(appcp, "-Djava.class.path=");
- for (i = 0; i < NUM_APP_CLASSPATH; i++) {
- strcat(appcp, home); /* c:\program files\myapp */
- strcat(appcp, app_classpath[i]); /* \lib\myapp.jar */
- strcat(appcp, separator); /* ; */
- }
- appcp[strlen(appcp)-1] = '\0'; /* remove trailing path separator */
- AddOption(appcp, NULL);
- return JNI_TRUE;
-}
-#endif
-
-/*
- * inject the -Dsun.java.command pseudo property into the args structure
- * this pseudo property is used in the HotSpot VM to expose the
- * Java class name and arguments to the main method to the VM. The
- * HotSpot VM uses this pseudo property to store the Java class name
- * (or jar file name) and the arguments to the class's main method
- * to the instrumentation memory region. The sun.java.command pseudo
- * property is not exported by HotSpot to the Java layer.
- */
-void
-SetJavaCommandLineProp(char *classname, char *jarfile,
- int argc, char **argv)
-{
-
- int i = 0;
- size_t len = 0;
- char* javaCommand = NULL;
- char* dashDstr = "-Dsun.java.command=";
-
- if (classname == NULL && jarfile == NULL) {
- /* unexpected, one of these should be set. just return without
- * setting the property
- */
- return;
- }
-
- /* if the class name is not set, then use the jarfile name */
- if (classname == NULL) {
- classname = jarfile;
- }
-
- /* determine the amount of memory to allocate assuming
- * the individual components will be space separated
- */
- len = strlen(classname);
- for (i = 0; i < argc; i++) {
- len += strlen(argv[i]) + 1;
- }
-
- /* allocate the memory */
- javaCommand = (char*) MemAlloc(len + strlen(dashDstr) + 1);
-
- /* build the -D string */
- *javaCommand = '\0';
- strcat(javaCommand, dashDstr);
- strcat(javaCommand, classname);
-
- for (i = 0; i < argc; i++) {
- /* the components of the string are space separated. In
- * the case of embedded white space, the relationship of
- * the white space separated components to their true
- * positional arguments will be ambiguous. This issue may
- * be addressed in a future release.
- */
- strcat(javaCommand, " ");
- strcat(javaCommand, argv[i]);
- }
-
- AddOption(javaCommand, NULL);
-}
-
-/*
- * JVM wants to know launcher type, so tell it.
- */
-#ifdef GAMMA
-void SetJavaLauncherProp() {
- AddOption("-Dsun.java.launcher=" LAUNCHER_TYPE, NULL);
-}
-#endif
-
-/*
- * Prints the version information from the java.version and other properties.
- */
-static void
-PrintJavaVersion(JNIEnv *env)
-{
- jclass ver;
- jmethodID print;
-
- NULL_CHECK(ver = FindBootStrapClass(env, "sun/misc/Version"));
- NULL_CHECK(print = (*env)->GetStaticMethodID(env, ver, "print", "()V"));
-
- (*env)->CallStaticVoidMethod(env, ver, print);
-}
-
-/*
- * Prints default usage message.
- */
-static void
-PrintUsage(void)
-{
- int i;
-
- fprintf(stdout,
- "Usage: %s [-options] class [args...]\n"
- " (to execute a class)\n"
- " or %s [-options] -jar jarfile [args...]\n"
- " (to execute a jar file)\n"
- "\n"
- "where options include:\n",
- progname,
- progname);
-
-#ifndef GAMMA
- PrintMachineDependentOptions();
-
- if ((knownVMs[0].flag == VM_KNOWN) ||
- (knownVMs[0].flag == VM_IF_SERVER_CLASS)) {
- fprintf(stdout, " %s\t to select the \"%s\" VM\n",
- knownVMs[0].name, knownVMs[0].name+1);
- }
- for (i=1; i\n"
-" -classpath \n"
-" A %c separated list of directories, JAR archives,\n"
-" and ZIP archives to search for class files.\n"
-" -D=\n"
-" set a system property\n"
-" -verbose[:class|gc|jni]\n"
-" enable verbose output\n"
-" -version print product version and exit\n"
-" -version:\n"
-" require the specified version to run\n"
-" -showversion print product version and continue\n"
-" -jre-restrict-search | -jre-no-restrict-search\n"
-" include/exclude user private JREs in the version search\n"
-" -? -help print this help message\n"
-" -X print help on non-standard options\n"
-" -ea[:...|:]\n"
-" -enableassertions[:...|:]\n"
-" enable assertions\n"
-" -da[:...|:]\n"
-" -disableassertions[:...|:]\n"
-" disable assertions\n"
-" -esa | -enablesystemassertions\n"
-" enable system assertions\n"
-" -dsa | -disablesystemassertions\n"
-" disable system assertions\n"
-" -agentlib:[=]\n"
-" load native agent library , e.g. -agentlib:hprof\n"
-" see also, -agentlib:jdwp=help and -agentlib:hprof=help\n"
-" -agentpath:[=]\n"
-" load native agent library by full pathname\n"
-" -javaagent:[=]\n"
-" load Java programming language agent, see java.lang.instrument\n"
-
- ,PATH_SEPARATOR);
-}
-
-/*
- * Print usage message for -X options.
- */
-static jint
-PrintXUsage(void)
-{
- char path[MAXPATHLEN];
- char buf[128];
- size_t n;
- FILE *fp;
-
- GetXUsagePath(path, sizeof(path));
- fp = fopen(path, "r");
- if (fp == 0) {
- fprintf(stderr, "Can't open %s\n", path);
- return 1;
- }
- while ((n = fread(buf, 1, sizeof(buf), fp)) != 0) {
- fwrite(buf, 1, n, stdout);
- }
- fclose(fp);
- return 0;
-}
-
-#ifndef GAMMA
-
-/*
- * Read the jvm.cfg file and fill the knownJVMs[] array.
- *
- * The functionality of the jvm.cfg file is subject to change without
- * notice and the mechanism will be removed in the future.
- *
- * The lexical structure of the jvm.cfg file is as follows:
- *
- * jvmcfg := { vmLine }
- * vmLine := knownLine
- * | aliasLine
- * | warnLine
- * | ignoreLine
- * | errorLine
- * | predicateLine
- * | commentLine
- * knownLine := flag "KNOWN" EOL
- * warnLine := flag "WARN" EOL
- * ignoreLine := flag "IGNORE" EOL
- * errorLine := flag "ERROR" EOL
- * aliasLine := flag "ALIASED_TO" flag EOL
- * predicateLine := flag "IF_SERVER_CLASS" flag EOL
- * commentLine := "#" text EOL
- * flag := "-" identifier
- *
- * The semantics are that when someone specifies a flag on the command line:
- * - if the flag appears on a knownLine, then the identifier is used as
- * the name of the directory holding the JVM library (the name of the JVM).
- * - if the flag appears as the first flag on an aliasLine, the identifier
- * of the second flag is used as the name of the JVM.
- * - if the flag appears on a warnLine, the identifier is used as the
- * name of the JVM, but a warning is generated.
- * - if the flag appears on an ignoreLine, the identifier is recognized as the
- * name of a JVM, but the identifier is ignored and the default vm used
- * - if the flag appears on an errorLine, an error is generated.
- * - if the flag appears as the first flag on a predicateLine, and
- * the machine on which you are running passes the predicate indicated,
- * then the identifier of the second flag is used as the name of the JVM,
- * otherwise the identifier of the first flag is used as the name of the JVM.
- * If no flag is given on the command line, the first vmLine of the jvm.cfg
- * file determines the name of the JVM.
- * PredicateLines are only interpreted on first vmLine of a jvm.cfg file,
- * since they only make sense if someone hasn't specified the name of the
- * JVM on the command line.
- *
- * The intent of the jvm.cfg file is to allow several JVM libraries to
- * be installed in different subdirectories of a single JRE installation,
- * for space-savings and convenience in testing.
- * The intent is explicitly not to provide a full aliasing or predicate
- * mechanism.
- */
-jint
-ReadKnownVMs(const char *jrepath, char * arch, jboolean speculative)
-{
- FILE *jvmCfg;
- char jvmCfgName[MAXPATHLEN+20];
- char line[MAXPATHLEN+20];
- int cnt = 0;
- int lineno = 0;
- jlong start, end;
- int vmType;
- char *tmpPtr;
- char *altVMName;
- char *serverClassVMName;
- static char *whiteSpace = " \t";
- if (_launcher_debug) {
- start = CounterGet();
- }
-
- strcpy(jvmCfgName, jrepath);
- strcat(jvmCfgName, FILESEP "lib" FILESEP);
- strcat(jvmCfgName, arch);
- strcat(jvmCfgName, FILESEP "jvm.cfg");
-
- jvmCfg = fopen(jvmCfgName, "r");
- if (jvmCfg == NULL) {
- if (!speculative) {
- ReportErrorMessage2("Error: could not open `%s'", jvmCfgName,
- JNI_TRUE);
- exit(1);
- } else {
- return -1;
- }
- }
- while (fgets(line, sizeof(line), jvmCfg) != NULL) {
- vmType = VM_UNKNOWN;
- lineno++;
- if (line[0] == '#')
- continue;
- if (line[0] != '-') {
- fprintf(stderr, "Warning: no leading - on line %d of `%s'\n",
- lineno, jvmCfgName);
- }
- if (cnt >= knownVMsLimit) {
- GrowKnownVMs(cnt);
- }
- line[strlen(line)-1] = '\0'; /* remove trailing newline */
- tmpPtr = line + strcspn(line, whiteSpace);
- if (*tmpPtr == 0) {
- fprintf(stderr, "Warning: missing VM type on line %d of `%s'\n",
- lineno, jvmCfgName);
- } else {
- /* Null-terminate this string for strdup below */
- *tmpPtr++ = 0;
- tmpPtr += strspn(tmpPtr, whiteSpace);
- if (*tmpPtr == 0) {
- fprintf(stderr, "Warning: missing VM type on line %d of `%s'\n",
- lineno, jvmCfgName);
- } else {
- if (!strncmp(tmpPtr, "KNOWN", strlen("KNOWN"))) {
- vmType = VM_KNOWN;
- } else if (!strncmp(tmpPtr, "ALIASED_TO", strlen("ALIASED_TO"))) {
- tmpPtr += strcspn(tmpPtr, whiteSpace);
- if (*tmpPtr != 0) {
- tmpPtr += strspn(tmpPtr, whiteSpace);
- }
- if (*tmpPtr == 0) {
- fprintf(stderr, "Warning: missing VM alias on line %d of `%s'\n",
- lineno, jvmCfgName);
- } else {
- /* Null terminate altVMName */
- altVMName = tmpPtr;
- tmpPtr += strcspn(tmpPtr, whiteSpace);
- *tmpPtr = 0;
- vmType = VM_ALIASED_TO;
- }
- } else if (!strncmp(tmpPtr, "WARN", strlen("WARN"))) {
- vmType = VM_WARN;
- } else if (!strncmp(tmpPtr, "IGNORE", strlen("IGNORE"))) {
- vmType = VM_IGNORE;
- } else if (!strncmp(tmpPtr, "ERROR", strlen("ERROR"))) {
- vmType = VM_ERROR;
- } else if (!strncmp(tmpPtr,
- "IF_SERVER_CLASS",
- strlen("IF_SERVER_CLASS"))) {
- tmpPtr += strcspn(tmpPtr, whiteSpace);
- if (*tmpPtr != 0) {
- tmpPtr += strspn(tmpPtr, whiteSpace);
- }
- if (*tmpPtr == 0) {
- fprintf(stderr, "Warning: missing server class VM on line %d of `%s'\n",
- lineno, jvmCfgName);
- } else {
- /* Null terminate server class VM name */
- serverClassVMName = tmpPtr;
- tmpPtr += strcspn(tmpPtr, whiteSpace);
- *tmpPtr = 0;
- vmType = VM_IF_SERVER_CLASS;
- }
- } else {
- fprintf(stderr, "Warning: unknown VM type on line %d of `%s'\n",
- lineno, &jvmCfgName[0]);
- vmType = VM_KNOWN;
- }
- }
- }
-
- if (_launcher_debug)
- printf("jvm.cfg[%d] = ->%s<-\n", cnt, line);
- if (vmType != VM_UNKNOWN) {
- knownVMs[cnt].name = strdup(line);
- knownVMs[cnt].flag = vmType;
- switch (vmType) {
- default:
- break;
- case VM_ALIASED_TO:
- knownVMs[cnt].alias = strdup(altVMName);
- if (_launcher_debug) {
- printf(" name: %s vmType: %s alias: %s\n",
- knownVMs[cnt].name, "VM_ALIASED_TO", knownVMs[cnt].alias);
- }
- break;
- case VM_IF_SERVER_CLASS:
- knownVMs[cnt].server_class = strdup(serverClassVMName);
- if (_launcher_debug) {
- printf(" name: %s vmType: %s server_class: %s\n",
- knownVMs[cnt].name, "VM_IF_SERVER_CLASS", knownVMs[cnt].server_class);
- }
- break;
- }
- cnt++;
- }
- }
- fclose(jvmCfg);
- knownVMsCount = cnt;
-
- if (_launcher_debug) {
- end = CounterGet();
- printf("%ld micro seconds to parse jvm.cfg\n",
- (long)(jint)Counter2Micros(end-start));
- }
-
- return cnt;
-}
-
-
-static void
-GrowKnownVMs(int minimum)
-{
- struct vmdesc* newKnownVMs;
- int newMax;
-
- newMax = (knownVMsLimit == 0 ? INIT_MAX_KNOWN_VMS : (2 * knownVMsLimit));
- if (newMax <= minimum) {
- newMax = minimum;
- }
- newKnownVMs = (struct vmdesc*) MemAlloc(newMax * sizeof(struct vmdesc));
- if (knownVMs != NULL) {
- memcpy(newKnownVMs, knownVMs, knownVMsLimit * sizeof(struct vmdesc));
- }
- free(knownVMs);
- knownVMs = newKnownVMs;
- knownVMsLimit = newMax;
-}
-
-
-/* Returns index of VM or -1 if not found */
-static int
-KnownVMIndex(const char* name)
-{
- int i;
- if (strncmp(name, "-J", 2) == 0) name += 2;
- for (i = 0; i < knownVMsCount; i++) {
- if (!strcmp(name, knownVMs[i].name)) {
- return i;
- }
- }
- return -1;
-}
-
-static void
-FreeKnownVMs()
-{
- int i;
- for (i = 0; i < knownVMsCount; i++) {
- free(knownVMs[i].name);
- knownVMs[i].name = NULL;
- }
- free(knownVMs);
-}
-
-#endif /* ifndef GAMMA */
diff --git a/hotspot/src/os/solaris/launcher/java_md.c b/hotspot/src/os/solaris/launcher/java_md.c
deleted file mode 100644
index 5c62b6450aa..00000000000
--- a/hotspot/src/os/solaris/launcher/java_md.c
+++ /dev/null
@@ -1,1849 +0,0 @@
-/*
- * Copyright (c) 1998, 2008, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-/*
- * Gamma (Hotspot internal engineering test) launcher based on 1.6.0-b28 JDK,
- * search "GAMMA" for gamma specific changes.
- */
-
-#include "java.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#ifndef GAMMA
-#include "manifest_info.h"
-#include "version_comp.h"
-#endif
-
-#define JVM_DLL "libjvm.so"
-#define JAVA_DLL "libjava.so"
-
-#ifndef GAMMA /* launcher.make defines ARCH */
-
-/*
- * If a processor / os combination has the ability to run binaries of
- * two data models and cohabitation of jre/jdk bits with both data
- * models is supported, then DUAL_MODE is defined. When DUAL_MODE is
- * defined, the architecture names for the narrow and wide version of
- * the architecture are defined in BIG_ARCH and SMALL_ARCH. Currently
- * only Solaris on sparc/sparcv9 and i586/amd64 is DUAL_MODE; linux
- * i586/amd64 could be defined as DUAL_MODE but that is not the
- * current policy.
- */
-
-#ifdef _LP64
-
-# ifdef ia64
-# define ARCH "ia64"
-# elif defined(amd64)
-# define ARCH "amd64"
-# elif defined(__sparc)
-# define ARCH "sparcv9"
-# else
-# define ARCH "unknown" /* unknown 64-bit architecture */
-# endif
-
-#else /* 32-bit data model */
-
-# ifdef i586
-# define ARCH "i386"
-# elif defined(__sparc)
-# define ARCH "sparc"
-# endif
-
-#endif /* _LP64 */
-
-#ifdef __sun
-# define DUAL_MODE
-# ifdef __sparc
-# define BIG_ARCH "sparcv9"
-# define SMALL_ARCH "sparc"
-# else
-# define BIG_ARCH "amd64"
-# define SMALL_ARCH "i386"
-# endif
-# include
-# include
-# include
-#else
-# ifndef ARCH
-# include
-# endif
-#endif
-
-#endif /* ifndef GAMMA */
-
-/* pointer to environment */
-extern char **environ;
-
-#ifndef GAMMA
-
-/*
- * A collection of useful strings. One should think of these as #define
- * entries, but actual strings can be more efficient (with many compilers).
- */
-#ifdef __linux__
-static const char *system_dir = "/usr/java";
-static const char *user_dir = "/java";
-#else /* Solaris */
-static const char *system_dir = "/usr/jdk";
-static const char *user_dir = "/jdk";
-#endif
-
-#endif /* ifndef GAMMA */
-
-/*
- * Flowchart of launcher execs and options processing on unix
- *
- * The selection of the proper vm shared library to open depends on
- * several classes of command line options, including vm "flavor"
- * options (-client, -server) and the data model options, -d32 and
- * -d64, as well as a version specification which may have come from
- * the command line or from the manifest of an executable jar file.
- * The vm selection options are not passed to the running
- * virtual machine; they must be screened out by the launcher.
- *
- * The version specification (if any) is processed first by the
- * platform independent routine SelectVersion. This may result in
- * the exec of the specified launcher version.
- *
- * Typically, the launcher execs at least once to ensure a suitable
- * LD_LIBRARY_PATH is in effect for the process. The first exec
- * screens out all the data model options; leaving the choice of data
- * model implicit in the binary selected to run. However, in case no
- * exec is done, the data model options are screened out before the vm
- * is invoked.
- *
- * incoming argv ------------------------------
- * | |
- * \|/ |
- * CheckJVMType |
- * (removes -client, -server, etc.) |
- * \|/
- * CreateExecutionEnvironment
- * (removes -d32 and -d64,
- * determines desired data model,
- * sets up LD_LIBRARY_PATH,
- * and exec's)
- * |
- * --------------------------------------------
- * |
- * \|/
- * exec child 1 incoming argv -----------------
- * | |
- * \|/ |
- * CheckJVMType |
- * (removes -client, -server, etc.) |
- * | \|/
- * | CreateExecutionEnvironment
- * | (verifies desired data model
- * | is running and acceptable
- * | LD_LIBRARY_PATH;
- * | no-op in child)
- * |
- * \|/
- * TranslateDashJArgs...
- * (Prepare to pass args to vm)
- * |
- * |
- * |
- * \|/
- * ParseArguments
- * (ignores -d32 and -d64,
- * processes version options,
- * creates argument list for vm,
- * etc.)
- *
- */
-
-static char *SetExecname(char **argv);
-static char * GetExecname();
-static jboolean GetJVMPath(const char *jrepath, const char *jvmtype,
- char *jvmpath, jint jvmpathsize, char * arch);
-static jboolean GetJREPath(char *path, jint pathsize, char * arch, jboolean speculative);
-
-const char *
-GetArch()
-{
- static char *arch = NULL;
- static char buf[12];
- if (arch) {
- return arch;
- }
-
-#ifdef ARCH
- strcpy(buf, ARCH);
-#else
- sysinfo(SI_ARCHITECTURE, buf, sizeof(buf));
-#endif
- arch = buf;
- return arch;
-}
-
-void
-CreateExecutionEnvironment(int *_argcp,
- char ***_argvp,
- char jrepath[],
- jint so_jrepath,
- char jvmpath[],
- jint so_jvmpath,
- char **original_argv) {
- /*
- * First, determine if we are running the desired data model. If we
- * are running the desired data model, all the error messages
- * associated with calling GetJREPath, ReadKnownVMs, etc. should be
- * output. However, if we are not running the desired data model,
- * some of the errors should be suppressed since it is more
- * informative to issue an error message based on whether or not the
- * os/processor combination has dual mode capabilities.
- */
-
- char *execname = NULL;
- int original_argc = *_argcp;
- jboolean jvmpathExists;
-
- /* Compute the name of the executable */
- execname = SetExecname(*_argvp);
-
-#ifndef GAMMA
- /* Set the LD_LIBRARY_PATH environment variable, check data model
- flags, and exec process, if needed */
- {
- char *arch = (char *)GetArch(); /* like sparc or sparcv9 */
- char * jvmtype = NULL;
- int argc = *_argcp;
- char **argv = original_argv;
-
- char *runpath = NULL; /* existing effective LD_LIBRARY_PATH
- setting */
-
- int running = /* What data model is being ILP32 =>
- 32 bit vm; LP64 => 64 bit vm */
-#ifdef _LP64
- 64;
-#else
- 32;
-#endif
-
- int wanted = running; /* What data mode is being
- asked for? Current model is
- fine unless another model
- is asked for */
-
- char* new_runpath = NULL; /* desired new LD_LIBRARY_PATH string */
- char* newpath = NULL; /* path on new LD_LIBRARY_PATH */
- char* lastslash = NULL;
-
- char** newenvp = NULL; /* current environment */
-
- char** newargv = NULL;
- int newargc = 0;
-#ifdef __sun
- char* dmpath = NULL; /* data model specific LD_LIBRARY_PATH,
- Solaris only */
-#endif
-
- /*
- * Starting in 1.5, all unix platforms accept the -d32 and -d64
- * options. On platforms where only one data-model is supported
- * (e.g. ia-64 Linux), using the flag for the other data model is
- * an error and will terminate the program.
- */
-
- { /* open new scope to declare local variables */
- int i;
-
- newargv = (char **)MemAlloc((argc+1) * sizeof(*newargv));
- newargv[newargc++] = argv[0];
-
- /* scan for data model arguments and remove from argument list;
- last occurrence determines desired data model */
- for (i=1; i < argc; i++) {
-
- if (strcmp(argv[i], "-J-d64") == 0 || strcmp(argv[i], "-d64") == 0) {
- wanted = 64;
- continue;
- }
- if (strcmp(argv[i], "-J-d32") == 0 || strcmp(argv[i], "-d32") == 0) {
- wanted = 32;
- continue;
- }
- newargv[newargc++] = argv[i];
-
-#ifdef JAVA_ARGS
- if (argv[i][0] != '-')
- continue;
-#else
- if (strcmp(argv[i], "-classpath") == 0 || strcmp(argv[i], "-cp") == 0) {
- i++;
- if (i >= argc) break;
- newargv[newargc++] = argv[i];
- continue;
- }
- if (argv[i][0] != '-') { i++; break; }
-#endif
- }
-
- /* copy rest of args [i .. argc) */
- while (i < argc) {
- newargv[newargc++] = argv[i++];
- }
- newargv[newargc] = NULL;
-
- /*
- * newargv has all proper arguments here
- */
-
- argc = newargc;
- argv = newargv;
- }
-
- /* If the data model is not changing, it is an error if the
- jvmpath does not exist */
- if (wanted == running) {
- /* Find out where the JRE is that we will be using. */
- if (!GetJREPath(jrepath, so_jrepath, arch, JNI_FALSE) ) {
- fprintf(stderr, "Error: could not find Java 2 Runtime Environment.\n");
- exit(2);
- }
-
- /* Find the specified JVM type */
- if (ReadKnownVMs(jrepath, arch, JNI_FALSE) < 1) {
- fprintf(stderr, "Error: no known VMs. (check for corrupt jvm.cfg file)\n");
- exit(1);
- }
-
- jvmpath[0] = '\0';
- jvmtype = CheckJvmType(_argcp, _argvp, JNI_FALSE);
-
- if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath, arch )) {
- fprintf(stderr, "Error: no `%s' JVM at `%s'.\n", jvmtype, jvmpath);
- exit(4);
- }
- } else { /* do the same speculatively or exit */
-#ifdef DUAL_MODE
- if (running != wanted) {
- /* Find out where the JRE is that we will be using. */
- if (!GetJREPath(jrepath, so_jrepath, ((wanted==64)?BIG_ARCH:SMALL_ARCH), JNI_TRUE)) {
- goto EndDataModelSpeculate;
- }
-
- /*
- * Read in jvm.cfg for target data model and process vm
- * selection options.
- */
- if (ReadKnownVMs(jrepath, ((wanted==64)?BIG_ARCH:SMALL_ARCH), JNI_TRUE) < 1) {
- goto EndDataModelSpeculate;
- }
- jvmpath[0] = '\0';
- jvmtype = CheckJvmType(_argcp, _argvp, JNI_TRUE);
- /* exec child can do error checking on the existence of the path */
- jvmpathExists = GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath,
- ((wanted==64)?BIG_ARCH:SMALL_ARCH));
-
- }
- EndDataModelSpeculate: /* give up and let other code report error message */
- ;
-#else
- fprintf(stderr, "Running a %d-bit JVM is not supported on this platform.\n", wanted);
- exit(1);
-#endif
- }
-
- /*
- * We will set the LD_LIBRARY_PATH as follows:
- *
- * o $JVMPATH (directory portion only)
- * o $JRE/lib/$ARCH
- * o $JRE/../lib/$ARCH
- *
- * followed by the user's previous effective LD_LIBRARY_PATH, if
- * any.
- */
-
-#ifdef __sun
- /*
- * Starting in Solaris 7, ld.so.1 supports three LD_LIBRARY_PATH
- * variables:
- *
- * 1. LD_LIBRARY_PATH -- used for 32 and 64 bit searches if
- * data-model specific variables are not set.
- *
- * 2. LD_LIBRARY_PATH_64 -- overrides and replaces LD_LIBRARY_PATH
- * for 64-bit binaries.
- *
- * 3. LD_LIBRARY_PATH_32 -- overrides and replaces LD_LIBRARY_PATH
- * for 32-bit binaries.
- *
- * The vm uses LD_LIBRARY_PATH to set the java.library.path system
- * property. To shield the vm from the complication of multiple
- * LD_LIBRARY_PATH variables, if the appropriate data model
- * specific variable is set, we will act as if LD_LIBRARY_PATH had
- * the value of the data model specific variant and the data model
- * specific variant will be unset. Note that the variable for the
- * *wanted* data model must be used (if it is set), not simply the
- * current running data model.
- */
-
- switch(wanted) {
- case 0:
- if(running == 32) {
- dmpath = getenv("LD_LIBRARY_PATH_32");
- wanted = 32;
- }
- else {
- dmpath = getenv("LD_LIBRARY_PATH_64");
- wanted = 64;
- }
- break;
-
- case 32:
- dmpath = getenv("LD_LIBRARY_PATH_32");
- break;
-
- case 64:
- dmpath = getenv("LD_LIBRARY_PATH_64");
- break;
-
- default:
- fprintf(stderr, "Improper value at line %d.", __LINE__);
- exit(1); /* unknown value in wanted */
- break;
- }
-
- /*
- * If dmpath is NULL, the relevant data model specific variable is
- * not set and normal LD_LIBRARY_PATH should be used.
- */
- if( dmpath == NULL) {
- runpath = getenv("LD_LIBRARY_PATH");
- }
- else {
- runpath = dmpath;
- }
-#else
- /*
- * If not on Solaris, assume only a single LD_LIBRARY_PATH
- * variable.
- */
- runpath = getenv("LD_LIBRARY_PATH");
-#endif /* __sun */
-
-#ifdef __linux
- /*
- * On linux, if a binary is running as sgid or suid, glibc sets
- * LD_LIBRARY_PATH to the empty string for security purposes. (In
- * contrast, on Solaris the LD_LIBRARY_PATH variable for a
- * privileged binary does not lose its settings; but the dynamic
- * linker does apply more scrutiny to the path.) The launcher uses
- * the value of LD_LIBRARY_PATH to prevent an exec loop.
- * Therefore, if we are running sgid or suid, this function's
- * setting of LD_LIBRARY_PATH will be ineffective and we should
- * return from the function now. Getting the right libraries to
- * be found must be handled through other mechanisms.
- */
- if((getgid() != getegid()) || (getuid() != geteuid()) ) {
- return;
- }
-#endif
-
- /* runpath contains current effective LD_LIBRARY_PATH setting */
-
- jvmpath = strdup(jvmpath);
- new_runpath = MemAlloc( ((runpath!=NULL)?strlen(runpath):0) +
- 2*strlen(jrepath) + 2*strlen(arch) +
- strlen(jvmpath) + 52);
- newpath = new_runpath + strlen("LD_LIBRARY_PATH=");
-
-
- /*
- * Create desired LD_LIBRARY_PATH value for target data model.
- */
- {
- /* remove the name of the .so from the JVM path */
- lastslash = strrchr(jvmpath, '/');
- if (lastslash)
- *lastslash = '\0';
-
-
- /* jvmpath, ((running != wanted)?((wanted==64)?"/"BIG_ARCH:"/.."):""), */
-
- sprintf(new_runpath, "LD_LIBRARY_PATH="
- "%s:"
- "%s/lib/%s:"
- "%s/../lib/%s",
- jvmpath,
-#ifdef DUAL_MODE
- jrepath, ((wanted==64)?BIG_ARCH:SMALL_ARCH),
- jrepath, ((wanted==64)?BIG_ARCH:SMALL_ARCH)
-#else
- jrepath, arch,
- jrepath, arch
-#endif
- );
-
-
- /*
- * Check to make sure that the prefix of the current path is the
- * desired environment variable setting.
- */
- if (runpath != NULL &&
- strncmp(newpath, runpath, strlen(newpath))==0 &&
- (runpath[strlen(newpath)] == 0 || runpath[strlen(newpath)] == ':') &&
- (running == wanted) /* data model does not have to be changed */
-#ifdef __sun
- && (dmpath == NULL) /* data model specific variables not set */
-#endif
- ) {
-
- return;
-
- }
- }
-
- /*
- * Place the desired environment setting onto the prefix of
- * LD_LIBRARY_PATH. Note that this prevents any possible infinite
- * loop of execv() because we test for the prefix, above.
- */
- if (runpath != 0) {
- strcat(new_runpath, ":");
- strcat(new_runpath, runpath);
- }
-
- if( putenv(new_runpath) != 0) {
- exit(1); /* problem allocating memory; LD_LIBRARY_PATH not set
- properly */
- }
-
- /*
- * Unix systems document that they look at LD_LIBRARY_PATH only
- * once at startup, so we have to re-exec the current executable
- * to get the changed environment variable to have an effect.
- */
-
-#ifdef __sun
- /*
- * If dmpath is not NULL, remove the data model specific string
- * in the environment for the exec'ed child.
- */
-
- if( dmpath != NULL)
- (void)UnsetEnv((wanted==32)?"LD_LIBRARY_PATH_32":"LD_LIBRARY_PATH_64");
-#endif
-
- newenvp = environ;
-
- {
- char *newexec = execname;
-#ifdef DUAL_MODE
- /*
- * If the data model is being changed, the path to the
- * executable must be updated accordingly; the executable name
- * and directory the executable resides in are separate. In the
- * case of 32 => 64, the new bits are assumed to reside in, e.g.
- * "olddir/BIGARCH/execname"; in the case of 64 => 32,
- * the bits are assumed to be in "olddir/../execname". For example,
- *
- * olddir/sparcv9/execname
- * olddir/amd64/execname
- *
- * for Solaris SPARC and Linux amd64, respectively.
- */
-
- if (running != wanted) {
- char *oldexec = strcpy(MemAlloc(strlen(execname) + 1), execname);
- char *olddir = oldexec;
- char *oldbase = strrchr(oldexec, '/');
-
-
- newexec = MemAlloc(strlen(execname) + 20);
- *oldbase++ = 0;
- sprintf(newexec, "%s/%s/%s", olddir,
- ((wanted==64) ? BIG_ARCH : ".."), oldbase);
- argv[0] = newexec;
- }
-#endif
-
- execve(newexec, argv, newenvp);
- perror("execve()");
-
- fprintf(stderr, "Error trying to exec %s.\n", newexec);
- fprintf(stderr, "Check if file exists and permissions are set correctly.\n");
-
-#ifdef DUAL_MODE
- if (running != wanted) {
- fprintf(stderr, "Failed to start a %d-bit JVM process from a %d-bit JVM.\n",
- wanted, running);
-# ifdef __sun
-
-# ifdef __sparc
- fprintf(stderr, "Verify all necessary J2SE components have been installed.\n" );
- fprintf(stderr,
- "(Solaris SPARC 64-bit components must be installed after 32-bit components.)\n" );
-# else
- fprintf(stderr, "Either 64-bit processes are not supported by this platform\n");
- fprintf(stderr, "or the 64-bit components have not been installed.\n");
-# endif
- }
-# endif
-#endif
-
- }
-
- exit(1);
- }
-
-#else /* ifndef GAMMA */
-
- /* gamma launcher is simpler in that it doesn't handle VM flavors, data */
- /* model, LD_LIBRARY_PATH, etc. Assuming everything is set-up correctly */
- /* all we need to do here is to return correct path names. See also */
- /* GetJVMPath() and GetApplicationHome(). */
-
- { char *arch = (char *)GetArch(); /* like sparc or sparcv9 */
- char *p;
-
- if (!GetJREPath(jrepath, so_jrepath, arch, JNI_FALSE) ) {
- fprintf(stderr, "Error: could not find Java 2 Runtime Environment.\n");
- exit(2);
- }
-
- if (!GetJVMPath(jrepath, NULL, jvmpath, so_jvmpath, arch )) {
- fprintf(stderr, "Error: no JVM at `%s'.\n", jvmpath);
- exit(4);
- }
- }
-
-#endif /* ifndef GAMMA */
-}
-
-
-/*
- * On Solaris VM choosing is done by the launcher (java.c).
- */
-static jboolean
-GetJVMPath(const char *jrepath, const char *jvmtype,
- char *jvmpath, jint jvmpathsize, char * arch)
-{
- struct stat s;
-
-#ifndef GAMMA
- if (strchr(jvmtype, '/')) {
- sprintf(jvmpath, "%s/" JVM_DLL, jvmtype);
- } else {
- sprintf(jvmpath, "%s/lib/%s/%s/" JVM_DLL, jrepath, arch, jvmtype);
- }
-#else
- /* For gamma launcher, JVM is either built-in or in the same directory. */
- /* Either way we return "/libjvm.so" where is the */
- /* directory where gamma launcher is located. */
-
- char *p;
-
- snprintf(jvmpath, jvmpathsize, "%s", GetExecname());
- p = strrchr(jvmpath, '/');
- if (p) {
- /* replace executable name with libjvm.so */
- snprintf(p + 1, jvmpathsize - (p + 1 - jvmpath), "%s", JVM_DLL);
- } else {
- /* this case shouldn't happen */
- snprintf(jvmpath, jvmpathsize, "%s", JVM_DLL);
- }
-#endif
-
- if (_launcher_debug)
- printf("Does `%s' exist ... ", jvmpath);
-
- if (stat(jvmpath, &s) == 0) {
- if (_launcher_debug)
- printf("yes.\n");
- return JNI_TRUE;
- } else {
- if (_launcher_debug)
- printf("no.\n");
- return JNI_FALSE;
- }
-}
-
-/*
- * Find path to JRE based on .exe's location or registry settings.
- */
-static jboolean
-GetJREPath(char *path, jint pathsize, char * arch, jboolean speculative)
-{
- char libjava[MAXPATHLEN];
-
- if (GetApplicationHome(path, pathsize)) {
- /* Is JRE co-located with the application? */
- sprintf(libjava, "%s/lib/%s/" JAVA_DLL, path, arch);
- if (access(libjava, F_OK) == 0) {
- goto found;
- }
-
- /* Does the app ship a private JRE in /jre directory? */
- sprintf(libjava, "%s/jre/lib/%s/" JAVA_DLL, path, arch);
- if (access(libjava, F_OK) == 0) {
- strcat(path, "/jre");
- goto found;
- }
- }
-
- if (!speculative)
- fprintf(stderr, "Error: could not find " JAVA_DLL "\n");
- return JNI_FALSE;
-
- found:
- if (_launcher_debug)
- printf("JRE path is %s\n", path);
- return JNI_TRUE;
-}
-
-jboolean
-LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn)
-{
-#ifdef GAMMA
- /* JVM is directly linked with gamma launcher; no dlopen() */
- ifn->CreateJavaVM = JNI_CreateJavaVM;
- ifn->GetDefaultJavaVMInitArgs = JNI_GetDefaultJavaVMInitArgs;
- return JNI_TRUE;
-#else
- Dl_info dlinfo;
- void *libjvm;
-
- if (_launcher_debug) {
- printf("JVM path is %s\n", jvmpath);
- }
-
- libjvm = dlopen(jvmpath, RTLD_NOW + RTLD_GLOBAL);
- if (libjvm == NULL) {
-#if defined(__sparc) && !defined(_LP64) /* i.e. 32-bit sparc */
- FILE * fp;
- Elf32_Ehdr elf_head;
- int count;
- int location;
-
- fp = fopen(jvmpath, "r");
- if(fp == NULL)
- goto error;
-
- /* read in elf header */
- count = fread((void*)(&elf_head), sizeof(Elf32_Ehdr), 1, fp);
- fclose(fp);
- if(count < 1)
- goto error;
-
- /*
- * Check for running a server vm (compiled with -xarch=v8plus)
- * on a stock v8 processor. In this case, the machine type in
- * the elf header would not be included the architecture list
- * provided by the isalist command, which is turn is gotten from
- * sysinfo. This case cannot occur on 64-bit hardware and thus
- * does not have to be checked for in binaries with an LP64 data
- * model.
- */
- if(elf_head.e_machine == EM_SPARC32PLUS) {
- char buf[257]; /* recommended buffer size from sysinfo man
- page */
- long length;
- char* location;
-
- length = sysinfo(SI_ISALIST, buf, 257);
- if(length > 0) {
- location = strstr(buf, "sparcv8plus ");
- if(location == NULL) {
- fprintf(stderr, "SPARC V8 processor detected; Server compiler requires V9 or better.\n");
- fprintf(stderr, "Use Client compiler on V8 processors.\n");
- fprintf(stderr, "Could not create the Java virtual machine.\n");
- return JNI_FALSE;
- }
- }
- }
-#endif
- fprintf(stderr, "dl failure on line %d", __LINE__);
- goto error;
- }
-
- ifn->CreateJavaVM = (CreateJavaVM_t)
- dlsym(libjvm, "JNI_CreateJavaVM");
- if (ifn->CreateJavaVM == NULL)
- goto error;
-
- ifn->GetDefaultJavaVMInitArgs = (GetDefaultJavaVMInitArgs_t)
- dlsym(libjvm, "JNI_GetDefaultJavaVMInitArgs");
- if (ifn->GetDefaultJavaVMInitArgs == NULL)
- goto error;
-
- return JNI_TRUE;
-
-error:
- fprintf(stderr, "Error: failed %s, because %s\n", jvmpath, dlerror());
- return JNI_FALSE;
-#endif /* GAMMA */
-}
-
-/*
- * Get the path to the file that has the usage message for -X options.
- */
-void
-GetXUsagePath(char *buf, jint bufsize)
-{
- static const char Xusage_txt[] = "/Xusage.txt";
- Dl_info dlinfo;
-
- /* we use RTLD_NOW because of problems with ld.so.1 and green threads */
- dladdr(dlsym(dlopen(JVM_DLL, RTLD_NOW), "JNI_CreateJavaVM"), &dlinfo);
- strncpy(buf, (char *)dlinfo.dli_fname, bufsize - sizeof(Xusage_txt));
-
- buf[bufsize-1] = '\0';
- strcpy(strrchr(buf, '/'), Xusage_txt);
-}
-
-/*
- * If app is "/foo/bin/javac", or "/foo/bin/sparcv9/javac" then put
- * "/foo" into buf.
- */
-jboolean
-GetApplicationHome(char *buf, jint bufsize)
-{
-#ifdef __linux__
- char *execname = GetExecname();
- if (execname) {
- strncpy(buf, execname, bufsize-1);
- buf[bufsize-1] = '\0';
- } else {
- return JNI_FALSE;
- }
-#else
- Dl_info dlinfo;
-
- dladdr((void *)GetApplicationHome, &dlinfo);
- if (realpath(dlinfo.dli_fname, buf) == NULL) {
- fprintf(stderr, "Error: realpath(`%s') failed.\n", dlinfo.dli_fname);
- return JNI_FALSE;
- }
-#endif
-
-#ifdef GAMMA
- {
- /* gamma launcher uses JAVA_HOME environment variable to find JDK/JRE */
- char* java_home_var = getenv("JAVA_HOME");
- if (java_home_var == NULL) {
- printf("JAVA_HOME must point to a valid JDK/JRE to run gamma\n");
- return JNI_FALSE;
- }
- snprintf(buf, bufsize, "%s", java_home_var);
- }
-#else
- if (strrchr(buf, '/') == 0) {
- buf[0] = '\0';
- return JNI_FALSE;
- }
- *(strrchr(buf, '/')) = '\0'; /* executable file */
- if (strlen(buf) < 4 || strrchr(buf, '/') == 0) {
- buf[0] = '\0';
- return JNI_FALSE;
- }
- if (strcmp("/bin", buf + strlen(buf) - 4) != 0)
- *(strrchr(buf, '/')) = '\0'; /* sparcv9 or amd64 */
- if (strlen(buf) < 4 || strcmp("/bin", buf + strlen(buf) - 4) != 0) {
- buf[0] = '\0';
- return JNI_FALSE;
- }
- *(strrchr(buf, '/')) = '\0'; /* bin */
-#endif /* GAMMA */
-
- return JNI_TRUE;
-}
-
-
-/*
- * Return true if the named program exists
- */
-static int
-ProgramExists(char *name)
-{
- struct stat sb;
- if (stat(name, &sb) != 0) return 0;
- if (S_ISDIR(sb.st_mode)) return 0;
- return (sb.st_mode & S_IEXEC) != 0;
-}
-
-
-/*
- * Find a command in a directory, returning the path.
- */
-static char *
-Resolve(char *indir, char *cmd)
-{
- char name[PATH_MAX + 2], *real;
-
- if ((strlen(indir) + strlen(cmd) + 1) > PATH_MAX) return 0;
- sprintf(name, "%s%c%s", indir, FILE_SEPARATOR, cmd);
- if (!ProgramExists(name)) return 0;
- real = MemAlloc(PATH_MAX + 2);
- if (!realpath(name, real))
- strcpy(real, name);
- return real;
-}
-
-
-/*
- * Find a path for the executable
- */
-static char *
-FindExecName(char *program)
-{
- char cwdbuf[PATH_MAX+2];
- char *path;
- char *tmp_path;
- char *f;
- char *result = NULL;
-
- /* absolute path? */
- if (*program == FILE_SEPARATOR ||
- (FILE_SEPARATOR=='\\' && strrchr(program, ':')))
- return Resolve("", program+1);
-
- /* relative path? */
- if (strrchr(program, FILE_SEPARATOR) != 0) {
- char buf[PATH_MAX+2];
- return Resolve(getcwd(cwdbuf, sizeof(cwdbuf)), program);
- }
-
- /* from search path? */
- path = getenv("PATH");
- if (!path || !*path) path = ".";
- tmp_path = MemAlloc(strlen(path) + 2);
- strcpy(tmp_path, path);
-
- for (f=tmp_path; *f && result==0; ) {
- char *s = f;
- while (*f && (*f != PATH_SEPARATOR)) ++f;
- if (*f) *f++ = 0;
- if (*s == FILE_SEPARATOR)
- result = Resolve(s, program);
- else {
- /* relative path element */
- char dir[2*PATH_MAX];
- sprintf(dir, "%s%c%s", getcwd(cwdbuf, sizeof(cwdbuf)),
- FILE_SEPARATOR, s);
- result = Resolve(dir, program);
- }
- if (result != 0) break;
- }
-
- free(tmp_path);
- return result;
-}
-
-
-/* Store the name of the executable once computed */
-static char *execname = NULL;
-
-/*
- * Compute the name of the executable
- *
- * In order to re-exec securely we need the absolute path of the
- * executable. On Solaris getexecname(3c) may not return an absolute
- * path so we use dladdr to get the filename of the executable and
- * then use realpath to derive an absolute path. From Solaris 9
- * onwards the filename returned in DL_info structure from dladdr is
- * an absolute pathname so technically realpath isn't required.
- * On Linux we read the executable name from /proc/self/exe.
- * As a fallback, and for platforms other than Solaris and Linux,
- * we use FindExecName to compute the executable name.
- */
-static char *
-SetExecname(char **argv)
-{
- char* exec_path = NULL;
-
- if (execname != NULL) /* Already determined */
- return (execname);
-
-#if defined(__sun)
- {
- Dl_info dlinfo;
- if (dladdr((void*)&SetExecname, &dlinfo)) {
- char *resolved = (char*)MemAlloc(PATH_MAX+1);
- if (resolved != NULL) {
- exec_path = realpath(dlinfo.dli_fname, resolved);
- if (exec_path == NULL) {
- free(resolved);
- }
- }
- }
- }
-#elif defined(__linux__)
- {
- const char* self = "/proc/self/exe";
- char buf[PATH_MAX+1];
- int len = readlink(self, buf, PATH_MAX);
- if (len >= 0) {
- buf[len] = '\0'; /* readlink doesn't nul terminate */
- exec_path = strdup(buf);
- }
- }
-#else /* !__sun && !__linux */
- {
- /* Not implemented */
- }
-#endif
-
- if (exec_path == NULL) {
- exec_path = FindExecName(argv[0]);
- }
- execname = exec_path;
- return exec_path;
-}
-
-/*
- * Return the name of the executable. Used in java_md.c to find the JRE area.
- */
-static char *
-GetExecname() {
- return execname;
-}
-
-void ReportErrorMessage(char * message, jboolean always) {
- if (always) {
- fprintf(stderr, "%s\n", message);
- }
-}
-
-void ReportErrorMessage2(char * format, char * string, jboolean always) {
- if (always) {
- fprintf(stderr, format, string);
- fprintf(stderr, "\n");
- }
-}
-
-void ReportExceptionDescription(JNIEnv * env) {
- (*env)->ExceptionDescribe(env);
-}
-
-/*
- * Return JNI_TRUE for an option string that has no effect but should
- * _not_ be passed on to the vm; return JNI_FALSE otherwise. On
- * Solaris SPARC, this screening needs to be done if:
- * 1) LD_LIBRARY_PATH does _not_ need to be reset and
- * 2) -d32 or -d64 is passed to a binary with a matching data model
- * (the exec in SetLibraryPath removes -d options and points the
- * exec to the proper binary). When this exec is not done, these options
- * would end up getting passed onto the vm.
- */
-jboolean RemovableMachineDependentOption(char * option) {
- /*
- * Unconditionally remove both -d32 and -d64 options since only
- * the last such options has an effect; e.g.
- * java -d32 -d64 -d32 -version
- * is equivalent to
- * java -d32 -version
- */
-
- if( (strcmp(option, "-d32") == 0 ) ||
- (strcmp(option, "-d64") == 0 ))
- return JNI_TRUE;
- else
- return JNI_FALSE;
-}
-
-void PrintMachineDependentOptions() {
- fprintf(stdout,
- " -d32 use a 32-bit data model if available\n"
- "\n"
- " -d64 use a 64-bit data model if available\n");
- return;
-}
-
-#ifndef GAMMA /* gamma launcher does not have ergonomics */
-
-/*
- * The following methods (down to ServerClassMachine()) answer
- * the question about whether a machine is a "server-class"
- * machine. A server-class machine is loosely defined as one
- * with 2 or more processors and 2 gigabytes or more physical
- * memory. The definition of a processor is a physical package,
- * not a hyperthreaded chip masquerading as a multi-processor.
- * The definition of memory is also somewhat fuzzy, since x86
- * machines seem not to report all the memory in their DIMMs, we
- * think because of memory mapping of graphics cards, etc.
- *
- * This code is somewhat more confused with #ifdef's than we'd
- * like because this file is used by both Solaris and Linux
- * platforms, and so needs to be parameterized for SPARC and
- * i586 hardware. The other Linux platforms (amd64 and ia64)
- * don't even ask this question, because they only come with
- * server JVMs. */
-
-# define KB (1024UL)
-# define MB (1024UL * KB)
-# define GB (1024UL * MB)
-
-/* Compute physical memory by asking the OS */
-uint64_t
-physical_memory(void) {
- const uint64_t pages = (uint64_t) sysconf(_SC_PHYS_PAGES);
- const uint64_t page_size = (uint64_t) sysconf(_SC_PAGESIZE);
- const uint64_t result = pages * page_size;
-# define UINT64_FORMAT "%" PRIu64
-
- if (_launcher_debug) {
- printf("pages: " UINT64_FORMAT
- " page_size: " UINT64_FORMAT
- " physical memory: " UINT64_FORMAT " (%.3fGB)\n",
- pages, page_size, result, result / (double) GB);
- }
- return result;
-}
-
-#if defined(__sun) && defined(__sparc)
-
-/* Methods for solaris-sparc: these are easy. */
-
-/* Ask the OS how many processors there are. */
-unsigned long
-physical_processors(void) {
- const unsigned long sys_processors = sysconf(_SC_NPROCESSORS_CONF);
-
- if (_launcher_debug) {
- printf("sysconf(_SC_NPROCESSORS_CONF): %lu\n", sys_processors);
- }
- return sys_processors;
-}
-
-/* The solaris-sparc version of the "server-class" predicate. */
-jboolean
-solaris_sparc_ServerClassMachine(void) {
- jboolean result = JNI_FALSE;
- /* How big is a server class machine? */
- const unsigned long server_processors = 2UL;
- const uint64_t server_memory = 2UL * GB;
- const uint64_t actual_memory = physical_memory();
-
- /* Is this a server class machine? */
- if (actual_memory >= server_memory) {
- const unsigned long actual_processors = physical_processors();
- if (actual_processors >= server_processors) {
- result = JNI_TRUE;
- }
- }
- if (_launcher_debug) {
- printf("solaris_" ARCH "_ServerClassMachine: %s\n",
- (result == JNI_TRUE ? "JNI_TRUE" : "JNI_FALSE"));
- }
- return result;
-}
-
-#endif /* __sun && __sparc */
-
-#if defined(__sun) && defined(i586)
-
-/*
- * A utility method for asking the CPU about itself.
- * There's a corresponding version of linux-i586
- * because the compilers are different.
- */
-void
-get_cpuid(uint32_t arg,
- uint32_t* eaxp,
- uint32_t* ebxp,
- uint32_t* ecxp,
- uint32_t* edxp) {
-#ifdef _LP64
- asm(
- /* rbx is a callee-saved register */
- " movq %rbx, %r11 \n"
- /* rdx and rcx are 3rd and 4th argument registers */
- " movq %rdx, %r10 \n"
- " movq %rcx, %r9 \n"
- " movl %edi, %eax \n"
- " cpuid \n"
- " movl %eax, (%rsi)\n"
- " movl %ebx, (%r10)\n"
- " movl %ecx, (%r9) \n"
- " movl %edx, (%r8) \n"
- /* Restore rbx */
- " movq %r11, %rbx");
-#else
- /* EBX is a callee-saved register */
- asm(" pushl %ebx");
- /* Need ESI for storing through arguments */
- asm(" pushl %esi");
- asm(" movl 8(%ebp), %eax \n"
- " cpuid \n"
- " movl 12(%ebp), %esi \n"
- " movl %eax, (%esi) \n"
- " movl 16(%ebp), %esi \n"
- " movl %ebx, (%esi) \n"
- " movl 20(%ebp), %esi \n"
- " movl %ecx, (%esi) \n"
- " movl 24(%ebp), %esi \n"
- " movl %edx, (%esi) ");
- /* Restore ESI and EBX */
- asm(" popl %esi");
- /* Restore EBX */
- asm(" popl %ebx");
-#endif
-}
-
-#endif /* __sun && i586 */
-
-#if defined(__linux__) && defined(i586)
-
-/*
- * A utility method for asking the CPU about itself.
- * There's a corresponding version of solaris-i586
- * because the compilers are different.
- */
-void
-get_cpuid(uint32_t arg,
- uint32_t* eaxp,
- uint32_t* ebxp,
- uint32_t* ecxp,
- uint32_t* edxp) {
-#ifdef _LP64
- __asm__ volatile (/* Instructions */
- " movl %4, %%eax \n"
- " cpuid \n"
- " movl %%eax, (%0)\n"
- " movl %%ebx, (%1)\n"
- " movl %%ecx, (%2)\n"
- " movl %%edx, (%3)\n"
- : /* Outputs */
- : /* Inputs */
- "r" (eaxp),
- "r" (ebxp),
- "r" (ecxp),
- "r" (edxp),
- "r" (arg)
- : /* Clobbers */
- "%rax", "%rbx", "%rcx", "%rdx", "memory"
- );
-#else
- uint32_t value_of_eax = 0;
- uint32_t value_of_ebx = 0;
- uint32_t value_of_ecx = 0;
- uint32_t value_of_edx = 0;
- __asm__ volatile (/* Instructions */
- /* ebx is callee-save, so push it */
- /* even though it's in the clobbers section */
- " pushl %%ebx \n"
- " movl %4, %%eax \n"
- " cpuid \n"
- " movl %%eax, %0 \n"
- " movl %%ebx, %1 \n"
- " movl %%ecx, %2 \n"
- " movl %%edx, %3 \n"
- /* restore ebx */
- " popl %%ebx \n"
-
- : /* Outputs */
- "=m" (value_of_eax),
- "=m" (value_of_ebx),
- "=m" (value_of_ecx),
- "=m" (value_of_edx)
- : /* Inputs */
- "m" (arg)
- : /* Clobbers */
- "%eax", "%ebx", "%ecx", "%edx"
- );
- *eaxp = value_of_eax;
- *ebxp = value_of_ebx;
- *ecxp = value_of_ecx;
- *edxp = value_of_edx;
-#endif
-}
-
-#endif /* __linux__ && i586 */
-
-#ifdef i586
-/*
- * Routines shared by solaris-i586 and linux-i586.
- */
-
-enum HyperThreadingSupport_enum {
- hts_supported = 1,
- hts_too_soon_to_tell = 0,
- hts_not_supported = -1,
- hts_not_pentium4 = -2,
- hts_not_intel = -3
-};
-typedef enum HyperThreadingSupport_enum HyperThreadingSupport;
-
-/* Determine if hyperthreading is supported */
-HyperThreadingSupport
-hyperthreading_support(void) {
- HyperThreadingSupport result = hts_too_soon_to_tell;
- /* Bits 11 through 8 is family processor id */
-# define FAMILY_ID_SHIFT 8
-# define FAMILY_ID_MASK 0xf
- /* Bits 23 through 20 is extended family processor id */
-# define EXT_FAMILY_ID_SHIFT 20
-# define EXT_FAMILY_ID_MASK 0xf
- /* Pentium 4 family processor id */
-# define PENTIUM4_FAMILY_ID 0xf
- /* Bit 28 indicates Hyper-Threading Technology support */
-# define HT_BIT_SHIFT 28
-# define HT_BIT_MASK 1
- uint32_t vendor_id[3] = { 0U, 0U, 0U };
- uint32_t value_of_eax = 0U;
- uint32_t value_of_edx = 0U;
- uint32_t dummy = 0U;
-
- /* Yes, this is supposed to be [0], [2], [1] */
- get_cpuid(0, &dummy, &vendor_id[0], &vendor_id[2], &vendor_id[1]);
- if (_launcher_debug) {
- printf("vendor: %c %c %c %c %c %c %c %c %c %c %c %c \n",
- ((vendor_id[0] >> 0) & 0xff),
- ((vendor_id[0] >> 8) & 0xff),
- ((vendor_id[0] >> 16) & 0xff),
- ((vendor_id[0] >> 24) & 0xff),
- ((vendor_id[1] >> 0) & 0xff),
- ((vendor_id[1] >> 8) & 0xff),
- ((vendor_id[1] >> 16) & 0xff),
- ((vendor_id[1] >> 24) & 0xff),
- ((vendor_id[2] >> 0) & 0xff),
- ((vendor_id[2] >> 8) & 0xff),
- ((vendor_id[2] >> 16) & 0xff),
- ((vendor_id[2] >> 24) & 0xff));
- }
- get_cpuid(1, &value_of_eax, &dummy, &dummy, &value_of_edx);
- if (_launcher_debug) {
- printf("value_of_eax: 0x%x value_of_edx: 0x%x\n",
- value_of_eax, value_of_edx);
- }
- if ((((value_of_eax >> FAMILY_ID_SHIFT) & FAMILY_ID_MASK) == PENTIUM4_FAMILY_ID) ||
- (((value_of_eax >> EXT_FAMILY_ID_SHIFT) & EXT_FAMILY_ID_MASK) != 0)) {
- if ((((vendor_id[0] >> 0) & 0xff) == 'G') &&
- (((vendor_id[0] >> 8) & 0xff) == 'e') &&
- (((vendor_id[0] >> 16) & 0xff) == 'n') &&
- (((vendor_id[0] >> 24) & 0xff) == 'u') &&
- (((vendor_id[1] >> 0) & 0xff) == 'i') &&
- (((vendor_id[1] >> 8) & 0xff) == 'n') &&
- (((vendor_id[1] >> 16) & 0xff) == 'e') &&
- (((vendor_id[1] >> 24) & 0xff) == 'I') &&
- (((vendor_id[2] >> 0) & 0xff) == 'n') &&
- (((vendor_id[2] >> 8) & 0xff) == 't') &&
- (((vendor_id[2] >> 16) & 0xff) == 'e') &&
- (((vendor_id[2] >> 24) & 0xff) == 'l')) {
- if (((value_of_edx >> HT_BIT_SHIFT) & HT_BIT_MASK) == HT_BIT_MASK) {
- if (_launcher_debug) {
- printf("Hyperthreading supported\n");
- }
- result = hts_supported;
- } else {
- if (_launcher_debug) {
- printf("Hyperthreading not supported\n");
- }
- result = hts_not_supported;
- }
- } else {
- if (_launcher_debug) {
- printf("Not GenuineIntel\n");
- }
- result = hts_not_intel;
- }
- } else {
- if (_launcher_debug) {
- printf("not Pentium 4 or extended\n");
- }
- result = hts_not_pentium4;
- }
- return result;
-}
-
-/* Determine how many logical processors there are per CPU */
-unsigned int
-logical_processors_per_package(void) {
- /*
- * After CPUID with EAX==1, register EBX bits 23 through 16
- * indicate the number of logical processors per package
- */
-# define NUM_LOGICAL_SHIFT 16
-# define NUM_LOGICAL_MASK 0xff
- unsigned int result = 1U;
- const HyperThreadingSupport hyperthreading = hyperthreading_support();
-
- if (hyperthreading == hts_supported) {
- uint32_t value_of_ebx = 0U;
- uint32_t dummy = 0U;
-
- get_cpuid(1, &dummy, &value_of_ebx, &dummy, &dummy);
- result = (value_of_ebx >> NUM_LOGICAL_SHIFT) & NUM_LOGICAL_MASK;
- if (_launcher_debug) {
- printf("logical processors per package: %u\n", result);
- }
- }
- return result;
-}
-
-/* Compute the number of physical processors, not logical processors */
-unsigned long
-physical_processors(void) {
- const long sys_processors = sysconf(_SC_NPROCESSORS_CONF);
- unsigned long result = sys_processors;
-
- if (_launcher_debug) {
- printf("sysconf(_SC_NPROCESSORS_CONF): %lu\n", sys_processors);
- }
- if (sys_processors > 1) {
- unsigned int logical_processors = logical_processors_per_package();
- if (logical_processors > 1) {
- result = (unsigned long) sys_processors / logical_processors;
- }
- }
- if (_launcher_debug) {
- printf("physical processors: %lu\n", result);
- }
- return result;
-}
-
-#endif /* i586 */
-
-#if defined(__sun) && defined(i586)
-
-/* The definition of a server-class machine for solaris-i586/amd64 */
-jboolean
-solaris_i586_ServerClassMachine(void) {
- jboolean result = JNI_FALSE;
- /* How big is a server class machine? */
- const unsigned long server_processors = 2UL;
- const uint64_t server_memory = 2UL * GB;
- /*
- * We seem not to get our full complement of memory.
- * We allow some part (1/8?) of the memory to be "missing",
- * based on the sizes of DIMMs, and maybe graphics cards.
- */
- const uint64_t missing_memory = 256UL * MB;
- const uint64_t actual_memory = physical_memory();
-
- /* Is this a server class machine? */
- if (actual_memory >= (server_memory - missing_memory)) {
- const unsigned long actual_processors = physical_processors();
- if (actual_processors >= server_processors) {
- result = JNI_TRUE;
- }
- }
- if (_launcher_debug) {
- printf("solaris_" ARCH "_ServerClassMachine: %s\n",
- (result == JNI_TRUE ? "true" : "false"));
- }
- return result;
-}
-
-#endif /* __sun && i586 */
-
-#if defined(__linux__) && defined(i586)
-
-/* The definition of a server-class machine for linux-i586 */
-jboolean
-linux_i586_ServerClassMachine(void) {
- jboolean result = JNI_FALSE;
- /* How big is a server class machine? */
- const unsigned long server_processors = 2UL;
- const uint64_t server_memory = 2UL * GB;
- /*
- * We seem not to get our full complement of memory.
- * We allow some part (1/8?) of the memory to be "missing",
- * based on the sizes of DIMMs, and maybe graphics cards.
- */
- const uint64_t missing_memory = 256UL * MB;
- const uint64_t actual_memory = physical_memory();
-
- /* Is this a server class machine? */
- if (actual_memory >= (server_memory - missing_memory)) {
- const unsigned long actual_processors = physical_processors();
- if (actual_processors >= server_processors) {
- result = JNI_TRUE;
- }
- }
- if (_launcher_debug) {
- printf("linux_" ARCH "_ServerClassMachine: %s\n",
- (result == JNI_TRUE ? "true" : "false"));
- }
- return result;
-}
-
-#endif /* __linux__ && i586 */
-
-/* Dispatch to the platform-specific definition of "server-class" */
-jboolean
-ServerClassMachine(void) {
- jboolean result = JNI_FALSE;
-#if defined(__sun) && defined(__sparc)
- result = solaris_sparc_ServerClassMachine();
-#elif defined(__sun) && defined(i586)
- result = solaris_i586_ServerClassMachine();
-#elif defined(__linux__) && defined(i586)
- result = linux_i586_ServerClassMachine();
-#else
- if (_launcher_debug) {
- printf("ServerClassMachine: returns default value of %s\n",
- (result == JNI_TRUE ? "true" : "false"));
- }
-#endif
- return result;
-}
-
-#endif /* ifndef GAMMA */
-
-#ifndef GAMMA /* gamma launcher does not choose JDK/JRE/JVM */
-
-/*
- * Since using the file system as a registry is a bit risky, perform
- * additional sanity checks on the identified directory to validate
- * it as a valid jre/sdk.
- *
- * Return 0 if the tests fail; otherwise return non-zero (true).
- *
- * Note that checking for anything more than the existence of an
- * executable object at bin/java relative to the path being checked
- * will break the regression tests.
- */
-static int
-CheckSanity(char *path, char *dir)
-{
- char buffer[PATH_MAX];
-
- if (strlen(path) + strlen(dir) + 11 > PATH_MAX)
- return (0); /* Silently reject "impossibly" long paths */
-
- (void)strcat(strcat(strcat(strcpy(buffer, path), "/"), dir), "/bin/java");
- return ((access(buffer, X_OK) == 0) ? 1 : 0);
-}
-
-/*
- * Determine if there is an acceptable JRE in the directory dirname.
- * Upon locating the "best" one, return a fully qualified path to
- * it. "Best" is defined as the most advanced JRE meeting the
- * constraints contained in the manifest_info. If no JRE in this
- * directory meets the constraints, return NULL.
- *
- * Note that we don't check for errors in reading the directory
- * (which would be done by checking errno). This is because it
- * doesn't matter if we get an error reading the directory, or
- * we just don't find anything interesting in the directory. We
- * just return NULL in either case.
- *
- * The historical names of j2sdk and j2re were changed to jdk and
- * jre respecively as part of the 1.5 rebranding effort. Since the
- * former names are legacy on Linux, they must be recognized for
- * all time. Fortunately, this is a minor cost.
- */
-static char
-*ProcessDir(manifest_info *info, char *dirname)
-{
- DIR *dirp;
- struct dirent *dp;
- char *best = NULL;
- int offset;
- int best_offset = 0;
- char *ret_str = NULL;
- char buffer[PATH_MAX];
-
- if ((dirp = opendir(dirname)) == NULL)
- return (NULL);
-
- do {
- if ((dp = readdir(dirp)) != NULL) {
- offset = 0;
- if ((strncmp(dp->d_name, "jre", 3) == 0) ||
- (strncmp(dp->d_name, "jdk", 3) == 0))
- offset = 3;
- else if (strncmp(dp->d_name, "j2re", 4) == 0)
- offset = 4;
- else if (strncmp(dp->d_name, "j2sdk", 5) == 0)
- offset = 5;
- if (offset > 0) {
- if ((acceptable_release(dp->d_name + offset,
- info->jre_version)) && CheckSanity(dirname, dp->d_name))
- if ((best == NULL) || (exact_version_id(
- dp->d_name + offset, best + best_offset) > 0)) {
- if (best != NULL)
- free(best);
- best = strdup(dp->d_name);
- best_offset = offset;
- }
- }
- }
- } while (dp != NULL);
- (void) closedir(dirp);
- if (best == NULL)
- return (NULL);
- else {
- ret_str = MemAlloc(strlen(dirname) + strlen(best) + 2);
- ret_str = strcat(strcat(strcpy(ret_str, dirname), "/"), best);
- free(best);
- return (ret_str);
- }
-}
-
-/*
- * This is the global entry point. It examines the host for the optimal
- * JRE to be used by scanning a set of directories. The set of directories
- * is platform dependent and can be overridden by the environment
- * variable JAVA_VERSION_PATH.
- *
- * This routine itself simply determines the set of appropriate
- * directories before passing control onto ProcessDir().
- */
-char*
-LocateJRE(manifest_info* info)
-{
- char *path;
- char *home;
- char *target = NULL;
- char *dp;
- char *cp;
-
- /*
- * Start by getting JAVA_VERSION_PATH
- */
- if (info->jre_restrict_search)
- path = strdup(system_dir);
- else if ((path = getenv("JAVA_VERSION_PATH")) != NULL)
- path = strdup(path);
- else
- if ((home = getenv("HOME")) != NULL) {
- path = (char *)MemAlloc(strlen(home) + 13);
- path = strcat(strcat(strcat(strcpy(path, home),
- user_dir), ":"), system_dir);
- } else
- path = strdup(system_dir);
-
- /*
- * Step through each directory on the path. Terminate the scan with
- * the first directory with an acceptable JRE.
- */
- cp = dp = path;
- while (dp != NULL) {
- cp = strchr(dp, (int)':');
- if (cp != NULL)
- *cp = (char)NULL;
- if ((target = ProcessDir(info, dp)) != NULL)
- break;
- dp = cp;
- if (dp != NULL)
- dp++;
- }
- free(path);
- return (target);
-}
-
-/*
- * Given a path to a jre to execute, this routine checks if this process
- * is indeed that jre. If not, it exec's that jre.
- *
- * We want to actually check the paths rather than just the version string
- * built into the executable, so that given version specification (and
- * JAVA_VERSION_PATH) will yield the exact same Java environment, regardless
- * of the version of the arbitrary launcher we start with.
- */
-void
-ExecJRE(char *jre, char **argv)
-{
- char wanted[PATH_MAX];
- char *execname;
- char *progname;
-
- /*
- * Resolve the real path to the directory containing the selected JRE.
- */
- if (realpath(jre, wanted) == NULL) {
- fprintf(stderr, "Unable to resolve %s\n", jre);
- exit(1);
- }
-
- /*
- * Resolve the real path to the currently running launcher.
- */
- execname = SetExecname(argv);
- if (execname == NULL) {
- fprintf(stderr, "Unable to resolve current executable\n");
- exit(1);
- }
-
- /*
- * If the path to the selected JRE directory is a match to the initial
- * portion of the path to the currently executing JRE, we have a winner!
- * If so, just return.
- */
- if (strncmp(wanted, execname, strlen(wanted)) == 0)
- return; /* I am the droid you were looking for */
-
- /*
- * If this isn't the selected version, exec the selected version.
- */
-#ifdef JAVA_ARGS /* javac, jar and friends. */
- progname = "java";
-#else /* java, oldjava, javaw and friends */
-#ifdef PROGNAME
- progname = PROGNAME;
-#else
- progname = *argv;
- if ((s = strrchr(progname, FILE_SEPARATOR)) != 0) {
- progname = s + 1;
- }
-#endif /* PROGNAME */
-#endif /* JAVA_ARGS */
-
- /*
- * This should never happen (because of the selection code in SelectJRE),
- * but check for "impossibly" long path names just because buffer overruns
- * can be so deadly.
- */
- if (strlen(wanted) + strlen(progname) + 6 > PATH_MAX) {
- fprintf(stderr, "Path length exceeds maximum length (PATH_MAX)\n");
- exit(1);
- }
-
- /*
- * Construct the path and exec it.
- */
- (void)strcat(strcat(wanted, "/bin/"), progname);
- argv[0] = progname;
- if (_launcher_debug) {
- int i;
- printf("execv(\"%s\"", wanted);
- for (i = 0; argv[i] != NULL; i++)
- printf(", \"%s\"", argv[i]);
- printf(")\n");
- }
- execv(wanted, argv);
- fprintf(stderr, "Exec of %s failed\n", wanted);
- exit(1);
-}
-
-#endif /* ifndef GAMMA */
-
-/*
- * "Borrowed" from Solaris 10 where the unsetenv() function is being added
- * to libc thanks to SUSv3 (Standard Unix Specification, version 3). As
- * such, in the fullness of time this will appear in libc on all relevant
- * Solaris/Linux platforms and maybe even the Windows platform. At that
- * time, this stub can be removed.
- *
- * This implementation removes the environment locking for multithreaded
- * applications. (We don't have access to these mutexes within libc and
- * the launcher isn't multithreaded.) Note that what remains is platform
- * independent, because it only relies on attributes that a POSIX environment
- * defines.
- *
- * Returns 0 on success, -1 on failure.
- *
- * Also removed was the setting of errno. The only value of errno set
- * was EINVAL ("Invalid Argument").
- */
-
-/*
- * s1(environ) is name=value
- * s2(name) is name(not the form of name=value).
- * if names match, return value of 1, else return 0
- */
-static int
-match_noeq(const char *s1, const char *s2)
-{
- while (*s1 == *s2++) {
- if (*s1++ == '=')
- return (1);
- }
- if (*s1 == '=' && s2[-1] == '\0')
- return (1);
- return (0);
-}
-
-/*
- * added for SUSv3 standard
- *
- * Delete entry from environ.
- * Do not free() memory! Other threads may be using it.
- * Keep it around forever.
- */
-static int
-borrowed_unsetenv(const char *name)
-{
- long idx; /* index into environ */
-
- if (name == NULL || *name == '\0' ||
- strchr(name, '=') != NULL) {
- return (-1);
- }
-
- for (idx = 0; environ[idx] != NULL; idx++) {
- if (match_noeq(environ[idx], name))
- break;
- }
- if (environ[idx] == NULL) {
- /* name not found but still a success */
- return (0);
- }
- /* squeeze up one entry */
- do {
- environ[idx] = environ[idx+1];
- } while (environ[++idx] != NULL);
-
- return (0);
-}
-/* --- End of "borrowed" code --- */
-
-/*
- * Wrapper for unsetenv() function.
- */
-int
-UnsetEnv(char *name)
-{
- return(borrowed_unsetenv(name));
-}
-
-/*
- * The implementation for finding classes from the bootstrap
- * class loader, refer to java.h
- */
-static FindClassFromBootLoader_t *findBootClass = NULL;
-
-jclass
-FindBootStrapClass(JNIEnv *env, const char* classname)
-{
- if (findBootClass == NULL) {
- findBootClass = (FindClassFromBootLoader_t *)dlsym(RTLD_DEFAULT,
- "JVM_FindClassFromBootLoader");
- if (findBootClass == NULL) {
- fprintf(stderr, "Error: could not load method JVM_FindClassFromBootLoader");
- return NULL;
- }
- }
- return findBootClass(env, classname, JNI_FALSE);
-}
-
diff --git a/hotspot/src/os/solaris/vm/attachListener_solaris.cpp b/hotspot/src/os/solaris/vm/attachListener_solaris.cpp
index 9ae81cb53d5..b56a32a40af 100644
--- a/hotspot/src/os/solaris/vm/attachListener_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/attachListener_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_attachListener_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/os.hpp"
+#include "services/attachListener.hpp"
+#include "services/dtraceAttacher.hpp"
#include
#include
diff --git a/hotspot/src/os/solaris/vm/c1_globals_solaris.hpp b/hotspot/src/os/solaris/vm/c1_globals_solaris.hpp
index 301d169c178..ad2075dbc10 100644
--- a/hotspot/src/os/solaris/vm/c1_globals_solaris.hpp
+++ b/hotspot/src/os/solaris/vm/c1_globals_solaris.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,7 +22,15 @@
*
*/
+#ifndef OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP
+#define OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
//
// Sets the default values for operating system dependent flags used by the
// client compiler. (see c1_globals.hpp)
//
+
+#endif // OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP
diff --git a/hotspot/src/os/solaris/vm/c2_globals_solaris.hpp b/hotspot/src/os/solaris/vm/c2_globals_solaris.hpp
index b14af55c55c..9909831d983 100644
--- a/hotspot/src/os/solaris/vm/c2_globals_solaris.hpp
+++ b/hotspot/src/os/solaris/vm/c2_globals_solaris.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,7 +22,15 @@
*
*/
+#ifndef OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP
+#define OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
//
// Sets the default values for operating system dependent flags used by the
// server compiler. (see c2_globals.hpp)
//
+
+#endif // OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP
diff --git a/hotspot/src/os/solaris/vm/chaitin_solaris.cpp b/hotspot/src/os/solaris/vm/chaitin_solaris.cpp
index 9d61ae5dae6..92a437f9683 100644
--- a/hotspot/src/os/solaris/vm/chaitin_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/chaitin_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_chaitin_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "opto/chaitin.hpp"
+#include "opto/machnode.hpp"
void PhaseRegAlloc::pd_preallocate_hook() {
// no action
diff --git a/hotspot/src/os/linux/vm/objectMonitor_linux.hpp b/hotspot/src/os/solaris/vm/decoder_solaris.cpp
similarity index 80%
rename from hotspot/src/os/linux/vm/objectMonitor_linux.hpp
rename to hotspot/src/os/solaris/vm/decoder_solaris.cpp
index 663dd38a8a9..a7b4b51fb6a 100644
--- a/hotspot/src/os/linux/vm/objectMonitor_linux.hpp
+++ b/hotspot/src/os/solaris/vm/decoder_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,4 +22,10 @@
*
*/
- private:
+#include "utilities/decoder.hpp"
+
+#include
+
+bool Decoder::demangle(const char* symbol, char *buf, int buflen) {
+ return !cplus_demangle(symbol, buf, (size_t)buflen);
+}
diff --git a/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp b/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp
index 856c8fcfcfd..fb901a1ed2e 100644
--- a/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,16 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_dtraceJSDT_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "classfile/javaClasses.hpp"
+#include "code/codeBlob.hpp"
+#include "memory/allocation.hpp"
+#include "prims/jvm.h"
+#include "runtime/dtraceJSDT.hpp"
+#include "runtime/jniHandles.hpp"
+#include "runtime/os.hpp"
+#include "runtime/signature.hpp"
+#include "utilities/globalDefinitions.hpp"
#ifdef HAVE_DTRACE_H
diff --git a/hotspot/src/os/solaris/vm/globals_solaris.hpp b/hotspot/src/os/solaris/vm/globals_solaris.hpp
index 4d0c9eddda2..a567a357e16 100644
--- a/hotspot/src/os/solaris/vm/globals_solaris.hpp
+++ b/hotspot/src/os/solaris/vm/globals_solaris.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP
+#define OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP
+
//
// Defines Solaris specific flags. They are not available on other platforms.
//
@@ -47,3 +50,5 @@ define_pd_global(bool, UseLargePages, true);
define_pd_global(bool, UseLargePagesIndividualAllocation, false);
define_pd_global(bool, UseOSErrorReporting, false);
define_pd_global(bool, UseThreadPriorities, false);
+
+#endif // OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP
diff --git a/hotspot/src/os/solaris/vm/hpi_solaris.cpp b/hotspot/src/os/solaris/vm/hpi_solaris.cpp
deleted file mode 100644
index ad50b085728..00000000000
--- a/hotspot/src/os/solaris/vm/hpi_solaris.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 1998, 2006, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-# include "incls/_precompiled.incl"
-# include "incls/_hpi_solaris.cpp.incl"
-
-# include
-# include
-
-typedef jint (JNICALL *init_t)(GetInterfaceFunc *, void *);
-
-void hpi::initialize_get_interface(vm_calls_t *callbacks)
-{
- char buf[JVM_MAXPATHLEN];
- void *hpi_handle;
- GetInterfaceFunc& getintf = _get_interface;
- jint (JNICALL * DLL_Initialize)(GetInterfaceFunc *, void *);
-
- if (HPILibPath && HPILibPath[0]) {
- strncpy(buf, HPILibPath, JVM_MAXPATHLEN - 1);
- buf[JVM_MAXPATHLEN - 1] = '\0';
- } else {
- const char *thread_type = "native_threads";
-
- os::jvm_path(buf, JVM_MAXPATHLEN);
-
-#ifdef PRODUCT
- const char * hpi_lib = "/libhpi.so";
-#else
- char * ptr = strrchr(buf, '/');
- assert(strstr(ptr, "/libjvm") == ptr, "invalid library name");
- const char * hpi_lib = strstr(ptr, "_g") ? "/libhpi_g.so" : "/libhpi.so";
-#endif
-
- *(strrchr(buf, '/')) = '\0'; /* get rid of /libjvm.so */
- char* p = strrchr(buf, '/');
- if (p != NULL) p[1] = '\0'; /* get rid of hotspot */
- strcat(buf, thread_type);
- strcat(buf, hpi_lib);
- }
- /* we use RTLD_NOW because of bug 4032715 */
- if (TraceHPI) tty->print_cr("Loading HPI %s ", buf);
- hpi_handle = dlopen(buf, RTLD_NOW);
- if (hpi_handle == NULL) {
- if (TraceHPI) tty->print_cr("HPI dlopen failed: %s", dlerror());
- return;
- }
- DLL_Initialize = CAST_TO_FN_PTR(jint (JNICALL *)(GetInterfaceFunc *, void *),
- dlsym(hpi_handle, "DLL_Initialize"));
- if (TraceHPI && DLL_Initialize == NULL) tty->print_cr("HPI dlsym of DLL_Initialize failed: %s", dlerror());
- if (DLL_Initialize == NULL ||
- (*DLL_Initialize)(&getintf, callbacks) < 0) {
- if (TraceHPI) tty->print_cr("HPI DLL_Initialize failed");
- return;
- }
- if (TraceHPI) tty->print_cr("HPI loaded successfully");
-}
diff --git a/hotspot/src/os/solaris/vm/hpi_solaris.hpp b/hotspot/src/os/solaris/vm/hpi_solaris.hpp
deleted file mode 100644
index bd171a79a1e..00000000000
--- a/hotspot/src/os/solaris/vm/hpi_solaris.hpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * Copyright (c) 1998, 2007, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-//
-// Parts of the HPI interface for which the HotSparc does not use the
-// HPI (because the interruptible IO mechanims used are different).
-//
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-// HPI_FileInterface
-
-// Many system calls can be interrupted by signals and must be restarted.
-// Restart support was added without disturbing the extent of thread
-// interruption support.
-
-inline int hpi::close(int fd) {
- RESTARTABLE_RETURN_INT(::close(fd));
-}
-
-inline size_t hpi::read(int fd, void *buf, unsigned int nBytes) {
- INTERRUPTIBLE_RETURN_INT(::read(fd, buf, nBytes), os::Solaris::clear_interrupted);
-}
-
-inline size_t hpi::write(int fd, const void *buf, unsigned int nBytes) {
- INTERRUPTIBLE_RETURN_INT(::write(fd, buf, nBytes), os::Solaris::clear_interrupted);
-}
-
-
-// HPI_SocketInterface
-
-inline int hpi::socket_close(int fd) {
- RESTARTABLE_RETURN_INT(::close(fd));
-}
-
-inline int hpi::socket(int domain, int type, int protocol) {
- return ::socket(domain, type, protocol);
-}
-
-inline int hpi::recv(int fd, char *buf, int nBytes, int flags) {
- INTERRUPTIBLE_RETURN_INT(::recv(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
-}
-
-inline int hpi::send(int fd, char *buf, int nBytes, int flags) {
- INTERRUPTIBLE_RETURN_INT(::send(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
-}
-
-inline int hpi::raw_send(int fd, char *buf, int nBytes, int flags) {
- RESTARTABLE_RETURN_INT(::send(fd, buf, nBytes, flags));
-}
-
-// As both poll and select can be interrupted by signals, we have to be
-// prepared to restart the system call after updating the timeout, unless
-// a poll() is done with timeout == -1, in which case we repeat with this
-// "wait forever" value.
-
-inline int hpi::timeout(int fd, long timeout) {
- int res;
- struct timeval t;
- julong prevtime, newtime;
- static const char* aNull = 0;
-
- struct pollfd pfd;
- pfd.fd = fd;
- pfd.events = POLLIN;
-
- gettimeofday(&t, &aNull);
- prevtime = ((julong)t.tv_sec * 1000) + t.tv_usec / 1000;
-
- for(;;) {
- INTERRUPTIBLE_NORESTART(::poll(&pfd, 1, timeout), res, os::Solaris::clear_interrupted);
- if(res == OS_ERR && errno == EINTR) {
- if(timeout != -1) {
- gettimeofday(&t, &aNull);
- newtime = ((julong)t.tv_sec * 1000) + t.tv_usec /1000;
- timeout -= newtime - prevtime;
- if(timeout <= 0)
- return OS_OK;
- prevtime = newtime;
- }
- } else
- return res;
- }
-}
-
-inline int hpi::listen(int fd, int count) {
- if (fd < 0)
- return OS_ERR;
-
- return ::listen(fd, count);
-}
-
-inline int
-hpi::connect(int fd, struct sockaddr *him, int len) {
- do {
- int _result;
- INTERRUPTIBLE_NORESTART(::connect(fd, him, len), _result,
- os::Solaris::clear_interrupted);
-
- // Depending on when thread interruption is reset, _result could be
- // one of two values when errno == EINTR
-
- if (((_result == OS_INTRPT) || (_result == OS_ERR)) && (errno == EINTR)) {
- /* restarting a connect() changes its errno semantics */
- INTERRUPTIBLE(::connect(fd, him, len), _result,
- os::Solaris::clear_interrupted);
- /* undo these changes */
- if (_result == OS_ERR) {
- if (errno == EALREADY) errno = EINPROGRESS; /* fall through */
- else if (errno == EISCONN) { errno = 0; return OS_OK; }
- }
- }
- return _result;
- } while(false);
-}
-
-inline int hpi::accept(int fd, struct sockaddr *him, int *len) {
- if (fd < 0)
- return OS_ERR;
- INTERRUPTIBLE_RETURN_INT((int)::accept(fd, him, (socklen_t*) len), os::Solaris::clear_interrupted);
-}
-
-inline int hpi::recvfrom(int fd, char *buf, int nBytes, int flags,
- sockaddr *from, int *fromlen) {
- //%%note jvm_r11
- INTERRUPTIBLE_RETURN_INT((int)::recvfrom(fd, buf, nBytes, (unsigned int) flags, from, (socklen_t *)fromlen), os::Solaris::clear_interrupted);
-}
-
-inline int hpi::sendto(int fd, char *buf, int len, int flags,
- struct sockaddr *to, int tolen) {
- //%%note jvm_r11
- INTERRUPTIBLE_RETURN_INT((int)::sendto(fd, buf, len, (unsigned int) flags, to, tolen),os::Solaris::clear_interrupted);
-}
-
-inline int hpi::socket_available(int fd, jint *pbytes) {
- if (fd < 0)
- return OS_OK;
-
- int ret;
-
- RESTARTABLE(::ioctl(fd, FIONREAD, pbytes), ret);
-
- //%% note ioctl can return 0 when successful, JVM_SocketAvailable
- // is expected to return 0 on failure and 1 on success to the jdk.
-
- return (ret == OS_ERR) ? 0 : 1;
-}
-
-
-/*
-HPIDECL(socket_shutdown, "socket_shutdown", _socket, SocketShutdown,
- int, "%d",
- (int fd, int howto),
- ("fd = %d, howto = %d", fd, howto),
- (fd, howto));
- */
-inline int hpi::socket_shutdown(int fd, int howto){
- return ::shutdown(fd, howto);
-}
-
-/*
-HPIDECL(bind, "bind", _socket, Bind,
- int, "%d",
- (int fd, struct sockaddr *him, int len),
- ("fd = %d, him = %p, len = %d",
- fd, him, len),
- (fd, him, len));
-*/
-inline int hpi::bind(int fd, struct sockaddr *him, int len){
- INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),os::Solaris::clear_interrupted);
-}
-
-/*
-HPIDECL(get_sock_name, "get_sock_name", _socket, GetSocketName,
- int, "%d",
- (int fd, struct sockaddr *him, int *len),
- ("fd = %d, him = %p, len = %p",
- fd, him, len),
- (fd, him, len));
- */
-inline int hpi::get_sock_name(int fd, struct sockaddr *him, int *len){
- return ::getsockname(fd, him, (socklen_t*) len);
-}
-
-/*
-HPIDECL(get_host_name, "get_host_name", _socket, GetHostName, int, "%d",
- (char *hostname, int namelen),
- ("hostname = %p, namelen = %d",
- hostname, namelen),
- (hostname, namelen));
- */
-inline int hpi::get_host_name(char* name, int namelen){
- return ::gethostname(name, namelen);
-}
-
-/*
-HPIDECL(get_sock_opt, "get_sock_opt", _socket, SocketGetOption, int, "%d",
- (int fd, int level, int optname, char *optval, int* optlen),
- ("fd = %d, level = %d, optname = %d, optval = %p, optlen = %p",
- fd, level, optname, optval, optlen),
- (fd, level, optname, optval, optlen));
- */
-inline int hpi::get_sock_opt(int fd, int level, int optname,
- char *optval, int* optlen){
- return ::getsockopt(fd, level, optname, optval, (socklen_t*) optlen);
-}
-
-/*
-HPIDECL(set_sock_opt, "set_sock_opt", _socket, SocketSetOption, int, "%d",
- (int fd, int level, int optname, const char *optval, int optlen),
- ("fd = %d, level = %d, optname = %d, optval = %p, optlen = %d",
- fd, level, optname, optval, optlen),
- (fd, level, optname, optval, optlen));
- */
-inline int hpi::set_sock_opt(int fd, int level, int optname,
- const char *optval, int optlen){
- return ::setsockopt(fd, level, optname, optval, optlen);
-}
-
-//Reconciliation History
-// 1.3 98/10/21 18:17:14 hpi_win32.hpp
-// 1.6 99/06/28 11:01:36 hpi_win32.hpp
-//End
diff --git a/hotspot/src/os/solaris/vm/interfaceSupport_solaris.hpp b/hotspot/src/os/solaris/vm/interfaceSupport_solaris.hpp
index acc096be80f..4332d428184 100644
--- a/hotspot/src/os/solaris/vm/interfaceSupport_solaris.hpp
+++ b/hotspot/src/os/solaris/vm/interfaceSupport_solaris.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,13 @@
*
*/
+#ifndef OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP
+#define OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP
+
// Contains inlined functions for class InterfaceSupport
static inline void serialize_memory(JavaThread *thread) {
os::write_memory_serialize_page(thread);
}
+
+#endif // OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP
diff --git a/hotspot/src/os/solaris/vm/jsig.c b/hotspot/src/os/solaris/vm/jsig.c
index bf1a25ca184..3c509159a2d 100644
--- a/hotspot/src/os/solaris/vm/jsig.c
+++ b/hotspot/src/os/solaris/vm/jsig.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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
diff --git a/hotspot/src/os/solaris/vm/jvm_solaris.cpp b/hotspot/src/os/solaris/vm/jvm_solaris.cpp
index 00981bbbb23..2f5ccb3bb17 100644
--- a/hotspot/src/os/solaris/vm/jvm_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/jvm_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,10 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_jvm_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "prims/jvm.h"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/osThread.hpp"
#include
diff --git a/hotspot/src/os/solaris/vm/jvm_solaris.h b/hotspot/src/os/solaris/vm/jvm_solaris.h
index 50d6a95e073..1513c16e8f9 100644
--- a/hotspot/src/os/solaris/vm/jvm_solaris.h
+++ b/hotspot/src/os/solaris/vm/jvm_solaris.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_SOLARIS_VM_JVM_SOLARIS_H
+#define OS_SOLARIS_VM_JVM_SOLARIS_H
+
/*
// HotSpot integration note:
//
@@ -98,3 +101,5 @@
#define JSIG_VERSION_1_4_1 0x30140100
#endif /* JVM_MD_H */
+
+#endif // OS_SOLARIS_VM_JVM_SOLARIS_H
diff --git a/hotspot/src/os/solaris/vm/mutex_solaris.cpp b/hotspot/src/os/solaris/vm/mutex_solaris.cpp
index 97649c37b6f..30be73721c6 100644
--- a/hotspot/src/os/solaris/vm/mutex_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/mutex_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, 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,12 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_mutex_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "mutex_solaris.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/mutex.hpp"
+#include "thread_solaris.inline.hpp"
+#include "utilities/events.hpp"
// Solaris-specific include, therefore not in includeDB_*
# include "os_share_solaris.hpp"
diff --git a/hotspot/src/os/solaris/vm/mutex_solaris.inline.hpp b/hotspot/src/os/solaris/vm/mutex_solaris.inline.hpp
index 44565f567be..00e91a79449 100644
--- a/hotspot/src/os/solaris/vm/mutex_solaris.inline.hpp
+++ b/hotspot/src/os/solaris/vm/mutex_solaris.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
@@ -21,3 +21,12 @@
* questions.
*
*/
+
+#ifndef OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP
+#define OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP
+
+#include "os_solaris.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "thread_solaris.inline.hpp"
+
+#endif // OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP
diff --git a/hotspot/src/os/solaris/vm/objectMonitor_solaris.cpp b/hotspot/src/os/solaris/vm/objectMonitor_solaris.cpp
deleted file mode 100644
index 07fe1598f87..00000000000
--- a/hotspot/src/os/solaris/vm/objectMonitor_solaris.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 1998, 2005, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
diff --git a/hotspot/src/os/solaris/vm/objectMonitor_solaris.inline.hpp b/hotspot/src/os/solaris/vm/objectMonitor_solaris.inline.hpp
deleted file mode 100644
index 07fe1598f87..00000000000
--- a/hotspot/src/os/solaris/vm/objectMonitor_solaris.inline.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 1998, 2005, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
diff --git a/hotspot/src/os/solaris/vm/osThread_solaris.cpp b/hotspot/src/os/solaris/vm/osThread_solaris.cpp
index e0209cfc4e6..937ae5cbbcf 100644
--- a/hotspot/src/os/solaris/vm/osThread_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/osThread_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,21 @@
*
*/
-// do not include precompiled header file
-# include "incls/_osThread_solaris.cpp.incl"
+// no precompiled headers
+#include "runtime/atomic.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/os.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/safepoint.hpp"
+#include "runtime/vmThread.hpp"
+#ifdef TARGET_ARCH_x86
+# include "assembler_x86.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_sparc
+# include "assembler_sparc.inline.hpp"
+#endif
+
# include
// ***************************************************************
diff --git a/hotspot/src/os/solaris/vm/osThread_solaris.hpp b/hotspot/src/os/solaris/vm/osThread_solaris.hpp
index 2d358de1380..07742ac8e40 100644
--- a/hotspot/src/os/solaris/vm/osThread_solaris.hpp
+++ b/hotspot/src/os/solaris/vm/osThread_solaris.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP
+#define OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP
+
// This is embedded via include into the class OSThread
private:
@@ -149,3 +152,5 @@ private:
void pd_initialize();
void pd_destroy();
+
+#endif // OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP
diff --git a/hotspot/src/os/solaris/vm/os_share_solaris.hpp b/hotspot/src/os/solaris/vm/os_share_solaris.hpp
index 67416054f67..a7c1ce8c0ee 100644
--- a/hotspot/src/os/solaris/vm/os_share_solaris.hpp
+++ b/hotspot/src/os/solaris/vm/os_share_solaris.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
+#define OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
+
// Defines the interfaces to Solaris operating systems that vary across platforms
@@ -65,3 +68,5 @@ extern "C" void _mark_fpu_nosave() ;
#endif
#define PROCFILE_LENGTH 128
+
+#endif // OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp
index 0245d6f609d..f6f816cf3ad 100644
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, 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,12 +22,65 @@
*
*/
-// do not include precompiled header file
-# include "incls/_os_solaris.cpp.incl"
+// no precompiled headers
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "compiler/compileBroker.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_solaris.h"
+#include "memory/allocation.inline.hpp"
+#include "memory/filemap.hpp"
+#include "mutex_solaris.inline.hpp"
+#include "oops/oop.inline.hpp"
+#include "os_share_solaris.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/globals.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/objectMonitor.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/perfMemory.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/statSampler.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/threadCritical.hpp"
+#include "runtime/timer.hpp"
+#include "services/attachListener.hpp"
+#include "services/runtimeService.hpp"
+#include "thread_solaris.inline.hpp"
+#include "utilities/decoder.hpp"
+#include "utilities/defaultStream.hpp"
+#include "utilities/events.hpp"
+#include "utilities/growableArray.hpp"
+#include "utilities/vmError.hpp"
+#ifdef TARGET_ARCH_x86
+# include "assembler_x86.inline.hpp"
+# include "nativeInst_x86.hpp"
+#endif
+#ifdef TARGET_ARCH_sparc
+# include "assembler_sparc.inline.hpp"
+# include "nativeInst_sparc.hpp"
+#endif
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// put OS-includes here
# include
# include
+# include
# include
# include
# include
@@ -63,6 +116,7 @@
# include
# include
# include
+# include
# define _STRUCTURED_PROC 1 // this gets us the new structured proc interfaces of 5.6 & later
# include // see comment in
@@ -167,6 +221,9 @@ int prio_policy1[MaxPriority+1] = { -99999, 0, 16, 32, 48, 64,
// System parameters used internally
static clock_t clock_tics_per_sec = 100;
+// Track if we have called enable_extended_FILE_stdio (on Solaris 10u4+)
+static bool enabled_extended_FILE_stdio = false;
+
// For diagnostics to print a message once. see run_periodic_checks
static bool check_addr0_done = false;
static sigset_t check_signal_done;
@@ -226,7 +283,7 @@ Thread* ThreadLocalStorage::get_thread_via_cache_slowly(uintptr_t raw_id,
is_error_reported(),
"sp must be inside of selected thread stack");
- thread->_self_raw_id = raw_id; // mark for quick retrieval
+ thread->set_self_raw_id(raw_id); // mark for quick retrieval
_get_thread_cache[ index ] = thread;
}
return thread;
@@ -334,7 +391,7 @@ struct tm* os::localtime_pd(const time_t* clock, struct tm* res) {
// The saved state is used to restore the thread to
// its former state whether or not an interrupt is received.
// Used by classloader os::read
-// hpi calls skip this layer and stay in _thread_in_native
+// os::restartable_read calls skip this layer and stay in _thread_in_native
void os::Solaris::setup_interruptible(JavaThread* thread) {
@@ -1419,6 +1476,13 @@ sigset_t* os::Solaris::allowdebug_blocked_signals() {
return &allowdebug_blocked_sigs;
}
+
+void _handle_uncaught_cxx_exception() {
+ VMError err("An uncaught C++ exception");
+ err.report_and_die();
+}
+
+
// First crack at OS-specific initialization, from inside the new thread.
void os::initialize_thread() {
int r = thr_main() ;
@@ -1508,6 +1572,7 @@ void os::initialize_thread() {
// use the dynamic check for T2 libthread.
os::Solaris::init_thread_fpu_state();
+ std::set_terminate(_handle_uncaught_cxx_exception);
}
@@ -1698,13 +1763,13 @@ bool os::getTimesSecs(double* process_real_time,
bool os::supports_vtime() { return true; }
bool os::enable_vtime() {
- int fd = open("/proc/self/ctl", O_WRONLY);
+ int fd = ::open("/proc/self/ctl", O_WRONLY);
if (fd == -1)
return false;
long cmd[] = { PCSET, PR_MSACCT };
- int res = write(fd, cmd, sizeof(long) * 2);
- close(fd);
+ int res = ::write(fd, cmd, sizeof(long) * 2);
+ ::close(fd);
if (res != sizeof(long) * 2)
return false;
@@ -1712,13 +1777,13 @@ bool os::enable_vtime() {
}
bool os::vtime_enabled() {
- int fd = open("/proc/self/status", O_RDONLY);
+ int fd = ::open("/proc/self/status", O_RDONLY);
if (fd == -1)
return false;
pstatus_t status;
- int res = read(fd, (void*) &status, sizeof(pstatus_t));
- close(fd);
+ int res = os::read(fd, (void*) &status, sizeof(pstatus_t));
+ ::close(fd);
if (res != sizeof(pstatus_t))
return false;
@@ -1834,7 +1899,6 @@ static bool file_exists(const char* filename) {
void os::dll_build_name(char* buffer, size_t buflen,
const char* pname, const char* fname) {
- // Copied from libhpi
const size_t pnamelen = pname ? strlen(pname) : 0;
// Quietly truncate on buffer overflow. Should be an error.
@@ -1915,27 +1979,42 @@ bool os::dll_address_to_function_name(address addr, char *buf,
Sym * info;
if (dladdr1_func((void *)addr, &dlinfo, (void **)&info,
RTLD_DL_SYMENT)) {
- if (buf) jio_snprintf(buf, buflen, "%s", dlinfo.dli_sname);
- if (offset) *offset = addr - (address)dlinfo.dli_saddr;
-
- // check if the returned symbol really covers addr
- return ((char *)dlinfo.dli_saddr + info->st_size > (char *)addr);
- } else {
- if (buf) buf[0] = '\0';
- if (offset) *offset = -1;
- return false;
+ if ((char *)dlinfo.dli_saddr + info->st_size > (char *)addr) {
+ if (buf != NULL) {
+ if (!Decoder::demangle(dlinfo.dli_sname, buf, buflen))
+ jio_snprintf(buf, buflen, "%s", dlinfo.dli_sname);
+ }
+ if (offset != NULL) *offset = addr - (address)dlinfo.dli_saddr;
+ return true;
+ }
}
+ if (dlinfo.dli_fname != NULL && dlinfo.dli_fbase != 0) {
+ if (Decoder::decode((address)(addr - (address)dlinfo.dli_fbase),
+ dlinfo.dli_fname, buf, buflen, offset) == Decoder::no_error) {
+ return true;
+ }
+ }
+ if (buf != NULL) buf[0] = '\0';
+ if (offset != NULL) *offset = -1;
+ return false;
} else {
// no, only dladdr is available
- if(dladdr((void *)addr, &dlinfo)) {
- if (buf) jio_snprintf(buf, buflen, dlinfo.dli_sname);
- if (offset) *offset = addr - (address)dlinfo.dli_saddr;
+ if (dladdr((void *)addr, &dlinfo)) {
+ if (buf != NULL) {
+ if (!Decoder::demangle(dlinfo.dli_sname, buf, buflen))
+ jio_snprintf(buf, buflen, dlinfo.dli_sname);
+ }
+ if (offset != NULL) *offset = addr - (address)dlinfo.dli_saddr;
+ return true;
+ } else if (dlinfo.dli_fname != NULL && dlinfo.dli_fbase != 0) {
+ if (Decoder::decode((address)(addr - (address)dlinfo.dli_fbase),
+ dlinfo.dli_fname, buf, buflen, offset) == Decoder::no_error) {
return true;
- } else {
- if (buf) buf[0] = '\0';
- if (offset) *offset = -1;
- return false;
+ }
}
+ if (buf != NULL) buf[0] = '\0';
+ if (offset != NULL) *offset = -1;
+ return false;
}
}
@@ -2130,20 +2209,29 @@ void* os::dll_lookup(void* handle, const char* name) {
return dlsym(handle, name);
}
+int os::stat(const char *path, struct stat *sbuf) {
+ char pathbuf[MAX_PATH];
+ if (strlen(path) > MAX_PATH - 1) {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+ os::native_path(strcpy(pathbuf, path));
+ return ::stat(pathbuf, sbuf);
+}
-bool _print_ascii_file(const char* filename, outputStream* st) {
- int fd = open(filename, O_RDONLY);
+static bool _print_ascii_file(const char* filename, outputStream* st) {
+ int fd = ::open(filename, O_RDONLY);
if (fd == -1) {
return false;
}
char buf[32];
int bytes;
- while ((bytes = read(fd, buf, sizeof(buf))) > 0) {
+ while ((bytes = ::read(fd, buf, sizeof(buf))) > 0) {
st->print_raw(buf, bytes);
}
- close(fd);
+ ::close(fd);
return true;
}
@@ -2206,10 +2294,10 @@ void os::print_os_info(outputStream* st) {
static bool check_addr0(outputStream* st) {
jboolean status = false;
- int fd = open("/proc/self/map",O_RDONLY);
+ int fd = ::open("/proc/self/map",O_RDONLY);
if (fd >= 0) {
prmap_t p;
- while(read(fd, &p, sizeof(p)) > 0) {
+ while(::read(fd, &p, sizeof(p)) > 0) {
if (p.pr_vaddr == 0x0) {
st->print("Warning: Address: 0x%x, Size: %dK, ",p.pr_vaddr, p.pr_size/1024, p.pr_mapname);
st->print("Mapped file: %s, ", p.pr_mapname[0] == '\0' ? "None" : p.pr_mapname);
@@ -2220,7 +2308,7 @@ static bool check_addr0(outputStream* st) {
st->cr();
status = true;
}
- close(fd);
+ ::close(fd);
}
}
return status;
@@ -2468,8 +2556,6 @@ void os::jvm_path(char *buf, jint buflen) {
// Use current module name "libjvm[_g].so" instead of
// "libjvm"debug_only("_g")".so" since for fastdebug version
// we should have "libjvm.so" but debug_only("_g") adds "_g"!
- // It is used when we are choosing the HPI library's name
- // "libhpi[_g].so" in hpi::initialize_get_interface().
len = strlen(buf);
snprintf(buf + len, buflen-len, "/hotspot/libjvm%s.so", p);
} else {
@@ -2493,6 +2579,23 @@ void os::print_jni_name_suffix_on(outputStream* st, int args_size) {
// no suffix required
}
+// This method is a copy of JDK's sysGetLastErrorString
+// from src/solaris/hpi/src/system_md.c
+
+size_t os::lasterror(char *buf, size_t len) {
+
+ if (errno == 0) return 0;
+
+ const char *s = ::strerror(errno);
+ size_t n = ::strlen(s);
+ if (n >= len) {
+ n = len - 1;
+ }
+ ::strncpy(buf, s, n);
+ buf[n] = '\0';
+ return n;
+}
+
// sun.misc.Signal
@@ -2987,7 +3090,7 @@ char* os::attempt_reserve_memory_at(size_t bytes, char* requested_addr) {
if (addr == NULL) {
jio_snprintf(buf, sizeof(buf), ": %s", strerror(err));
}
- warning("attempt_reserve_memory_at: couldn't reserve %d bytes at "
+ warning("attempt_reserve_memory_at: couldn't reserve " SIZE_FORMAT " bytes at "
PTR_FORMAT ": reserve_memory_helper returned " PTR_FORMAT
"%s", bytes, requested_addr, addr, buf);
}
@@ -3375,7 +3478,12 @@ static int os_sleep(jlong millis, bool interruptible) {
// INTERRUPTIBLE_NORESTART_VM_ALWAYS returns res == OS_INTRPT for
// thread.Interrupt.
- if((res == OS_ERR) && (errno == EINTR)) {
+ // See c/r 6751923. Poll can return 0 before time
+ // has elapsed if time is set via clock_settime (as NTP does).
+ // res == 0 if poll timed out (see man poll RETURN VALUES)
+ // using the logic below checks that we really did
+ // sleep at least "millis" if not we'll sleep again.
+ if( ( res == 0 ) || ((res == OS_ERR) && (errno == EINTR))) {
newtime = getTimeMillis();
assert(newtime >= prevtime, "time moving backwards");
/* Doing prevtime and newtime in microseconds doesn't help precision,
@@ -3397,6 +3505,10 @@ size_t os::read(int fd, void *buf, unsigned int nBytes) {
INTERRUPTIBLE_RETURN_INT_VM(::read(fd, buf, nBytes), os::Solaris::clear_interrupted);
}
+size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
+ INTERRUPTIBLE_RETURN_INT(::read(fd, buf, nBytes), os::Solaris::clear_interrupted);
+}
+
int os::sleep(Thread* thread, jlong millis, bool interruptible) {
assert(thread == Thread::current(), "thread consistency check");
@@ -4566,16 +4678,16 @@ bool isT2_libthread() {
#define ADR(x) ((uintptr_t)(x))
#define LWPINDEX(ary,ix) ((lwpstatus_t *)(((ary)->pr_entsize * (ix)) + (ADR((ary) + 1))))
- lwpFile = open("/proc/self/lstatus", O_RDONLY, 0);
+ lwpFile = ::open("/proc/self/lstatus", O_RDONLY, 0);
if (lwpFile < 0) {
if (ThreadPriorityVerbose) warning ("Couldn't open /proc/self/lstatus\n");
return false;
}
lwpSize = 16*1024;
for (;;) {
- lseek (lwpFile, 0, SEEK_SET);
+ ::lseek64 (lwpFile, 0, SEEK_SET);
lwpArray = (prheader_t *)NEW_C_HEAP_ARRAY(char, lwpSize);
- if (read(lwpFile, lwpArray, lwpSize) < 0) {
+ if (::read(lwpFile, lwpArray, lwpSize) < 0) {
if (ThreadPriorityVerbose) warning("Error reading /proc/self/lstatus\n");
break;
}
@@ -4596,7 +4708,7 @@ bool isT2_libthread() {
}
FREE_C_HEAP_ARRAY(char, lwpArray);
- close (lwpFile);
+ ::close (lwpFile);
if (ThreadPriorityVerbose) {
if (isT2) tty->print_cr("We are running with a T2 libthread\n");
else tty->print_cr("We are not running with a T2 libthread\n");
@@ -4792,7 +4904,7 @@ void os::init(void) {
// if we need them.
Solaris::misc_sym_init();
- int fd = open("/dev/zero", O_RDWR);
+ int fd = ::open("/dev/zero", O_RDWR);
if (fd < 0) {
fatal(err_msg("os::init: cannot open /dev/zero (%s)", strerror(errno)));
} else {
@@ -4878,18 +4990,17 @@ jint os::init_2(void) {
// Check minimum allowable stack size for thread creation and to initialize
// the java system classes, including StackOverflowError - depends on page
// size. Add a page for compiler2 recursion in main thread.
- // Add in BytesPerWord times page size to account for VM stack during
+ // Add in 2*BytesPerWord times page size to account for VM stack during
// class initialization depending on 32 or 64 bit VM.
- guarantee((Solaris::min_stack_allowed >=
- (StackYellowPages+StackRedPages+StackShadowPages+BytesPerWord
- COMPILER2_PRESENT(+1)) * page_size),
- "need to increase Solaris::min_stack_allowed on this platform");
+ os::Solaris::min_stack_allowed = MAX2(os::Solaris::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
+ 2*BytesPerWord COMPILER2_PRESENT(+1)) * page_size);
size_t threadStackSizeInBytes = ThreadStackSize * K;
if (threadStackSizeInBytes != 0 &&
- threadStackSizeInBytes < Solaris::min_stack_allowed) {
+ threadStackSizeInBytes < os::Solaris::min_stack_allowed) {
tty->print_cr("\nThe stack size specified is too small, Specify at least %dk",
- Solaris::min_stack_allowed/K);
+ os::Solaris::min_stack_allowed/K);
return JNI_ERR;
}
@@ -4963,13 +5074,6 @@ jint os::init_2(void) {
}
}
- // Initialize HPI.
- jint hpi_result = hpi::initialize();
- if (hpi_result != JNI_OK) {
- tty->print_cr("There was an error trying to initialize the HPI library.");
- return hpi_result;
- }
-
// Calculate theoretical max. size of Threads to guard gainst
// artifical out-of-memory situations, where all available address-
// space has been reserved by thread stacks. Default stack size is 1Mb.
@@ -5029,17 +5133,6 @@ void os::make_polling_page_readable(void) {
// OS interface.
-int os::stat(const char *path, struct stat *sbuf) {
- char pathbuf[MAX_PATH];
- if (strlen(path) > MAX_PATH - 1) {
- errno = ENAMETOOLONG;
- return -1;
- }
- hpi::native_path(strcpy(pathbuf, path));
- return ::stat(pathbuf, sbuf);
-}
-
-
bool os::check_heap(bool force) { return true; }
typedef int (*vsnprintf_t)(char* buf, size_t count, const char* fmt, va_list argptr);
@@ -5084,6 +5177,125 @@ bool os::dir_is_empty(const char* path) {
return result;
}
+// This code originates from JDK's sysOpen and open64_w
+// from src/solaris/hpi/src/system_md.c
+
+#ifndef O_DELETE
+#define O_DELETE 0x10000
+#endif
+
+// Open a file. Unlink the file immediately after open returns
+// if the specified oflag has the O_DELETE flag set.
+// O_DELETE is used only in j2se/src/share/native/java/util/zip/ZipFile.c
+
+int os::open(const char *path, int oflag, int mode) {
+ if (strlen(path) > MAX_PATH - 1) {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+ int fd;
+ int o_delete = (oflag & O_DELETE);
+ oflag = oflag & ~O_DELETE;
+
+ fd = ::open64(path, oflag, mode);
+ if (fd == -1) return -1;
+
+ //If the open succeeded, the file might still be a directory
+ {
+ struct stat64 buf64;
+ int ret = ::fstat64(fd, &buf64);
+ int st_mode = buf64.st_mode;
+
+ if (ret != -1) {
+ if ((st_mode & S_IFMT) == S_IFDIR) {
+ errno = EISDIR;
+ ::close(fd);
+ return -1;
+ }
+ } else {
+ ::close(fd);
+ return -1;
+ }
+ }
+ /*
+ * 32-bit Solaris systems suffer from:
+ *
+ * - an historical default soft limit of 256 per-process file
+ * descriptors that is too low for many Java programs.
+ *
+ * - a design flaw where file descriptors created using stdio
+ * fopen must be less than 256, _even_ when the first limit above
+ * has been raised. This can cause calls to fopen (but not calls to
+ * open, for example) to fail mysteriously, perhaps in 3rd party
+ * native code (although the JDK itself uses fopen). One can hardly
+ * criticize them for using this most standard of all functions.
+ *
+ * We attempt to make everything work anyways by:
+ *
+ * - raising the soft limit on per-process file descriptors beyond
+ * 256
+ *
+ * - As of Solaris 10u4, we can request that Solaris raise the 256
+ * stdio fopen limit by calling function enable_extended_FILE_stdio.
+ * This is done in init_2 and recorded in enabled_extended_FILE_stdio
+ *
+ * - If we are stuck on an old (pre 10u4) Solaris system, we can
+ * workaround the bug by remapping non-stdio file descriptors below
+ * 256 to ones beyond 256, which is done below.
+ *
+ * See:
+ * 1085341: 32-bit stdio routines should support file descriptors >255
+ * 6533291: Work around 32-bit Solaris stdio limit of 256 open files
+ * 6431278: Netbeans crash on 32 bit Solaris: need to call
+ * enable_extended_FILE_stdio() in VM initialisation
+ * Giri Mandalika's blog
+ * http://technopark02.blogspot.com/2005_05_01_archive.html
+ */
+#ifndef _LP64
+ if ((!enabled_extended_FILE_stdio) && fd < 256) {
+ int newfd = ::fcntl(fd, F_DUPFD, 256);
+ if (newfd != -1) {
+ ::close(fd);
+ fd = newfd;
+ }
+ }
+#endif // 32-bit Solaris
+ /*
+ * All file descriptors that are opened in the JVM and not
+ * specifically destined for a subprocess should have the
+ * close-on-exec flag set. If we don't set it, then careless 3rd
+ * party native code might fork and exec without closing all
+ * appropriate file descriptors (e.g. as we do in closeDescriptors in
+ * UNIXProcess.c), and this in turn might:
+ *
+ * - cause end-of-file to fail to be detected on some file
+ * descriptors, resulting in mysterious hangs, or
+ *
+ * - might cause an fopen in the subprocess to fail on a system
+ * suffering from bug 1085341.
+ *
+ * (Yes, the default setting of the close-on-exec flag is a Unix
+ * design flaw)
+ *
+ * See:
+ * 1085341: 32-bit stdio routines should support file descriptors >255
+ * 4843136: (process) pipe file descriptor from Runtime.exec not being closed
+ * 6339493: (process) Runtime.exec does not close all file descriptors on Solaris 9
+ */
+#ifdef FD_CLOEXEC
+ {
+ int flags = ::fcntl(fd, F_GETFD);
+ if (flags != -1)
+ ::fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
+ }
+#endif
+
+ if (o_delete != 0) {
+ ::unlink(path);
+ }
+ return fd;
+}
+
// create binary file, rewriting existing file if required
int os::create_binary_file(const char* path, bool rewrite_existing) {
int oflags = O_WRONLY | O_CREAT;
@@ -5103,6 +5315,55 @@ jlong os::seek_to_file_offset(int fd, jlong offset) {
return (jlong)::lseek64(fd, (off64_t)offset, SEEK_SET);
}
+jlong os::lseek(int fd, jlong offset, int whence) {
+ return (jlong) ::lseek64(fd, offset, whence);
+}
+
+char * os::native_path(char *path) {
+ return path;
+}
+
+int os::ftruncate(int fd, jlong length) {
+ return ::ftruncate64(fd, length);
+}
+
+int os::fsync(int fd) {
+ RESTARTABLE_RETURN_INT(::fsync(fd));
+}
+
+int os::available(int fd, jlong *bytes) {
+ jlong cur, end;
+ int mode;
+ struct stat64 buf64;
+
+ if (::fstat64(fd, &buf64) >= 0) {
+ mode = buf64.st_mode;
+ if (S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode)) {
+ /*
+ * XXX: is the following call interruptible? If so, this might
+ * need to go through the INTERRUPT_IO() wrapper as for other
+ * blocking, interruptible calls in this file.
+ */
+ int n,ioctl_return;
+
+ INTERRUPTIBLE(::ioctl(fd, FIONREAD, &n),ioctl_return,os::Solaris::clear_interrupted);
+ if (ioctl_return>= 0) {
+ *bytes = n;
+ return 1;
+ }
+ }
+ }
+ if ((cur = ::lseek64(fd, 0L, SEEK_CUR)) == -1) {
+ return 0;
+ } else if ((end = ::lseek64(fd, 0L, SEEK_END)) == -1) {
+ return 0;
+ } else if (::lseek64(fd, cur, SEEK_SET) == -1) {
+ return 0;
+ }
+ *bytes = end - cur;
+ return 1;
+}
+
// Map a block of memory.
char* os::map_memory(int fd, const char* file_name, size_t file_offset,
char *addr, size_t bytes, bool read_only,
@@ -5161,7 +5422,7 @@ void os::pause() {
int fd = ::open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
if (fd != -1) {
struct stat buf;
- close(fd);
+ ::close(fd);
while (::stat(filename, &buf) == 0) {
(void)::poll(NULL, 0, 100);
}
@@ -5358,16 +5619,16 @@ jlong os::thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
sprintf(proc_name, "/proc/%d/lwp/%d/lwpusage",
getpid(),
thread->osthread()->lwp_id());
- fd = open(proc_name, O_RDONLY);
+ fd = ::open(proc_name, O_RDONLY);
if ( fd == -1 ) return -1;
do {
- count = pread(fd,
+ count = ::pread(fd,
(void *)&prusage.pr_utime,
thr_time_size,
thr_time_off);
} while (count < 0 && errno == EINTR);
- close(fd);
+ ::close(fd);
if ( count < 0 ) return -1;
if (user_sys_cpu_time) {
@@ -5837,7 +6098,7 @@ void Parker::park(bool isAbsolute, jlong time) {
// First, demultiplex/decode time arguments
timespec absTime;
- if (time < 0) { // don't wait at all
+ if (time < 0 || (isAbsolute && time == 0) ) { // don't wait at all
return;
}
if (time > 0) {
@@ -6039,4 +6300,127 @@ bool os::is_headless_jre() {
return true;
}
+size_t os::write(int fd, const void *buf, unsigned int nBytes) {
+ INTERRUPTIBLE_RETURN_INT(::write(fd, buf, nBytes), os::Solaris::clear_interrupted);
+}
+
+int os::close(int fd) {
+ RESTARTABLE_RETURN_INT(::close(fd));
+}
+
+int os::socket_close(int fd) {
+ RESTARTABLE_RETURN_INT(::close(fd));
+}
+
+int os::recv(int fd, char *buf, int nBytes, int flags) {
+ INTERRUPTIBLE_RETURN_INT(::recv(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
+}
+
+
+int os::send(int fd, char *buf, int nBytes, int flags) {
+ INTERRUPTIBLE_RETURN_INT(::send(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
+}
+
+int os::raw_send(int fd, char *buf, int nBytes, int flags) {
+ RESTARTABLE_RETURN_INT(::send(fd, buf, nBytes, flags));
+}
+
+// As both poll and select can be interrupted by signals, we have to be
+// prepared to restart the system call after updating the timeout, unless
+// a poll() is done with timeout == -1, in which case we repeat with this
+// "wait forever" value.
+
+int os::timeout(int fd, long timeout) {
+ int res;
+ struct timeval t;
+ julong prevtime, newtime;
+ static const char* aNull = 0;
+ struct pollfd pfd;
+ pfd.fd = fd;
+ pfd.events = POLLIN;
+
+ gettimeofday(&t, &aNull);
+ prevtime = ((julong)t.tv_sec * 1000) + t.tv_usec / 1000;
+
+ for(;;) {
+ INTERRUPTIBLE_NORESTART(::poll(&pfd, 1, timeout), res, os::Solaris::clear_interrupted);
+ if(res == OS_ERR && errno == EINTR) {
+ if(timeout != -1) {
+ gettimeofday(&t, &aNull);
+ newtime = ((julong)t.tv_sec * 1000) + t.tv_usec /1000;
+ timeout -= newtime - prevtime;
+ if(timeout <= 0)
+ return OS_OK;
+ prevtime = newtime;
+ }
+ } else return res;
+ }
+}
+
+int os::connect(int fd, struct sockaddr *him, int len) {
+ int _result;
+ INTERRUPTIBLE_NORESTART(::connect(fd, him, len), _result,
+ os::Solaris::clear_interrupted);
+
+ // Depending on when thread interruption is reset, _result could be
+ // one of two values when errno == EINTR
+
+ if (((_result == OS_INTRPT) || (_result == OS_ERR))
+ && (errno == EINTR)) {
+ /* restarting a connect() changes its errno semantics */
+ INTERRUPTIBLE(::connect(fd, him, len), _result,
+ os::Solaris::clear_interrupted);
+ /* undo these changes */
+ if (_result == OS_ERR) {
+ if (errno == EALREADY) {
+ errno = EINPROGRESS; /* fall through */
+ } else if (errno == EISCONN) {
+ errno = 0;
+ return OS_OK;
+ }
+ }
+ }
+ return _result;
+ }
+
+int os::accept(int fd, struct sockaddr *him, int *len) {
+ if (fd < 0)
+ return OS_ERR;
+ INTERRUPTIBLE_RETURN_INT((int)::accept(fd, him,\
+ (socklen_t*) len), os::Solaris::clear_interrupted);
+ }
+
+int os::recvfrom(int fd, char *buf, int nBytes, int flags,
+ sockaddr *from, int *fromlen) {
+ //%%note jvm_r11
+ INTERRUPTIBLE_RETURN_INT((int)::recvfrom(fd, buf, nBytes,\
+ flags, from, fromlen), os::Solaris::clear_interrupted);
+}
+
+int os::sendto(int fd, char *buf, int len, int flags,
+ struct sockaddr *to, int tolen) {
+ //%%note jvm_r11
+ INTERRUPTIBLE_RETURN_INT((int)::sendto(fd, buf, len, flags,\
+ to, tolen), os::Solaris::clear_interrupted);
+}
+
+int os::socket_available(int fd, jint *pbytes) {
+ if (fd < 0)
+ return OS_OK;
+
+ int ret;
+
+ RESTARTABLE(::ioctl(fd, FIONREAD, pbytes), ret);
+
+ //%% note ioctl can return 0 when successful, JVM_SocketAvailable
+ // is expected to return 0 on failure and 1 on success to the jdk.
+
+ return (ret == OS_ERR) ? 0 : 1;
+}
+
+
+int os::bind(int fd, struct sockaddr *him, int len) {
+ INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\
+ os::Solaris::clear_interrupted);
+}
diff --git a/hotspot/src/os/solaris/vm/os_solaris.hpp b/hotspot/src/os/solaris/vm/os_solaris.hpp
index 07f7c75159f..991cf021082 100644
--- a/hotspot/src/os/solaris/vm/os_solaris.hpp
+++ b/hotspot/src/os/solaris/vm/os_solaris.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_SOLARIS_VM_OS_SOLARIS_HPP
+#define OS_SOLARIS_VM_OS_SOLARIS_HPP
+
// Solaris_OS defines the interface to Solaris operating systems
class Solaris {
@@ -394,3 +397,5 @@ class PlatformParker : public CHeapObj {
assert_status(status == 0, status, "mutex_init");
}
} ;
+
+#endif // OS_SOLARIS_VM_OS_SOLARIS_HPP
diff --git a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp
index 99f5e1aaa79..b1e42a52dcf 100644
--- a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp
+++ b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,30 @@
*
*/
+#ifndef OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP
+#define OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#ifdef TARGET_OS_ARCH_solaris_x86
+# include "atomic_solaris_x86.inline.hpp"
+# include "orderAccess_solaris_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_solaris_sparc
+# include "atomic_solaris_sparc.inline.hpp"
+# include "orderAccess_solaris_sparc.inline.hpp"
+#endif
+
+// System includes
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
inline const char* os::file_separator() { return "/"; }
inline const char* os::line_separator() { return "\n"; }
inline const char* os::path_separator() { return ":"; }
@@ -55,21 +79,19 @@ inline void os::split_reserved_memory(char *base, size_t size,
// Bang the shadow pages if they need to be touched to be mapped.
inline void os::bang_stack_shadow_pages() {
}
+inline void os::dll_unload(void *lib) { ::dlclose(lib); }
-inline DIR* os::opendir(const char* dirname)
-{
+inline DIR* os::opendir(const char* dirname) {
assert(dirname != NULL, "just checking");
return ::opendir(dirname);
}
-inline int os::readdir_buf_size(const char *path)
-{
+inline int os::readdir_buf_size(const char *path) {
int size = pathconf(path, _PC_NAME_MAX);
return (size < 0 ? MAXPATHLEN : size) + sizeof(dirent) + 1;
}
-inline struct dirent* os::readdir(DIR* dirp, dirent* dbuf)
-{
+inline struct dirent* os::readdir(DIR* dirp, dirent* dbuf) {
assert(dirp != NULL, "just checking");
#if defined(_LP64) || defined(_GNU_SOURCE)
dirent* p;
@@ -85,9 +107,8 @@ inline struct dirent* os::readdir(DIR* dirp, dirent* dbuf)
#endif // defined(_LP64) || defined(_GNU_SOURCE)
}
-inline int os::closedir(DIR *dirp)
-{
- assert(dirp != NULL, "just checking");
+inline int os::closedir(DIR *dirp) {
+ assert(dirp != NULL, "argument is NULL");
return ::closedir(dirp);
}
@@ -207,3 +228,39 @@ do { \
inline bool os::numa_has_static_binding() { return false; }
inline bool os::numa_has_group_homing() { return true; }
+
+inline int os::socket(int domain, int type, int protocol) {
+ return ::socket(domain, type, protocol);
+}
+
+inline int os::listen(int fd, int count) {
+ if (fd < 0) return OS_ERR;
+
+ return ::listen(fd, count);
+}
+
+inline int os::socket_shutdown(int fd, int howto){
+ return ::shutdown(fd, howto);
+}
+
+inline int os::get_sock_name(int fd, struct sockaddr *him, int *len){
+ return ::getsockname(fd, him, (socklen_t*) len);
+}
+
+inline int os::get_host_name(char* name, int namelen){
+ return ::gethostname(name, namelen);
+}
+
+inline struct hostent* os::get_host_by_name(char* name) {
+ return ::gethostbyname(name);
+}
+inline int os::get_sock_opt(int fd, int level, int optname,
+ char *optval, int* optlen){
+ return ::getsockopt(fd, level, optname, optval, (socklen_t*) optlen);
+}
+
+inline int os::set_sock_opt(int fd, int level, int optname,
+ const char *optval, int optlen){
+ return ::setsockopt(fd, level, optname, optval, optlen);
+}
+#endif // OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP
diff --git a/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp b/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp
index dad0bf353c7..1d1ff260cd8 100644
--- a/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,15 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_perfMemory_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/oop.inline.hpp"
+#include "os_solaris.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/perfMemory.hpp"
+#include "utilities/exceptions.hpp"
// put OS-includes here
# include
diff --git a/hotspot/src/os/solaris/vm/stubRoutines_solaris.cpp b/hotspot/src/os/solaris/vm/stubRoutines_solaris.cpp
index f827ec7115d..3723a0f7dfa 100644
--- a/hotspot/src/os/solaris/vm/stubRoutines_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/stubRoutines_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,5 +22,7 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubRoutines_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "runtime/stubRoutines.hpp"
+
diff --git a/hotspot/src/os/solaris/vm/threadCritical_solaris.cpp b/hotspot/src/os/solaris/vm/threadCritical_solaris.cpp
index d629f3da7f3..b658183c2f3 100644
--- a/hotspot/src/os/solaris/vm/threadCritical_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/threadCritical_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_threadCritical_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/threadCritical.hpp"
+#include "thread_solaris.inline.hpp"
// OS-includes here
#include
diff --git a/hotspot/src/os/solaris/vm/thread_solaris.inline.hpp b/hotspot/src/os/solaris/vm/thread_solaris.inline.hpp
index fb0ee5f0f7e..903be9ddc1d 100644
--- a/hotspot/src/os/solaris/vm/thread_solaris.inline.hpp
+++ b/hotspot/src/os/solaris/vm/thread_solaris.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, 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,6 +22,24 @@
*
*/
+#ifndef OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP
+#define OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/prefetch.hpp"
+#include "runtime/thread.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#ifdef TARGET_OS_ARCH_solaris_x86
+# include "atomic_solaris_x86.inline.hpp"
+# include "orderAccess_solaris_x86.inline.hpp"
+# include "prefetch_solaris_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_solaris_sparc
+# include "atomic_solaris_sparc.inline.hpp"
+# include "orderAccess_solaris_sparc.inline.hpp"
+# include "prefetch_solaris_sparc.inline.hpp"
+#endif
+
// Thread::current is "hot" it's called > 128K times in the 1st 500 msecs of
// startup.
// ThreadLocalStorage::thread is warm -- it's called > 16K times in the same
@@ -35,11 +53,13 @@ inline Thread* ThreadLocalStorage::thread() {
uintptr_t raw = pd_raw_thread_id();
int ix = pd_cache_index(raw);
- Thread *Candidate = ThreadLocalStorage::_get_thread_cache[ix];
- if (Candidate->_self_raw_id == raw) {
+ Thread* candidate = ThreadLocalStorage::_get_thread_cache[ix];
+ if (candidate->self_raw_id() == raw) {
// hit
- return Candidate;
+ return candidate;
} else {
return ThreadLocalStorage::get_thread_via_cache_slowly(raw, ix);
}
}
+
+#endif // OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP
diff --git a/hotspot/src/os/solaris/vm/vmError_solaris.cpp b/hotspot/src/os/solaris/vm/vmError_solaris.cpp
index 65026a85488..6f3f5b06fe6 100644
--- a/hotspot/src/os/solaris/vm/vmError_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/vmError_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_vmError_solaris.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/os.hpp"
+#include "runtime/thread.hpp"
+#include "utilities/vmError.hpp"
#include
#include
diff --git a/hotspot/src/os/windows/launcher/java_md.c b/hotspot/src/os/windows/launcher/java_md.c
new file mode 100644
index 00000000000..2fde40ad205
--- /dev/null
+++ b/hotspot/src/os/windows/launcher/java_md.c
@@ -0,0 +1,1512 @@
+/*
+ * Copyright (c) 1999, 2010, 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include "java.h"
+#ifndef GAMMA
+#include "version_comp.h"
+#endif
+
+#define JVM_DLL "jvm.dll"
+#define JAVA_DLL "java.dll"
+#define CRT_DLL "msvcr71.dll"
+
+/*
+ * Prototypes.
+ */
+static jboolean GetPublicJREHome(char *path, jint pathsize);
+static jboolean GetJVMPath(const char *jrepath, const char *jvmtype,
+ char *jvmpath, jint jvmpathsize);
+static jboolean GetJREPath(char *path, jint pathsize);
+static void EnsureJreInstallation(const char *jrepath);
+
+/* We supports warmup for UI stack that is performed in parallel
+ * to VM initialization.
+ * This helps to improve startup of UI application as warmup phase
+ * might be long due to initialization of OS or hardware resources.
+ * It is not CPU bound and therefore it does not interfere with VM init.
+ * Obviously such warmup only has sense for UI apps and therefore it needs
+ * to be explicitly requested by passing -Dsun.awt.warmup=true property
+ * (this is always the case for plugin/javaws).
+ *
+ * Implementation launches new thread after VM starts and use it to perform
+ * warmup code (platform dependent).
+ * This thread is later reused as AWT toolkit thread as graphics toolkit
+ * often assume that they are used from the same thread they were launched on.
+ *
+ * At the moment we only support warmup for D3D. It only possible on windows
+ * and only if other flags do not prohibit this (e.g. OpenGL support requested).
+ */
+#undef ENABLE_AWT_PRELOAD
+#ifndef JAVA_ARGS /* turn off AWT preloading for javac, jar, etc */
+ #ifdef _X86_ /* for now disable AWT preloading for 64bit */
+ #define ENABLE_AWT_PRELOAD
+ #endif
+#endif
+
+#ifdef ENABLE_AWT_PRELOAD
+/* "AWT was preloaded" flag;
+ * Turned on by AWTPreload().
+ */
+int awtPreloaded = 0;
+
+/* Calls a function with the name specified.
+ * The function must be int(*fn)(void).
+ */
+int AWTPreload(const char *funcName);
+/* Stops AWT preloading. */
+void AWTPreloadStop();
+
+/* D3D preloading */
+/* -1: not initialized; 0: OFF, 1: ON */
+int awtPreloadD3D = -1;
+/* Command line parameter to swith D3D preloading on. */
+#define PARAM_PRELOAD_D3D "-Dsun.awt.warmup"
+/* D3D/OpenGL management parameters (may disable D3D preloading) */
+#define PARAM_NODDRAW "-Dsun.java2d.noddraw"
+#define PARAM_D3D "-Dsun.java2d.d3d"
+#define PARAM_OPENGL "-Dsun.java2d.opengl"
+/* funtion in awt.dll (src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp) */
+#define D3D_PRELOAD_FUNC "preloadD3D"
+
+
+/* Extracts value of a parameter with the specified name
+ * from command line argument (returns pointer in the argument).
+ * Returns NULL if the argument does not contains the parameter.
+ * e.g.:
+ * GetParamValue("theParam", "theParam=value") returns pointer to "value".
+ */
+const char * GetParamValue(const char *paramName, const char *arg) {
+ int nameLen = strlen(paramName);
+ if (strncmp(paramName, arg, nameLen) == 0) {
+ // arg[nameLen] is valid (may contain final NULL)
+ if (arg[nameLen] == '=') {
+ return arg + nameLen + 1;
+ }
+ }
+ return NULL;
+}
+
+/* Checks if commandline argument contains property specified
+ * and analyze it as boolean property (true/false).
+ * Returns -1 if the argument does not contain the parameter;
+ * Returns 1 if the argument contains the parameter and its value is "true";
+ * Returns 0 if the argument contains the parameter and its value is "false".
+ */
+int GetBoolParamValue(const char *paramName, const char *arg) {
+ const char * paramValue = GetParamValue(paramName, arg);
+ if (paramValue != NULL) {
+ if (stricmp(paramValue, "true") == 0) {
+ return 1;
+ }
+ if (stricmp(paramValue, "false") == 0) {
+ return 0;
+ }
+ }
+ return -1;
+}
+#endif /* ENABLE_AWT_PRELOAD */
+
+
+const char *
+GetArch()
+{
+
+#ifdef _M_AMD64
+ return "amd64";
+#elif defined(_M_IA64)
+ return "ia64";
+#else
+ return "i386";
+#endif
+}
+
+/*
+ *
+ */
+void
+CreateExecutionEnvironment(int *_argc,
+ char ***_argv,
+ char jrepath[],
+ jint so_jrepath,
+ char jvmpath[],
+ jint so_jvmpath,
+ char **original_argv) {
+#ifndef GAMMA
+ char * jvmtype;
+
+ /* Find out where the JRE is that we will be using. */
+ if (!GetJREPath(jrepath, so_jrepath)) {
+ ReportErrorMessage("Error: could not find Java SE Runtime Environment.",
+ JNI_TRUE);
+ exit(2);
+ }
+
+ /* Do this before we read jvm.cfg */
+ EnsureJreInstallation(jrepath);
+
+ /* Find the specified JVM type */
+ if (ReadKnownVMs(jrepath, (char*)GetArch(), JNI_FALSE) < 1) {
+ ReportErrorMessage("Error: no known VMs. (check for corrupt jvm.cfg file)",
+ JNI_TRUE);
+ exit(1);
+ }
+ jvmtype = CheckJvmType(_argc, _argv, JNI_FALSE);
+
+ jvmpath[0] = '\0';
+ if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) {
+ char * message=NULL;
+ const char * format = "Error: no `%s' JVM at `%s'.";
+ message = (char *)JLI_MemAlloc((strlen(format)+strlen(jvmtype)+
+ strlen(jvmpath)) * sizeof(char));
+ sprintf(message,format, jvmtype, jvmpath);
+ ReportErrorMessage(message, JNI_TRUE);
+ exit(4);
+ }
+ /* If we got here, jvmpath has been correctly initialized. */
+
+#else /* ifndef GAMMA */
+
+ /*
+ * gamma launcher is simpler in that it doesn't handle VM flavors, data
+ * model, etc. Assuming everything is set-up correctly
+ * all we need to do here is to return correct path names. See also
+ * GetJVMPath() and GetApplicationHome().
+ */
+
+ {
+ if (!GetJREPath(jrepath, so_jrepath) ) {
+ ReportErrorMessage("Error: could not find Java SE Runtime Environment.",
+ JNI_TRUE);
+ exit(2);
+ }
+
+ if (!GetJVMPath(jrepath, NULL, jvmpath, so_jvmpath)) {
+ char * message=NULL;
+ const char * format = "Error: no JVM at `%s'.";
+ message = (char *)JLI_MemAlloc((strlen(format)+
+ strlen(jvmpath)) * sizeof(char));
+ sprintf(message, format, jvmpath);
+ ReportErrorMessage(message, JNI_TRUE);
+ exit(4);
+ }
+ }
+
+#endif /* ifndef GAMMA */
+
+}
+
+
+static jboolean
+LoadMSVCRT()
+{
+ // Only do this once
+ static int loaded = 0;
+ char crtpath[MAXPATHLEN];
+
+ if (!loaded) {
+ /*
+ * The Microsoft C Runtime Library needs to be loaded first. A copy is
+ * assumed to be present in the "JRE path" directory. If it is not found
+ * there (or "JRE path" fails to resolve), skip the explicit load and let
+ * nature take its course, which is likely to be a failure to execute.
+ */
+ if (GetJREPath(crtpath, MAXPATHLEN)) {
+ (void)strcat(crtpath, "\\bin\\" CRT_DLL); /* Add crt dll */
+ if (_launcher_debug) {
+ printf("CRT path is %s\n", crtpath);
+ }
+ if (_access(crtpath, 0) == 0) {
+ if (LoadLibrary(crtpath) == 0) {
+ ReportErrorMessage2("Error loading: %s", crtpath, JNI_TRUE);
+ return JNI_FALSE;
+ }
+ }
+ }
+ loaded = 1;
+ }
+ return JNI_TRUE;
+}
+
+/*
+ * The preJVMStart is a function in the jkernel.dll, which
+ * performs the final step of synthesizing back the decomposed
+ * modules (partial install) to the full JRE. Any tool which
+ * uses the JRE must peform this step to ensure the complete synthesis.
+ * The EnsureJreInstallation function calls preJVMStart based on
+ * the conditions outlined below, noting that the operation
+ * will fail silently if any of conditions are not met.
+ * NOTE: this call must be made before jvm.dll is loaded, or jvm.cfg
+ * is read, since jvm.cfg will be modified by the preJVMStart.
+ * 1. Are we on a supported platform.
+ * 2. Find the location of the JRE or the Kernel JRE.
+ * 3. check existence of JREHOME/lib/bundles
+ * 4. check jkernel.dll and invoke the entry-point
+ */
+typedef VOID (WINAPI *PREJVMSTART)();
+
+static void
+EnsureJreInstallation(const char* jrepath)
+{
+ HINSTANCE handle;
+ char tmpbuf[MAXPATHLEN];
+ PREJVMSTART PreJVMStart;
+ struct stat s;
+
+ /* 32 bit windows only please */
+ if (strcmp(GetArch(), "i386") != 0 ) {
+ if (_launcher_debug) {
+ printf("EnsureJreInstallation:unsupported platform\n");
+ }
+ return;
+ }
+ /* Does our bundle directory exist ? */
+ strcpy(tmpbuf, jrepath);
+ strcat(tmpbuf, "\\lib\\bundles");
+ if (stat(tmpbuf, &s) != 0) {
+ if (_launcher_debug) {
+ printf("EnsureJreInstallation:<%s>:not found\n", tmpbuf);
+ }
+ return;
+ }
+ /* Does our jkernel dll exist ? */
+ strcpy(tmpbuf, jrepath);
+ strcat(tmpbuf, "\\bin\\jkernel.dll");
+ if (stat(tmpbuf, &s) != 0) {
+ if (_launcher_debug) {
+ printf("EnsureJreInstallation:<%s>:not found\n", tmpbuf);
+ }
+ return;
+ }
+ /* The Microsoft C Runtime Library needs to be loaded first. */
+ if (!LoadMSVCRT()) {
+ if (_launcher_debug) {
+ printf("EnsureJreInstallation:could not load C runtime DLL\n");
+ }
+ return;
+ }
+ /* Load the jkernel.dll */
+ if ((handle = LoadLibrary(tmpbuf)) == 0) {
+ if (_launcher_debug) {
+ printf("EnsureJreInstallation:%s:load failed\n", tmpbuf);
+ }
+ return;
+ }
+ /* Get the function address */
+ PreJVMStart = (PREJVMSTART)GetProcAddress(handle, "preJVMStart");
+ if (PreJVMStart == NULL) {
+ if (_launcher_debug) {
+ printf("EnsureJreInstallation:preJVMStart:function lookup failed\n");
+ }
+ FreeLibrary(handle);
+ return;
+ }
+ PreJVMStart();
+ if (_launcher_debug) {
+ printf("EnsureJreInstallation:preJVMStart:called\n");
+ }
+ FreeLibrary(handle);
+ return;
+}
+
+/*
+ * Find path to JRE based on .exe's location or registry settings.
+ */
+jboolean
+GetJREPath(char *path, jint pathsize)
+{
+ char javadll[MAXPATHLEN];
+ struct stat s;
+
+ if (GetApplicationHome(path, pathsize)) {
+ /* Is JRE co-located with the application? */
+ sprintf(javadll, "%s\\bin\\" JAVA_DLL, path);
+ if (stat(javadll, &s) == 0) {
+ goto found;
+ }
+
+ /* Does this app ship a private JRE in \jre directory? */
+ sprintf(javadll, "%s\\jre\\bin\\" JAVA_DLL, path);
+ if (stat(javadll, &s) == 0) {
+ strcat(path, "\\jre");
+ goto found;
+ }
+ }
+
+#ifndef GAMMA
+ /* Look for a public JRE on this machine. */
+ if (GetPublicJREHome(path, pathsize)) {
+ goto found;
+ }
+#endif
+
+ fprintf(stderr, "Error: could not find " JAVA_DLL "\n");
+ return JNI_FALSE;
+
+ found:
+ if (_launcher_debug)
+ printf("JRE path is %s\n", path);
+ return JNI_TRUE;
+}
+
+/*
+ * Given a JRE location and a JVM type, construct what the name the
+ * JVM shared library will be. Return true, if such a library
+ * exists, false otherwise.
+ */
+static jboolean
+GetJVMPath(const char *jrepath, const char *jvmtype,
+ char *jvmpath, jint jvmpathsize)
+{
+ struct stat s;
+
+#ifndef GAMMA
+ if (strchr(jvmtype, '/') || strchr(jvmtype, '\\')) {
+ sprintf(jvmpath, "%s\\" JVM_DLL, jvmtype);
+ } else {
+ sprintf(jvmpath, "%s\\bin\\%s\\" JVM_DLL, jrepath, jvmtype);
+ }
+#else
+ /*
+ * For gamma launcher, JVM is either built-in or in the same directory.
+ * Either way we return "/jvm.dll" where is the
+ * directory where gamma launcher is located.
+ */
+
+ char *p;
+ GetModuleFileName(0, jvmpath, jvmpathsize);
+
+ p = strrchr(jvmpath, '\\');
+ if (p) {
+ /* replace executable name with libjvm.so */
+ snprintf(p + 1, jvmpathsize - (p + 1 - jvmpath), "%s", JVM_DLL);
+ } else {
+ /* this case shouldn't happen */
+ snprintf(jvmpath, jvmpathsize, "%s", JVM_DLL);
+ }
+#endif /* ifndef GAMMA */
+
+ if (stat(jvmpath, &s) == 0) {
+ return JNI_TRUE;
+ } else {
+ return JNI_FALSE;
+ }
+}
+
+/*
+ * Load a jvm from "jvmpath" and initialize the invocation functions.
+ */
+jboolean
+LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn)
+{
+#ifdef GAMMA
+ /* JVM is directly linked with gamma launcher; no Loadlibrary() */
+ ifn->CreateJavaVM = JNI_CreateJavaVM;
+ ifn->GetDefaultJavaVMInitArgs = JNI_GetDefaultJavaVMInitArgs;
+ return JNI_TRUE;
+#else
+ HINSTANCE handle;
+
+ if (_launcher_debug) {
+ printf("JVM path is %s\n", jvmpath);
+ }
+
+ /* The Microsoft C Runtime Library needs to be loaded first. */
+ LoadMSVCRT();
+
+ /* Load the Java VM DLL */
+ if ((handle = LoadLibrary(jvmpath)) == 0) {
+ ReportErrorMessage2("Error loading: %s", (char *)jvmpath, JNI_TRUE);
+ return JNI_FALSE;
+ }
+
+ /* Now get the function addresses */
+ ifn->CreateJavaVM =
+ (void *)GetProcAddress(handle, "JNI_CreateJavaVM");
+ ifn->GetDefaultJavaVMInitArgs =
+ (void *)GetProcAddress(handle, "JNI_GetDefaultJavaVMInitArgs");
+ if (ifn->CreateJavaVM == 0 || ifn->GetDefaultJavaVMInitArgs == 0) {
+ ReportErrorMessage2("Error: can't find JNI interfaces in: %s",
+ (char *)jvmpath, JNI_TRUE);
+ return JNI_FALSE;
+ }
+
+ return JNI_TRUE;
+#endif /* ifndef GAMMA */
+}
+
+/*
+ * If app is "c:\foo\bin\javac", then put "c:\foo" into buf.
+ */
+jboolean
+GetApplicationHome(char *buf, jint bufsize)
+{
+#ifndef GAMMA
+ char *cp;
+ GetModuleFileName(0, buf, bufsize);
+ *strrchr(buf, '\\') = '\0'; /* remove .exe file name */
+ if ((cp = strrchr(buf, '\\')) == 0) {
+ /* This happens if the application is in a drive root, and
+ * there is no bin directory. */
+ buf[0] = '\0';
+ return JNI_FALSE;
+ }
+ *cp = '\0'; /* remove the bin\ part */
+ return JNI_TRUE;
+
+#else /* ifndef GAMMA */
+
+ char env[MAXPATHLEN + 1];
+
+ /* gamma launcher uses ALT_JAVA_HOME environment variable or jdkpath.txt file to find JDK/JRE */
+
+ if (getenv("ALT_JAVA_HOME") != NULL) {
+ snprintf(buf, bufsize, "%s", getenv("ALT_JAVA_HOME"));
+ }
+ else {
+ char path[MAXPATHLEN + 1];
+ char* p;
+ int len;
+ FILE* fp;
+
+ // find the path to the currect executable
+ len = GetModuleFileName(NULL, path, MAXPATHLEN + 1);
+ if (len == 0 || len > MAXPATHLEN) {
+ printf("Could not get directory of current executable.");
+ return JNI_FALSE;
+ }
+ // remove last path component ("hotspot.exe")
+ p = strrchr(path, '\\');
+ if (p == NULL) {
+ printf("Could not parse directory of current executable.\n");
+ return JNI_FALSE;
+ }
+ *p = '\0';
+
+ // open jdkpath.txt and read JAVA_HOME from it
+ if (strlen(path) + strlen("\\jdkpath.txt") + 1 >= MAXPATHLEN) {
+ printf("Path too long: %s\n", path);
+ return JNI_FALSE;
+ }
+ strcat(path, "\\jdkpath.txt");
+ fp = fopen(path, "r");
+ if (fp == NULL) {
+ printf("Could not open file %s to get path to JDK.\n", path);
+ return JNI_FALSE;
+ }
+
+ if (fgets(buf, bufsize, fp) == NULL) {
+ printf("Could not read from file %s to get path to JDK.\n", path);
+ fclose(fp);
+ return JNI_FALSE;
+ }
+ // trim the buffer
+ p = buf + strlen(buf) - 1;
+ while(isspace(*p)) {
+ *p = '\0';
+ p--;
+ }
+ fclose(fp);
+ }
+
+ _snprintf(env, MAXPATHLEN, "JAVA_HOME=%s", buf);
+ _putenv(env);
+
+ return JNI_TRUE;
+#endif /* ifndef GAMMA */
+}
+
+#ifdef JAVAW
+__declspec(dllimport) char **__initenv;
+
+int WINAPI
+WinMain(HINSTANCE inst, HINSTANCE previnst, LPSTR cmdline, int cmdshow)
+{
+ int ret;
+
+ __initenv = _environ;
+ ret = main(__argc, __argv);
+
+ return ret;
+}
+#endif
+
+#ifndef GAMMA
+
+/*
+ * Helpers to look in the registry for a public JRE.
+ */
+ /* Same for 1.5.0, 1.5.1, 1.5.2 etc. */
+#define DOTRELEASE JDK_MAJOR_VERSION "." JDK_MINOR_VERSION
+#define JRE_KEY "Software\\JavaSoft\\Java Runtime Environment"
+
+static jboolean
+GetStringFromRegistry(HKEY key, const char *name, char *buf, jint bufsize)
+{
+ DWORD type, size;
+
+ if (RegQueryValueEx(key, name, 0, &type, 0, &size) == 0
+ && type == REG_SZ
+ && (size < (unsigned int)bufsize)) {
+ if (RegQueryValueEx(key, name, 0, 0, buf, &size) == 0) {
+ return JNI_TRUE;
+ }
+ }
+ return JNI_FALSE;
+}
+
+static jboolean
+GetPublicJREHome(char *buf, jint bufsize)
+{
+ HKEY key, subkey;
+ char version[MAXPATHLEN];
+
+ /*
+ * Note: There is a very similar implementation of the following
+ * registry reading code in the Windows java control panel (javacp.cpl).
+ * If there are bugs here, a similar bug probably exists there. Hence,
+ * changes here require inspection there.
+ */
+
+ /* Find the current version of the JRE */
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) {
+ fprintf(stderr, "Error opening registry key '" JRE_KEY "'\n");
+ return JNI_FALSE;
+ }
+
+ if (!GetStringFromRegistry(key, "CurrentVersion",
+ version, sizeof(version))) {
+ fprintf(stderr, "Failed reading value of registry key:\n\t"
+ JRE_KEY "\\CurrentVersion\n");
+ RegCloseKey(key);
+ return JNI_FALSE;
+ }
+
+ if (strcmp(version, DOTRELEASE) != 0) {
+ fprintf(stderr, "Registry key '" JRE_KEY "\\CurrentVersion'\nhas "
+ "value '%s', but '" DOTRELEASE "' is required.\n", version);
+ RegCloseKey(key);
+ return JNI_FALSE;
+ }
+
+ /* Find directory where the current version is installed. */
+ if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) {
+ fprintf(stderr, "Error opening registry key '"
+ JRE_KEY "\\%s'\n", version);
+ RegCloseKey(key);
+ return JNI_FALSE;
+ }
+
+ if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) {
+ fprintf(stderr, "Failed reading value of registry key:\n\t"
+ JRE_KEY "\\%s\\JavaHome\n", version);
+ RegCloseKey(key);
+ RegCloseKey(subkey);
+ return JNI_FALSE;
+ }
+
+ if (_launcher_debug) {
+ char micro[MAXPATHLEN];
+ if (!GetStringFromRegistry(subkey, "MicroVersion", micro,
+ sizeof(micro))) {
+ printf("Warning: Can't read MicroVersion\n");
+ micro[0] = '\0';
+ }
+ printf("Version major.minor.micro = %s.%s\n", version, micro);
+ }
+
+ RegCloseKey(key);
+ RegCloseKey(subkey);
+ return JNI_TRUE;
+}
+
+#endif /* ifndef GAMMA */
+
+/*
+ * Support for doing cheap, accurate interval timing.
+ */
+static jboolean counterAvailable = JNI_FALSE;
+static jboolean counterInitialized = JNI_FALSE;
+static LARGE_INTEGER counterFrequency;
+
+jlong CounterGet()
+{
+ LARGE_INTEGER count;
+
+ if (!counterInitialized) {
+ counterAvailable = QueryPerformanceFrequency(&counterFrequency);
+ counterInitialized = JNI_TRUE;
+ }
+ if (!counterAvailable) {
+ return 0;
+ }
+ QueryPerformanceCounter(&count);
+ return (jlong)(count.QuadPart);
+}
+
+jlong Counter2Micros(jlong counts)
+{
+ if (!counterAvailable || !counterInitialized) {
+ return 0;
+ }
+ return (counts * 1000 * 1000)/counterFrequency.QuadPart;
+}
+
+void ReportErrorMessage(char * message, jboolean always) {
+#ifdef JAVAW
+ if (message != NULL) {
+ MessageBox(NULL, message, "Java Virtual Machine Launcher",
+ (MB_OK|MB_ICONSTOP|MB_APPLMODAL));
+ }
+#else
+ if (always) {
+ fprintf(stderr, "%s\n", message);
+ }
+#endif
+}
+
+void ReportErrorMessage2(char * format, char * string, jboolean always) {
+ /*
+ * The format argument must be a printf format string with one %s
+ * argument, which is passed the string argument.
+ */
+#ifdef JAVAW
+ size_t size;
+ char * message;
+ size = strlen(format) + strlen(string);
+ message = (char*)JLI_MemAlloc(size*sizeof(char));
+ sprintf(message, (const char *)format, string);
+
+ if (message != NULL) {
+ MessageBox(NULL, message, "Java Virtual Machine Launcher",
+ (MB_OK|MB_ICONSTOP|MB_APPLMODAL));
+ JLI_MemFree(message);
+ }
+#else
+ if (always) {
+ fprintf(stderr, (const char *)format, string);
+ fprintf(stderr, "\n");
+ }
+#endif
+}
+
+/*
+ * As ReportErrorMessage2 (above) except the system message (if any)
+ * associated with this error is written to a second %s format specifier
+ * in the format argument.
+ */
+void ReportSysErrorMessage2(char * format, char * string, jboolean always) {
+ int save_errno = errno;
+ DWORD errval;
+ int freeit = 0;
+ char *errtext = NULL;
+
+ if ((errval = GetLastError()) != 0) { /* Platform SDK / DOS Error */
+ int n = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|
+ FORMAT_MESSAGE_IGNORE_INSERTS|FORMAT_MESSAGE_ALLOCATE_BUFFER,
+ NULL, errval, 0, (LPTSTR)&errtext, 0, NULL);
+ if (errtext == NULL || n == 0) { /* Paranoia check */
+ errtext = "";
+ n = 0;
+ } else {
+ freeit = 1;
+ if (n > 2) { /* Drop final CR, LF */
+ if (errtext[n - 1] == '\n') n--;
+ if (errtext[n - 1] == '\r') n--;
+ errtext[n] = '\0';
+ }
+ }
+ } else /* C runtime error that has no corresponding DOS error code */
+ errtext = strerror(save_errno);
+
+#ifdef JAVAW
+ {
+ size_t size;
+ char * message;
+ size = strlen(format) + strlen(string) + strlen(errtext);
+ message = (char*)JLI_MemAlloc(size*sizeof(char));
+ sprintf(message, (const char *)format, string, errtext);
+
+ if (message != NULL) {
+ MessageBox(NULL, message, "Java Virtual Machine Launcher",
+ (MB_OK|MB_ICONSTOP|MB_APPLMODAL));
+ JLI_MemFree(message);
+ }
+ }
+#else
+ if (always) {
+ fprintf(stderr, (const char *)format, string, errtext);
+ fprintf(stderr, "\n");
+ }
+#endif
+ if (freeit)
+ (void)LocalFree((HLOCAL)errtext);
+}
+
+void ReportExceptionDescription(JNIEnv * env) {
+#ifdef JAVAW
+ /*
+ * This code should be replaced by code which opens a window with
+ * the exception detail message.
+ */
+ (*env)->ExceptionDescribe(env);
+#else
+ (*env)->ExceptionDescribe(env);
+#endif
+}
+
+
+/*
+ * Return JNI_TRUE for an option string that has no effect but should
+ * _not_ be passed on to the vm; return JNI_FALSE otherwise. On
+ * windows, there are no options that should be screened in this
+ * manner.
+ */
+jboolean RemovableMachineDependentOption(char * option) {
+#ifdef ENABLE_AWT_PRELOAD
+ if (awtPreloadD3D < 0) {
+ /* Tests the command line parameter only if not set yet. */
+ if (GetBoolParamValue(PARAM_PRELOAD_D3D, option) == 1) {
+ awtPreloadD3D = 1;
+ }
+ }
+ if (awtPreloadD3D != 0) {
+ /* Don't test the command line parameters if already disabled. */
+ if (GetBoolParamValue(PARAM_NODDRAW, option) == 1
+ || GetBoolParamValue(PARAM_D3D, option) == 0
+ || GetBoolParamValue(PARAM_OPENGL, option) == 1)
+ {
+ awtPreloadD3D = 0;
+ }
+ }
+#endif /* ENABLE_AWT_PRELOAD */
+
+ return JNI_FALSE;
+}
+
+void PrintMachineDependentOptions() {
+ return;
+}
+
+#ifndef GAMMA
+
+jboolean
+ServerClassMachine() {
+ jboolean result = JNI_FALSE;
+#if defined(NEVER_ACT_AS_SERVER_CLASS_MACHINE)
+ result = JNI_FALSE;
+#elif defined(ALWAYS_ACT_AS_SERVER_CLASS_MACHINE)
+ result = JNI_TRUE;
+#endif
+ return result;
+}
+
+/*
+ * Determine if there is an acceptable JRE in the registry directory top_key.
+ * Upon locating the "best" one, return a fully qualified path to it.
+ * "Best" is defined as the most advanced JRE meeting the constraints
+ * contained in the manifest_info. If no JRE in this directory meets the
+ * constraints, return NULL.
+ *
+ * It doesn't matter if we get an error reading the registry, or we just
+ * don't find anything interesting in the directory. We just return NULL
+ * in either case.
+ */
+static char *
+ProcessDir(manifest_info* info, HKEY top_key) {
+ DWORD index = 0;
+ HKEY ver_key;
+ char name[MAXNAMELEN];
+ int len;
+ char *best = NULL;
+
+ /*
+ * Enumerate "/SOFTWARE/JavaSoft/Java Runtime Environment"
+ * searching for the best available version.
+ */
+ while (RegEnumKey(top_key, index, name, MAXNAMELEN) == ERROR_SUCCESS) {
+ index++;
+ if (JLI_AcceptableRelease(name, info->jre_version))
+ if ((best == NULL) || (JLI_ExactVersionId(name, best) > 0)) {
+ if (best != NULL)
+ JLI_MemFree(best);
+ best = JLI_StringDup(name);
+ }
+ }
+
+ /*
+ * Extract "JavaHome" from the "best" registry directory and return
+ * that path. If no appropriate version was located, or there is an
+ * error in extracting the "JavaHome" string, return null.
+ */
+ if (best == NULL)
+ return (NULL);
+ else {
+ if (RegOpenKeyEx(top_key, best, 0, KEY_READ, &ver_key)
+ != ERROR_SUCCESS) {
+ JLI_MemFree(best);
+ if (ver_key != NULL)
+ RegCloseKey(ver_key);
+ return (NULL);
+ }
+ JLI_MemFree(best);
+ len = MAXNAMELEN;
+ if (RegQueryValueEx(ver_key, "JavaHome", NULL, NULL, (LPBYTE)name, &len)
+ != ERROR_SUCCESS) {
+ if (ver_key != NULL)
+ RegCloseKey(ver_key);
+ return (NULL);
+ }
+ if (ver_key != NULL)
+ RegCloseKey(ver_key);
+ return (JLI_StringDup(name));
+ }
+}
+
+/*
+ * This is the global entry point. It examines the host for the optimal
+ * JRE to be used by scanning a set of registry entries. This set of entries
+ * is hardwired on Windows as "Software\JavaSoft\Java Runtime Environment"
+ * under the set of roots "{ HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE }".
+ *
+ * This routine simply opens each of these registry directories before passing
+ * control onto ProcessDir().
+ */
+char *
+LocateJRE(manifest_info* info) {
+ HKEY key = NULL;
+ char *path;
+ int key_index;
+ HKEY root_keys[2] = { HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE };
+
+ for (key_index = 0; key_index <= 1; key_index++) {
+ if (RegOpenKeyEx(root_keys[key_index], JRE_KEY, 0, KEY_READ, &key)
+ == ERROR_SUCCESS)
+ if ((path = ProcessDir(info, key)) != NULL) {
+ if (key != NULL)
+ RegCloseKey(key);
+ return (path);
+ }
+ if (key != NULL)
+ RegCloseKey(key);
+ }
+ return NULL;
+}
+
+
+/*
+ * Local helper routine to isolate a single token (option or argument)
+ * from the command line.
+ *
+ * This routine accepts a pointer to a character pointer. The first
+ * token (as defined by MSDN command-line argument syntax) is isolated
+ * from that string.
+ *
+ * Upon return, the input character pointer pointed to by the parameter s
+ * is updated to point to the remainding, unscanned, portion of the string,
+ * or to a null character if the entire string has been consummed.
+ *
+ * This function returns a pointer to a null-terminated string which
+ * contains the isolated first token, or to the null character if no
+ * token could be isolated.
+ *
+ * Note the side effect of modifying the input string s by the insertion
+ * of a null character, making it two strings.
+ *
+ * See "Parsing C Command-Line Arguments" in the MSDN Library for the
+ * parsing rule details. The rule summary from that specification is:
+ *
+ * * Arguments are delimited by white space, which is either a space or a tab.
+ *
+ * * A string surrounded by double quotation marks is interpreted as a single
+ * argument, regardless of white space contained within. A quoted string can
+ * be embedded in an argument. Note that the caret (^) is not recognized as
+ * an escape character or delimiter.
+ *
+ * * A double quotation mark preceded by a backslash, \", is interpreted as a
+ * literal double quotation mark (").
+ *
+ * * Backslashes are interpreted literally, unless they immediately precede a
+ * double quotation mark.
+ *
+ * * If an even number of backslashes is followed by a double quotation mark,
+ * then one backslash (\) is placed in the argv array for every pair of
+ * backslashes (\\), and the double quotation mark (") is interpreted as a
+ * string delimiter.
+ *
+ * * If an odd number of backslashes is followed by a double quotation mark,
+ * then one backslash (\) is placed in the argv array for every pair of
+ * backslashes (\\) and the double quotation mark is interpreted as an
+ * escape sequence by the remaining backslash, causing a literal double
+ * quotation mark (") to be placed in argv.
+ */
+static char*
+nextarg(char** s) {
+ char *p = *s;
+ char *head;
+ int slashes = 0;
+ int inquote = 0;
+
+ /*
+ * Strip leading whitespace, which MSDN defines as only space or tab.
+ * (Hence, no locale specific "isspace" here.)
+ */
+ while (*p != (char)0 && (*p == ' ' || *p == '\t'))
+ p++;
+ head = p; /* Save the start of the token to return */
+
+ /*
+ * Isolate a token from the command line.
+ */
+ while (*p != (char)0 && (inquote || !(*p == ' ' || *p == '\t'))) {
+ if (*p == '\\' && *(p+1) == '"' && slashes % 2 == 0)
+ p++;
+ else if (*p == '"')
+ inquote = !inquote;
+ slashes = (*p++ == '\\') ? slashes + 1 : 0;
+ }
+
+ /*
+ * If the token isolated isn't already terminated in a "char zero",
+ * then replace the whitespace character with one and move to the
+ * next character.
+ */
+ if (*p != (char)0)
+ *p++ = (char)0;
+
+ /*
+ * Update the parameter to point to the head of the remaining string
+ * reflecting the command line and return a pointer to the leading
+ * token which was isolated from the command line.
+ */
+ *s = p;
+ return (head);
+}
+
+/*
+ * Local helper routine to return a string equivalent to the input string
+ * s, but with quotes removed so the result is a string as would be found
+ * in argv[]. The returned string should be freed by a call to JLI_MemFree().
+ *
+ * The rules for quoting (and escaped quotes) are:
+ *
+ * 1 A double quotation mark preceded by a backslash, \", is interpreted as a
+ * literal double quotation mark (").
+ *
+ * 2 Backslashes are interpreted literally, unless they immediately precede a
+ * double quotation mark.
+ *
+ * 3 If an even number of backslashes is followed by a double quotation mark,
+ * then one backslash (\) is placed in the argv array for every pair of
+ * backslashes (\\), and the double quotation mark (") is interpreted as a
+ * string delimiter.
+ *
+ * 4 If an odd number of backslashes is followed by a double quotation mark,
+ * then one backslash (\) is placed in the argv array for every pair of
+ * backslashes (\\) and the double quotation mark is interpreted as an
+ * escape sequence by the remaining backslash, causing a literal double
+ * quotation mark (") to be placed in argv.
+ */
+static char*
+unquote(const char *s) {
+ const char *p = s; /* Pointer to the tail of the original string */
+ char *un = (char*)JLI_MemAlloc(strlen(s) + 1); /* Ptr to unquoted string */
+ char *pun = un; /* Pointer to the tail of the unquoted string */
+
+ while (*p != '\0') {
+ if (*p == '"') {
+ p++;
+ } else if (*p == '\\') {
+ const char *q = p + strspn(p,"\\");
+ if (*q == '"')
+ do {
+ *pun++ = '\\';
+ p += 2;
+ } while (*p == '\\' && p < q);
+ else
+ while (p < q)
+ *pun++ = *p++;
+ } else {
+ *pun++ = *p++;
+ }
+ }
+ *pun = '\0';
+ return un;
+}
+
+/*
+ * Given a path to a jre to execute, this routine checks if this process
+ * is indeed that jre. If not, it exec's that jre.
+ *
+ * We want to actually check the paths rather than just the version string
+ * built into the executable, so that given version specification will yield
+ * the exact same Java environment, regardless of the version of the arbitrary
+ * launcher we start with.
+ */
+void
+ExecJRE(char *jre, char **argv) {
+ int len;
+ char *progname;
+ char path[MAXPATHLEN + 1];
+
+ /*
+ * Determine the executable we are building (or in the rare case, running).
+ */
+#ifdef JAVA_ARGS /* javac, jar and friends. */
+ progname = "java";
+#else /* java, oldjava, javaw and friends */
+#ifdef PROGNAME
+ progname = PROGNAME;
+#else
+ {
+ char *s;
+ progname = *argv;
+ if ((s = strrchr(progname, FILE_SEPARATOR)) != 0) {
+ progname = s + 1;
+ }
+ }
+#endif /* PROGNAME */
+#endif /* JAVA_ARGS */
+
+ /*
+ * Resolve the real path to the currently running launcher.
+ */
+ len = GetModuleFileName(NULL, path, MAXPATHLEN + 1);
+ if (len == 0 || len > MAXPATHLEN) {
+ ReportSysErrorMessage2(
+ "Unable to resolve path to current %s executable: %s",
+ progname, JNI_TRUE);
+ exit(1);
+ }
+
+ if (_launcher_debug) {
+ printf("ExecJRE: old: %s\n", path);
+ printf("ExecJRE: new: %s\n", jre);
+ }
+
+ /*
+ * If the path to the selected JRE directory is a match to the initial
+ * portion of the path to the currently executing JRE, we have a winner!
+ * If so, just return. (strnicmp() is the Windows equiv. of strncasecmp().)
+ */
+ if (strnicmp(jre, path, strlen(jre)) == 0)
+ return; /* I am the droid you were looking for */
+
+ /*
+ * If this isn't the selected version, exec the selected version.
+ */
+ (void)strcat(strcat(strcpy(path, jre), "\\bin\\"), progname);
+ (void)strcat(path, ".exe");
+
+ /*
+ * Although Windows has an execv() entrypoint, it doesn't actually
+ * overlay a process: it can only create a new process and terminate
+ * the old process. Therefore, any processes waiting on the initial
+ * process wake up and they shouldn't. Hence, a chain of pseudo-zombie
+ * processes must be retained to maintain the proper wait semantics.
+ * Fortunately the image size of the launcher isn't too large at this
+ * time.
+ *
+ * If it weren't for this semantic flaw, the code below would be ...
+ *
+ * execv(path, argv);
+ * ReportErrorMessage2("Exec of %s failed\n", path, JNI_TRUE);
+ * exit(1);
+ *
+ * The incorrect exec semantics could be addressed by:
+ *
+ * exit((int)spawnv(_P_WAIT, path, argv));
+ *
+ * Unfortunately, a bug in Windows spawn/exec impementation prevents
+ * this from completely working. All the Windows POSIX process creation
+ * interfaces are implemented as wrappers around the native Windows
+ * function CreateProcess(). CreateProcess() takes a single string
+ * to specify command line options and arguments, so the POSIX routine
+ * wrappers build a single string from the argv[] array and in the
+ * process, any quoting information is lost.
+ *
+ * The solution to this to get the original command line, to process it
+ * to remove the new multiple JRE options (if any) as was done for argv
+ * in the common SelectVersion() routine and finally to pass it directly
+ * to the native CreateProcess() Windows process control interface.
+ */
+ {
+ char *cmdline;
+ char *p;
+ char *np;
+ char *ocl;
+ char *ccl;
+ char *unquoted;
+ DWORD exitCode;
+ STARTUPINFO si;
+ PROCESS_INFORMATION pi;
+
+ /*
+ * The following code block gets and processes the original command
+ * line, replacing the argv[0] equivalent in the command line with
+ * the path to the new executable and removing the appropriate
+ * Multiple JRE support options. Note that similar logic exists
+ * in the platform independent SelectVersion routine, but is
+ * replicated here due to the syntax of CreateProcess().
+ *
+ * The magic "+ 4" characters added to the command line length are
+ * 2 possible quotes around the path (argv[0]), a space after the
+ * path and a terminating null character.
+ */
+ ocl = GetCommandLine();
+ np = ccl = JLI_StringDup(ocl);
+ p = nextarg(&np); /* Discard argv[0] */
+ cmdline = (char *)JLI_MemAlloc(strlen(path) + strlen(np) + 4);
+ if (strchr(path, (int)' ') == NULL && strchr(path, (int)'\t') == NULL)
+ cmdline = strcpy(cmdline, path);
+ else
+ cmdline = strcat(strcat(strcpy(cmdline, "\""), path), "\"");
+
+ while (*np != (char)0) { /* While more command-line */
+ p = nextarg(&np);
+ if (*p != (char)0) { /* If a token was isolated */
+ unquoted = unquote(p);
+ if (*unquoted == '-') { /* Looks like an option */
+ if (strcmp(unquoted, "-classpath") == 0 ||
+ strcmp(unquoted, "-cp") == 0) { /* Unique cp syntax */
+ cmdline = strcat(strcat(cmdline, " "), p);
+ p = nextarg(&np);
+ if (*p != (char)0) /* If a token was isolated */
+ cmdline = strcat(strcat(cmdline, " "), p);
+ } else if (strncmp(unquoted, "-version:", 9) != 0 &&
+ strcmp(unquoted, "-jre-restrict-search") != 0 &&
+ strcmp(unquoted, "-no-jre-restrict-search") != 0) {
+ cmdline = strcat(strcat(cmdline, " "), p);
+ }
+ } else { /* End of options */
+ cmdline = strcat(strcat(cmdline, " "), p);
+ cmdline = strcat(strcat(cmdline, " "), np);
+ JLI_MemFree((void *)unquoted);
+ break;
+ }
+ JLI_MemFree((void *)unquoted);
+ }
+ }
+ JLI_MemFree((void *)ccl);
+
+ if (_launcher_debug) {
+ np = ccl = JLI_StringDup(cmdline);
+ p = nextarg(&np);
+ printf("ReExec Command: %s (%s)\n", path, p);
+ printf("ReExec Args: %s\n", np);
+ JLI_MemFree((void *)ccl);
+ }
+ (void)fflush(stdout);
+ (void)fflush(stderr);
+
+ /*
+ * The following code is modeled after a model presented in the
+ * Microsoft Technical Article "Moving Unix Applications to
+ * Windows NT" (March 6, 1994) and "Creating Processes" on MSDN
+ * (Februrary 2005). It approximates UNIX spawn semantics with
+ * the parent waiting for termination of the child.
+ */
+ memset(&si, 0, sizeof(si));
+ si.cb =sizeof(STARTUPINFO);
+ memset(&pi, 0, sizeof(pi));
+
+ if (!CreateProcess((LPCTSTR)path, /* executable name */
+ (LPTSTR)cmdline, /* command line */
+ (LPSECURITY_ATTRIBUTES)NULL, /* process security attr. */
+ (LPSECURITY_ATTRIBUTES)NULL, /* thread security attr. */
+ (BOOL)TRUE, /* inherits system handles */
+ (DWORD)0, /* creation flags */
+ (LPVOID)NULL, /* environment block */
+ (LPCTSTR)NULL, /* current directory */
+ (LPSTARTUPINFO)&si, /* (in) startup information */
+ (LPPROCESS_INFORMATION)&pi)) { /* (out) process information */
+ ReportSysErrorMessage2("CreateProcess(%s, ...) failed: %s",
+ path, JNI_TRUE);
+ exit(1);
+ }
+
+ if (WaitForSingleObject(pi.hProcess, INFINITE) != WAIT_FAILED) {
+ if (GetExitCodeProcess(pi.hProcess, &exitCode) == FALSE)
+ exitCode = 1;
+ } else {
+ ReportErrorMessage("WaitForSingleObject() failed.", JNI_TRUE);
+ exitCode = 1;
+ }
+
+ CloseHandle(pi.hThread);
+ CloseHandle(pi.hProcess);
+
+ exit(exitCode);
+ }
+
+}
+
+#endif /* ifndef GAMMA */
+
+
+/*
+ * Wrapper for platform dependent unsetenv function.
+ */
+int
+UnsetEnv(char *name)
+{
+ int ret;
+ char *buf = JLI_MemAlloc(strlen(name) + 2);
+ buf = strcat(strcpy(buf, name), "=");
+ ret = _putenv(buf);
+ JLI_MemFree(buf);
+ return (ret);
+}
+
+/* --- Splash Screen shared library support --- */
+
+static const char* SPLASHSCREEN_SO = "\\bin\\splashscreen.dll";
+
+static HMODULE hSplashLib = NULL;
+
+void* SplashProcAddress(const char* name) {
+ char libraryPath[MAXPATHLEN]; /* some extra space for strcat'ing SPLASHSCREEN_SO */
+
+ if (!GetJREPath(libraryPath, MAXPATHLEN)) {
+ return NULL;
+ }
+ if (strlen(libraryPath)+strlen(SPLASHSCREEN_SO) >= MAXPATHLEN) {
+ return NULL;
+ }
+ strcat(libraryPath, SPLASHSCREEN_SO);
+
+ if (!hSplashLib) {
+ hSplashLib = LoadLibrary(libraryPath);
+ }
+ if (hSplashLib) {
+ return GetProcAddress(hSplashLib, name);
+ } else {
+ return NULL;
+ }
+}
+
+void SplashFreeLibrary() {
+ if (hSplashLib) {
+ FreeLibrary(hSplashLib);
+ hSplashLib = NULL;
+ }
+}
+
+const char *
+jlong_format_specifier() {
+ return "%I64d";
+}
+
+/*
+ * Block current thread and continue execution in a new thread
+ */
+int
+ContinueInNewThread(int (JNICALL *continuation)(void *), jlong stack_size, void * args) {
+ int rslt = 0;
+ unsigned thread_id;
+
+#ifndef STACK_SIZE_PARAM_IS_A_RESERVATION
+#define STACK_SIZE_PARAM_IS_A_RESERVATION (0x10000)
+#endif
+
+ /*
+ * STACK_SIZE_PARAM_IS_A_RESERVATION is what we want, but it's not
+ * supported on older version of Windows. Try first with the flag; and
+ * if that fails try again without the flag. See MSDN document or HotSpot
+ * source (os_win32.cpp) for details.
+ */
+ HANDLE thread_handle =
+ (HANDLE)_beginthreadex(NULL,
+ (unsigned)stack_size,
+ continuation,
+ args,
+ STACK_SIZE_PARAM_IS_A_RESERVATION,
+ &thread_id);
+ if (thread_handle == NULL) {
+ thread_handle =
+ (HANDLE)_beginthreadex(NULL,
+ (unsigned)stack_size,
+ continuation,
+ args,
+ 0,
+ &thread_id);
+ }
+
+ /* AWT preloading (AFTER main thread start) */
+#ifdef ENABLE_AWT_PRELOAD
+ /* D3D preloading */
+ if (awtPreloadD3D != 0) {
+ char *envValue;
+ /* D3D routines checks env.var J2D_D3D if no appropriate
+ * command line params was specified
+ */
+ envValue = getenv("J2D_D3D");
+ if (envValue != NULL && stricmp(envValue, "false") == 0) {
+ awtPreloadD3D = 0;
+ }
+ /* Test that AWT preloading isn't disabled by J2D_D3D_PRELOAD env.var */
+ envValue = getenv("J2D_D3D_PRELOAD");
+ if (envValue != NULL && stricmp(envValue, "false") == 0) {
+ awtPreloadD3D = 0;
+ }
+ if (awtPreloadD3D < 0) {
+ /* If awtPreloadD3D is still undefined (-1), test
+ * if it is turned on by J2D_D3D_PRELOAD env.var.
+ * By default it's turned OFF.
+ */
+ awtPreloadD3D = 0;
+ if (envValue != NULL && stricmp(envValue, "true") == 0) {
+ awtPreloadD3D = 1;
+ }
+ }
+ }
+ if (awtPreloadD3D) {
+ AWTPreload(D3D_PRELOAD_FUNC);
+ }
+#endif /* ENABLE_AWT_PRELOAD */
+
+ if (thread_handle) {
+ WaitForSingleObject(thread_handle, INFINITE);
+ GetExitCodeThread(thread_handle, &rslt);
+ CloseHandle(thread_handle);
+ } else {
+ rslt = continuation(args);
+ }
+
+#ifdef ENABLE_AWT_PRELOAD
+ if (awtPreloaded) {
+ AWTPreloadStop();
+ }
+#endif /* ENABLE_AWT_PRELOAD */
+
+ return rslt;
+}
+
+/* Linux only, empty on windows. */
+void SetJavaLauncherPlatformProps() {}
+
+
+//==============================
+// AWT preloading
+#ifdef ENABLE_AWT_PRELOAD
+
+typedef int FnPreloadStart(void);
+typedef void FnPreloadStop(void);
+static FnPreloadStop *fnPreloadStop = NULL;
+static HMODULE hPreloadAwt = NULL;
+
+/*
+ * Starts AWT preloading
+ */
+int AWTPreload(const char *funcName)
+{
+ int result = -1;
+
+ // load AWT library once (if several preload function should be called)
+ if (hPreloadAwt == NULL) {
+ // awt.dll is not loaded yet
+ char libraryPath[MAXPATHLEN];
+ int jrePathLen = 0;
+ HMODULE hJava = NULL;
+ HMODULE hVerify = NULL;
+
+ while (1) {
+ // awt.dll depends on jvm.dll & java.dll;
+ // jvm.dll is already loaded, so we need only java.dll;
+ // java.dll depends on MSVCRT lib & verify.dll.
+ if (!GetJREPath(libraryPath, MAXPATHLEN)) {
+ break;
+ }
+
+ // save path length
+ jrePathLen = strlen(libraryPath);
+
+ // load msvcrt 1st
+ LoadMSVCRT();
+
+ // load verify.dll
+ strcat(libraryPath, "\\bin\\verify.dll");
+ hVerify = LoadLibrary(libraryPath);
+ if (hVerify == NULL) {
+ break;
+ }
+
+ // restore jrePath
+ libraryPath[jrePathLen] = 0;
+ // load java.dll
+ strcat(libraryPath, "\\bin\\" JAVA_DLL);
+ hJava = LoadLibrary(libraryPath);
+ if (hJava == NULL) {
+ break;
+ }
+
+ // restore jrePath
+ libraryPath[jrePathLen] = 0;
+ // load awt.dll
+ strcat(libraryPath, "\\bin\\awt.dll");
+ hPreloadAwt = LoadLibrary(libraryPath);
+ if (hPreloadAwt == NULL) {
+ break;
+ }
+
+ // get "preloadStop" func ptr
+ fnPreloadStop = (FnPreloadStop *)GetProcAddress(hPreloadAwt, "preloadStop");
+
+ break;
+ }
+ }
+
+ if (hPreloadAwt != NULL) {
+ FnPreloadStart *fnInit = (FnPreloadStart *)GetProcAddress(hPreloadAwt, funcName);
+ if (fnInit != NULL) {
+ // don't forget to stop preloading
+ awtPreloaded = 1;
+
+ result = fnInit();
+ }
+ }
+
+ return result;
+}
+
+/*
+ * Terminates AWT preloading
+ */
+void AWTPreloadStop() {
+ if (fnPreloadStop != NULL) {
+ fnPreloadStop();
+ }
+}
+
+#endif /* ENABLE_AWT_PRELOAD */
diff --git a/hotspot/src/os/linux/launcher/java_md.h b/hotspot/src/os/windows/launcher/java_md.h
similarity index 66%
rename from hotspot/src/os/linux/launcher/java_md.h
rename to hotspot/src/os/windows/launcher/java_md.h
index 237a6526839..111be1ee13a 100644
--- a/hotspot/src/os/linux/launcher/java_md.h
+++ b/hotspot/src/os/windows/launcher/java_md.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,28 +22,31 @@
*
*/
-/*
- * Gamma (Hotspot internal engineering test) launcher based on 1.6.0-b28 JDK,
- * search "GAMMA" for gamma specific changes.
- */
-
#ifndef JAVA_MD_H
#define JAVA_MD_H
-#include
-#include
-#include
+#include
+#include
+#include
#ifndef GAMMA
#include "manifest_info.h"
#endif
+#include "jli_util.h"
-#define PATH_SEPARATOR ':'
-#define FILESEP "/"
-#define FILE_SEPARATOR '/'
-#ifndef MAXNAMELEN
-#define MAXNAMELEN PATH_MAX
+#ifdef GAMMA
+#define stricmp _stricmp
+#define strnicmp _strnicmp
+#define snprintf _snprintf
+#define strdup _strdup
#endif
+#define PATH_SEPARATOR ';'
+#define FILESEP "\\"
+#define FILE_SEPARATOR '\\'
+#define IS_FILE_SEPARATOR(c) ((c) == '\\' || (c) == '/')
+#define MAXPATHLEN MAX_PATH
+#define MAXNAMELEN MAX_PATH
+
#ifdef JAVA_ARGS
/*
* ApplicationHome is prepended to each of these entries; the resulting
@@ -51,27 +54,26 @@
* value of -cp option to the launcher.
*/
#ifndef APP_CLASSPATH
-#define APP_CLASSPATH { "/lib/tools.jar", "/classes" }
+#define APP_CLASSPATH { "\\lib\\tools.jar", "\\classes" }
#endif
#endif
-#ifdef HAVE_GETHRTIME
/*
* Support for doing cheap, accurate interval timing.
*/
-#include
-#define CounterGet() (gethrtime()/1000)
-#define Counter2Micros(counts) (counts)
-#else
-#define CounterGet() (0)
-#define Counter2Micros(counts) (1)
-#endif /* HAVE_GETHRTIME */
+extern jlong CounterGet(void);
+extern jlong Counter2Micros(jlong counts);
+
+#ifdef JAVAW
+#define main _main
+extern int _main(int argc, char **argv);
+#endif
/*
* Function prototypes.
*/
#ifndef GAMMA
-char *LocateJRE(manifest_info* info);
+char *LocateJRE(manifest_info *info);
void ExecJRE(char *jre, char **argv);
#endif
int UnsetEnv(char *name);
diff --git a/hotspot/src/os/windows/vm/attachListener_windows.cpp b/hotspot/src/os/windows/vm/attachListener_windows.cpp
index 28295f9a74e..1d5857f1c2f 100644
--- a/hotspot/src/os/windows/vm/attachListener_windows.cpp
+++ b/hotspot/src/os/windows/vm/attachListener_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_attachListener_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/os.hpp"
+#include "services/attachListener.hpp"
+#include "services/dtraceAttacher.hpp"
#include
#include // SIGBREAK
diff --git a/hotspot/src/os/windows/vm/c1_globals_windows.hpp b/hotspot/src/os/windows/vm/c1_globals_windows.hpp
index 301d169c178..41789768d3d 100644
--- a/hotspot/src/os/windows/vm/c1_globals_windows.hpp
+++ b/hotspot/src/os/windows/vm/c1_globals_windows.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,7 +22,15 @@
*
*/
+#ifndef OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP
+#define OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
//
// Sets the default values for operating system dependent flags used by the
// client compiler. (see c1_globals.hpp)
//
+
+#endif // OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP
diff --git a/hotspot/src/os/windows/vm/c2_globals_windows.hpp b/hotspot/src/os/windows/vm/c2_globals_windows.hpp
index b14af55c55c..a79fbdc7bda 100644
--- a/hotspot/src/os/windows/vm/c2_globals_windows.hpp
+++ b/hotspot/src/os/windows/vm/c2_globals_windows.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,7 +22,15 @@
*
*/
+#ifndef OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP
+#define OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
//
// Sets the default values for operating system dependent flags used by the
// server compiler. (see c2_globals.hpp)
//
+
+#endif // OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP
diff --git a/hotspot/src/os/windows/vm/chaitin_windows.cpp b/hotspot/src/os/windows/vm/chaitin_windows.cpp
index a459b992e17..bae10b3b5c4 100644
--- a/hotspot/src/os/windows/vm/chaitin_windows.cpp
+++ b/hotspot/src/os/windows/vm/chaitin_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_chaitin_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "opto/chaitin.hpp"
+#include "opto/machnode.hpp"
// Disallow the use of the frame pointer (EBP) for implicit null exceptions
// on win95/98. If we do not do this, the OS gets confused and gives a stack
diff --git a/hotspot/src/os/windows/vm/decoder_windows.cpp b/hotspot/src/os/windows/vm/decoder_windows.cpp
new file mode 100644
index 00000000000..c4eaf35c69a
--- /dev/null
+++ b/hotspot/src/os/windows/vm/decoder_windows.cpp
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 1997, 2010, 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "prims/jvm.h"
+#include "utilities/decoder.hpp"
+
+HMODULE Decoder::_dbghelp_handle = NULL;
+bool Decoder::_can_decode_in_vm = false;
+pfn_SymGetSymFromAddr64 Decoder::_pfnSymGetSymFromAddr64 = NULL;
+pfn_UndecorateSymbolName Decoder::_pfnUndecorateSymbolName = NULL;
+
+void Decoder::initialize() {
+ if (!_initialized) {
+ _initialized = true;
+
+ HMODULE handle = ::LoadLibrary("dbghelp.dll");
+ if (!handle) {
+ _decoder_status = helper_not_found;
+ return;
+ }
+
+ _dbghelp_handle = handle;
+
+ pfn_SymSetOptions _pfnSymSetOptions = (pfn_SymSetOptions)::GetProcAddress(handle, "SymSetOptions");
+ pfn_SymInitialize _pfnSymInitialize = (pfn_SymInitialize)::GetProcAddress(handle, "SymInitialize");
+ _pfnSymGetSymFromAddr64 = (pfn_SymGetSymFromAddr64)::GetProcAddress(handle, "SymGetSymFromAddr64");
+ _pfnUndecorateSymbolName = (pfn_UndecorateSymbolName)GetProcAddress(handle, "UnDecorateSymbolName");
+
+ if (_pfnSymSetOptions == NULL || _pfnSymInitialize == NULL || _pfnSymGetSymFromAddr64 == NULL) {
+ _pfnSymGetSymFromAddr64 = NULL;
+ _pfnUndecorateSymbolName = NULL;
+ ::FreeLibrary(handle);
+ _dbghelp_handle = NULL;
+ _decoder_status = helper_func_error;
+ return;
+ }
+
+ _pfnSymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS);
+ if (!_pfnSymInitialize(GetCurrentProcess(), NULL, TRUE)) {
+ _pfnSymGetSymFromAddr64 = NULL;
+ _pfnUndecorateSymbolName = NULL;
+ ::FreeLibrary(handle);
+ _dbghelp_handle = NULL;
+ _decoder_status = helper_init_error;
+ return;
+ }
+
+ // find out if jvm.dll contains private symbols, by decoding
+ // current function and comparing the result
+ address addr = (address)Decoder::initialize;
+ char buf[MAX_PATH];
+ if (decode(addr, buf, sizeof(buf), NULL) == no_error) {
+ _can_decode_in_vm = !strcmp(buf, "Decoder::initialize");
+ }
+ }
+}
+
+void Decoder::uninitialize() {
+ assert(_initialized, "Decoder not yet initialized");
+ _pfnSymGetSymFromAddr64 = NULL;
+ _pfnUndecorateSymbolName = NULL;
+ if (_dbghelp_handle != NULL) {
+ ::FreeLibrary(_dbghelp_handle);
+ }
+ _initialized = false;
+}
+
+bool Decoder::can_decode_C_frame_in_vm() {
+ initialize();
+ return _can_decode_in_vm;
+}
+
+
+Decoder::decoder_status Decoder::decode(address addr, char *buf, int buflen, int *offset) {
+ assert(_initialized, "Decoder not yet initialized");
+ if (_pfnSymGetSymFromAddr64 != NULL) {
+ PIMAGEHLP_SYMBOL64 pSymbol;
+ char symbolInfo[MAX_PATH + sizeof(IMAGEHLP_SYMBOL64)];
+ pSymbol = (PIMAGEHLP_SYMBOL64)symbolInfo;
+ pSymbol->MaxNameLength = MAX_PATH;
+ pSymbol->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL64);
+ DWORD64 displacement;
+ if (_pfnSymGetSymFromAddr64(::GetCurrentProcess(), (DWORD64)addr, &displacement, pSymbol)) {
+ if (buf != NULL) {
+ if (!demangle(pSymbol->Name, buf, buflen)) {
+ jio_snprintf(buf, buflen, "%s", pSymbol->Name);
+ }
+ }
+ if (offset != NULL) *offset = (int)displacement;
+ return no_error;
+ }
+ }
+ return helper_not_found;
+}
+
+bool Decoder::demangle(const char* symbol, char *buf, int buflen) {
+ assert(_initialized, "Decoder not yet initialized");
+ return _pfnUndecorateSymbolName != NULL &&
+ _pfnUndecorateSymbolName(symbol, buf, buflen, UNDNAME_COMPLETE);
+}
+
diff --git a/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp b/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp
index aad6296c72d..0f340fb5730 100644
--- a/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp
+++ b/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,16 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_dtraceJSDT_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "classfile/javaClasses.hpp"
+#include "code/codeBlob.hpp"
+#include "memory/allocation.hpp"
+#include "prims/jvm.h"
+#include "runtime/dtraceJSDT.hpp"
+#include "runtime/jniHandles.hpp"
+#include "runtime/os.hpp"
+#include "runtime/signature.hpp"
+#include "utilities/globalDefinitions.hpp"
int DTraceJSDT::pd_activate(
void* baseAddress, jstring module,
diff --git a/hotspot/src/os/windows/vm/globals_windows.hpp b/hotspot/src/os/windows/vm/globals_windows.hpp
index 52f7d602b01..1860375c03e 100644
--- a/hotspot/src/os/windows/vm/globals_windows.hpp
+++ b/hotspot/src/os/windows/vm/globals_windows.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP
+#define OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP
+
//
// Defines Windows specific flags. They are not available on other platforms.
//
@@ -40,3 +43,5 @@ define_pd_global(bool, UseLargePages, false);
define_pd_global(bool, UseLargePagesIndividualAllocation, true);
define_pd_global(bool, UseOSErrorReporting, false); // for now.
define_pd_global(bool, UseThreadPriorities, true) ;
+
+#endif // OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP
diff --git a/hotspot/src/os/windows/vm/hpi_windows.cpp b/hotspot/src/os/windows/vm/hpi_windows.cpp
deleted file mode 100644
index 2e78fc27148..00000000000
--- a/hotspot/src/os/windows/vm/hpi_windows.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 1998, 2006, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-# include "incls/_precompiled.incl"
-# include "incls/_hpi_windows.cpp.incl"
-
-typedef jint (JNICALL *init_t)(GetInterfaceFunc *, void *);
-
-void hpi::initialize_get_interface(vm_calls_t *callbacks)
-{
- // Build name of HPI.
- char lib_name[JVM_MAXPATHLEN];
-
- if (HPILibPath && HPILibPath[0]) {
- strncpy(lib_name, HPILibPath, JVM_MAXPATHLEN - 1);
- lib_name[JVM_MAXPATHLEN - 1] = '\0';
- } else {
- os::jvm_path(lib_name, sizeof lib_name);
-
-#ifdef PRODUCT
- const char *hpi_lib = "\\hpi.dll";
-#else
- char *ptr = strrchr(lib_name, '\\');
- // On Win98 GetModuleFileName() returns the path in the upper case.
- assert(_strnicmp(ptr, "\\jvm",4) == 0, "invalid library name");
- const char *hpi_lib = (_strnicmp(ptr, "\\jvm_g",6) == 0) ? "\\hpi_g.dll" : "\\hpi.dll";
-#endif
-
- *(::strrchr(lib_name, '\\')) = '\0'; /* get rid of "\\jvm.dll" */
- char *p = ::strrchr(lib_name, '\\');
- if (p != NULL) *p = '\0'; /* get rid of "\\hotspot" */
- strcat(lib_name, hpi_lib);
- }
-
- // Load it.
- if (TraceHPI) tty->print_cr("Loading HPI %s ", lib_name);
- HINSTANCE lib_handle = LoadLibrary(lib_name);
- if (lib_handle == NULL) {
- if (TraceHPI) tty->print_cr("LoadLibrary failed, code = %d", GetLastError());
- return;
- }
-
- // Find hpi initializer.
- init_t initer = (init_t)GetProcAddress(lib_handle, "DLL_Initialize");
- if (initer == NULL) {
- if (TraceHPI) tty->print_cr("GetProcAddress failed, errcode = %d", GetLastError());
- return;
- }
-
- // Call initializer.
- jint init_result = (*initer)(&_get_interface, callbacks);
- if (init_result < 0) {
- if (TraceHPI) tty->print_cr("DLL_Initialize failed, returned %ld", init_result);
- return;
- }
-
- if (TraceHPI) tty->print_cr("success");
- return;
-}
diff --git a/hotspot/src/os/windows/vm/hpi_windows.hpp b/hotspot/src/os/windows/vm/hpi_windows.hpp
deleted file mode 100644
index 3d94b4e553f..00000000000
--- a/hotspot/src/os/windows/vm/hpi_windows.hpp
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 1998, 2005, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-// Win32 delegates these to the HPI. Solaris provides its own
-// implementation without using the HPI (for Interrupitble I/O).
-
-// HPI_FileInterface
-
-HPIDECL(close, "close", _file, Close, int, "%d",
- (int fd),
- ("fd = %d", fd),
- (fd));
-
-HPIDECL(read, "read", _file, Read, size_t, "%ld",
- (int fd, void *buf, unsigned int nBytes),
- ("fd = %d, buf = %p, nBytes = %u", fd, buf, nBytes),
- (fd, buf, nBytes));
-
-HPIDECL(write, "write", _file, Write, size_t, "%ld",
- (int fd, const void *buf, unsigned int nBytes),
- ("fd = %d, buf = %p, nBytes = %u", fd, buf, nBytes),
- (fd, buf, nBytes));
-
-
-// HPI_SocketInterface
-
-HPIDECL(socket_close, "socket_close", _socket, Close, int, "%d",
- (int fd),
- ("fd = %d", fd),
- (fd));
-
-HPIDECL(socket_available, "socket_available", _socket, Available,
- int, "%d",
- (int fd, jint *pbytes),
- ("fd = %d, pbytes = %p", fd, pbytes),
- (fd, pbytes));
-
-HPIDECL(socket, "socket", _socket, Socket, int, "%d",
- (int domain, int type, int protocol),
- ("domain = %d, type = %d, protocol = %d", domain, type, protocol),
- (domain, type, protocol));
-
-HPIDECL(listen, "listen", _socket, Listen, int, "%d",
- (int fd, int count),
- ("fd = %d, count = %d", fd, count),
- (fd, count));
-
-HPIDECL(connect, "connect", _socket, Connect, int, "%d",
- (int fd, struct sockaddr *him, int len),
- ("fd = %d, him = %p, len = %d", fd, him, len),
- (fd, him, len));
-
-HPIDECL(accept, "accept", _socket, Accept, int, "%d",
- (int fd, struct sockaddr *him, int *len),
- ("fd = %d, him = %p, len = %p", fd, him, len),
- (fd, him, len));
-
-HPIDECL(sendto, "sendto", _socket, SendTo, int, "%d",
- (int fd, char *buf, int len, int flags,
- struct sockaddr *to, int tolen),
- ("fd = %d, buf = %p, len = %d, flags = %d, to = %p, tolen = %d",
- fd, buf, len, flags, to, tolen),
- (fd, buf, len, flags, to, tolen));
-
-HPIDECL(recvfrom, "recvfrom", _socket, RecvFrom, int, "%d",
- (int fd, char *buf, int nbytes, int flags,
- struct sockaddr *from, int *fromlen),
- ("fd = %d, buf = %p, len = %d, flags = %d, frm = %p, frmlen = %d",
- fd, buf, nbytes, flags, from, fromlen),
- (fd, buf, nbytes, flags, from, fromlen));
-
-HPIDECL(recv, "recv", _socket, Recv, int, "%d",
- (int fd, char *buf, int nBytes, int flags),
- ("fd = %d, buf = %p, nBytes = %d, flags = %d",
- fd, buf, nBytes, flags),
- (fd, buf, nBytes, flags));
-
-HPIDECL(send, "send", _socket, Send, int, "%d",
- (int fd, char *buf, int nBytes, int flags),
- ("fd = %d, buf = %p, nBytes = %d, flags = %d",
- fd, buf, nBytes, flags),
- (fd, buf, nBytes, flags));
-
-inline int hpi::raw_send(int fd, char *buf, int nBytes, int flags) {
- return send(fd, buf, nBytes, flags);
-}
-
-HPIDECL(timeout, "timeout", _socket, Timeout, int, "%d",
- (int fd, long timeout),
- ("fd = %d, timeout = %ld", fd, timeout),
- (fd, timeout));
-
-HPIDECL(get_host_by_name, "get_host_by_name", _socket, GetHostByName,
- struct hostent *, "(struct hostent *)%p",
- (char *name),
- ("%s", name),
- (name));
-
-HPIDECL(socket_shutdown, "socket_shutdown", _socket, SocketShutdown,
- int, "%d",
- (int fd, int howto),
- ("fd = %d, howto = %d", fd, howto),
- (fd, howto));
-
-HPIDECL(bind, "bind", _socket, Bind,
- int, "%d",
- (int fd, struct sockaddr *him, int len),
- ("fd = %d, him = %p, len = %d",
- fd, him, len),
- (fd, him, len));
-
-HPIDECL(get_sock_name, "get_sock_name", _socket, GetSocketName,
- int, "%d",
- (int fd, struct sockaddr *him, int *len),
- ("fd = %d, him = %p, len = %p",
- fd, him, len),
- (fd, him, len));
-
-HPIDECL(get_host_name, "get_host_name", _socket, GetHostName, int, "%d",
- (char *hostname, int namelen),
- ("hostname = %p, namelen = %d",
- hostname, namelen),
- (hostname, namelen));
-
-HPIDECL(get_host_by_addr, "get_host_by_addr", _socket, GetHostByAddr,
- struct hostent *, "(struct hostent *)%p",
- (const char* name, int len, int type),
- ("name = %p, len = %d, type = %d",
- name, len, type),
- (name, len, type));
-
-HPIDECL(get_sock_opt, "get_sock_opt", _socket, SocketGetOption, int, "%d",
- (int fd, int level, int optname, char *optval, int* optlen),
- ("fd = %d, level = %d, optname = %d, optval = %p, optlen = %p",
- fd, level, optname, optval, optlen),
- (fd, level, optname, optval, optlen));
-
-HPIDECL(set_sock_opt, "set_sock_opt", _socket, SocketSetOption, int, "%d",
- (int fd, int level, int optname, const char *optval, int optlen),
- ("fd = %d, level = %d, optname = %d, optval = %p, optlen = %d",
- fd, level, optname, optval, optlen),
- (fd, level, optname, optval, optlen));
-
-HPIDECL(get_proto_by_name, "get_proto_by_name", _socket, GetProtoByName,
- struct protoent *, "(struct protoent *)%p",
- (char* name),
- ("name = %p",
- name),
- (name));
diff --git a/hotspot/src/os/windows/vm/interfaceSupport_windows.hpp b/hotspot/src/os/windows/vm/interfaceSupport_windows.hpp
index 3e5a6bfc1d1..96236542972 100644
--- a/hotspot/src/os/windows/vm/interfaceSupport_windows.hpp
+++ b/hotspot/src/os/windows/vm/interfaceSupport_windows.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP
+#define OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP
+
// Contains inlined functions for class InterfaceSupport
static inline void serialize_memory(JavaThread *thread) {
@@ -39,3 +42,5 @@ static inline void serialize_memory(JavaThread *thread) {
serialize_fault_filter((_EXCEPTION_POINTERS*)_exception_info()))
{}
}
+
+#endif // OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP
diff --git a/hotspot/src/os/windows/vm/jvm_windows.cpp b/hotspot/src/os/windows/vm/jvm_windows.cpp
index d0d171b2327..d6a299a239c 100644
--- a/hotspot/src/os/windows/vm/jvm_windows.cpp
+++ b/hotspot/src/os/windows/vm/jvm_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,10 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_jvm_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "prims/jvm.h"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/osThread.hpp"
#include
diff --git a/hotspot/src/os/windows/vm/jvm_windows.h b/hotspot/src/os/windows/vm/jvm_windows.h
index 47999961b84..6cb292ba974 100644
--- a/hotspot/src/os/windows/vm/jvm_windows.h
+++ b/hotspot/src/os/windows/vm/jvm_windows.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
diff --git a/hotspot/src/os/windows/vm/mutex_windows.cpp b/hotspot/src/os/windows/vm/mutex_windows.cpp
index 7ba6b0aba7c..66f018dd4a9 100644
--- a/hotspot/src/os/windows/vm/mutex_windows.cpp
+++ b/hotspot/src/os/windows/vm/mutex_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,12 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_mutex_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "mutex_windows.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/mutex.hpp"
+#include "thread_windows.inline.hpp"
+#include "utilities/events.hpp"
// put OS-includes here
# include
diff --git a/hotspot/src/os/windows/vm/mutex_windows.inline.hpp b/hotspot/src/os/windows/vm/mutex_windows.inline.hpp
index b9c7bfabc31..ddc082279fb 100644
--- a/hotspot/src/os/windows/vm/mutex_windows.inline.hpp
+++ b/hotspot/src/os/windows/vm/mutex_windows.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
@@ -21,3 +21,12 @@
* questions.
*
*/
+
+#ifndef OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP
+#define OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP
+
+#include "os_windows.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "thread_windows.inline.hpp"
+
+#endif // OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP
diff --git a/hotspot/src/os/windows/vm/objectMonitor_windows.hpp b/hotspot/src/os/windows/vm/objectMonitor_windows.hpp
deleted file mode 100644
index 0b4fc2f7138..00000000000
--- a/hotspot/src/os/windows/vm/objectMonitor_windows.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 1998, 2005, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
- private:
diff --git a/hotspot/src/os/windows/vm/objectMonitor_windows.inline.hpp b/hotspot/src/os/windows/vm/objectMonitor_windows.inline.hpp
deleted file mode 100644
index 07fe1598f87..00000000000
--- a/hotspot/src/os/windows/vm/objectMonitor_windows.inline.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 1998, 2005, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
diff --git a/hotspot/src/os/windows/vm/osThread_windows.cpp b/hotspot/src/os/windows/vm/osThread_windows.cpp
index 7aaffc1b272..005643aa67a 100644
--- a/hotspot/src/os/windows/vm/osThread_windows.cpp
+++ b/hotspot/src/os/windows/vm/osThread_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,7 +22,17 @@
*
*/
-#include "incls/_osThread_windows.cpp.incl"
+// no precompiled headers
+#include "runtime/atomic.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/os.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/safepoint.hpp"
+#include "runtime/vmThread.hpp"
+#ifdef TARGET_ARCH_x86
+# include "assembler_x86.inline.hpp"
+#endif
void OSThread::pd_initialize() {
set_thread_handle(NULL);
diff --git a/hotspot/src/os/windows/vm/osThread_windows.hpp b/hotspot/src/os/windows/vm/osThread_windows.hpp
index 37cdfaba147..1df8925c7a7 100644
--- a/hotspot/src/os/windows/vm/osThread_windows.hpp
+++ b/hotspot/src/os/windows/vm/osThread_windows.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP
+#define OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP
+
typedef void* HANDLE;
private:
@@ -64,3 +67,5 @@ typedef void* HANDLE;
private:
void pd_initialize();
void pd_destroy();
+
+#endif // OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP
diff --git a/hotspot/src/os/windows/vm/os_share_windows.hpp b/hotspot/src/os/windows/vm/os_share_windows.hpp
index e157ace8e6c..447fc9438c4 100644
--- a/hotspot/src/os/windows/vm/os_share_windows.hpp
+++ b/hotspot/src/os/windows/vm/os_share_windows.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,4 +22,9 @@
*
*/
+#ifndef OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP
+#define OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP
+
// Defines the interfaces to Windows operating system that vary across platforms
+
+#endif // OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP
diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp
index f2b7eedcb5e..0422063c50e 100644
--- a/hotspot/src/os/windows/vm/os_windows.cpp
+++ b/hotspot/src/os/windows/vm/os_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * CopyrighT (c) 1997, 2010, 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
@@ -27,8 +27,56 @@
#define _WIN32_WINNT 0x500
#endif
-// do not include precompiled header file
-# include "incls/_os_windows.cpp.incl"
+// no precompiled headers
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "compiler/compileBroker.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_windows.h"
+#include "memory/allocation.inline.hpp"
+#include "memory/filemap.hpp"
+#include "mutex_windows.inline.hpp"
+#include "oops/oop.inline.hpp"
+#include "os_share_windows.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/globals.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/objectMonitor.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/perfMemory.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/statSampler.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/threadCritical.hpp"
+#include "runtime/timer.hpp"
+#include "services/attachListener.hpp"
+#include "services/runtimeService.hpp"
+#include "thread_windows.inline.hpp"
+#include "utilities/decoder.hpp"
+#include "utilities/defaultStream.hpp"
+#include "utilities/events.hpp"
+#include "utilities/growableArray.hpp"
+#include "utilities/vmError.hpp"
+#ifdef TARGET_ARCH_x86
+# include "assembler_x86.inline.hpp"
+# include "nativeInst_x86.hpp"
+#endif
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
#ifdef _DEBUG
#include
@@ -996,8 +1044,6 @@ os::closedir(DIR *dirp)
return 0;
}
-const char* os::dll_file_extension() { return ".dll"; }
-
const char* os::get_temp_directory() {
const char *prop = Arguments::get_property("java.io.tmpdir");
if (prop != 0) return prop;
@@ -1019,7 +1065,6 @@ static bool file_exists(const char* filename) {
void os::dll_build_name(char *buffer, size_t buflen,
const char* pname, const char* fname) {
- // Copied from libhpi
const size_t pnamelen = pname ? strlen(pname) : 0;
const char c = (pnamelen > 0) ? pname[pnamelen-1] : 0;
@@ -1321,19 +1366,14 @@ bool os::dll_address_to_library_name(address addr, char* buf,
bool os::dll_address_to_function_name(address addr, char *buf,
int buflen, int *offset) {
- // Unimplemented on Windows - in order to use SymGetSymFromAddr(),
- // we need to initialize imagehlp/dbghelp, then load symbol table
- // for every module. That's too much work to do after a fatal error.
- // For an example on how to implement this function, see 1.4.2.
- if (offset) *offset = -1;
- if (buf) buf[0] = '\0';
+ if (Decoder::decode(addr, buf, buflen, offset) == Decoder::no_error) {
+ return true;
+ }
+ if (offset != NULL) *offset = -1;
+ if (buf != NULL) buf[0] = '\0';
return false;
}
-void* os::dll_lookup(void* handle, const char* name) {
- return GetProcAddress((HMODULE)handle, name);
-}
-
// save the start and end address of jvm.dll into param[0] and param[1]
static int _locate_jvm_dll(int pid, char* mod_fname, address base_addr,
unsigned size, void * param) {
@@ -1668,7 +1708,34 @@ void os::jvm_path(char *buf, jint buflen) {
return;
}
+ buf[0] = '\0';
+ if (strcmp(Arguments::sun_java_launcher(), "gamma") == 0) {
+ // Support for the gamma launcher. Check for an
+ // JAVA_HOME environment variable
+ // and fix up the path so it looks like
+ // libjvm.so is installed there (append a fake suffix
+ // hotspot/libjvm.so).
+ char* java_home_var = ::getenv("JAVA_HOME");
+ if (java_home_var != NULL && java_home_var[0] != 0) {
+
+ strncpy(buf, java_home_var, buflen);
+
+ // determine if this is a legacy image or modules image
+ // modules image doesn't have "jre" subdirectory
+ size_t len = strlen(buf);
+ char* jrebin_p = buf + len;
+ jio_snprintf(jrebin_p, buflen-len, "\\jre\\bin\\");
+ if (0 != _access(buf, 0)) {
+ jio_snprintf(jrebin_p, buflen-len, "\\bin\\");
+ }
+ len = strlen(buf);
+ jio_snprintf(buf + len, buflen-len, "hotspot\\jvm.dll");
+ }
+ }
+
+ if(buf[0] == '\0') {
GetModuleFileName(vm_lib_handle, buf, buflen);
+ }
strcpy(saved_jvm_path, buf);
}
@@ -1686,6 +1753,44 @@ void os::print_jni_name_suffix_on(outputStream* st, int args_size) {
#endif
}
+// This method is a copy of JDK's sysGetLastErrorString
+// from src/windows/hpi/src/system_md.c
+
+size_t os::lasterror(char *buf, size_t len) {
+ long errval;
+
+ if ((errval = GetLastError()) != 0) {
+ /* DOS error */
+ int n = (int)FormatMessage(
+ FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL,
+ errval,
+ 0,
+ buf,
+ (DWORD)len,
+ NULL);
+ if (n > 3) {
+ /* Drop final '.', CR, LF */
+ if (buf[n - 1] == '\n') n--;
+ if (buf[n - 1] == '\r') n--;
+ if (buf[n - 1] == '.') n--;
+ buf[n] = '\0';
+ }
+ return n;
+ }
+
+ if (errno != 0) {
+ /* C runtime error that has no corresponding DOS error code */
+ const char *s = strerror(errno);
+ size_t n = strlen(s);
+ if (n >= len) n = len - 1;
+ strncpy(buf, s, n);
+ buf[n] = '\0';
+ return n;
+ }
+ return 0;
+}
+
// sun.misc.Signal
// NOTE that this is a workaround for an apparent kernel bug where if
// a signal handler for SIGBREAK is installed then that signal handler
@@ -1899,6 +2004,16 @@ struct siglabel {
int number;
};
+// All Visual C++ exceptions thrown from code generated by the Microsoft Visual
+// C++ compiler contain this error code. Because this is a compiler-generated
+// error, the code is not listed in the Win32 API header files.
+// The code is actually a cryptic mnemonic device, with the initial "E"
+// standing for "exception" and the final 3 bytes (0x6D7363) representing the
+// ASCII values of "msc".
+
+#define EXCEPTION_UNCAUGHT_CXX_EXCEPTION 0xE06D7363
+
+
struct siglabel exceptlabels[] = {
def_excpt(EXCEPTION_ACCESS_VIOLATION),
def_excpt(EXCEPTION_DATATYPE_MISALIGNMENT),
@@ -1923,6 +2038,7 @@ struct siglabel exceptlabels[] = {
def_excpt(EXCEPTION_INVALID_DISPOSITION),
def_excpt(EXCEPTION_GUARD_PAGE),
def_excpt(EXCEPTION_INVALID_HANDLE),
+ def_excpt(EXCEPTION_UNCAUGHT_CXX_EXCEPTION),
NULL, 0
};
@@ -2156,7 +2272,6 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
}
}
-
if (t != NULL && t->is_Java_thread()) {
JavaThread* thread = (JavaThread*) t;
bool in_java = thread->thread_state() == _thread_in_Java;
@@ -2360,8 +2475,9 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
} // switch
}
#ifndef _WIN64
- if ((thread->thread_state() == _thread_in_Java) ||
- (thread->thread_state() == _thread_in_native) )
+ if (((thread->thread_state() == _thread_in_Java) ||
+ (thread->thread_state() == _thread_in_native)) &&
+ exception_code != EXCEPTION_UNCAUGHT_CXX_EXCEPTION)
{
LONG result=Handle_FLT_Exception(exceptionInfo);
if (result==EXCEPTION_CONTINUE_EXECUTION) return result;
@@ -2385,6 +2501,7 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
case EXCEPTION_ILLEGAL_INSTRUCTION_2:
case EXCEPTION_INT_OVERFLOW:
case EXCEPTION_INT_DIVIDE_BY_ZERO:
+ case EXCEPTION_UNCAUGHT_CXX_EXCEPTION:
{ report_error(t, exception_code, pc, exceptionInfo->ExceptionRecord,
exceptionInfo->ContextRecord);
}
@@ -2893,10 +3010,6 @@ void os::pd_start_thread(Thread* thread) {
assert(ret != SYS_THREAD_ERROR, "StartThread failed"); // should propagate back
}
-size_t os::read(int fd, void *buf, unsigned int nBytes) {
- return ::read(fd, buf, nBytes);
-}
-
class HighResolutionInterval {
// The default timer resolution seems to be 10 milliseconds.
// (Where is this written down?)
@@ -3311,7 +3424,6 @@ extern "C" {
}
}
-
// this is called _after_ the global arguments have been parsed
jint os::init_2(void) {
// Allocate a single page and mark it as readable for safepoint polling
@@ -3376,10 +3488,6 @@ jint os::init_2(void) {
#endif
}
- // Initialize HPI.
- jint hpi_result = hpi::initialize();
- if (hpi_result != JNI_OK) { return hpi_result; }
-
// If stack_commit_size is 0, windows will reserve the default size,
// but only commit a small portion of it.
size_t stack_commit_size = round_to(ThreadStackSize*K, os::vm_page_size());
@@ -3390,6 +3498,21 @@ jint os::init_2(void) {
actual_reserve_size = default_reserve_size;
}
+ // Check minimum allowable stack size for thread creation and to initialize
+ // the java system classes, including StackOverflowError - depends on page
+ // size. Add a page for compiler2 recursion in main thread.
+ // Add in 2*BytesPerWord times page size to account for VM stack during
+ // class initialization depending on 32 or 64 bit VM.
+ size_t min_stack_allowed =
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
+ 2*BytesPerWord COMPILER2_PRESENT(+1)) * os::vm_page_size();
+ if (actual_reserve_size < min_stack_allowed) {
+ tty->print_cr("\nThe stack size specified is too small, "
+ "Specify at least %dk",
+ min_stack_allowed / K);
+ return JNI_ERR;
+ }
+
JavaThread::set_stack_size_at_create(stack_commit_size);
// Calculate theoretical max. size of Threads to guard gainst artifical
@@ -3469,7 +3592,7 @@ int os::stat(const char *path, struct stat *sbuf) {
errno = ENAMETOOLONG;
return -1;
}
- hpi::native_path(strcpy(pathbuf, path));
+ os::native_path(strcpy(pathbuf, path));
int ret = ::stat(pathbuf, sbuf);
if (sbuf != NULL && UseUTCFileTimestamp) {
// Fix for 6539723. st_mtime returned from stat() is dependent on
@@ -3613,6 +3736,20 @@ bool os::dont_yield() {
return DontYieldALot;
}
+// This method is a slightly reworked copy of JDK's sysOpen
+// from src/windows/hpi/src/sys_api_md.c
+
+int os::open(const char *path, int oflag, int mode) {
+ char pathbuf[MAX_PATH];
+
+ if (strlen(path) > MAX_PATH - 1) {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+ os::native_path(strcpy(pathbuf, path));
+ return ::open(pathbuf, oflag | O_BINARY | O_NOINHERIT, mode);
+}
+
// Is a (classpath) directory empty?
bool os::dir_is_empty(const char* path) {
WIN32_FIND_DATA fd;
@@ -3644,6 +3781,297 @@ jlong os::seek_to_file_offset(int fd, jlong offset) {
}
+jlong os::lseek(int fd, jlong offset, int whence) {
+ return (jlong) ::_lseeki64(fd, offset, whence);
+}
+
+// This method is a slightly reworked copy of JDK's sysNativePath
+// from src/windows/hpi/src/path_md.c
+
+/* Convert a pathname to native format. On win32, this involves forcing all
+ separators to be '\\' rather than '/' (both are legal inputs, but Win95
+ sometimes rejects '/') and removing redundant separators. The input path is
+ assumed to have been converted into the character encoding used by the local
+ system. Because this might be a double-byte encoding, care is taken to
+ treat double-byte lead characters correctly.
+
+ This procedure modifies the given path in place, as the result is never
+ longer than the original. There is no error return; this operation always
+ succeeds. */
+char * os::native_path(char *path) {
+ char *src = path, *dst = path, *end = path;
+ char *colon = NULL; /* If a drive specifier is found, this will
+ point to the colon following the drive
+ letter */
+
+ /* Assumption: '/', '\\', ':', and drive letters are never lead bytes */
+ assert(((!::IsDBCSLeadByte('/'))
+ && (!::IsDBCSLeadByte('\\'))
+ && (!::IsDBCSLeadByte(':'))),
+ "Illegal lead byte");
+
+ /* Check for leading separators */
+#define isfilesep(c) ((c) == '/' || (c) == '\\')
+ while (isfilesep(*src)) {
+ src++;
+ }
+
+ if (::isalpha(*src) && !::IsDBCSLeadByte(*src) && src[1] == ':') {
+ /* Remove leading separators if followed by drive specifier. This
+ hack is necessary to support file URLs containing drive
+ specifiers (e.g., "file://c:/path"). As a side effect,
+ "/c:/path" can be used as an alternative to "c:/path". */
+ *dst++ = *src++;
+ colon = dst;
+ *dst++ = ':';
+ src++;
+ } else {
+ src = path;
+ if (isfilesep(src[0]) && isfilesep(src[1])) {
+ /* UNC pathname: Retain first separator; leave src pointed at
+ second separator so that further separators will be collapsed
+ into the second separator. The result will be a pathname
+ beginning with "\\\\" followed (most likely) by a host name. */
+ src = dst = path + 1;
+ path[0] = '\\'; /* Force first separator to '\\' */
+ }
+ }
+
+ end = dst;
+
+ /* Remove redundant separators from remainder of path, forcing all
+ separators to be '\\' rather than '/'. Also, single byte space
+ characters are removed from the end of the path because those
+ are not legal ending characters on this operating system.
+ */
+ while (*src != '\0') {
+ if (isfilesep(*src)) {
+ *dst++ = '\\'; src++;
+ while (isfilesep(*src)) src++;
+ if (*src == '\0') {
+ /* Check for trailing separator */
+ end = dst;
+ if (colon == dst - 2) break; /* "z:\\" */
+ if (dst == path + 1) break; /* "\\" */
+ if (dst == path + 2 && isfilesep(path[0])) {
+ /* "\\\\" is not collapsed to "\\" because "\\\\" marks the
+ beginning of a UNC pathname. Even though it is not, by
+ itself, a valid UNC pathname, we leave it as is in order
+ to be consistent with the path canonicalizer as well
+ as the win32 APIs, which treat this case as an invalid
+ UNC pathname rather than as an alias for the root
+ directory of the current drive. */
+ break;
+ }
+ end = --dst; /* Path does not denote a root directory, so
+ remove trailing separator */
+ break;
+ }
+ end = dst;
+ } else {
+ if (::IsDBCSLeadByte(*src)) { /* Copy a double-byte character */
+ *dst++ = *src++;
+ if (*src) *dst++ = *src++;
+ end = dst;
+ } else { /* Copy a single-byte character */
+ char c = *src++;
+ *dst++ = c;
+ /* Space is not a legal ending character */
+ if (c != ' ') end = dst;
+ }
+ }
+ }
+
+ *end = '\0';
+
+ /* For "z:", add "." to work around a bug in the C runtime library */
+ if (colon == dst - 1) {
+ path[2] = '.';
+ path[3] = '\0';
+ }
+
+ #ifdef DEBUG
+ jio_fprintf(stderr, "sysNativePath: %s\n", path);
+ #endif DEBUG
+ return path;
+}
+
+// This code is a copy of JDK's sysSetLength
+// from src/windows/hpi/src/sys_api_md.c
+
+int os::ftruncate(int fd, jlong length) {
+ HANDLE h = (HANDLE)::_get_osfhandle(fd);
+ long high = (long)(length >> 32);
+ DWORD ret;
+
+ if (h == (HANDLE)(-1)) {
+ return -1;
+ }
+
+ ret = ::SetFilePointer(h, (long)(length), &high, FILE_BEGIN);
+ if ((ret == 0xFFFFFFFF) && (::GetLastError() != NO_ERROR)) {
+ return -1;
+ }
+
+ if (::SetEndOfFile(h) == FALSE) {
+ return -1;
+ }
+
+ return 0;
+}
+
+
+// This code is a copy of JDK's sysSync
+// from src/windows/hpi/src/sys_api_md.c
+// except for the legacy workaround for a bug in Win 98
+
+int os::fsync(int fd) {
+ HANDLE handle = (HANDLE)::_get_osfhandle(fd);
+
+ if ( (!::FlushFileBuffers(handle)) &&
+ (GetLastError() != ERROR_ACCESS_DENIED) ) {
+ /* from winerror.h */
+ return -1;
+ }
+ return 0;
+}
+
+static int nonSeekAvailable(int, long *);
+static int stdinAvailable(int, long *);
+
+#define S_ISCHR(mode) (((mode) & _S_IFCHR) == _S_IFCHR)
+#define S_ISFIFO(mode) (((mode) & _S_IFIFO) == _S_IFIFO)
+
+// This code is a copy of JDK's sysAvailable
+// from src/windows/hpi/src/sys_api_md.c
+
+int os::available(int fd, jlong *bytes) {
+ jlong cur, end;
+ struct _stati64 stbuf64;
+
+ if (::_fstati64(fd, &stbuf64) >= 0) {
+ int mode = stbuf64.st_mode;
+ if (S_ISCHR(mode) || S_ISFIFO(mode)) {
+ int ret;
+ long lpbytes;
+ if (fd == 0) {
+ ret = stdinAvailable(fd, &lpbytes);
+ } else {
+ ret = nonSeekAvailable(fd, &lpbytes);
+ }
+ (*bytes) = (jlong)(lpbytes);
+ return ret;
+ }
+ if ((cur = ::_lseeki64(fd, 0L, SEEK_CUR)) == -1) {
+ return FALSE;
+ } else if ((end = ::_lseeki64(fd, 0L, SEEK_END)) == -1) {
+ return FALSE;
+ } else if (::_lseeki64(fd, cur, SEEK_SET) == -1) {
+ return FALSE;
+ }
+ *bytes = end - cur;
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}
+
+// This code is a copy of JDK's nonSeekAvailable
+// from src/windows/hpi/src/sys_api_md.c
+
+static int nonSeekAvailable(int fd, long *pbytes) {
+ /* This is used for available on non-seekable devices
+ * (like both named and anonymous pipes, such as pipes
+ * connected to an exec'd process).
+ * Standard Input is a special case.
+ *
+ */
+ HANDLE han;
+
+ if ((han = (HANDLE) ::_get_osfhandle(fd)) == (HANDLE)(-1)) {
+ return FALSE;
+ }
+
+ if (! ::PeekNamedPipe(han, NULL, 0, NULL, (LPDWORD)pbytes, NULL)) {
+ /* PeekNamedPipe fails when at EOF. In that case we
+ * simply make *pbytes = 0 which is consistent with the
+ * behavior we get on Solaris when an fd is at EOF.
+ * The only alternative is to raise an Exception,
+ * which isn't really warranted.
+ */
+ if (::GetLastError() != ERROR_BROKEN_PIPE) {
+ return FALSE;
+ }
+ *pbytes = 0;
+ }
+ return TRUE;
+}
+
+#define MAX_INPUT_EVENTS 2000
+
+// This code is a copy of JDK's stdinAvailable
+// from src/windows/hpi/src/sys_api_md.c
+
+static int stdinAvailable(int fd, long *pbytes) {
+ HANDLE han;
+ DWORD numEventsRead = 0; /* Number of events read from buffer */
+ DWORD numEvents = 0; /* Number of events in buffer */
+ DWORD i = 0; /* Loop index */
+ DWORD curLength = 0; /* Position marker */
+ DWORD actualLength = 0; /* Number of bytes readable */
+ BOOL error = FALSE; /* Error holder */
+ INPUT_RECORD *lpBuffer; /* Pointer to records of input events */
+
+ if ((han = ::GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE) {
+ return FALSE;
+ }
+
+ /* Construct an array of input records in the console buffer */
+ error = ::GetNumberOfConsoleInputEvents(han, &numEvents);
+ if (error == 0) {
+ return nonSeekAvailable(fd, pbytes);
+ }
+
+ /* lpBuffer must fit into 64K or else PeekConsoleInput fails */
+ if (numEvents > MAX_INPUT_EVENTS) {
+ numEvents = MAX_INPUT_EVENTS;
+ }
+
+ lpBuffer = (INPUT_RECORD *)os::malloc(numEvents * sizeof(INPUT_RECORD));
+ if (lpBuffer == NULL) {
+ return FALSE;
+ }
+
+ error = ::PeekConsoleInput(han, lpBuffer, numEvents, &numEventsRead);
+ if (error == 0) {
+ os::free(lpBuffer);
+ return FALSE;
+ }
+
+ /* Examine input records for the number of bytes available */
+ for(i=0; ibKeyDown == TRUE) {
+ CHAR *keyPressed = (CHAR *) &(keyRecord->uChar);
+ curLength++;
+ if (*keyPressed == '\r') {
+ actualLength = curLength;
+ }
+ }
+ }
+ }
+
+ if(lpBuffer != NULL) {
+ os::free(lpBuffer);
+ }
+
+ *pbytes = (long) actualLength;
+ return TRUE;
+}
+
// Map a block of memory.
char* os::map_memory(int fd, const char* file_name, size_t file_offset,
char *addr, size_t bytes, bool read_only,
@@ -3809,7 +4237,7 @@ void os::pause() {
int fd = ::open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
if (fd != -1) {
struct stat buf;
- close(fd);
+ ::close(fd);
while (::stat(filename, &buf) == 0) {
Sleep(100);
}
@@ -3992,7 +4420,7 @@ void Parker::park(bool isAbsolute, jlong time) {
if (time < 0) { // don't wait
return;
}
- else if (time == 0) {
+ else if (time == 0 && !isAbsolute) {
time = INFINITE;
}
else if (isAbsolute) {
@@ -4170,3 +4598,164 @@ static int getLastErrorString(char *buf, size_t len)
// We don't build a headless jre for Windows
bool os::is_headless_jre() { return false; }
+// OS_SocketInterface
+// Not used on Windows
+
+// OS_SocketInterface
+typedef struct hostent * (PASCAL FAR *ws2_ifn_ptr_t)(...);
+ws2_ifn_ptr_t *get_host_by_name_fn = NULL;
+
+typedef CRITICAL_SECTION mutex_t;
+#define mutexInit(m) InitializeCriticalSection(m)
+#define mutexDestroy(m) DeleteCriticalSection(m)
+#define mutexLock(m) EnterCriticalSection(m)
+#define mutexUnlock(m) LeaveCriticalSection(m)
+
+static bool sockfnptrs_initialized = FALSE;
+static mutex_t sockFnTableMutex;
+
+/* is Winsock2 loaded? better to be explicit than to rely on sockfnptrs */
+static bool winsock2Available = FALSE;
+
+
+static void initSockFnTable() {
+ int (PASCAL FAR* WSAStartupPtr)(WORD, LPWSADATA);
+ WSADATA wsadata;
+
+ ::mutexInit(&sockFnTableMutex);
+ ::mutexLock(&sockFnTableMutex);
+
+ if (sockfnptrs_initialized == FALSE) {
+ HMODULE hWinsock;
+
+ /* try to load Winsock2, and if that fails, load Winsock */
+ hWinsock = ::LoadLibrary("ws2_32.dll");
+
+ if (hWinsock == NULL) {
+ jio_fprintf(stderr, "Could not load Winsock 2 (error: %d)\n",
+ ::GetLastError());
+ return;
+ }
+
+ /* If we loaded a DLL, then we might as well initialize it. */
+ WSAStartupPtr = (int (PASCAL FAR *)(WORD, LPWSADATA))
+ ::GetProcAddress(hWinsock, "WSAStartup");
+
+ if (WSAStartupPtr(MAKEWORD(1,1), &wsadata) != 0) {
+ jio_fprintf(stderr, "Could not initialize Winsock\n");
+ }
+
+ get_host_by_name_fn
+ = (ws2_ifn_ptr_t*) GetProcAddress(hWinsock, "gethostbyname");
+ }
+
+ assert(get_host_by_name_fn != NULL,
+ "gethostbyname function not found");
+ sockfnptrs_initialized = TRUE;
+ ::mutexUnlock(&sockFnTableMutex);
+}
+
+struct hostent* os::get_host_by_name(char* name) {
+ if (!sockfnptrs_initialized) {
+ initSockFnTable();
+ }
+
+ assert(sockfnptrs_initialized == TRUE && get_host_by_name_fn != NULL,
+ "sockfnptrs is not initialized or pointer to gethostbyname function is NULL");
+ return (*get_host_by_name_fn)(name);
+}
+
+
+int os::socket_close(int fd) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::socket_available(int fd, jint *pbytes) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::socket(int domain, int type, int protocol) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::listen(int fd, int count) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::connect(int fd, struct sockaddr *him, int len) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::accept(int fd, struct sockaddr *him, int *len) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::sendto(int fd, char *buf, int len, int flags,
+ struct sockaddr *to, int tolen) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::recvfrom(int fd, char *buf, int nBytes, int flags,
+ sockaddr *from, int *fromlen) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::recv(int fd, char *buf, int nBytes, int flags) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::send(int fd, char *buf, int nBytes, int flags) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::raw_send(int fd, char *buf, int nBytes, int flags) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::timeout(int fd, long timeout) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::get_host_name(char* name, int namelen) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::socket_shutdown(int fd, int howto) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::bind(int fd, struct sockaddr *him, int len) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::get_sock_name(int fd, struct sockaddr *him, int *len) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::get_sock_opt(int fd, int level, int optname,
+ char *optval, int* optlen) {
+ ShouldNotReachHere();
+ return 0;
+}
+
+int os::set_sock_opt(int fd, int level, int optname,
+ const char *optval, int optlen) {
+ ShouldNotReachHere();
+ return 0;
+}
diff --git a/hotspot/src/os/windows/vm/os_windows.hpp b/hotspot/src/os/windows/vm/os_windows.hpp
index eacf1f8a1e8..ddc7e203657 100644
--- a/hotspot/src/os/windows/vm/os_windows.hpp
+++ b/hotspot/src/os/windows/vm/os_windows.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_WINDOWS_VM_OS_WINDOWS_HPP
+#define OS_WINDOWS_VM_OS_WINDOWS_HPP
+
// Win32_OS defines the interface to windows operating systems
class win32 {
@@ -124,3 +127,5 @@ class PlatformParker : public CHeapObj {
}
} ;
+
+#endif // OS_WINDOWS_VM_OS_WINDOWS_HPP
diff --git a/hotspot/src/os/windows/vm/os_windows.inline.hpp b/hotspot/src/os/windows/vm/os_windows.inline.hpp
index 8c709b29fa9..cee281fada7 100644
--- a/hotspot/src/os/windows/vm/os_windows.inline.hpp
+++ b/hotspot/src/os/windows/vm/os_windows.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, 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,18 +22,39 @@
*
*/
+#ifndef OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP
+#define OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#ifdef TARGET_OS_ARCH_windows_x86
+# include "atomic_windows_x86.inline.hpp"
+# include "orderAccess_windows_x86.inline.hpp"
+#endif
+
inline const char* os::file_separator() { return "\\"; }
inline const char* os::line_separator() { return "\r\n"; }
inline const char* os::path_separator() { return ";"; }
+inline const char* os::dll_file_extension() { return ".dll"; }
inline const char* os::jlong_format_specifier() { return "%I64d"; }
inline const char* os::julong_format_specifier() { return "%I64u"; }
+inline const int os::default_file_open_flags() { return O_BINARY | O_NOINHERIT;}
+
// File names are case-insensitive on windows only
inline int os::file_name_strcmp(const char* s, const char* t) {
return _stricmp(s, t);
}
+inline void os::dll_unload(void *lib) {
+ ::FreeLibrary((HMODULE)lib);
+}
+
+inline void* os::dll_lookup(void *lib, const char *name) {
+ return (void*)::GetProcAddress((HMODULE)lib, name);
+}
+
// Used to improve time-sharing on some systems
inline void os::loop_breaker(int attempts) {}
@@ -72,3 +93,20 @@ inline void os::bang_stack_shadow_pages() {
inline bool os::numa_has_static_binding() { return true; }
inline bool os::numa_has_group_homing() { return false; }
+
+inline size_t os::read(int fd, void *buf, unsigned int nBytes) {
+ return ::read(fd, buf, nBytes);
+}
+
+inline size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
+ return ::read(fd, buf, nBytes);
+}
+
+inline size_t os::write(int fd, const void *buf, unsigned int nBytes) {
+ return ::write(fd, buf, nBytes);
+}
+
+inline int os::close(int fd) {
+ return ::close(fd);
+}
+#endif // OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP
diff --git a/hotspot/src/os/windows/vm/perfMemory_windows.cpp b/hotspot/src/os/windows/vm/perfMemory_windows.cpp
index 7274df0ccb7..fbccc3c89fa 100644
--- a/hotspot/src/os/windows/vm/perfMemory_windows.cpp
+++ b/hotspot/src/os/windows/vm/perfMemory_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,15 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_perfMemory_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/oop.inline.hpp"
+#include "os_windows.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/perfMemory.hpp"
+#include "utilities/exceptions.hpp"
#include
#include
@@ -889,6 +896,7 @@ static bool add_allow_aces(PSECURITY_DESCRIPTOR pSD,
DWORD newACLsize = aclinfo.AclBytesInUse +
(sizeof(ACCESS_ALLOWED_ACE) - sizeof(DWORD)) * ace_count;
for (int i = 0; i < ace_count; i++) {
+ assert(aces[i].pSid != 0, "pSid should not be 0");
newACLsize += GetLengthSid(aces[i].pSid);
}
@@ -1084,6 +1092,9 @@ static LPSECURITY_ATTRIBUTES make_user_everybody_admin_security_attr(
aces[0].pSid = get_user_sid(GetCurrentProcess());
aces[0].mask = umask;
+ if (aces[0].pSid == 0)
+ return NULL;
+
// get the well known SID for BUILTIN\Administrators
PSID administratorsSid = NULL;
SID_IDENTIFIER_AUTHORITY SIDAuthAdministrators = SECURITY_NT_AUTHORITY;
diff --git a/hotspot/src/os/windows/vm/stubRoutines_windows.cpp b/hotspot/src/os/windows/vm/stubRoutines_windows.cpp
index 4721d8275ce..3723a0f7dfa 100644
--- a/hotspot/src/os/windows/vm/stubRoutines_windows.cpp
+++ b/hotspot/src/os/windows/vm/stubRoutines_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,5 +22,7 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_stubRoutines_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "runtime/stubRoutines.hpp"
+
diff --git a/hotspot/src/os/windows/vm/threadCritical_windows.cpp b/hotspot/src/os/windows/vm/threadCritical_windows.cpp
index e638ce8252e..4a498e07e29 100644
--- a/hotspot/src/os/windows/vm/threadCritical_windows.cpp
+++ b/hotspot/src/os/windows/vm/threadCritical_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, 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,9 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_threadCritical_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/threadCritical.hpp"
+#include "thread_windows.inline.hpp"
// OS-includes here
# include
diff --git a/hotspot/src/os/windows/vm/thread_windows.inline.hpp b/hotspot/src/os/windows/vm/thread_windows.inline.hpp
index ade19efc009..9fe391574cc 100644
--- a/hotspot/src/os/windows/vm/thread_windows.inline.hpp
+++ b/hotspot/src/os/windows/vm/thread_windows.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, 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,6 +22,21 @@
*
*/
+#ifndef OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP
+#define OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/prefetch.hpp"
+#include "runtime/thread.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#ifdef TARGET_OS_ARCH_windows_x86
+# include "atomic_windows_x86.inline.hpp"
+# include "orderAccess_windows_x86.inline.hpp"
+# include "prefetch_windows_x86.inline.hpp"
+#endif
+
// Contains inlined functions for class Thread and ThreadLocalStorage
inline void ThreadLocalStorage::pd_invalidate_all() { return; }
+
+#endif // OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP
diff --git a/hotspot/src/os/windows/vm/vmError_windows.cpp b/hotspot/src/os/windows/vm/vmError_windows.cpp
index 468c6935537..7a4b96b2a47 100644
--- a/hotspot/src/os/windows/vm/vmError_windows.cpp
+++ b/hotspot/src/os/windows/vm/vmError_windows.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,11 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_vmError_windows.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/os.hpp"
+#include "runtime/thread.hpp"
+#include "utilities/vmError.hpp"
void VMError::show_message_box(char *buf, int buflen) {
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp
index 342352bf8f1..20a5c5886dc 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,11 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_assembler_linux_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "runtime/os.hpp"
+#include "runtime/threadLocalStorage.hpp"
#include
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp
index b084e07f8c0..648543eadb8 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,14 @@
*
*/
+#ifndef OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP
+#define OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP
+
+#include "orderAccess_linux_sparc.inline.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_sparc.hpp"
+
// Implementation of class atomic
inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; }
@@ -204,3 +212,5 @@ inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value, volatile intptr_t*
inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void* dest, void* compare_value) {
return (void*)cmpxchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest, (intptr_t)compare_value);
}
+
+#endif // OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp
index e67d0d42fde..b0b8c07fe8f 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP
+
//
// Sets the default values for platform dependent flags used by the
// runtime system. (see globals.hpp)
@@ -34,3 +37,5 @@ define_pd_global(intx, CompilerThreadStackSize, 0);
define_pd_global(uintx, HeapBaseMinAddress, 4*G);
// Only used on 64 bit Windows platforms
define_pd_global(bool, UseVectoredExceptions, false);
+
+#endif // OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp
index 2770baaabef..6833c1f4e61 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP
+#define OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP
+
+#include "runtime/orderAccess.hpp"
+#include "vm_version_sparc.hpp"
+
// Implementation of class OrderAccess.
// Assume TSO.
@@ -100,3 +106,5 @@ inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v)
inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); }
inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); }
+
+#endif // OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
index b01fac31c8d..e759e7d8dea 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,43 @@
*
*/
-// do not include precompiled header file
+// no precompiled headers
+#include "assembler_sparc.inline.hpp"
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_linux.h"
+#include "memory/allocation.inline.hpp"
+#include "mutex_linux.inline.hpp"
+#include "nativeInst_sparc.hpp"
+#include "os_share_linux.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/timer.hpp"
+#include "thread_linux.inline.hpp"
+#include "utilities/events.hpp"
+#include "utilities/vmError.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
-#include "incls/_os_linux_sparc.cpp.incl"
// Linux/Sparc has rather obscure naming of registers in sigcontext
// different between 32 and 64 bits
@@ -200,6 +234,18 @@ void os::print_context(outputStream *st, void *context) {
sigcontext* sc = (sigcontext*)context;
st->print_cr("Registers:");
+ st->print_cr(" G1=" INTPTR_FORMAT " G2=" INTPTR_FORMAT
+ " G3=" INTPTR_FORMAT " G4=" INTPTR_FORMAT,
+ SIG_REGS(sc).u_regs[CON_G1],
+ SIG_REGS(sc).u_regs[CON_G2],
+ SIG_REGS(sc).u_regs[CON_G3],
+ SIG_REGS(sc).u_regs[CON_G4]);
+ st->print_cr(" G5=" INTPTR_FORMAT " G6=" INTPTR_FORMAT
+ " G7=" INTPTR_FORMAT " Y=" INTPTR_FORMAT,
+ SIG_REGS(sc).u_regs[CON_G5],
+ SIG_REGS(sc).u_regs[CON_G6],
+ SIG_REGS(sc).u_regs[CON_G7],
+ SIG_REGS(sc).y);
st->print_cr(" O0=" INTPTR_FORMAT " O1=" INTPTR_FORMAT
" O2=" INTPTR_FORMAT " O3=" INTPTR_FORMAT,
SIG_REGS(sc).u_regs[CON_O0],
@@ -213,18 +259,32 @@ void os::print_context(outputStream *st, void *context) {
SIG_REGS(sc).u_regs[CON_O6],
SIG_REGS(sc).u_regs[CON_O7]);
- st->print_cr(" G1=" INTPTR_FORMAT " G2=" INTPTR_FORMAT
- " G3=" INTPTR_FORMAT " G4=" INTPTR_FORMAT,
- SIG_REGS(sc).u_regs[CON_G1],
- SIG_REGS(sc).u_regs[CON_G2],
- SIG_REGS(sc).u_regs[CON_G3],
- SIG_REGS(sc).u_regs[CON_G4]);
- st->print_cr(" G5=" INTPTR_FORMAT " G6=" INTPTR_FORMAT
- " G7=" INTPTR_FORMAT " Y=" INTPTR_FORMAT,
- SIG_REGS(sc).u_regs[CON_G5],
- SIG_REGS(sc).u_regs[CON_G6],
- SIG_REGS(sc).u_regs[CON_G7],
- SIG_REGS(sc).y);
+
+ intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
+ st->print_cr(" L0=" INTPTR_FORMAT " L1=" INTPTR_FORMAT
+ " L2=" INTPTR_FORMAT " L3=" INTPTR_FORMAT,
+ sp[L0->sp_offset_in_saved_window()],
+ sp[L1->sp_offset_in_saved_window()],
+ sp[L2->sp_offset_in_saved_window()],
+ sp[L3->sp_offset_in_saved_window()]);
+ st->print_cr(" L4=" INTPTR_FORMAT " L5=" INTPTR_FORMAT
+ " L6=" INTPTR_FORMAT " L7=" INTPTR_FORMAT,
+ sp[L4->sp_offset_in_saved_window()],
+ sp[L5->sp_offset_in_saved_window()],
+ sp[L6->sp_offset_in_saved_window()],
+ sp[L7->sp_offset_in_saved_window()]);
+ st->print_cr(" I0=" INTPTR_FORMAT " I1=" INTPTR_FORMAT
+ " I2=" INTPTR_FORMAT " I3=" INTPTR_FORMAT,
+ sp[I0->sp_offset_in_saved_window()],
+ sp[I1->sp_offset_in_saved_window()],
+ sp[I2->sp_offset_in_saved_window()],
+ sp[I3->sp_offset_in_saved_window()]);
+ st->print_cr(" I4=" INTPTR_FORMAT " I5=" INTPTR_FORMAT
+ " I6=" INTPTR_FORMAT " I7=" INTPTR_FORMAT,
+ sp[I4->sp_offset_in_saved_window()],
+ sp[I5->sp_offset_in_saved_window()],
+ sp[I6->sp_offset_in_saved_window()],
+ sp[I7->sp_offset_in_saved_window()]);
st->print_cr(" PC=" INTPTR_FORMAT " nPC=" INTPTR_FORMAT,
SIG_PC(sc),
@@ -232,7 +292,6 @@ void os::print_context(outputStream *st, void *context) {
st->cr();
st->cr();
- intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", sp);
print_hex_dump(st, (address)sp, (address)(sp + 32), sizeof(intptr_t));
st->cr();
@@ -242,7 +301,58 @@ void os::print_context(outputStream *st, void *context) {
// this at the end, and hope for the best.
address pc = os::Linux::ucontext_get_pc(uc);
st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc);
- print_hex_dump(st, pc - 16, pc + 16, sizeof(char));
+ print_hex_dump(st, pc - 32, pc + 32, sizeof(char));
+}
+
+
+void os::print_register_info(outputStream *st, void *context) {
+ if (context == NULL) return;
+
+ ucontext_t *uc = (ucontext_t*)context;
+ intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
+
+ st->print_cr("Register to memory mapping:");
+ st->cr();
+
+ // this is only for the "general purpose" registers
+ st->print("G1="); print_location(st, SIG_REGS(sc).u_regs[CON__G1]);
+ st->print("G2="); print_location(st, SIG_REGS(sc).u_regs[CON__G2]);
+ st->print("G3="); print_location(st, SIG_REGS(sc).u_regs[CON__G3]);
+ st->print("G4="); print_location(st, SIG_REGS(sc).u_regs[CON__G4]);
+ st->print("G5="); print_location(st, SIG_REGS(sc).u_regs[CON__G5]);
+ st->print("G6="); print_location(st, SIG_REGS(sc).u_regs[CON__G6]);
+ st->print("G7="); print_location(st, SIG_REGS(sc).u_regs[CON__G7]);
+ st->cr();
+
+ st->print("O0="); print_location(st, SIG_REGS(sc).u_regs[CON__O0]);
+ st->print("O1="); print_location(st, SIG_REGS(sc).u_regs[CON__O1]);
+ st->print("O2="); print_location(st, SIG_REGS(sc).u_regs[CON__O2]);
+ st->print("O3="); print_location(st, SIG_REGS(sc).u_regs[CON__O3]);
+ st->print("O4="); print_location(st, SIG_REGS(sc).u_regs[CON__O4]);
+ st->print("O5="); print_location(st, SIG_REGS(sc).u_regs[CON__O5]);
+ st->print("O6="); print_location(st, SIG_REGS(sc).u_regs[CON__O6]);
+ st->print("O7="); print_location(st, SIG_REGS(sc).u_regs[CON__O7]);
+ st->cr();
+
+ st->print("L0="); print_location(st, sp[L0->sp_offset_in_saved_window()]);
+ st->print("L1="); print_location(st, sp[L1->sp_offset_in_saved_window()]);
+ st->print("L2="); print_location(st, sp[L2->sp_offset_in_saved_window()]);
+ st->print("L3="); print_location(st, sp[L3->sp_offset_in_saved_window()]);
+ st->print("L4="); print_location(st, sp[L4->sp_offset_in_saved_window()]);
+ st->print("L5="); print_location(st, sp[L5->sp_offset_in_saved_window()]);
+ st->print("L6="); print_location(st, sp[L6->sp_offset_in_saved_window()]);
+ st->print("L7="); print_location(st, sp[L7->sp_offset_in_saved_window()]);
+ st->cr();
+
+ st->print("I0="); print_location(st, sp[I0->sp_offset_in_saved_window()]);
+ st->print("I1="); print_location(st, sp[I1->sp_offset_in_saved_window()]);
+ st->print("I2="); print_location(st, sp[I2->sp_offset_in_saved_window()]);
+ st->print("I3="); print_location(st, sp[I3->sp_offset_in_saved_window()]);
+ st->print("I4="); print_location(st, sp[I4->sp_offset_in_saved_window()]);
+ st->print("I5="); print_location(st, sp[I5->sp_offset_in_saved_window()]);
+ st->print("I6="); print_location(st, sp[I6->sp_offset_in_saved_window()]);
+ st->print("I7="); print_location(st, sp[I7->sp_offset_in_saved_window()]);
+ st->cr();
}
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp
index 7b3ef847e85..22d9cf0d88e 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP
+
//
// NOTE: we are back in class os here, not Linux
//
@@ -42,3 +45,5 @@
// Used to register dynamic code cache area with the OS
// Note: Currently only used in 64 bit Windows implementations
static bool register_code_area(char *low, char *high) { return true; }
+
+#endif // OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp
index 14af8a71528..edc472f7506 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,11 @@
*
*/
+#ifndef OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP
+#define OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP
+
+#include "runtime/prefetch.hpp"
+
#if defined(COMPILER2) || defined(_LP64)
inline void Prefetch::read(void *loc, intx interval) {
@@ -38,3 +43,5 @@ inline void Prefetch::read (void *loc, intx interval) {}
inline void Prefetch::write(void *loc, intx interval) {}
#endif
+
+#endif // OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp
index 2031f5a4683..d2ae5ca9f24 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_threadLS_linux_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#include "thread_linux.inline.hpp"
void ThreadLocalStorage::generate_code_for_get_thread() {
}
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp
index cc4a46ffea4..0584108833a 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,7 +22,12 @@
*
*/
+#ifndef OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP
+
public:
static Thread* thread() {
return (Thread*) os::thread_local_storage_at(thread_index());
}
+
+#endif // OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp
index 7b44e39eee7..8f3eaa3e540 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_thread_linux_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/frame.inline.hpp"
+#include "thread_linux.inline.hpp"
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
// currently interrupted by SIGPROF
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp
index ddf7ad83ab7..a3174b579ea 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP
+
private:
void pd_initialize() {
@@ -96,3 +99,5 @@ public:
static bool register_stack_overflow() { return false; }
static void enable_register_stack_guard() {}
static void disable_register_stack_guard() {}
+
+#endif // OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp
index f2f1a83f636..4b0a3e63a29 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP
+
// These are the OS and CPU-specific fields, types and integer
// constants required by the Serviceability Agent. This file is
// referenced by vmStructs.cpp.
@@ -67,3 +70,5 @@
\
/* This must be the last entry, and must be present */ \
last_entry()
+
+#endif // OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP
diff --git a/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp
index 519286881d0..c3d244d987d 100644
--- a/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp
+++ b/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,9 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_vm_version_linux_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_sparc.hpp"
static bool detect_niagara() {
char cpu[128];
diff --git a/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp
index fc42b00c3e3..5cd94107507 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,11 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_assembler_linux_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "runtime/os.hpp"
+#include "runtime/threadLocalStorage.hpp"
#ifndef _LP64
void MacroAssembler::int3() {
diff --git a/hotspot/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp
index c58865aca4d..7a89e56e107 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,14 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP
+
+#include "orderAccess_linux_x86.inline.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_x86.hpp"
+
// Implementation of class atomic
inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; }
@@ -193,3 +201,5 @@ inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void*
return (void*)cmpxchg((jint)exchange_value, (volatile jint*)dest, (jint)compare_value);
}
#endif // AMD64
+
+#endif // OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp
index 33d26d07860..93cb9882263 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP
+
#include
// Efficient swapping of data bytes from Java byte
@@ -83,3 +86,5 @@ inline u8 Bytes::swap_u8(u8 x) {
return swap_u8_base(*(u4*)&x, *(((u4*)&x)+1));
}
#endif // !AMD64
+
+#endif // OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp
index 5829e1a64a1..175019b8644 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP
+
static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) {
#ifdef AMD64
(void)memmove(to, from, count * HeapWordSize);
@@ -302,3 +305,5 @@ static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count)
pd_conjoint_oops_atomic((oop*)from, (oop*)to, count);
#endif // AMD64
}
+
+#endif // OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp
index 8a531a8a2fe..7ca61f27fac 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP
+
// Sets the default values for platform dependent flags used by the runtime system.
// (see globals.hpp)
@@ -45,3 +48,5 @@ define_pd_global(uintx,JVMInvokeMethodSlack, 8192);
define_pd_global(uintx,HeapBaseMinAddress, 2*G);
// Only used on 64 bit Windows platforms
define_pd_global(bool, UseVectoredExceptions, false);
+
+#endif // OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.s b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.s
index ff315197949..819293c8faa 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.s
+++ b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.s
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2010, 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
diff --git a/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp
index d487ece69a3..9adf947ad37 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP
+
+#include "runtime/orderAccess.hpp"
+#include "vm_version_x86.hpp"
+
// Implementation of class OrderAccess.
inline void OrderAccess::loadload() { acquire(); }
@@ -204,3 +210,5 @@ inline void OrderAccess::release_store_ptr_fence(volatile void* p, void*
release_store_fence((volatile jint*)p, (jint)v);
#endif // AMD64
}
+
+#endif // OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
index 29b93ec6dd4..f657dfec2d6 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,42 @@
*
*/
-// do not include precompiled header file
-# include "incls/_os_linux_x86.cpp.incl"
+// no precompiled headers
+#include "assembler_x86.inline.hpp"
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_linux.h"
+#include "memory/allocation.inline.hpp"
+#include "mutex_linux.inline.hpp"
+#include "nativeInst_x86.hpp"
+#include "os_share_linux.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/timer.hpp"
+#include "thread_linux.inline.hpp"
+#include "utilities/events.hpp"
+#include "utilities/vmError.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// put OS-includes here
# include
@@ -718,11 +752,6 @@ void os::print_context(outputStream *st, void *context) {
ucontext_t *uc = (ucontext_t*)context;
st->print_cr("Registers:");
-
- // this is horrendously verbose but the layout of the registers in the
- // context does not match how we defined our abstract Register set, so
- // we can't just iterate through the gregs area
-
#ifdef AMD64
st->print( "RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]);
st->print(", RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]);
@@ -745,68 +774,11 @@ void os::print_context(outputStream *st, void *context) {
st->print(", R15=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R15]);
st->cr();
st->print( "RIP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RIP]);
- st->print(", EFL=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]);
+ st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]);
st->print(", CSGSFS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_CSGSFS]);
st->print(", ERR=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ERR]);
st->cr();
st->print(" TRAPNO=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_TRAPNO]);
-
- st->cr();
- st->cr();
-
- st->print_cr("Register to memory mapping:");
- st->cr();
-
- // this is only for the "general purpose" registers
-
- st->print_cr("RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]);
- print_location(st, uc->uc_mcontext.gregs[REG_RAX]);
- st->cr();
- st->print_cr("RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]);
- print_location(st, uc->uc_mcontext.gregs[REG_RBX]);
- st->cr();
- st->print_cr("RCX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RCX]);
- print_location(st, uc->uc_mcontext.gregs[REG_RCX]);
- st->cr();
- st->print_cr("RDX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDX]);
- print_location(st, uc->uc_mcontext.gregs[REG_RDX]);
- st->cr();
- st->print_cr("RSP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RSP]);
- print_location(st, uc->uc_mcontext.gregs[REG_RSP]);
- st->cr();
- st->print_cr("RBP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBP]);
- print_location(st, uc->uc_mcontext.gregs[REG_RBP]);
- st->cr();
- st->print_cr("RSI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RSI]);
- print_location(st, uc->uc_mcontext.gregs[REG_RSI]);
- st->cr();
- st->print_cr("RDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDI]);
- print_location(st, uc->uc_mcontext.gregs[REG_RDI]);
- st->cr();
- st->print_cr("R8 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]);
- print_location(st, uc->uc_mcontext.gregs[REG_R8]);
- st->cr();
- st->print_cr("R9 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R9]);
- print_location(st, uc->uc_mcontext.gregs[REG_R9]);
- st->cr();
- st->print_cr("R10=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R10]);
- print_location(st, uc->uc_mcontext.gregs[REG_R10]);
- st->cr();
- st->print_cr("R11=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R11]);
- print_location(st, uc->uc_mcontext.gregs[REG_R11]);
- st->cr();
- st->print_cr("R12=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R12]);
- print_location(st, uc->uc_mcontext.gregs[REG_R12]);
- st->cr();
- st->print_cr("R13=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R13]);
- print_location(st, uc->uc_mcontext.gregs[REG_R13]);
- st->cr();
- st->print_cr("R14=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R14]);
- print_location(st, uc->uc_mcontext.gregs[REG_R14]);
- st->cr();
- st->print_cr("R15=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R15]);
- print_location(st, uc->uc_mcontext.gregs[REG_R15]);
-
#else
st->print( "EAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EAX]);
st->print(", EBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EBX]);
@@ -819,41 +791,8 @@ void os::print_context(outputStream *st, void *context) {
st->print(", EDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EDI]);
st->cr();
st->print( "EIP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EIP]);
- st->print(", CR2=" INTPTR_FORMAT, uc->uc_mcontext.cr2);
st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]);
-
- st->cr();
- st->cr();
-
- st->print_cr("Register to memory mapping:");
- st->cr();
-
- // this is only for the "general purpose" registers
-
- st->print_cr("EAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EAX]);
- print_location(st, uc->uc_mcontext.gregs[REG_EAX]);
- st->cr();
- st->print_cr("EBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EBX]);
- print_location(st, uc->uc_mcontext.gregs[REG_EBX]);
- st->cr();
- st->print_cr("ECX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ECX]);
- print_location(st, uc->uc_mcontext.gregs[REG_ECX]);
- st->cr();
- st->print_cr("EDX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EDX]);
- print_location(st, uc->uc_mcontext.gregs[REG_EDX]);
- st->cr();
- st->print_cr("ESP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ESP]);
- print_location(st, uc->uc_mcontext.gregs[REG_ESP]);
- st->cr();
- st->print_cr("EBP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EBP]);
- print_location(st, uc->uc_mcontext.gregs[REG_EBP]);
- st->cr();
- st->print_cr("ESI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ESI]);
- print_location(st, uc->uc_mcontext.gregs[REG_ESI]);
- st->cr();
- st->print_cr("EDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EDI]);
- print_location(st, uc->uc_mcontext.gregs[REG_EDI]);
-
+ st->print(", CR2=" INTPTR_FORMAT, uc->uc_mcontext.cr2);
#endif // AMD64
st->cr();
st->cr();
@@ -868,7 +807,52 @@ void os::print_context(outputStream *st, void *context) {
// this at the end, and hope for the best.
address pc = os::Linux::ucontext_get_pc(uc);
st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc);
- print_hex_dump(st, pc - 16, pc + 16, sizeof(char));
+ print_hex_dump(st, pc - 32, pc + 32, sizeof(char));
+}
+
+void os::print_register_info(outputStream *st, void *context) {
+ if (context == NULL) return;
+
+ ucontext_t *uc = (ucontext_t*)context;
+
+ st->print_cr("Register to memory mapping:");
+ st->cr();
+
+ // this is horrendously verbose but the layout of the registers in the
+ // context does not match how we defined our abstract Register set, so
+ // we can't just iterate through the gregs area
+
+ // this is only for the "general purpose" registers
+
+#ifdef AMD64
+ st->print("RAX="); print_location(st, uc->uc_mcontext.gregs[REG_RAX]);
+ st->print("RBX="); print_location(st, uc->uc_mcontext.gregs[REG_RBX]);
+ st->print("RCX="); print_location(st, uc->uc_mcontext.gregs[REG_RCX]);
+ st->print("RDX="); print_location(st, uc->uc_mcontext.gregs[REG_RDX]);
+ st->print("RSP="); print_location(st, uc->uc_mcontext.gregs[REG_RSP]);
+ st->print("RBP="); print_location(st, uc->uc_mcontext.gregs[REG_RBP]);
+ st->print("RSI="); print_location(st, uc->uc_mcontext.gregs[REG_RSI]);
+ st->print("RDI="); print_location(st, uc->uc_mcontext.gregs[REG_RDI]);
+ st->print("R8 ="); print_location(st, uc->uc_mcontext.gregs[REG_R8]);
+ st->print("R9 ="); print_location(st, uc->uc_mcontext.gregs[REG_R9]);
+ st->print("R10="); print_location(st, uc->uc_mcontext.gregs[REG_R10]);
+ st->print("R11="); print_location(st, uc->uc_mcontext.gregs[REG_R11]);
+ st->print("R12="); print_location(st, uc->uc_mcontext.gregs[REG_R12]);
+ st->print("R13="); print_location(st, uc->uc_mcontext.gregs[REG_R13]);
+ st->print("R14="); print_location(st, uc->uc_mcontext.gregs[REG_R14]);
+ st->print("R15="); print_location(st, uc->uc_mcontext.gregs[REG_R15]);
+#else
+ st->print("EAX="); print_location(st, uc->uc_mcontext.gregs[REG_EAX]);
+ st->print("EBX="); print_location(st, uc->uc_mcontext.gregs[REG_EBX]);
+ st->print("ECX="); print_location(st, uc->uc_mcontext.gregs[REG_ECX]);
+ st->print("EDX="); print_location(st, uc->uc_mcontext.gregs[REG_EDX]);
+ st->print("ESP="); print_location(st, uc->uc_mcontext.gregs[REG_ESP]);
+ st->print("EBP="); print_location(st, uc->uc_mcontext.gregs[REG_EBP]);
+ st->print("ESI="); print_location(st, uc->uc_mcontext.gregs[REG_ESI]);
+ st->print("EDI="); print_location(st, uc->uc_mcontext.gregs[REG_EDI]);
+#endif // AMD64
+
+ st->cr();
}
void os::setup_fpu() {
diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp
index fe5d35788a6..64954d480f8 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP
+
static void setup_fpu();
static bool supports_sse();
@@ -30,3 +33,5 @@
// Used to register dynamic code cache area with the OS
// Note: Currently only used in 64 bit Windows implementations
static bool register_code_area(char *low, char *high) { return true; }
+
+#endif // OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp
index 0499df081b2..ba1cf32aacb 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,11 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP
+
+#include "runtime/prefetch.hpp"
+
inline void Prefetch::read (void *loc, intx interval) {
#ifdef AMD64
@@ -38,3 +43,5 @@ inline void Prefetch::write(void *loc, intx interval) {
#endif // AMD64
}
+
+#endif // OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp
index 5b84568714e..66340de7d7b 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_threadLS_linux_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#include "thread_linux.inline.hpp"
// Map stack pointer (%esp) to thread pointer for faster TLS access
//
diff --git a/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp
index 2b1cb07dd62..55da9c0ca7b 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP
+
// Processor dependent parts of ThreadLocalStorage
#ifndef AMD64
@@ -47,3 +50,5 @@ public:
return _sp_map[sp >> PAGE_SHIFT];
#endif // AMD64
}
+
+#endif // OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp
index b3089810813..3f04c773003 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_thread_linux_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/frame.inline.hpp"
+#include "thread_linux.inline.hpp"
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
// currently interrupted by SIGPROF
diff --git a/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp
index 31eb0d05187..7a7d222521f 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP
+
private:
void pd_initialize() {
_anchor.clear();
@@ -63,3 +66,5 @@
static bool register_stack_overflow() { return false; }
static void enable_register_stack_guard() {}
static void disable_register_stack_guard() {}
+
+#endif // OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp
index 1057ec8afe3..c54cb1d729d 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP
+
// These are the OS and CPU-specific fields, types and integer
// constants required by the Serviceability Agent. This file is
// referenced by vmStructs.cpp.
@@ -58,3 +61,5 @@
\
/* This must be the last entry, and must be present */ \
last_entry()
+
+#endif // OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP
diff --git a/hotspot/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp
index 4ca3fc8c12b..f1a3c3a0b88 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,5 +22,7 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_vm_version_linux_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_x86.hpp"
+
diff --git a/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp
index 1e7f6703a71..ec56a35cd6b 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,10 @@
*
*/
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_zero.inline.hpp"
+#include "runtime/os.hpp"
+#include "runtime/threadLocalStorage.hpp"
+
// This file is intentionally empty
diff --git a/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp b/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
index f4b7d0c57be..fcada2aa417 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,14 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP
+#define OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP
+
+#include "orderAccess_linux_zero.inline.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_zero.hpp"
+
// Implementation of class atomic
#ifdef M68K
@@ -291,3 +299,5 @@ inline void* Atomic::cmpxchg_ptr(void* exchange_value,
(volatile intptr_t*) dest,
(intptr_t) compare_value);
}
+
+#endif // OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp b/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp
index f427b9193d3..707cba2d057 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP
+#define OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP
+
// Efficient swapping of data bytes from Java byte
// ordering to native byte ordering and vice versa.
@@ -38,3 +41,5 @@ inline u4 Bytes::swap_u4(u4 x) {
inline u8 Bytes::swap_u8(u8 x) {
return bswap_64(x);
}
+
+#endif // OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
index 06ce1a20d58..f12bec98636 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP
+
//
// Set the default values for platform dependent flags used by the
// runtime system. See globals.hpp for details of what they do.
@@ -42,3 +45,5 @@ define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
define_pd_global(bool, UseVectoredExceptions, false);
// Only used on 64 bit platforms
define_pd_global(uintx, HeapBaseMinAddress, 2*G);
+
+#endif // OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp b/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp
index c54883b888c..773fd643ab7 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,12 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP
+#define OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP
+
+#include "runtime/orderAccess.hpp"
+#include "vm_version_zero.hpp"
+
#ifdef ARM
/*
@@ -165,3 +171,5 @@ inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v)
inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { release_store_ptr(p, v); fence(); }
inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { release_store_ptr(p, v); fence(); }
+
+#endif // OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
index fd78628b3eb..40e15e2f4f8 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,42 @@
*
*/
-// do not include precompiled header file
-#include "incls/_os_linux_zero.cpp.incl"
+// no precompiled headers
+#include "assembler_zero.inline.hpp"
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_linux.h"
+#include "memory/allocation.inline.hpp"
+#include "mutex_linux.inline.hpp"
+#include "nativeInst_zero.hpp"
+#include "os_share_linux.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/timer.hpp"
+#include "thread_linux.inline.hpp"
+#include "utilities/events.hpp"
+#include "utilities/vmError.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
address os::current_stack_pointer() {
address dummy = (address) &dummy;
@@ -370,6 +404,10 @@ void os::print_context(outputStream* st, void* context) {
ShouldNotCallThis();
}
+void os::print_register_info(outputStream *st, void *context) {
+ ShouldNotCallThis();
+}
+
/////////////////////////////////////////////////////////////////////////////
// Stubs for things that would be in linux_zero.s if it existed.
// You probably want to disassemble these monkeys to check they're ok.
diff --git a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
index 84c87f8073b..1d4576679d3 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP
+
static void setup_fpu() {}
static bool is_allocatable(size_t bytes);
@@ -49,3 +52,5 @@
*(jlong *) dst = *(jlong *) src;
#endif
}
+
+#endif // OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp b/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp
index 346a6079808..e34fef0b85d 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,15 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP
+#define OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP
+
+#include "runtime/prefetch.hpp"
+
inline void Prefetch::read(void* loc, intx interval) {
}
inline void Prefetch::write(void* loc, intx interval) {
}
+
+#endif // OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp
index 6dc339d700a..0981ea5dd61 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_threadLS_linux_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#include "thread_linux.inline.hpp"
void ThreadLocalStorage::generate_code_for_get_thread() {
// nothing to do
diff --git a/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp
index 260602df149..3fd4ccf973f 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,14 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP
+
// Processor dependent parts of ThreadLocalStorage
public:
static Thread* thread() {
return (Thread*) os::thread_local_storage_at(thread_index());
}
+
+#endif // OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp
index 8551eafce62..9c1b7336c63 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,8 +23,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_thread_linux_zero.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/frame.inline.hpp"
+#include "thread_linux.inline.hpp"
void JavaThread::cache_global_variables() {
// nothing to do
diff --git a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
index 086bceea99e..39f77f858d0 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP
+
private:
ZeroStack _zero_stack;
ZeroFrame* _top_zero_frame;
@@ -114,3 +117,5 @@
static bool register_stack_overflow() { return false; }
static void enable_register_stack_guard() {}
static void disable_register_stack_guard() {}
+
+#endif // OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp
index 007ecfcaf85..46c7912c372 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,6 +23,9 @@
*
*/
+#ifndef OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP
+
// These are the OS and CPU-specific fields, types and integer
// constants required by the Serviceability Agent. This file is
// referenced by vmStructs.cpp.
@@ -43,3 +46,5 @@
#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \
/* This must be the last entry, and must be present */ \
last_entry()
+
+#endif // OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp
index 1e7f6703a71..f2ca79f388c 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -23,4 +23,8 @@
*
*/
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_zero.hpp"
+
// This file is intentionally empty
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp
index 92fb4a45263..5e9eaa12a31 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,11 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_assembler_solaris_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_sparc.inline.hpp"
+#include "runtime/os.hpp"
+#include "runtime/threadLocalStorage.hpp"
#include // For trap numbers
#include // For V8 compatibility
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp
index 1931e6114c0..006962519ac 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,14 @@
*
*/
+#ifndef OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP
+#define OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP
+
+#include "orderAccess_solaris_sparc.inline.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_sparc.hpp"
+
// Implementation of class atomic
inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; }
@@ -342,3 +350,5 @@ inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void*
#endif // _LP64 || COMPILER2
#endif // _GNU_SOURCE
+
+#endif // OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp
index f9e43a77b59..febba7cd211 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP
+
//
// Sets the default values for platform dependent flags used by the runtime system.
// (see globals.hpp)
@@ -36,3 +39,5 @@ define_pd_global(uintx, HeapBaseMinAddress, 4*G);
define_pd_global(bool, UseVectoredExceptions, false);
+
+#endif // OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp
index 6075e010687..bb732bd6b16 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP
+#define OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP
+
+#include "runtime/orderAccess.hpp"
+#include "vm_version_sparc.hpp"
+
// Implementation of class OrderAccess.
// Assume TSO.
@@ -124,3 +130,5 @@ inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v)
inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); }
inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); }
+
+#endif // OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
index 91ae05ace11..3b83be3ebba 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,12 +22,46 @@
*
*/
-// do not include precompiled header file
+// no precompiled headers
+#include "assembler_sparc.inline.hpp"
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_solaris.h"
+#include "memory/allocation.inline.hpp"
+#include "mutex_solaris.inline.hpp"
+#include "nativeInst_sparc.hpp"
+#include "os_share_solaris.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/timer.hpp"
+#include "thread_solaris.inline.hpp"
+#include "utilities/events.hpp"
+#include "utilities/vmError.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
+
# include // needed first to avoid name collision for "std" with SC 5.0
-# include "incls/_os_solaris_sparc.cpp.incl"
-
// put OS-includes here
# include
# include
@@ -254,17 +288,17 @@ static int threadgetstate(thread_t tid, int *flags, lwpid_t *lwp, stack_t *ss, g
if (*flags == TRS_LWPID) {
sprintf(lwpstatusfile, "/proc/%d/lwp/%d/lwpstatus", getpid(),
*lwp);
- if ((lwpfd = open(lwpstatusfile, O_RDONLY)) < 0) {
+ if ((lwpfd = ::open(lwpstatusfile, O_RDONLY)) < 0) {
perror("thr_mutator_status: open lwpstatus");
return (EINVAL);
}
if (pread(lwpfd, lwpstatus, sizeof (lwpstatus_t), (off_t)0) !=
sizeof (lwpstatus_t)) {
perror("thr_mutator_status: read lwpstatus");
- (void) close(lwpfd);
+ (void) ::close(lwpfd);
return (EINVAL);
}
- (void) close(lwpfd);
+ (void) ::close(lwpfd);
}
return (0);
}
@@ -540,12 +574,24 @@ int JVM_handle_solaris_signal(int sig, siginfo_t* info, void* ucVoid, int abort_
pc = (address) uc->uc_mcontext.gregs[REG_PC];
}
+ // Sometimes the register windows are not properly flushed.
+ if(uc->uc_mcontext.gwins != NULL) {
+ ::handle_unflushed_register_windows(uc->uc_mcontext.gwins);
+ }
+
// unmask current signal
sigset_t newset;
sigemptyset(&newset);
sigaddset(&newset, sig);
sigprocmask(SIG_UNBLOCK, &newset, NULL);
+ // Determine which sort of error to throw. Out of swap may signal
+ // on the thread stack, which could get a mapping error when touched.
+ address addr = (address) info->si_addr;
+ if (sig == SIGBUS && info->si_code == BUS_OBJERR && info->si_errno == ENOMEM) {
+ vm_exit_out_of_memory(0, "Out of swap space to map in thread stack.");
+ }
+
VMError err(t, sig, pc, info, ucVoid);
err.report_and_die();
@@ -558,6 +604,18 @@ void os::print_context(outputStream *st, void *context) {
ucontext_t *uc = (ucontext_t*)context;
st->print_cr("Registers:");
+ st->print_cr(" G1=" INTPTR_FORMAT " G2=" INTPTR_FORMAT
+ " G3=" INTPTR_FORMAT " G4=" INTPTR_FORMAT,
+ uc->uc_mcontext.gregs[REG_G1],
+ uc->uc_mcontext.gregs[REG_G2],
+ uc->uc_mcontext.gregs[REG_G3],
+ uc->uc_mcontext.gregs[REG_G4]);
+ st->print_cr(" G5=" INTPTR_FORMAT " G6=" INTPTR_FORMAT
+ " G7=" INTPTR_FORMAT " Y=" INTPTR_FORMAT,
+ uc->uc_mcontext.gregs[REG_G5],
+ uc->uc_mcontext.gregs[REG_G6],
+ uc->uc_mcontext.gregs[REG_G7],
+ uc->uc_mcontext.gregs[REG_Y]);
st->print_cr(" O0=" INTPTR_FORMAT " O1=" INTPTR_FORMAT
" O2=" INTPTR_FORMAT " O3=" INTPTR_FORMAT,
uc->uc_mcontext.gregs[REG_O0],
@@ -571,81 +629,39 @@ void os::print_context(outputStream *st, void *context) {
uc->uc_mcontext.gregs[REG_O6],
uc->uc_mcontext.gregs[REG_O7]);
- st->print_cr(" G1=" INTPTR_FORMAT " G2=" INTPTR_FORMAT
- " G3=" INTPTR_FORMAT " G4=" INTPTR_FORMAT,
- uc->uc_mcontext.gregs[REG_G1],
- uc->uc_mcontext.gregs[REG_G2],
- uc->uc_mcontext.gregs[REG_G3],
- uc->uc_mcontext.gregs[REG_G4]);
- st->print_cr(" G5=" INTPTR_FORMAT " G6=" INTPTR_FORMAT
- " G7=" INTPTR_FORMAT " Y=" INTPTR_FORMAT,
- uc->uc_mcontext.gregs[REG_G5],
- uc->uc_mcontext.gregs[REG_G6],
- uc->uc_mcontext.gregs[REG_G7],
- uc->uc_mcontext.gregs[REG_Y]);
+
+ intptr_t *sp = (intptr_t *)os::Solaris::ucontext_get_sp(uc);
+ st->print_cr(" L0=" INTPTR_FORMAT " L1=" INTPTR_FORMAT
+ " L2=" INTPTR_FORMAT " L3=" INTPTR_FORMAT,
+ sp[L0->sp_offset_in_saved_window()],
+ sp[L1->sp_offset_in_saved_window()],
+ sp[L2->sp_offset_in_saved_window()],
+ sp[L3->sp_offset_in_saved_window()]);
+ st->print_cr(" L4=" INTPTR_FORMAT " L5=" INTPTR_FORMAT
+ " L6=" INTPTR_FORMAT " L7=" INTPTR_FORMAT,
+ sp[L4->sp_offset_in_saved_window()],
+ sp[L5->sp_offset_in_saved_window()],
+ sp[L6->sp_offset_in_saved_window()],
+ sp[L7->sp_offset_in_saved_window()]);
+ st->print_cr(" I0=" INTPTR_FORMAT " I1=" INTPTR_FORMAT
+ " I2=" INTPTR_FORMAT " I3=" INTPTR_FORMAT,
+ sp[I0->sp_offset_in_saved_window()],
+ sp[I1->sp_offset_in_saved_window()],
+ sp[I2->sp_offset_in_saved_window()],
+ sp[I3->sp_offset_in_saved_window()]);
+ st->print_cr(" I4=" INTPTR_FORMAT " I5=" INTPTR_FORMAT
+ " I6=" INTPTR_FORMAT " I7=" INTPTR_FORMAT,
+ sp[I4->sp_offset_in_saved_window()],
+ sp[I5->sp_offset_in_saved_window()],
+ sp[I6->sp_offset_in_saved_window()],
+ sp[I7->sp_offset_in_saved_window()]);
st->print_cr(" PC=" INTPTR_FORMAT " nPC=" INTPTR_FORMAT,
uc->uc_mcontext.gregs[REG_PC],
uc->uc_mcontext.gregs[REG_nPC]);
-
st->cr();
st->cr();
- st->print_cr("Register to memory mapping:");
- st->cr();
-
- // this is only for the "general purpose" registers
-
- st->print_cr("O0=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O0]);
- print_location(st, uc->uc_mcontext.gregs[REG_O0]);
- st->cr();
- st->print_cr("O1=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O1]);
- print_location(st, uc->uc_mcontext.gregs[REG_O1]);
- st->cr();
- st->print_cr("O2=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O2]);
- print_location(st, uc->uc_mcontext.gregs[REG_O2]);
- st->cr();
- st->print_cr("O3=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O3]);
- print_location(st, uc->uc_mcontext.gregs[REG_O3]);
- st->cr();
- st->print_cr("O4=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O4]);
- print_location(st, uc->uc_mcontext.gregs[REG_O4]);
- st->cr();
- st->print_cr("O5=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O5]);
- print_location(st, uc->uc_mcontext.gregs[REG_O5]);
- st->cr();
- st->print_cr("O6=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O6]);
- print_location(st, uc->uc_mcontext.gregs[REG_O6]);
- st->cr();
- st->print_cr("O7=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O7]);
- print_location(st, uc->uc_mcontext.gregs[REG_O7]);
- st->cr();
-
- st->print_cr("G1=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G1]);
- print_location(st, uc->uc_mcontext.gregs[REG_G1]);
- st->cr();
- st->print_cr("G2=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G2]);
- print_location(st, uc->uc_mcontext.gregs[REG_G2]);
- st->cr();
- st->print_cr("G3=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G3]);
- print_location(st, uc->uc_mcontext.gregs[REG_G3]);
- st->cr();
- st->print_cr("G4=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G4]);
- print_location(st, uc->uc_mcontext.gregs[REG_G4]);
- st->cr();
- st->print_cr("G5=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G5]);
- print_location(st, uc->uc_mcontext.gregs[REG_G5]);
- st->cr();
- st->print_cr("G6=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G6]);
- print_location(st, uc->uc_mcontext.gregs[REG_G6]);
- st->cr();
- st->print_cr("G7=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G7]);
- print_location(st, uc->uc_mcontext.gregs[REG_G7]);
-
- st->cr();
- st->cr();
-
- intptr_t *sp = (intptr_t *)os::Solaris::ucontext_get_sp(uc);
st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", sp);
print_hex_dump(st, (address)sp, (address)(sp + 32), sizeof(intptr_t));
st->cr();
@@ -656,7 +672,57 @@ void os::print_context(outputStream *st, void *context) {
ExtendedPC epc = os::Solaris::ucontext_get_ExtendedPC(uc);
address pc = epc.pc();
st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc);
- print_hex_dump(st, pc - 16, pc + 16, sizeof(char));
+ print_hex_dump(st, pc - 32, pc + 32, sizeof(char));
+}
+
+void os::print_register_info(outputStream *st, void *context) {
+ if (context == NULL) return;
+
+ ucontext_t *uc = (ucontext_t*)context;
+ intptr_t *sp = (intptr_t *)os::Solaris::ucontext_get_sp(uc);
+
+ st->print_cr("Register to memory mapping:");
+ st->cr();
+
+ // this is only for the "general purpose" registers
+ st->print("G1="); print_location(st, uc->uc_mcontext.gregs[REG_G1]);
+ st->print("G2="); print_location(st, uc->uc_mcontext.gregs[REG_G2]);
+ st->print("G3="); print_location(st, uc->uc_mcontext.gregs[REG_G3]);
+ st->print("G4="); print_location(st, uc->uc_mcontext.gregs[REG_G4]);
+ st->print("G5="); print_location(st, uc->uc_mcontext.gregs[REG_G5]);
+ st->print("G6="); print_location(st, uc->uc_mcontext.gregs[REG_G6]);
+ st->print("G7="); print_location(st, uc->uc_mcontext.gregs[REG_G7]);
+ st->cr();
+
+ st->print("O0="); print_location(st, uc->uc_mcontext.gregs[REG_O0]);
+ st->print("O1="); print_location(st, uc->uc_mcontext.gregs[REG_O1]);
+ st->print("O2="); print_location(st, uc->uc_mcontext.gregs[REG_O2]);
+ st->print("O3="); print_location(st, uc->uc_mcontext.gregs[REG_O3]);
+ st->print("O4="); print_location(st, uc->uc_mcontext.gregs[REG_O4]);
+ st->print("O5="); print_location(st, uc->uc_mcontext.gregs[REG_O5]);
+ st->print("O6="); print_location(st, uc->uc_mcontext.gregs[REG_O6]);
+ st->print("O7="); print_location(st, uc->uc_mcontext.gregs[REG_O7]);
+ st->cr();
+
+ st->print("L0="); print_location(st, sp[L0->sp_offset_in_saved_window()]);
+ st->print("L1="); print_location(st, sp[L1->sp_offset_in_saved_window()]);
+ st->print("L2="); print_location(st, sp[L2->sp_offset_in_saved_window()]);
+ st->print("L3="); print_location(st, sp[L3->sp_offset_in_saved_window()]);
+ st->print("L4="); print_location(st, sp[L4->sp_offset_in_saved_window()]);
+ st->print("L5="); print_location(st, sp[L5->sp_offset_in_saved_window()]);
+ st->print("L6="); print_location(st, sp[L6->sp_offset_in_saved_window()]);
+ st->print("L7="); print_location(st, sp[L7->sp_offset_in_saved_window()]);
+ st->cr();
+
+ st->print("I0="); print_location(st, sp[I0->sp_offset_in_saved_window()]);
+ st->print("I1="); print_location(st, sp[I1->sp_offset_in_saved_window()]);
+ st->print("I2="); print_location(st, sp[I2->sp_offset_in_saved_window()]);
+ st->print("I3="); print_location(st, sp[I3->sp_offset_in_saved_window()]);
+ st->print("I4="); print_location(st, sp[I4->sp_offset_in_saved_window()]);
+ st->print("I5="); print_location(st, sp[I5->sp_offset_in_saved_window()]);
+ st->print("I6="); print_location(st, sp[I6->sp_offset_in_saved_window()]);
+ st->print("I7="); print_location(st, sp[I7->sp_offset_in_saved_window()]);
+ st->cr();
}
void os::Solaris::init_thread_fpu_state(void) {
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp
index 9d9e6192f48..59bd417b470 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP
+
//
// NOTE: we are back in class os here, not Solaris
//
@@ -42,3 +45,5 @@
// Used to register dynamic code cache area with the OS
// Note: Currently only used in 64 bit Windows implementations
static bool register_code_area(char *low, char *high) { return true; }
+
+#endif // OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp
index cd8cddecbc6..70729176433 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,11 @@
*
*/
+#ifndef OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP
+#define OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP
+
+#include "runtime/prefetch.hpp"
+
#if defined(COMPILER2) || defined(_LP64)
// For Sun Studio inplementation is in solaris_sparc.il
@@ -56,3 +61,5 @@ inline void Prefetch::read (void *loc, intx interval) {}
inline void Prefetch::write(void *loc, intx interval) {}
#endif // defined(COMPILER2) || defined(_LP64)
+
+#endif // OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp
index 92cccf36ec6..178808ffb3f 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,13 +22,15 @@
*
*/
+#include "precompiled.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#include "thread_solaris.inline.hpp"
+
// Provides an entry point we can link against and
// a buffer we can emit code into. The buffer is
// filled by ThreadLocalStorage::generate_code_for_get_thread
// and called from ThreadLocalStorage::thread()
-#include "incls/_precompiled.incl"
-#include "incls/_threadLS_solaris_sparc.cpp.incl"
#include
// The portable TLS mechanism (get_thread_via_cache) is enough on SPARC.
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp
index 9d78f743e51..98a8fc58c31 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP
+
public:
// Java Thread - force inlining
static inline Thread* thread() ;
@@ -64,3 +67,5 @@ public:
uintptr_t ix = (int) (((raw_id >> 9) ^ (raw_id >> 20)) % _pd_cache_size);
return ix;
}
+
+#endif // OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp
index 84efd5e76d1..f622943fedb 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,9 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_thread_solaris_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/frame.inline.hpp"
+#include "thread_solaris.inline.hpp"
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
// currently interrupted by SIGPROF
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp
index 4f8ab325bd9..1cd0709b6e3 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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
@@ -21,6 +21,9 @@
* questions.
*
*/
+
+#ifndef OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP
private:
void pd_initialize() {
@@ -95,3 +98,5 @@ public:
static bool register_stack_overflow() { return false; }
static void enable_register_stack_guard() {}
static void disable_register_stack_guard() {}
+
+#endif // OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp
index 182a7184831..710e3369042 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP
+
// These are the OS and CPU-specific fields, types and integer
// constants required by the Serviceability Agent. This file is
// referenced by vmStructs.cpp.
@@ -65,3 +68,5 @@
\
/* This must be the last entry, and must be present */ \
last_entry()
+
+#endif // OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp
index cb7b44a0f08..855e9a965f1 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, 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,12 +22,14 @@
*
*/
-# include "incls/_precompiled.incl"
-# include "incls/_vm_version_solaris_sparc.cpp.incl"
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_sparc.hpp"
# include
# include
# include
+# include
// We need to keep these here as long as we have to build on Solaris
// versions before 10.
@@ -65,10 +67,6 @@ int VM_Version::platform_features(int features) {
// getisax(2), SI_ARCHITECTURE_32, and SI_ARCHITECTURE_64 are
// supported on Solaris 10 and later.
if (os::Solaris::supports_getisax()) {
-#ifndef PRODUCT
- if (PrintMiscellaneous && Verbose)
- tty->print_cr("getisax(2) supported.");
-#endif
// Check 32-bit architecture.
do_sysinfo(SI_ARCHITECTURE_32, "sparc", &features, v8_instructions_m);
@@ -81,6 +79,11 @@ int VM_Version::platform_features(int features) {
uint_t avn = os::Solaris::getisax(&av, 1);
assert(avn == 1, "should only return one av");
+#ifndef PRODUCT
+ if (PrintMiscellaneous && Verbose)
+ tty->print_cr("getisax(2) returned: " PTR32_FORMAT, av);
+#endif
+
if (av & AV_SPARC_MUL32) features |= hardware_mul32_m;
if (av & AV_SPARC_DIV32) features |= hardware_div32_m;
if (av & AV_SPARC_FSMULD) features |= hardware_fsmuld_m;
@@ -88,11 +91,34 @@ int VM_Version::platform_features(int features) {
if (av & AV_SPARC_POPC) features |= hardware_popc_m;
if (av & AV_SPARC_VIS) features |= vis1_instructions_m;
if (av & AV_SPARC_VIS2) features |= vis2_instructions_m;
+
+ // Next values are not defined before Solaris 10
+ // but Solaris 8 is used for jdk6 update builds.
+#ifndef AV_SPARC_ASI_BLK_INIT
+#define AV_SPARC_ASI_BLK_INIT 0x0080 /* ASI_BLK_INIT_xxx ASI */
+#endif
+ if (av & AV_SPARC_ASI_BLK_INIT) features |= blk_init_instructions_m;
+
+#ifndef AV_SPARC_FMAF
+#define AV_SPARC_FMAF 0x0100 /* Fused Multiply-Add */
+#endif
+ if (av & AV_SPARC_FMAF) features |= fmaf_instructions_m;
+
+#ifndef AV_SPARC_FMAU
+#define AV_SPARC_FMAU 0x0200 /* Unfused Multiply-Add */
+#endif
+ if (av & AV_SPARC_FMAU) features |= fmau_instructions_m;
+
+#ifndef AV_SPARC_VIS3
+#define AV_SPARC_VIS3 0x0400 /* VIS3 instruction set extensions */
+#endif
+ if (av & AV_SPARC_VIS3) features |= vis3_instructions_m;
+
} else {
// getisax(2) failed, use the old legacy code.
#ifndef PRODUCT
if (PrintMiscellaneous && Verbose)
- tty->print_cr("getisax(2) not supported.");
+ tty->print_cr("getisax(2) is not supported.");
#endif
char tmp;
@@ -127,5 +153,59 @@ int VM_Version::platform_features(int features) {
// Determine the machine type.
do_sysinfo(SI_MACHINE, "sun4v", &features, sun4v_m);
+ {
+ // Using kstat to determine the machine type.
+ kstat_ctl_t* kc = kstat_open();
+ kstat_t* ksp = kstat_lookup(kc, (char*)"cpu_info", -1, NULL);
+ const char* implementation = "UNKNOWN";
+ if (ksp != NULL) {
+ if (kstat_read(kc, ksp, NULL) != -1 && ksp->ks_data != NULL) {
+ kstat_named_t* knm = (kstat_named_t *)ksp->ks_data;
+ for (int i = 0; i < ksp->ks_ndata; i++) {
+ if (strcmp((const char*)&(knm[i].name),"implementation") == 0) {
+#ifndef KSTAT_DATA_STRING
+#define KSTAT_DATA_STRING 9
+#endif
+ if (knm[i].data_type == KSTAT_DATA_CHAR) {
+ // VM is running on Solaris 8 which does not have value.str.
+ implementation = &(knm[i].value.c[0]);
+ } else if (knm[i].data_type == KSTAT_DATA_STRING) {
+ // VM is running on Solaris 10.
+#ifndef KSTAT_NAMED_STR_PTR
+ // Solaris 8 was used to build VM, define the structure it misses.
+ struct str_t {
+ union {
+ char *ptr; /* NULL-term string */
+ char __pad[8]; /* 64-bit padding */
+ } addr;
+ uint32_t len; /* # bytes for strlen + '\0' */
+ };
+#define KSTAT_NAMED_STR_PTR(knptr) (( (str_t*)&((knptr)->value) )->addr.ptr)
+#endif
+ implementation = KSTAT_NAMED_STR_PTR(&knm[i]);
+ }
+#ifndef PRODUCT
+ if (PrintMiscellaneous && Verbose) {
+ tty->print_cr("cpu_info.implementation: %s", implementation);
+ }
+#endif
+ if (strncmp(implementation, "SPARC64", 7) == 0) {
+ features |= sparc64_family_m;
+ } else if (strncmp(implementation, "UltraSPARC-T", 12) == 0) {
+ features |= T_family_m;
+ if (strncmp(implementation, "UltraSPARC-T1", 13) == 0) {
+ features |= T1_model_m;
+ }
+ }
+ break;
+ }
+ } // for(
+ }
+ }
+ assert(strcmp(implementation, "UNKNOWN") != 0,
+ "unknown cpu info (changed kstat interface?)");
+ kstat_close(kc);
+ }
+
return features;
}
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp
index bb782860f64..d1cd12f2803 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp
+++ b/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,11 @@
*
*/
-#include "incls/_precompiled.incl"
-#include "incls/_assembler_solaris_x86.cpp.incl"
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "runtime/os.hpp"
+#include "runtime/threadLocalStorage.hpp"
void MacroAssembler::int3() {
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp
index 240a8de5c1d..a4b04606b9a 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp
+++ b/hotspot/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2010, 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,6 +22,14 @@
*
*/
+#ifndef OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP
+#define OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP
+
+#include "orderAccess_solaris_x86.inline.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_x86.hpp"
+
inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; }
inline void Atomic::store (jshort store_value, jshort* dest) { *dest = store_value; }
inline void Atomic::store (jint store_value, jint* dest) { *dest = store_value; }
@@ -245,3 +253,5 @@ extern "C" {
#undef LOCK_IF_MP
#endif // _GNU_SOURCE
+
+#endif // OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp
index 075986d2159..58620e59fd7 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp
+++ b/hotspot/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP
+#define OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP
+
// For Sun Studio - implementation is in solaris_i486.il.
// For gcc - implementation is just below.
extern "C" u2 _raw_swap_u2(u2 x);
@@ -109,3 +112,5 @@ extern "C" {
#endif // AMD64
}
#endif //_GNU_SOURCE
+
+#endif // OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp
index a78ef6fe311..4d3790d504f 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp
+++ b/hotspot/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, 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,6 +22,9 @@
*
*/
+#ifndef OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP
+#define OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP
+
static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) {
(void)memmove(to, from, count * HeapWordSize);
}
@@ -136,3 +139,5 @@ static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count)
_Copy_arrayof_conjoint_jints(from, to, count);
#endif // AMD64
}
+
+#endif // OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp b/hotspot/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp
index 36fd38fcc4d..0bbe0acba0c 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp
+++ b/hotspot/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp
@@ -22,6 +22,9 @@
*
*/
+#ifndef OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP
+#define OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP
+
// Sets the default values for platform dependent flags used by the runtime system.
// (see globals.hpp)
@@ -44,3 +47,5 @@ define_pd_global(intx, CompilerThreadStackSize, 0);
define_pd_global(uintx,HeapBaseMinAddress, 256*M);
// Only used on 64 bit Windows platforms
define_pd_global(bool, UseVectoredExceptions, false);
+
+#endif // OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp
index 84c1ce9238d..a4894c8f89a 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp
+++ b/hotspot/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp
@@ -22,6 +22,12 @@
*
*/
+#ifndef OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP
+#define OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP
+
+#include "runtime/orderAccess.hpp"
+#include "vm_version_x86.hpp"
+
// Implementation of class OrderAccess.
// For Sun Studio - implementation is in solaris_i486.il.
@@ -127,3 +133,5 @@ inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v)
inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); }
inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); }
+
+#endif // OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp
index a80374a0095..d9bb0eb58c3 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp
+++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp
@@ -22,8 +22,42 @@
*
*/
-// do not include precompiled header file
-# include "incls/_os_solaris_x86.cpp.incl"
+// no precompiled headers
+#include "assembler_x86.inline.hpp"
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_solaris.h"
+#include "memory/allocation.inline.hpp"
+#include "mutex_solaris.inline.hpp"
+#include "nativeInst_x86.hpp"
+#include "os_share_solaris.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/timer.hpp"
+#include "thread_solaris.inline.hpp"
+#include "utilities/events.hpp"
+#include "utilities/vmError.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
// put OS-includes here
# include