aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--make/Makefile3
-rw-r--r--make/closed.make59
-rw-r--r--make/jprt.properties139
-rw-r--r--make/linux/Makefile2
-rw-r--r--make/linux/makefiles/adlc.make4
-rw-r--r--make/linux/makefiles/arm.make10
-rw-r--r--make/linux/makefiles/buildtree.make22
-rw-r--r--make/linux/makefiles/ppc.make11
-rw-r--r--make/linux/makefiles/rules.make2
-rw-r--r--make/linux/makefiles/top.make4
-rw-r--r--make/linux/makefiles/vm.make4
-rw-r--r--make/linux/platform_arm17
-rw-r--r--make/linux/platform_ppc17
-rw-r--r--src/os/linux/vm/osThread_linux.cpp6
-rw-r--r--src/os/linux/vm/os_linux.cpp8
-rw-r--r--src/os/linux/vm/os_linux.inline.hpp8
-rw-r--r--src/os/linux/vm/thread_linux.inline.hpp10
-rw-r--r--src/share/vm/asm/assembler.cpp6
-rw-r--r--src/share/vm/asm/assembler.hpp14
-rw-r--r--src/share/vm/asm/codeBuffer.hpp6
-rw-r--r--src/share/vm/c1/c1_Defs.hpp12
-rw-r--r--src/share/vm/c1/c1_FpuStackSim.hpp6
-rw-r--r--src/share/vm/c1/c1_FrameMap.cpp6
-rw-r--r--src/share/vm/c1/c1_FrameMap.hpp6
-rw-r--r--src/share/vm/c1/c1_Instruction.hpp2
-rw-r--r--src/share/vm/c1/c1_LIRAssembler.cpp8
-rw-r--r--src/share/vm/c1/c1_LIRAssembler.hpp6
-rw-r--r--src/share/vm/c1/c1_LinearScan.cpp6
-rw-r--r--src/share/vm/c1/c1_LinearScan.hpp6
-rw-r--r--src/share/vm/c1/c1_MacroAssembler.hpp12
-rw-r--r--src/share/vm/c1/c1_globals.hpp6
-rw-r--r--src/share/vm/classfile/classFileStream.hpp6
-rw-r--r--src/share/vm/classfile/stackMapTable.hpp6
-rw-r--r--src/share/vm/classfile/verifier.cpp6
-rw-r--r--src/share/vm/code/codeBlob.cpp6
-rw-r--r--src/share/vm/code/compiledIC.hpp6
-rw-r--r--src/share/vm/code/icBuffer.cpp6
-rw-r--r--src/share/vm/code/relocInfo.cpp8
-rw-r--r--src/share/vm/code/relocInfo.hpp6
-rw-r--r--src/share/vm/code/vmreg.hpp18
-rw-r--r--src/share/vm/compiler/disassembler.cpp6
-rw-r--r--src/share/vm/compiler/disassembler.hpp6
-rw-r--r--src/share/vm/interpreter/abstractInterpreter.hpp6
-rw-r--r--src/share/vm/interpreter/bytecode.hpp6
-rw-r--r--src/share/vm/interpreter/bytecodeInterpreter.cpp6
-rw-r--r--src/share/vm/interpreter/bytecodeInterpreter.hpp12
-rw-r--r--src/share/vm/interpreter/bytecodeInterpreter.inline.hpp6
-rw-r--r--src/share/vm/interpreter/bytecodeStream.hpp6
-rw-r--r--src/share/vm/interpreter/bytecodes.cpp6
-rw-r--r--src/share/vm/interpreter/bytecodes.hpp6
-rw-r--r--src/share/vm/interpreter/cppInterpreter.hpp6
-rw-r--r--src/share/vm/interpreter/cppInterpreterGenerator.hpp6
-rw-r--r--src/share/vm/interpreter/interpreter.hpp6
-rw-r--r--src/share/vm/interpreter/interpreterGenerator.hpp6
-rw-r--r--src/share/vm/interpreter/interpreterRuntime.cpp6
-rw-r--r--src/share/vm/interpreter/interpreterRuntime.hpp6
-rw-r--r--src/share/vm/interpreter/templateInterpreter.hpp6
-rw-r--r--src/share/vm/interpreter/templateInterpreterGenerator.hpp6
-rw-r--r--src/share/vm/interpreter/templateTable.hpp12
-rw-r--r--src/share/vm/oops/constantPoolOop.hpp6
-rw-r--r--src/share/vm/oops/oop.inline.hpp6
-rw-r--r--src/share/vm/oops/typeArrayOop.hpp6
-rw-r--r--src/share/vm/opto/buildOopMap.cpp6
-rw-r--r--src/share/vm/opto/c2_globals.hpp3
-rw-r--r--src/share/vm/opto/c2compiler.cpp6
-rw-r--r--src/share/vm/opto/compile.cpp6
-rw-r--r--src/share/vm/opto/gcm.cpp6
-rw-r--r--src/share/vm/opto/locknode.hpp6
-rw-r--r--src/share/vm/opto/output.hpp6
-rw-r--r--src/share/vm/opto/regmask.cpp6
-rw-r--r--src/share/vm/opto/regmask.hpp6
-rw-r--r--src/share/vm/opto/runtime.cpp6
-rw-r--r--src/share/vm/prims/jniCheck.cpp6
-rw-r--r--src/share/vm/prims/jni_md.h6
-rw-r--r--src/share/vm/prims/jvmtiClassFileReconstituter.cpp6
-rw-r--r--src/share/vm/runtime/deoptimization.cpp12
-rw-r--r--src/share/vm/runtime/dtraceJSDT.hpp6
-rw-r--r--src/share/vm/runtime/frame.cpp6
-rw-r--r--src/share/vm/runtime/frame.hpp12
-rw-r--r--src/share/vm/runtime/frame.inline.hpp12
-rw-r--r--src/share/vm/runtime/globals.hpp68
-rw-r--r--src/share/vm/runtime/icache.hpp6
-rw-r--r--src/share/vm/runtime/java.cpp6
-rw-r--r--src/share/vm/runtime/javaCalls.hpp6
-rw-r--r--src/share/vm/runtime/javaFrameAnchor.hpp12
-rw-r--r--src/share/vm/runtime/os.hpp6
-rw-r--r--src/share/vm/runtime/registerMap.hpp12
-rw-r--r--src/share/vm/runtime/relocator.hpp6
-rw-r--r--src/share/vm/runtime/safepoint.cpp8
-rw-r--r--src/share/vm/runtime/sharedRuntime.cpp9
-rw-r--r--src/share/vm/runtime/stackValueCollection.cpp6
-rw-r--r--src/share/vm/runtime/statSampler.cpp6
-rw-r--r--src/share/vm/runtime/stubCodeGenerator.cpp6
-rw-r--r--src/share/vm/runtime/stubRoutines.hpp12
-rw-r--r--src/share/vm/runtime/thread.hpp6
-rw-r--r--src/share/vm/runtime/threadLocalStorage.hpp6
-rw-r--r--src/share/vm/runtime/vmStructs.cpp18
-rw-r--r--src/share/vm/runtime/vm_version.cpp21
-rw-r--r--src/share/vm/utilities/copy.hpp6
-rw-r--r--src/share/vm/utilities/globalDefinitions.hpp6
-rw-r--r--src/share/vm/utilities/taskqueue.hpp6
101 files changed, 971 insertions, 30 deletions
diff --git a/make/Makefile b/make/Makefile
index e55408cc4..c07f286e4 100644
--- a/make/Makefile
+++ b/make/Makefile
@@ -73,6 +73,7 @@ else
include defs.make
endif
+include $(GAMMADIR)/make/closed.make
ifneq ($(ALT_OUTPUTDIR),)
ALT_OUT=ALT_OUTPUTDIR=$(ALT_OUTPUTDIR)
@@ -361,7 +362,7 @@ $(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/code/%
$(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/prims/%
$(install-file)
-$(EXPORT_INCLUDE_DIR)/$(JDK_INCLUDE_SUBDIR)/jni_md.h: $(HS_SRC_DIR)/cpu/$(HS_ARCH)/vm/jni_$(HS_ARCH).h
+$(EXPORT_INCLUDE_DIR)/$(JDK_INCLUDE_SUBDIR)/jni_md.h: $(HS_JNI_ARCH_SRC)
$(install-file)
$(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/services/%
diff --git a/make/closed.make b/make/closed.make
new file mode 100644
index 000000000..df4a45af5
--- /dev/null
+++ b/make/closed.make
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 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
+# 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.
+#
+#
+
+# Support for setting HS_CLOSED_PATH, required GAMMADIR and SRCARCH
+
+CLOSED_DIR_EXISTS := $(shell \
+ if [ -d $(GAMMADIR)/src/closed ] ; then \
+ echo true; \
+ else \
+ echo false; \
+ fi)
+
+CLOSED_SRCARCH_DIR_EXISTS := $(shell \
+ if [ -d $(GAMMADIR)/src/closed/cpu/$(SRCARCH)/vm ] ; then \
+ echo true; \
+ else \
+ echo false; \
+ fi)
+
+ifeq ($(CLOSED_SRCARCH_DIR_EXISTS), true)
+ HS_CLOSED_PATH=closed/
+endif
+
+# Support for setting HS_JNI_ARCH_SRC, requires HS_SRC_DIR and HS_ARCH
+
+CLOSED_HS_ARCH_DIR_EXISTS := $(shell \
+ if [ -d $(HS_SRC_DIR)/closed/cpu/$(HS_ARCH)/vm ] ; then \
+ echo true; \
+ else \
+ echo false; \
+ fi)
+
+ifeq ($(CLOSED_HS_ARCH_DIR_EXISTS), true)
+ HS_JNI_ARCH_SRC=$(HS_SRC_DIR)/closed/cpu/$(HS_ARCH)/vm/jni_$(HS_ARCH).h
+else
+ HS_JNI_ARCH_SRC=$(HS_SRC_DIR)/cpu/$(HS_ARCH)/vm/jni_$(HS_ARCH).h
+endif
+
diff --git a/make/jprt.properties b/make/jprt.properties
index c8bbb3c6c..698ad33dc 100644
--- a/make/jprt.properties
+++ b/make/jprt.properties
@@ -44,6 +44,11 @@ jprt.tools.default.release=${jprt.submit.release}
jprt.sync.push=false
+# Note: we want both embedded releases and regular releases to build and test
+# all platforms so that regressions are not introduced (eg. change to
+# common code by SE breaks PPC/ARM; change to common code by SE-E breaks
+# sparc etc.
+
# Define the Solaris platforms we want for the various releases
jprt.my.solaris.sparc.jdk7=solaris_sparc_5.10
@@ -55,6 +60,8 @@ jprt.my.solaris.sparc.jdk6u10=solaris_sparc_5.8
jprt.my.solaris.sparc.jdk6u14=solaris_sparc_5.8
jprt.my.solaris.sparc.jdk6u18=solaris_sparc_5.8
jprt.my.solaris.sparc.jdk6u20=solaris_sparc_5.8
+jprt.my.solaris.sparc.ejdk7=${jprt.my.solaris.sparc.jdk7}
+jprt.my.solaris.sparc.ejdk6=${jprt.my.solaris.sparc.jdk6}
jprt.my.solaris.sparc=${jprt.my.solaris.sparc.${jprt.tools.default.release}}
jprt.my.solaris.sparcv9.jdk7=solaris_sparcv9_5.10
@@ -66,6 +73,8 @@ jprt.my.solaris.sparcv9.jdk6u10=solaris_sparcv9_5.8
jprt.my.solaris.sparcv9.jdk6u14=solaris_sparcv9_5.8
jprt.my.solaris.sparcv9.jdk6u18=solaris_sparcv9_5.8
jprt.my.solaris.sparcv9.jdk6u20=solaris_sparcv9_5.8
+jprt.my.solaris.sparcv9.ejdk7=${jprt.my.solaris.sparcv9.jdk7}
+jprt.my.solaris.sparcv9.ejdk6=${jprt.my.solaris.sparcv9.jdk6}
jprt.my.solaris.sparcv9=${jprt.my.solaris.sparcv9.${jprt.tools.default.release}}
jprt.my.solaris.i586.jdk7=solaris_i586_5.10
@@ -77,6 +86,8 @@ jprt.my.solaris.i586.jdk6u10=solaris_i586_5.8
jprt.my.solaris.i586.jdk6u14=solaris_i586_5.8
jprt.my.solaris.i586.jdk6u18=solaris_i586_5.8
jprt.my.solaris.i586.jdk6u20=solaris_i586_5.8
+jprt.my.solaris.i586.ejdk7=${jprt.my.solaris.i586.jdk7}
+jprt.my.solaris.i586.ejdk6=${jprt.my.solaris.i586.jdk6}
jprt.my.solaris.i586=${jprt.my.solaris.i586.${jprt.tools.default.release}}
jprt.my.solaris.x64.jdk7=solaris_x64_5.10
@@ -88,6 +99,8 @@ jprt.my.solaris.x64.jdk6u10=solaris_x64_5.10
jprt.my.solaris.x64.jdk6u14=solaris_x64_5.10
jprt.my.solaris.x64.jdk6u18=solaris_x64_5.10
jprt.my.solaris.x64.jdk6u20=solaris_x64_5.10
+jprt.my.solaris.x64.ejdk7=${jprt.my.solaris.x64.jdk7}
+jprt.my.solaris.x64.ejdk6=${jprt.my.solaris.x64.jdk6}
jprt.my.solaris.x64=${jprt.my.solaris.x64.${jprt.tools.default.release}}
jprt.my.linux.i586.jdk7=linux_i586_2.6
@@ -99,6 +112,8 @@ jprt.my.linux.i586.jdk6u10=linux_i586_2.4
jprt.my.linux.i586.jdk6u14=linux_i586_2.4
jprt.my.linux.i586.jdk6u18=linux_i586_2.4
jprt.my.linux.i586.jdk6u20=linux_i586_2.4
+jprt.my.linux.i586.ejdk7=linux_i586_2.6
+jprt.my.linux.i586.ejdk6=linux_i586_2.6
jprt.my.linux.i586=${jprt.my.linux.i586.${jprt.tools.default.release}}
jprt.my.linux.x64.jdk7=linux_x64_2.6
@@ -110,8 +125,45 @@ jprt.my.linux.x64.jdk6u10=linux_x64_2.4
jprt.my.linux.x64.jdk6u14=linux_x64_2.4
jprt.my.linux.x64.jdk6u18=linux_x64_2.4
jprt.my.linux.x64.jdk6u20=linux_x64_2.4
+jprt.my.linux.x64.ejdk7=${jprt.my.linux.x64.jdk7}
+jprt.my.linux.x64.ejdk6=${jprt.my.linux.x64.jdk6}
jprt.my.linux.x64=${jprt.my.linux.x64.${jprt.tools.default.release}}
+jprt.my.linux.ppc.jdk7=linux_ppc_2.6
+jprt.my.linux.ppc.jdk7b107=linux_ppc_2.6
+jprt.my.linux.ppc.jdk7temp=linux_ppc_2.6
+jprt.my.linux.ppc.ejdk6=linux_ppc_2.6
+jprt.my.linux.ppc.ejdk7=linux_ppc_2.6
+jprt.my.linux.ppc=${jprt.my.linux.ppc.${jprt.tools.default.release}}
+
+jprt.my.linux.ppcv2.jdk7=linux_ppcv2_2.6
+jprt.my.linux.ppcv2.jdk7b107=linux_ppcv2_2.6
+jprt.my.linux.ppcv2.jdk7temp=linux_ppcv2_2.6
+jprt.my.linux.ppcv2.ejdk6=linux_ppcv2_2.6
+jprt.my.linux.ppcv2.ejdk7=linux_ppcv2_2.6
+jprt.my.linux.ppcv2=${jprt.my.linux.ppcv2.${jprt.tools.default.release}}
+
+jprt.my.linux.ppcsflt.jdk7=linux_ppcsflt_2.6
+jprt.my.linux.ppcsflt.jdk7b107=linux_ppcsflt_2.6
+jprt.my.linux.ppcsflt.jdk7temp=linux_ppcsflt_2.6
+jprt.my.linux.ppcsflt.ejdk6=linux_ppcsflt_2.6
+jprt.my.linux.ppcsflt.ejdk7=linux_ppcsflt_2.6
+jprt.my.linux.ppcsflt=${jprt.my.linux.ppcsflt.${jprt.tools.default.release}}
+
+jprt.my.linux.armvfp.jdk7=linux_armvfp_2.6
+jprt.my.linux.armvfp.jdk7b107=linux_armvfp_2.6
+jprt.my.linux.armvfp.jdk7temp=linux_armvfp_2.6
+jprt.my.linux.armvfp.ejdk6=linux_armvfp_2.6
+jprt.my.linux.armvfp.ejdk7=linux_armvfp_2.6
+jprt.my.linux.armvfp=${jprt.my.linux.armvfp.${jprt.tools.default.release}}
+
+jprt.my.linux.armsflt.jdk7=linux_armsflt_2.6
+jprt.my.linux.armsflt.jdk7b107=linux_armsflt_2.6
+jprt.my.linux.armsflt.jdk7temp=linux_armsflt_2.6
+jprt.my.linux.armsflt.ejdk6=linux_armsflt_2.6
+jprt.my.linux.armsflt.ejdk7=linux_armsflt_2.6
+jprt.my.linux.armsflt=${jprt.my.linux.armsflt.${jprt.tools.default.release}}
+
jprt.my.windows.i586.jdk7=windows_i586_5.1
jprt.my.windows.i586.jdk7b107=windows_i586_5.0
jprt.my.windows.i586.jdk7temp=windows_i586_5.0
@@ -121,6 +173,8 @@ jprt.my.windows.i586.jdk6u10=windows_i586_5.0
jprt.my.windows.i586.jdk6u14=windows_i586_5.0
jprt.my.windows.i586.jdk6u18=windows_i586_5.0
jprt.my.windows.i586.jdk6u20=windows_i586_5.0
+jprt.my.windows.i586.ejdk7=${jprt.my.windows.i586.jdk7}
+jprt.my.windows.i586.ejdk6=${jprt.my.windows.i586.jdk6}
jprt.my.windows.i586=${jprt.my.windows.i586.${jprt.tools.default.release}}
jprt.my.windows.x64.jdk7=windows_x64_5.2
@@ -132,11 +186,13 @@ jprt.my.windows.x64.jdk6u10=windows_x64_5.2
jprt.my.windows.x64.jdk6u14=windows_x64_5.2
jprt.my.windows.x64.jdk6u18=windows_x64_5.2
jprt.my.windows.x64.jdk6u20=windows_x64_5.2
+jprt.my.windows.x64.ejdk7=${jprt.my.windows.x64.jdk7}
+jprt.my.windows.x64.ejdk6=${jprt.my.windows.x64.jdk6}
jprt.my.windows.x64=${jprt.my.windows.x64.${jprt.tools.default.release}}
# Standard list of jprt build targets for this source tree
-jprt.build.targets= \
+jprt.build.targets.standard= \
${jprt.my.solaris.sparc}-{product|fastdebug|debug}, \
${jprt.my.solaris.sparcv9}-{product|fastdebug|debug}, \
${jprt.my.solaris.i586}-{product|fastdebug|debug}, \
@@ -146,6 +202,30 @@ jprt.build.targets= \
${jprt.my.windows.i586}-{product|fastdebug|debug}, \
${jprt.my.windows.x64}-{product|fastdebug|debug}
+jprt.build.targets.embedded= \
+ ${jprt.my.linux.i586}-{product|fastdebug|debug}, \
+ ${jprt.my.linux.ppc}-{product|fastdebug}, \
+ ${jprt.my.linux.ppcv2}-{product|fastdebug}, \
+ ${jprt.my.linux.ppcsflt}-{product|fastdebug}, \
+ ${jprt.my.linux.armvfp}-{product|fastdebug}, \
+ ${jprt.my.linux.armsflt}-{product|fastdebug}
+
+jprt.build.targets.all=${jprt.build.targets.standard}, \
+ ${jprt.build.targets.embedded}
+
+jprt.build.targets.jdk7=${jprt.build.targets.all}
+jprt.build.targets.jdk7temp=${jprt.build.targets.all}
+jprt.build.targets.jdk7b107=${jprt.build.targets.all}
+jprt.build.targets.jdk6=${jprt.build.targets.standard}
+jprt.build.targets.jdk6perf=${jprt.build.targets.standard}
+jprt.build.targets.jdk6u10=${jprt.build.targets.standard}
+jprt.build.targets.jdk6u14=${jprt.build.targets.standard}
+jprt.build.targets.jdk6u18=${jprt.build.targets.standard}
+jprt.build.targets.jdk6u20=${jprt.build.targets.standard}
+jprt.build.targets.ejdk6=${jprt.build.targets.all}
+jprt.build.targets.ejdk7=${jprt.build.targets.all}
+jprt.build.targets=${jprt.build.targets.${jprt.tools.default.release}}
+
# Subset lists of test targets for this source tree
jprt.my.solaris.sparc.test.targets= \
@@ -372,9 +452,14 @@ jprt.my.windows.x64.test.targets = \
${jprt.my.windows.x64}-product-c2-jbb_G1, \
${jprt.my.windows.x64}-product-c2-jbb_ParOldGC
+# Testing for actual embedded builds is different to standard
+jprt.my.linux.i586.test.targets.embedded = \
+ linux_i586_2.6-product-c1-scimark
+
# The complete list of test targets for jprt
+# Note: no PPC or ARM tests at this stage
-jprt.test.targets = \
+jprt.test.targets.standard = \
${jprt.my.solaris.sparc.test.targets}, \
${jprt.my.solaris.sparcv9.test.targets}, \
${jprt.my.solaris.i586.test.targets}, \
@@ -384,15 +469,41 @@ jprt.test.targets = \
${jprt.my.windows.i586.test.targets}, \
${jprt.my.windows.x64.test.targets}
+jprt.test.targets.embedded= \
+ ${jprt.my.linux.i586.test.targets.embedded}, \
+ ${jprt.my.solaris.sparc.test.targets}, \
+ ${jprt.my.solaris.sparcv9.test.targets}, \
+ ${jprt.my.solaris.i586.test.targets}, \
+ ${jprt.my.solaris.x64.test.targets}, \
+ ${jprt.my.linux.x64.test.targets}, \
+ ${jprt.my.windows.i586.test.targets}, \
+ ${jprt.my.windows.x64.test.targets}
+
+
+jprt.test.targets.jdk7=${jprt.test.targets.standard}
+jprt.test.targets.jdk7temp=${jprt.test.targets.standard}
+jprt.test.targets.jdk7b105=${jprt.test.targets.standard}
+jprt.test.targets.jdk6=${jprt.test.targets.standard}
+jprt.test.targets.jdk6perf=${jprt.test.targets.standard}
+jprt.test.targets.jdk6u10=${jprt.test.targets.standard}
+jprt.test.targets.jdk6u14=${jprt.test.targets.standard}
+jprt.test.targets.jdk6u18=${jprt.test.targets.standard}
+jprt.test.targets.jdk6u20=${jprt.test.targets.standard}
+jprt.test.targets.ejdk6=${jprt.test.targets.embedded}
+jprt.test.targets.ejdk7=${jprt.test.targets.embedded}
+jprt.test.targets=${jprt.test.targets.${jprt.tools.default.release}}
+
# The default test/Makefile targets that should be run
#jprt.make.rule.test.targets=*-product-*-packtest
-jprt.make.rule.test.targets = \
+jprt.make.rule.test.targets.standard.client = \
${jprt.my.solaris.sparc}-*-c1-clienttest, \
${jprt.my.solaris.i586}-*-c1-clienttest, \
${jprt.my.linux.i586}-*-c1-clienttest, \
- ${jprt.my.windows.i586}-*-c1-clienttest, \
+ ${jprt.my.windows.i586}-*-c1-clienttest
+
+jprt.make.rule.test.targets.standard.server = \
${jprt.my.solaris.sparc}-*-c2-servertest, \
${jprt.my.solaris.sparcv9}-*-c2-servertest, \
${jprt.my.solaris.i586}-*-c2-servertest, \
@@ -402,3 +513,23 @@ jprt.make.rule.test.targets = \
${jprt.my.windows.i586}-*-c2-servertest, \
${jprt.my.windows.x64}-*-c2-servertest
+jprt.make.rule.test.targets.standard = \
+ ${jprt.make.rule.test.targets.standard.client}, \
+ ${jprt.make.rule.test.targets.standard.server}
+
+jprt.make.rule.test.targets.embedded = \
+ ${jprt.make.rule.test.targets.standard.client}
+
+jprt.make.rule.test.targets.jdk7=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.jdk7temp=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.jdk7b107=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.jdk6=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.jdk6perf=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.jdk6u10=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.jdk6u14=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.jdk6u18=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.jdk6u20=${jprt.make.rule.test.targets.standard}
+jprt.make.rule.test.targets.ejdk6=${jprt.make.rule.test.targets.embedded}
+jprt.make.rule.test.targets.ejdk7=${jprt.make.rule.test.targets.embedded}
+jprt.make.rule.test.targets=${jprt.make.rule.test.targets.${jprt.tools.default.release}}
+
diff --git a/make/linux/Makefile b/make/linux/Makefile
index 93d83ea2f..ec1e60b7c 100644
--- a/make/linux/Makefile
+++ b/make/linux/Makefile
@@ -208,7 +208,7 @@ TARGETS_ZERO = $(addsuffix zero,$(TARGETS))
TARGETS_SHARK = $(addsuffix shark,$(TARGETS))
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make
-BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH)
+BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH)
BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS)
diff --git a/make/linux/makefiles/adlc.make b/make/linux/makefiles/adlc.make
index a4d2babb4..821cfa74a 100644
--- a/make/linux/makefiles/adlc.make
+++ b/make/linux/makefiles/adlc.make
@@ -39,8 +39,8 @@ OS = $(Platform_os_family)
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
+SOURCES.AD = $(GAMMADIR)/src/$(HS_CLOSED_PATH)cpu/$(ARCH)/vm/$(Platform_arch_model).ad \
+ $(GAMMADIR)/src/$(HS_CLOSED_PATH)os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad
EXEC = $(OUTDIR)/adlc
diff --git a/make/linux/makefiles/arm.make b/make/linux/makefiles/arm.make
new file mode 100644
index 000000000..3c5dc2ca1
--- /dev/null
+++ b/make/linux/makefiles/arm.make
@@ -0,0 +1,10 @@
+#
+# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+#
+
+Obj_Files += linux_arm.o
+
+LIBS += $(EXT_LIBS_PATH)/sflt_glibc.a
+
+CFLAGS += -DVM_LITTLE_ENDIAN
diff --git a/make/linux/makefiles/buildtree.make b/make/linux/makefiles/buildtree.make
index 4ba1f0e74..279e210ae 100644
--- a/make/linux/makefiles/buildtree.make
+++ b/make/linux/makefiles/buildtree.make
@@ -24,7 +24,7 @@
# Usage:
#
-# $(MAKE) -f buildtree.make ARCH=arch BUILDARCH=buildarch LIBARCH=libarch
+# $(MAKE) -f buildtree.make SRCARCH=srcarch BUILDARCH=buildarch LIBARCH=libarch
# GAMMADIR=dir OS_FAMILY=os VARIANT=variant
#
# The macros ARCH, GAMMADIR, OS_FAMILY and VARIANT must be defined in the
@@ -56,6 +56,8 @@
# having to read the dependency files for the vm.
include $(GAMMADIR)/make/scm.make
+include $(GAMMADIR)/make/closed.make
+
# 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives all the gory details.
QUIETLY$(MAKE_VERBOSE) = @
@@ -127,7 +129,7 @@ BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.ma
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)
+ SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
# Define variables to be set in flags.make.
# Default values are set in make/defs.make.
@@ -146,12 +148,6 @@ endif
# Define HOTSPOT_VM_DISTRO based on settings in make/openjdk_distro
# or make/hotspot_distro.
ifndef HOTSPOT_VM_DISTRO
- CLOSED_DIR_EXISTS := $(shell \
- if [ -d $(GAMMADIR)/src/closed ] ; then \
- echo true; \
- else \
- echo false; \
- fi)
ifeq ($(CLOSED_DIR_EXISTS), true)
include $(GAMMADIR)/make/hotspot_distro
else
@@ -187,7 +183,7 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
echo; \
echo "GAMMADIR = $(GAMMADIR)"; \
echo "SYSDEFS = \$$(Platform_sysdefs)"; \
- echo "SRCARCH = $(ARCH)"; \
+ echo "SRCARCH = $(SRCARCH)"; \
echo "BUILDARCH = $(BUILDARCH)"; \
echo "LIBARCH = $(LIBARCH)"; \
echo "TARGET = $(TARGET)"; \
@@ -208,16 +204,16 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
echo; \
echo "Src_Dirs_V = \\"; \
sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \
- echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
+ echo "\$$(GAMMADIR)/src/$(HS_CLOSED_PATH)cpu/$(SRCARCH)/vm \\"; \
echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
- echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
+ echo "\$$(GAMMADIR)/src/$(HS_CLOSED_PATH)os_cpu/$(OS_FAMILY)_$(SRCARCH)/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/$(HS_CLOSED_PATH)cpu/$(SRCARCH)/vm \\"; \
echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
- echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
+ echo "\$$(GAMMADIR)/src/$(HS_CLOSED_PATH)os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm"; \
[ -n "$(CFLAGS_BROWSE)" ] && \
echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
diff --git a/make/linux/makefiles/ppc.make b/make/linux/makefiles/ppc.make
new file mode 100644
index 000000000..50ac9fe0d
--- /dev/null
+++ b/make/linux/makefiles/ppc.make
@@ -0,0 +1,11 @@
+#
+# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+#
+
+# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+
+# Must also specify if CPU is big endian
+CFLAGS += -DVM_BIG_ENDIAN
+
diff --git a/make/linux/makefiles/rules.make b/make/linux/makefiles/rules.make
index 4ce9e3db8..603037efa 100644
--- a/make/linux/makefiles/rules.make
+++ b/make/linux/makefiles/rules.make
@@ -146,6 +146,8 @@ ifndef LP64
include $(GAMMADIR)/make/pic.make
endif
+include $(GAMMADIR)/make/closed.make
+
# The non-PIC object files are only generated for 32 bit platforms.
ifdef LP64
%.o: %.cpp
diff --git a/make/linux/makefiles/top.make b/make/linux/makefiles/top.make
index db9224fc2..688ba373a 100644
--- a/make/linux/makefiles/top.make
+++ b/make/linux/makefiles/top.make
@@ -39,6 +39,8 @@
# Instead, use "gmake" (or "gnumake") from the command line. --Rose
#MAKE = gmake
+include $(GAMMADIR)/make/closed.make
+
TOPDIR = $(shell echo `pwd`)
GENERATED = $(TOPDIR)/../generated
VM = $(GAMMADIR)/src/share/vm
@@ -57,7 +59,7 @@ Cached_plat = $(GENERATED)/platform.current
AD_Dir = $(GENERATED)/adfiles
ADLC = $(AD_Dir)/adlc
-AD_Spec = $(GAMMADIR)/src/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad
+AD_Spec = $(GAMMADIR)/src/$(HS_CLOSED_PATH)cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad
AD_Src = $(GAMMADIR)/src/share/vm/adlc
AD_Names = ad_$(Platform_arch_model).hpp ad_$(Platform_arch_model).cpp
AD_Files = $(AD_Names:%=$(AD_Dir)/%)
diff --git a/make/linux/makefiles/vm.make b/make/linux/makefiles/vm.make
index 653da7de6..c772c6ff5 100644
--- a/make/linux/makefiles/vm.make
+++ b/make/linux/makefiles/vm.make
@@ -121,8 +121,8 @@ 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 += $(GAMMADIR)/src/$(HS_CLOSED_PATH)cpu/$(Platform_arch)/vm
+CORE_PATHS += $(GAMMADIR)/src/$(HS_CLOSED_PATH)os_cpu/$(Platform_os_arch)/vm
CORE_PATHS += $(GENERATED)/jvmtifiles
COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1
diff --git a/make/linux/platform_arm b/make/linux/platform_arm
new file mode 100644
index 000000000..13206d637
--- /dev/null
+++ b/make/linux/platform_arm
@@ -0,0 +1,17 @@
+os_family = linux
+
+arch = arm
+
+arch_model = arm
+
+os_arch = linux_arm
+
+os_arch_model = linux_arm
+
+lib_arch = arm
+
+compiler = gcc
+
+gnu_dis_arch = arm
+
+sysdefs = -DLINUX -D_GNU_SOURCE -DARM
diff --git a/make/linux/platform_ppc b/make/linux/platform_ppc
new file mode 100644
index 000000000..c37b8d6b1
--- /dev/null
+++ b/make/linux/platform_ppc
@@ -0,0 +1,17 @@
+os_family = linux
+
+arch = ppc
+
+arch_model = ppc
+
+os_arch = linux_ppc
+
+os_arch_model = linux_ppc
+
+lib_arch = ppc
+
+compiler = gcc
+
+gnu_dis_arch = ppc
+
+sysdefs = -DLINUX -D_GNU_SOURCE -DPPC
diff --git a/src/os/linux/vm/osThread_linux.cpp b/src/os/linux/vm/osThread_linux.cpp
index f4ec9f78f..bf454ff90 100644
--- a/src/os/linux/vm/osThread_linux.cpp
+++ b/src/os/linux/vm/osThread_linux.cpp
@@ -39,6 +39,12 @@
#ifdef TARGET_ARCH_zero
# include "assembler_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+#endif
void OSThread::pd_initialize() {
diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
index 5d34fc50c..0d25cd3f7 100644
--- a/src/os/linux/vm/os_linux.cpp
+++ b/src/os/linux/vm/os_linux.cpp
@@ -76,6 +76,14 @@
# include "assembler_zero.inline.hpp"
# include "nativeInst_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+# include "nativeInst_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+# include "nativeInst_ppc.hpp"
+#endif
#ifdef COMPILER1
#include "c1/c1_Runtime1.hpp"
#endif
diff --git a/src/os/linux/vm/os_linux.inline.hpp b/src/os/linux/vm/os_linux.inline.hpp
index 9af7e7897..c2301be50 100644
--- a/src/os/linux/vm/os_linux.inline.hpp
+++ b/src/os/linux/vm/os_linux.inline.hpp
@@ -39,6 +39,14 @@
# include "atomic_linux_zero.inline.hpp"
# include "orderAccess_linux_zero.inline.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "atomic_linux_arm.inline.hpp"
+# include "orderAccess_linux_arm.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "atomic_linux_ppc.inline.hpp"
+# include "orderAccess_linux_ppc.inline.hpp"
+#endif
// System includes
diff --git a/src/os/linux/vm/thread_linux.inline.hpp b/src/os/linux/vm/thread_linux.inline.hpp
index f09ed2877..93e1d481e 100644
--- a/src/os/linux/vm/thread_linux.inline.hpp
+++ b/src/os/linux/vm/thread_linux.inline.hpp
@@ -44,6 +44,16 @@
# include "orderAccess_linux_zero.inline.hpp"
# include "prefetch_linux_zero.inline.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "atomic_linux_arm.inline.hpp"
+# include "orderAccess_linux_arm.inline.hpp"
+# include "prefetch_linux_arm.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "atomic_linux_ppc.inline.hpp"
+# include "orderAccess_linux_ppc.inline.hpp"
+# include "prefetch_linux_ppc.inline.hpp"
+#endif
// Contains inlined functions for class Thread and ThreadLocalStorage
diff --git a/src/share/vm/asm/assembler.cpp b/src/share/vm/asm/assembler.cpp
index e4e890931..2f739393f 100644
--- a/src/share/vm/asm/assembler.cpp
+++ b/src/share/vm/asm/assembler.cpp
@@ -37,6 +37,12 @@
#ifdef TARGET_ARCH_zero
# include "assembler_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+#endif
// Implementation of AbstractAssembler
diff --git a/src/share/vm/asm/assembler.hpp b/src/share/vm/asm/assembler.hpp
index 0b3544e69..db0fbadbd 100644
--- a/src/share/vm/asm/assembler.hpp
+++ b/src/share/vm/asm/assembler.hpp
@@ -43,6 +43,14 @@
# include "register_zero.hpp"
# include "vm_version_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "register_arm.hpp"
+# include "vm_version_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "register_ppc.hpp"
+# include "vm_version_ppc.hpp"
+#endif
// This file contains platform-independent assembler declarations.
@@ -395,6 +403,12 @@ class AbstractAssembler : public ResourceObj {
#ifdef TARGET_ARCH_zero
# include "assembler_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.hpp"
+#endif
#endif // SHARE_VM_ASM_ASSEMBLER_HPP
diff --git a/src/share/vm/asm/codeBuffer.hpp b/src/share/vm/asm/codeBuffer.hpp
index 8ab664d49..dfcd1cf0a 100644
--- a/src/share/vm/asm/codeBuffer.hpp
+++ b/src/share/vm/asm/codeBuffer.hpp
@@ -566,6 +566,12 @@ class CodeBuffer: public StackObj {
#ifdef TARGET_ARCH_zero
# include "codeBuffer_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "codeBuffer_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "codeBuffer_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/c1/c1_Defs.hpp b/src/share/vm/c1/c1_Defs.hpp
index 7f964c09a..564e7b3cb 100644
--- a/src/share/vm/c1/c1_Defs.hpp
+++ b/src/share/vm/c1/c1_Defs.hpp
@@ -35,6 +35,12 @@
#ifdef TARGET_ARCH_zero
# include "register_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "register_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "register_ppc.hpp"
+#endif
// set frame size and return address offset to these values in blobs
// (if the compiled frame uses ebp as link pointer on IA; otherwise,
@@ -50,6 +56,12 @@ enum {
#ifdef TARGET_ARCH_sparc
# include "c1_Defs_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c1_Defs_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "c1_Defs_ppc.hpp"
+#endif
// native word offsets from memory address
diff --git a/src/share/vm/c1/c1_FpuStackSim.hpp b/src/share/vm/c1/c1_FpuStackSim.hpp
index a84d8a152..3e8adbe14 100644
--- a/src/share/vm/c1/c1_FpuStackSim.hpp
+++ b/src/share/vm/c1/c1_FpuStackSim.hpp
@@ -38,6 +38,12 @@ class FpuStackSim;
#ifdef TARGET_ARCH_sparc
# include "c1_FpuStackSim_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c1_FpuStackSim_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "c1_FpuStackSim_ppc.hpp"
+#endif
#endif // SHARE_VM_C1_C1_FPUSTACKSIM_HPP
diff --git a/src/share/vm/c1/c1_FrameMap.cpp b/src/share/vm/c1/c1_FrameMap.cpp
index 5b10b966d..74eab9bd0 100644
--- a/src/share/vm/c1/c1_FrameMap.cpp
+++ b/src/share/vm/c1/c1_FrameMap.cpp
@@ -35,6 +35,12 @@
#ifdef TARGET_ARCH_zero
# include "vmreg_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vmreg_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vmreg_ppc.inline.hpp"
+#endif
diff --git a/src/share/vm/c1/c1_FrameMap.hpp b/src/share/vm/c1/c1_FrameMap.hpp
index c112ad540..266ae0940 100644
--- a/src/share/vm/c1/c1_FrameMap.hpp
+++ b/src/share/vm/c1/c1_FrameMap.hpp
@@ -88,6 +88,12 @@ class FrameMap : public CompilationResourceObj {
#ifdef TARGET_ARCH_sparc
# include "c1_FrameMap_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c1_FrameMap_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "c1_FrameMap_ppc.hpp"
+#endif
friend class LIR_OprDesc;
diff --git a/src/share/vm/c1/c1_Instruction.hpp b/src/share/vm/c1/c1_Instruction.hpp
index 1f37449db..3a5eecc2d 100644
--- a/src/share/vm/c1/c1_Instruction.hpp
+++ b/src/share/vm/c1/c1_Instruction.hpp
@@ -316,6 +316,8 @@ class Instruction: public CompilationResourceObj {
return res;
}
+ static const int no_bci = -99;
+
enum InstructionFlag {
NeedsNullCheckFlag = 0,
CanTrapFlag,
diff --git a/src/share/vm/c1/c1_LIRAssembler.cpp b/src/share/vm/c1/c1_LIRAssembler.cpp
index 1b57ea2f0..510bf2f92 100644
--- a/src/share/vm/c1/c1_LIRAssembler.cpp
+++ b/src/share/vm/c1/c1_LIRAssembler.cpp
@@ -42,6 +42,14 @@
# include "nativeInst_zero.hpp"
# include "vmreg_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "nativeInst_arm.hpp"
+# include "vmreg_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "nativeInst_ppc.hpp"
+# include "vmreg_ppc.inline.hpp"
+#endif
void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) {
diff --git a/src/share/vm/c1/c1_LIRAssembler.hpp b/src/share/vm/c1/c1_LIRAssembler.hpp
index bb18c253e..074027a87 100644
--- a/src/share/vm/c1/c1_LIRAssembler.hpp
+++ b/src/share/vm/c1/c1_LIRAssembler.hpp
@@ -252,6 +252,12 @@ class LIR_Assembler: public CompilationResourceObj {
#ifdef TARGET_ARCH_sparc
# include "c1_LIRAssembler_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c1_LIRAssembler_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "c1_LIRAssembler_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/c1/c1_LinearScan.cpp b/src/share/vm/c1/c1_LinearScan.cpp
index 7419f9e8f..16fd0aea1 100644
--- a/src/share/vm/c1/c1_LinearScan.cpp
+++ b/src/share/vm/c1/c1_LinearScan.cpp
@@ -41,6 +41,12 @@
#ifdef TARGET_ARCH_zero
# include "vmreg_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vmreg_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vmreg_ppc.inline.hpp"
+#endif
#ifndef PRODUCT
diff --git a/src/share/vm/c1/c1_LinearScan.hpp b/src/share/vm/c1/c1_LinearScan.hpp
index 018570f9c..3436cb5c2 100644
--- a/src/share/vm/c1/c1_LinearScan.hpp
+++ b/src/share/vm/c1/c1_LinearScan.hpp
@@ -972,6 +972,12 @@ class LinearScanTimers : public StackObj {
#ifdef TARGET_ARCH_sparc
# include "c1_LinearScan_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c1_LinearScan_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "c1_LinearScan_ppc.hpp"
+#endif
#endif // SHARE_VM_C1_C1_LINEARSCAN_HPP
diff --git a/src/share/vm/c1/c1_MacroAssembler.hpp b/src/share/vm/c1/c1_MacroAssembler.hpp
index 41ee33634..9887c2af6 100644
--- a/src/share/vm/c1/c1_MacroAssembler.hpp
+++ b/src/share/vm/c1/c1_MacroAssembler.hpp
@@ -35,6 +35,12 @@
#ifdef TARGET_ARCH_zero
# include "assembler_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+#endif
class CodeEmitInfo;
@@ -61,6 +67,12 @@ class C1_MacroAssembler: public MacroAssembler {
#ifdef TARGET_ARCH_sparc
# include "c1_MacroAssembler_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c1_MacroAssembler_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "c1_MacroAssembler_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/c1/c1_globals.hpp b/src/share/vm/c1/c1_globals.hpp
index 9b4db1c0f..fd890cf7e 100644
--- a/src/share/vm/c1/c1_globals.hpp
+++ b/src/share/vm/c1/c1_globals.hpp
@@ -32,6 +32,12 @@
#ifdef TARGET_ARCH_sparc
# include "c1_globals_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c1_globals_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "c1_globals_ppc.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "c1_globals_linux.hpp"
#endif
diff --git a/src/share/vm/classfile/classFileStream.hpp b/src/share/vm/classfile/classFileStream.hpp
index dfadb7b00..3c94a1edf 100644
--- a/src/share/vm/classfile/classFileStream.hpp
+++ b/src/share/vm/classfile/classFileStream.hpp
@@ -35,6 +35,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
// Input stream for reading .class file
//
diff --git a/src/share/vm/classfile/stackMapTable.hpp b/src/share/vm/classfile/stackMapTable.hpp
index 96115b40e..2d2798a71 100644
--- a/src/share/vm/classfile/stackMapTable.hpp
+++ b/src/share/vm/classfile/stackMapTable.hpp
@@ -39,6 +39,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
class StackMapReader;
diff --git a/src/share/vm/classfile/verifier.cpp b/src/share/vm/classfile/verifier.cpp
index 4d5e8257b..65e6fbf5a 100644
--- a/src/share/vm/classfile/verifier.cpp
+++ b/src/share/vm/classfile/verifier.cpp
@@ -51,6 +51,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
#define NOFAILOVER_MAJOR_VERSION 51
diff --git a/src/share/vm/code/codeBlob.cpp b/src/share/vm/code/codeBlob.cpp
index 81d09f5cc..b90ed8cbd 100644
--- a/src/share/vm/code/codeBlob.cpp
+++ b/src/share/vm/code/codeBlob.cpp
@@ -48,6 +48,12 @@
#ifdef TARGET_ARCH_zero
# include "nativeInst_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "nativeInst_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "nativeInst_ppc.hpp"
+#endif
#ifdef COMPILER1
#include "c1/c1_Runtime1.hpp"
#endif
diff --git a/src/share/vm/code/compiledIC.hpp b/src/share/vm/code/compiledIC.hpp
index a5524ca16..979dcd523 100644
--- a/src/share/vm/code/compiledIC.hpp
+++ b/src/share/vm/code/compiledIC.hpp
@@ -38,6 +38,12 @@
#ifdef TARGET_ARCH_zero
# include "nativeInst_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "nativeInst_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "nativeInst_ppc.hpp"
+#endif
//-----------------------------------------------------------------------------
// The CompiledIC represents a compiled inline cache.
diff --git a/src/share/vm/code/icBuffer.cpp b/src/share/vm/code/icBuffer.cpp
index d36f9109e..90dbf934a 100644
--- a/src/share/vm/code/icBuffer.cpp
+++ b/src/share/vm/code/icBuffer.cpp
@@ -46,6 +46,12 @@
#ifdef TARGET_ARCH_zero
# include "assembler_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+#endif
DEF_STUB_INTERFACE(ICStub);
diff --git a/src/share/vm/code/relocInfo.cpp b/src/share/vm/code/relocInfo.cpp
index fa63dc7d8..55676b444 100644
--- a/src/share/vm/code/relocInfo.cpp
+++ b/src/share/vm/code/relocInfo.cpp
@@ -41,6 +41,14 @@
# include "assembler_zero.inline.hpp"
# include "nativeInst_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+# include "nativeInst_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+# include "nativeInst_ppc.hpp"
+#endif
const RelocationHolder RelocationHolder::none; // its type is relocInfo::none
diff --git a/src/share/vm/code/relocInfo.hpp b/src/share/vm/code/relocInfo.hpp
index c3c4468a7..e5587b259 100644
--- a/src/share/vm/code/relocInfo.hpp
+++ b/src/share/vm/code/relocInfo.hpp
@@ -430,6 +430,12 @@ class relocInfo VALUE_OBJ_CLASS_SPEC {
#ifdef TARGET_ARCH_zero
# include "relocInfo_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "relocInfo_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "relocInfo_ppc.hpp"
+#endif
protected:
diff --git a/src/share/vm/code/vmreg.hpp b/src/share/vm/code/vmreg.hpp
index 1be8ea2f8..cd00dd428 100644
--- a/src/share/vm/code/vmreg.hpp
+++ b/src/share/vm/code/vmreg.hpp
@@ -36,6 +36,12 @@
#ifdef TARGET_ARCH_zero
# include "register_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "register_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "register_ppc.hpp"
+#endif
#ifdef COMPILER2
#include "opto/adlcVMDeps.hpp"
#include "utilities/ostream.hpp"
@@ -51,6 +57,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/adGlobals_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/adGlobals_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/adGlobals_ppc.hpp"
+#endif
#endif
//------------------------------VMReg------------------------------------------
@@ -164,6 +176,12 @@ public:
#ifdef TARGET_ARCH_zero
# include "vmreg_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vmreg_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vmreg_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/compiler/disassembler.cpp b/src/share/vm/compiler/disassembler.cpp
index f81ce0e68..4b1ad9ab8 100644
--- a/src/share/vm/compiler/disassembler.cpp
+++ b/src/share/vm/compiler/disassembler.cpp
@@ -41,6 +41,12 @@
#ifdef TARGET_ARCH_zero
# include "depChecker_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "depChecker_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "depChecker_ppc.hpp"
+#endif
#ifdef SHARK
#include "shark/sharkEntry.hpp"
#endif
diff --git a/src/share/vm/compiler/disassembler.hpp b/src/share/vm/compiler/disassembler.hpp
index f95410922..03b377065 100644
--- a/src/share/vm/compiler/disassembler.hpp
+++ b/src/share/vm/compiler/disassembler.hpp
@@ -70,6 +70,12 @@ class Disassembler {
#ifdef TARGET_ARCH_zero
# include "disassembler_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "disassembler_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "disassembler_ppc.hpp"
+#endif
public:
diff --git a/src/share/vm/interpreter/abstractInterpreter.hpp b/src/share/vm/interpreter/abstractInterpreter.hpp
index 73eae232d..2dd199927 100644
--- a/src/share/vm/interpreter/abstractInterpreter.hpp
+++ b/src/share/vm/interpreter/abstractInterpreter.hpp
@@ -41,6 +41,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "interp_masm_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "interp_masm_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "interp_masm_ppc.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "thread_linux.inline.hpp"
#endif
diff --git a/src/share/vm/interpreter/bytecode.hpp b/src/share/vm/interpreter/bytecode.hpp
index b798c9a7a..7fb50dffb 100644
--- a/src/share/vm/interpreter/bytecode.hpp
+++ b/src/share/vm/interpreter/bytecode.hpp
@@ -37,6 +37,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
class ciBytecodeStream;
diff --git a/src/share/vm/interpreter/bytecodeInterpreter.cpp b/src/share/vm/interpreter/bytecodeInterpreter.cpp
index c214457b4..7b77e875b 100644
--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp
+++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp
@@ -59,6 +59,12 @@
#ifdef TARGET_OS_ARCH_windows_x86
# include "orderAccess_windows_x86.inline.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "orderAccess_linux_arm.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "orderAccess_linux_ppc.inline.hpp"
+#endif
// no precompiled headers
diff --git a/src/share/vm/interpreter/bytecodeInterpreter.hpp b/src/share/vm/interpreter/bytecodeInterpreter.hpp
index 636a070d6..1f59ee47c 100644
--- a/src/share/vm/interpreter/bytecodeInterpreter.hpp
+++ b/src/share/vm/interpreter/bytecodeInterpreter.hpp
@@ -41,6 +41,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
#ifdef CC_INTERP
@@ -587,6 +593,12 @@ void print();
#ifdef TARGET_ARCH_zero
# include "bytecodeInterpreter_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytecodeInterpreter_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytecodeInterpreter_ppc.hpp"
+#endif
}; // BytecodeInterpreter
diff --git a/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp b/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
index d0dcf6ce7..c0dc4b61b 100644
--- a/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
+++ b/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
@@ -52,6 +52,12 @@
#ifdef TARGET_ARCH_zero
# include "bytecodeInterpreter_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytecodeInterpreter_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytecodeInterpreter_ppc.inline.hpp"
+#endif
#endif // CC_INTERP
diff --git a/src/share/vm/interpreter/bytecodeStream.hpp b/src/share/vm/interpreter/bytecodeStream.hpp
index 05e4e64d0..532a05632 100644
--- a/src/share/vm/interpreter/bytecodeStream.hpp
+++ b/src/share/vm/interpreter/bytecodeStream.hpp
@@ -37,6 +37,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
// A BytecodeStream is used for fast iteration over the bytecodes
// of a methodOop.
diff --git a/src/share/vm/interpreter/bytecodes.cpp b/src/share/vm/interpreter/bytecodes.cpp
index 45c42bb59..5e4b9dcee 100644
--- a/src/share/vm/interpreter/bytecodes.cpp
+++ b/src/share/vm/interpreter/bytecodes.cpp
@@ -35,6 +35,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
#if defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER < 1600))
diff --git a/src/share/vm/interpreter/bytecodes.hpp b/src/share/vm/interpreter/bytecodes.hpp
index 29313cd44..6194ad621 100644
--- a/src/share/vm/interpreter/bytecodes.hpp
+++ b/src/share/vm/interpreter/bytecodes.hpp
@@ -294,6 +294,12 @@ class Bytecodes: AllStatic {
#ifdef TARGET_ARCH_zero
# include "bytecodes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytecodes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytecodes_ppc.hpp"
+#endif
number_of_codes
diff --git a/src/share/vm/interpreter/cppInterpreter.hpp b/src/share/vm/interpreter/cppInterpreter.hpp
index c428634ec..45d7921c0 100644
--- a/src/share/vm/interpreter/cppInterpreter.hpp
+++ b/src/share/vm/interpreter/cppInterpreter.hpp
@@ -90,6 +90,12 @@ class CppInterpreter: public AbstractInterpreter {
#ifdef TARGET_ARCH_zero
# include "cppInterpreter_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "cppInterpreter_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "cppInterpreter_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/interpreter/cppInterpreterGenerator.hpp b/src/share/vm/interpreter/cppInterpreterGenerator.hpp
index fa0b785c3..b324f953e 100644
--- a/src/share/vm/interpreter/cppInterpreterGenerator.hpp
+++ b/src/share/vm/interpreter/cppInterpreterGenerator.hpp
@@ -53,6 +53,12 @@ class CppInterpreterGenerator: public AbstractInterpreterGenerator {
#ifdef TARGET_ARCH_zero
# include "cppInterpreterGenerator_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "cppInterpreterGenerator_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "cppInterpreterGenerator_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/interpreter/interpreter.hpp b/src/share/vm/interpreter/interpreter.hpp
index 9de4afa6a..698a2edcd 100644
--- a/src/share/vm/interpreter/interpreter.hpp
+++ b/src/share/vm/interpreter/interpreter.hpp
@@ -152,6 +152,12 @@ class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateI
#ifdef TARGET_ARCH_zero
# include "interpreter_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "interpreter_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "interpreter_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/interpreter/interpreterGenerator.hpp b/src/share/vm/interpreter/interpreterGenerator.hpp
index 1030248f4..1a228e207 100644
--- a/src/share/vm/interpreter/interpreterGenerator.hpp
+++ b/src/share/vm/interpreter/interpreterGenerator.hpp
@@ -50,6 +50,12 @@ InterpreterGenerator(StubQueue* _code);
#ifdef TARGET_ARCH_zero
# include "interpreterGenerator_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "interpreterGenerator_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "interpreterGenerator_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/interpreter/interpreterRuntime.cpp b/src/share/vm/interpreter/interpreterRuntime.cpp
index b6ece3c24..69fa7e0ea 100644
--- a/src/share/vm/interpreter/interpreterRuntime.cpp
+++ b/src/share/vm/interpreter/interpreterRuntime.cpp
@@ -65,6 +65,12 @@
#ifdef TARGET_ARCH_zero
# include "vm_version_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vm_version_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vm_version_ppc.hpp"
+#endif
#ifdef COMPILER2
#include "opto/runtime.hpp"
#endif
diff --git a/src/share/vm/interpreter/interpreterRuntime.hpp b/src/share/vm/interpreter/interpreterRuntime.hpp
index 84b391022..caa9068af 100644
--- a/src/share/vm/interpreter/interpreterRuntime.hpp
+++ b/src/share/vm/interpreter/interpreterRuntime.hpp
@@ -157,6 +157,12 @@ class InterpreterRuntime: AllStatic {
#ifdef TARGET_ARCH_zero
# include "interpreterRT_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "interpreterRT_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "interpreterRT_ppc.hpp"
+#endif
// Interpreter's frequency counter overflow
diff --git a/src/share/vm/interpreter/templateInterpreter.hpp b/src/share/vm/interpreter/templateInterpreter.hpp
index 73b02b57f..40717ec56 100644
--- a/src/share/vm/interpreter/templateInterpreter.hpp
+++ b/src/share/vm/interpreter/templateInterpreter.hpp
@@ -192,6 +192,12 @@ class TemplateInterpreter: public AbstractInterpreter {
#ifdef TARGET_ARCH_zero
# include "templateInterpreter_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "templateInterpreter_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "templateInterpreter_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/interpreter/templateInterpreterGenerator.hpp b/src/share/vm/interpreter/templateInterpreterGenerator.hpp
index 3d92fff04..dc63589ed 100644
--- a/src/share/vm/interpreter/templateInterpreterGenerator.hpp
+++ b/src/share/vm/interpreter/templateInterpreterGenerator.hpp
@@ -96,6 +96,12 @@ class TemplateInterpreterGenerator: public AbstractInterpreterGenerator {
#ifdef TARGET_ARCH_zero
# include "templateInterpreterGenerator_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "templateInterpreterGenerator_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "templateInterpreterGenerator_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/interpreter/templateTable.hpp b/src/share/vm/interpreter/templateTable.hpp
index 0bca2dcd3..d38623247 100644
--- a/src/share/vm/interpreter/templateTable.hpp
+++ b/src/share/vm/interpreter/templateTable.hpp
@@ -40,6 +40,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "interp_masm_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "interp_masm_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "interp_masm_ppc.hpp"
+#endif
#ifndef CC_INTERP
// All the necessary definitions used for (bytecode) template generation. Instead of
@@ -364,6 +370,12 @@ class TemplateTable: AllStatic {
#ifdef TARGET_ARCH_MODEL_zero
# include "templateTable_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "templateTable_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "templateTable_ppc.hpp"
+#endif
};
#endif /* !CC_INTERP */
diff --git a/src/share/vm/oops/constantPoolOop.hpp b/src/share/vm/oops/constantPoolOop.hpp
index 8fbfcb05f..fa482a5c4 100644
--- a/src/share/vm/oops/constantPoolOop.hpp
+++ b/src/share/vm/oops/constantPoolOop.hpp
@@ -39,6 +39,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
// A constantPool is an array containing class constants as described in the
// class file.
diff --git a/src/share/vm/oops/oop.inline.hpp b/src/share/vm/oops/oop.inline.hpp
index 9975941cc..afdccfb26 100644
--- a/src/share/vm/oops/oop.inline.hpp
+++ b/src/share/vm/oops/oop.inline.hpp
@@ -52,6 +52,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
// Implementation of all inlined member functions defined in oop.hpp
// We need a separate file to avoid circular references
diff --git a/src/share/vm/oops/typeArrayOop.hpp b/src/share/vm/oops/typeArrayOop.hpp
index 05d4ef81d..c39987be5 100644
--- a/src/share/vm/oops/typeArrayOop.hpp
+++ b/src/share/vm/oops/typeArrayOop.hpp
@@ -45,6 +45,12 @@
#ifdef TARGET_OS_ARCH_windows_x86
# include "orderAccess_windows_x86.inline.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "orderAccess_linux_arm.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "orderAccess_linux_ppc.inline.hpp"
+#endif
// A typeArrayOop is an array containing basic types (non oop elements).
// It is used for arrays of {characters, singles, doubles, bytes, shorts, integers, longs}
diff --git a/src/share/vm/opto/buildOopMap.cpp b/src/share/vm/opto/buildOopMap.cpp
index 564fd369a..32a174729 100644
--- a/src/share/vm/opto/buildOopMap.cpp
+++ b/src/share/vm/opto/buildOopMap.cpp
@@ -41,6 +41,12 @@
#ifdef TARGET_ARCH_zero
# include "vmreg_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vmreg_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vmreg_ppc.inline.hpp"
+#endif
// The functions in this file builds OopMaps after all scheduling is done.
//
diff --git a/src/share/vm/opto/c2_globals.hpp b/src/share/vm/opto/c2_globals.hpp
index fe516dff5..159b28050 100644
--- a/src/share/vm/opto/c2_globals.hpp
+++ b/src/share/vm/opto/c2_globals.hpp
@@ -32,6 +32,9 @@
#ifdef TARGET_ARCH_sparc
# include "c2_globals_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c2_globals_arm.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "c2_globals_linux.hpp"
#endif
diff --git a/src/share/vm/opto/c2compiler.cpp b/src/share/vm/opto/c2compiler.cpp
index 889fc4295..7b0b9be59 100644
--- a/src/share/vm/opto/c2compiler.cpp
+++ b/src/share/vm/opto/c2compiler.cpp
@@ -37,6 +37,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/ad_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/ad_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/ad_ppc.hpp"
+#endif
volatile int C2Compiler::_runtimes = uninitialized;
diff --git a/src/share/vm/opto/compile.cpp b/src/share/vm/opto/compile.cpp
index cad5224e6..a1d9659af 100644
--- a/src/share/vm/opto/compile.cpp
+++ b/src/share/vm/opto/compile.cpp
@@ -74,6 +74,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/ad_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/ad_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/ad_ppc.hpp"
+#endif
// -------------------- Compile::mach_constant_base_node -----------------------
diff --git a/src/share/vm/opto/gcm.cpp b/src/share/vm/opto/gcm.cpp
index 1a0116445..2122f7ca7 100644
--- a/src/share/vm/opto/gcm.cpp
+++ b/src/share/vm/opto/gcm.cpp
@@ -47,6 +47,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/ad_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/ad_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/ad_ppc.hpp"
+#endif
// Portions of code courtesy of Clifford Click
diff --git a/src/share/vm/opto/locknode.hpp b/src/share/vm/opto/locknode.hpp
index 3858a038f..64a1027a7 100644
--- a/src/share/vm/opto/locknode.hpp
+++ b/src/share/vm/opto/locknode.hpp
@@ -40,6 +40,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/ad_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/ad_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/ad_ppc.hpp"
+#endif
//------------------------------BoxLockNode------------------------------------
class BoxLockNode : public Node {
diff --git a/src/share/vm/opto/output.hpp b/src/share/vm/opto/output.hpp
index 7e3237198..51eaa5c5e 100644
--- a/src/share/vm/opto/output.hpp
+++ b/src/share/vm/opto/output.hpp
@@ -39,6 +39,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/ad_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/ad_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/ad_ppc.hpp"
+#endif
class Arena;
class Bundle;
diff --git a/src/share/vm/opto/regmask.cpp b/src/share/vm/opto/regmask.cpp
index b1ba93801..3841a42fc 100644
--- a/src/share/vm/opto/regmask.cpp
+++ b/src/share/vm/opto/regmask.cpp
@@ -37,6 +37,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/ad_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/ad_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/ad_ppc.hpp"
+#endif
#define RM_SIZE _RM_SIZE /* a constant private to the class RegMask */
diff --git a/src/share/vm/opto/regmask.hpp b/src/share/vm/opto/regmask.hpp
index b1c280da2..7c3e71825 100644
--- a/src/share/vm/opto/regmask.hpp
+++ b/src/share/vm/opto/regmask.hpp
@@ -40,6 +40,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/adGlobals_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/adGlobals_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/adGlobals_ppc.hpp"
+#endif
// Some fun naming (textual) substitutions:
//
diff --git a/src/share/vm/opto/runtime.cpp b/src/share/vm/opto/runtime.cpp
index 5231c0e0a..b0544fef2 100644
--- a/src/share/vm/opto/runtime.cpp
+++ b/src/share/vm/opto/runtime.cpp
@@ -80,6 +80,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/ad_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/ad_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/ad_ppc.hpp"
+#endif
// For debugging purposes:
diff --git a/src/share/vm/prims/jniCheck.cpp b/src/share/vm/prims/jniCheck.cpp
index f344c0e3d..6301c9865 100644
--- a/src/share/vm/prims/jniCheck.cpp
+++ b/src/share/vm/prims/jniCheck.cpp
@@ -45,6 +45,12 @@
#ifdef TARGET_ARCH_zero
# include "jniTypes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "jniTypes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "jniTypes_ppc.hpp"
+#endif
// Heap objects are allowed to be directly referenced only in VM code,
diff --git a/src/share/vm/prims/jni_md.h b/src/share/vm/prims/jni_md.h
index 3cf4017f4..72aa1dc39 100644
--- a/src/share/vm/prims/jni_md.h
+++ b/src/share/vm/prims/jni_md.h
@@ -33,6 +33,12 @@
#ifdef TARGET_ARCH_zero
# include "jni_zero.h"
#endif
+#ifdef TARGET_ARCH_arm
+# include "jni_arm.h"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "jni_ppc.h"
+#endif
/*
diff --git a/src/share/vm/prims/jvmtiClassFileReconstituter.cpp b/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
index 16bdd1291..fa08cf712 100644
--- a/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
+++ b/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
@@ -36,6 +36,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
// FIXME: add Deprecated, LVT, LVTT attributes
// FIXME: fix Synthetic attribute
// FIXME: per Serguei, add error return handling for constantPoolOopDesc::copy_cpool_bytes()
diff --git a/src/share/vm/runtime/deoptimization.cpp b/src/share/vm/runtime/deoptimization.cpp
index 7944c5a74..36fd0be4b 100644
--- a/src/share/vm/runtime/deoptimization.cpp
+++ b/src/share/vm/runtime/deoptimization.cpp
@@ -59,6 +59,12 @@
#ifdef TARGET_ARCH_zero
# include "vmreg_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vmreg_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vmreg_ppc.inline.hpp"
+#endif
#ifdef COMPILER2
#ifdef TARGET_ARCH_MODEL_x86_32
# include "adfiles/ad_x86_32.hpp"
@@ -72,6 +78,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/ad_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/ad_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/ad_ppc.hpp"
+#endif
#endif
bool DeoptimizationMarker::_is_active = false;
diff --git a/src/share/vm/runtime/dtraceJSDT.hpp b/src/share/vm/runtime/dtraceJSDT.hpp
index 15febe459..d6c80c737 100644
--- a/src/share/vm/runtime/dtraceJSDT.hpp
+++ b/src/share/vm/runtime/dtraceJSDT.hpp
@@ -35,6 +35,12 @@
#ifdef TARGET_ARCH_zero
# include "nativeInst_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "nativeInst_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "nativeInst_ppc.hpp"
+#endif
class RegisteredProbes;
typedef jlong OpaqueProbes;
diff --git a/src/share/vm/runtime/frame.cpp b/src/share/vm/runtime/frame.cpp
index c1ce96907..5c205501a 100644
--- a/src/share/vm/runtime/frame.cpp
+++ b/src/share/vm/runtime/frame.cpp
@@ -52,6 +52,12 @@
#ifdef TARGET_ARCH_zero
# include "nativeInst_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "nativeInst_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "nativeInst_ppc.hpp"
+#endif
RegisterMap::RegisterMap(JavaThread *thread, bool update_map) {
_thread = thread;
diff --git a/src/share/vm/runtime/frame.hpp b/src/share/vm/runtime/frame.hpp
index 8fc6699db..4750f3a5a 100644
--- a/src/share/vm/runtime/frame.hpp
+++ b/src/share/vm/runtime/frame.hpp
@@ -44,6 +44,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/adGlobals_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/adGlobals_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/adGlobals_ppc.hpp"
+#endif
#endif
#ifdef ZERO
#ifdef TARGET_ARCH_zero
@@ -457,6 +463,12 @@ class frame VALUE_OBJ_CLASS_SPEC {
#ifdef TARGET_ARCH_zero
# include "frame_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "frame_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "frame_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/runtime/frame.inline.hpp b/src/share/vm/runtime/frame.inline.hpp
index 9ecae4527..739a50b9a 100644
--- a/src/share/vm/runtime/frame.inline.hpp
+++ b/src/share/vm/runtime/frame.inline.hpp
@@ -40,6 +40,12 @@
#ifdef TARGET_ARCH_zero
# include "jniTypes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "jniTypes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "jniTypes_ppc.hpp"
+#endif
#ifdef ZERO
#ifdef TARGET_ARCH_zero
# include "entryFrame_zero.hpp"
@@ -88,6 +94,12 @@ inline bool frame::is_first_frame() const {
#ifdef TARGET_ARCH_zero
# include "frame_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "frame_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "frame_ppc.inline.hpp"
+#endif
#endif // SHARE_VM_RUNTIME_FRAME_INLINE_HPP
diff --git a/src/share/vm/runtime/globals.hpp b/src/share/vm/runtime/globals.hpp
index 94bc78188..4a83a4195 100644
--- a/src/share/vm/runtime/globals.hpp
+++ b/src/share/vm/runtime/globals.hpp
@@ -35,6 +35,12 @@
#ifdef TARGET_ARCH_zero
# include "globals_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "globals_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "globals_ppc.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "globals_linux.hpp"
#endif
@@ -62,6 +68,12 @@
#ifdef TARGET_OS_ARCH_windows_x86
# include "globals_windows_x86.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "globals_linux_arm.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "globals_linux_ppc.hpp"
+#endif
#ifdef COMPILER1
#ifdef TARGET_ARCH_x86
# include "c1_globals_x86.hpp"
@@ -69,6 +81,12 @@
#ifdef TARGET_ARCH_sparc
# include "c1_globals_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c1_globals_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "c1_globals_ppc.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "c1_globals_linux.hpp"
#endif
@@ -86,6 +104,9 @@
#ifdef TARGET_ARCH_sparc
# include "c2_globals_sparc.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "c2_globals_arm.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "c2_globals_linux.hpp"
#endif
@@ -410,7 +431,14 @@ class CommandLineFlags {
product_pd(bool, UseMembar, \
"(Unstable) Issues membars on thread state transitions") \
\
- /* Temporary: See 6948537 */ \
+ /* Temp PPC Flag to allow disabling the use of lwsync on ppc platforms \
+ * that don't support it. This will be replaced by processor detection \
+ * logic. \
+ */ \
+ product(bool, UsePPCLWSYNC, true, \
+ "Use lwsync instruction if true, else use slower sync") \
+ \
+ /* Temporary: See 6948537 */ \
experimental(bool, UseMemSetInBOT, true, \
"(Unstable) uses memset in BOT updates in GC code") \
\
@@ -1926,6 +1954,9 @@ class CommandLineFlags {
product(bool, PrintRevisitStats, false, \
"Print revisit (klass and MDO) stack related information") \
\
+ EMBEDDED_ONLY(product(bool, LowMemoryProtection, true, \
+ "Enable LowMemoryProtection")) \
+ \
product_pd(bool, NeverActAsServerClassMachine, \
"Never act like a server-class machine") \
\
@@ -2630,6 +2661,25 @@ class CommandLineFlags {
product(bool, UseStringCache, false, \
"Enable String cache capabilities on String.java") \
\
+ /* byte strings */ \
+ product(bool, UseCompressedStrings, false, \
+ "Enable byte-valued strings") \
+ \
+ product(bool, SpecialStringCompress, true, \
+ "special version of string compress") \
+ \
+ product(bool, SpecialStringInflate, true, \
+ "special version of string inflate") \
+ \
+ product(bool, SpecialStringCompareToCC, true, \
+ "special version of string compareToCC") \
+ \
+ product(bool, SpecialStringIndexOfCC, true, \
+ "special version of string indexOfCC") \
+ \
+ product(bool, SpecialStringEqualsCC, true, \
+ "special version of string equalsCC") \
+ \
/* statistics */ \
develop(bool, CountCompiledCalls, false, \
"counts method invocations") \
@@ -2851,9 +2901,13 @@ class CommandLineFlags {
"Max. no. of lines in the stack trace for Java exceptions " \
"(0 means all)") \
\
- develop(intx, GuaranteedSafepointInterval, 1000, \
+ NOT_EMBEDDED(develop(intx, GuaranteedSafepointInterval, 1000, \
"Guarantee a safepoint (at least) every so many milliseconds " \
- "(0 means none)") \
+ "(0 means none)")) \
+ \
+ EMBEDDED_ONLY(product(intx, GuaranteedSafepointInterval, 0, \
+ "Guarantee a safepoint (at least) every so many milliseconds " \
+ "(0 means none)")) \
\
product(intx, SafepointTimeoutDelay, 10000, \
"Delay in milliseconds for option SafepointTimeout") \
@@ -3543,9 +3597,13 @@ class CommandLineFlags {
\
/* flags for performance data collection */ \
\
- product(bool, UsePerfData, true, \
+ NOT_EMBEDDED(product(bool, UsePerfData, true, \
+ "Flag to disable jvmstat instrumentation for performance testing" \
+ "and problem isolation purposes.")) \
+ \
+ EMBEDDED_ONLY(product(bool, UsePerfData, false, \
"Flag to disable jvmstat instrumentation for performance testing" \
- "and problem isolation purposes.") \
+ "and problem isolation purposes.")) \
\
product(bool, PerfDataSaveToFile, false, \
"Save PerfData memory to hsperfdata_<pid> file on exit") \
diff --git a/src/share/vm/runtime/icache.hpp b/src/share/vm/runtime/icache.hpp
index d8b991fbd..7ffce5b14 100644
--- a/src/share/vm/runtime/icache.hpp
+++ b/src/share/vm/runtime/icache.hpp
@@ -77,6 +77,12 @@ class AbstractICache : AllStatic {
#ifdef TARGET_ARCH_zero
# include "icache_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "icache_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "icache_ppc.hpp"
+#endif
diff --git a/src/share/vm/runtime/java.cpp b/src/share/vm/runtime/java.cpp
index ea7cc2860..f833dd2e4 100644
--- a/src/share/vm/runtime/java.cpp
+++ b/src/share/vm/runtime/java.cpp
@@ -70,6 +70,12 @@
#ifdef TARGET_ARCH_zero
# include "vm_version_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vm_version_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vm_version_ppc.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "thread_linux.inline.hpp"
#endif
diff --git a/src/share/vm/runtime/javaCalls.hpp b/src/share/vm/runtime/javaCalls.hpp
index 7567268e0..535bcc159 100644
--- a/src/share/vm/runtime/javaCalls.hpp
+++ b/src/share/vm/runtime/javaCalls.hpp
@@ -39,6 +39,12 @@
#ifdef TARGET_ARCH_zero
# include "jniTypes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "jniTypes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "jniTypes_ppc.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "thread_linux.inline.hpp"
#endif
diff --git a/src/share/vm/runtime/javaFrameAnchor.hpp b/src/share/vm/runtime/javaFrameAnchor.hpp
index 314031b7c..af5d77284 100644
--- a/src/share/vm/runtime/javaFrameAnchor.hpp
+++ b/src/share/vm/runtime/javaFrameAnchor.hpp
@@ -44,6 +44,12 @@
#ifdef TARGET_OS_ARCH_windows_x86
# include "orderAccess_windows_x86.inline.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "orderAccess_linux_arm.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "orderAccess_linux_ppc.inline.hpp"
+#endif
//
// An object for encapsulating the machine/os dependent part of a JavaThread frame state
//
@@ -102,6 +108,12 @@ friend class JavaCallWrapper;
#ifdef TARGET_ARCH_zero
# include "javaFrameAnchor_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "javaFrameAnchor_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "javaFrameAnchor_ppc.hpp"
+#endif
public:
diff --git a/src/share/vm/runtime/os.hpp b/src/share/vm/runtime/os.hpp
index b1476b639..c7f03462d 100644
--- a/src/share/vm/runtime/os.hpp
+++ b/src/share/vm/runtime/os.hpp
@@ -676,6 +676,12 @@ class os: AllStatic {
#ifdef TARGET_OS_ARCH_windows_x86
# include "os_windows_x86.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "os_linux_arm.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "os_linux_ppc.hpp"
+#endif
// debugging support (mostly used by debug.cpp but also fatal error handler)
diff --git a/src/share/vm/runtime/registerMap.hpp b/src/share/vm/runtime/registerMap.hpp
index aea349b93..da597d40e 100644
--- a/src/share/vm/runtime/registerMap.hpp
+++ b/src/share/vm/runtime/registerMap.hpp
@@ -36,6 +36,12 @@
#ifdef TARGET_ARCH_zero
# include "register_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "register_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "register_ppc.hpp"
+#endif
class JavaThread;
@@ -138,6 +144,12 @@ class RegisterMap : public StackObj {
#ifdef TARGET_ARCH_zero
# include "registerMap_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "registerMap_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "registerMap_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/runtime/relocator.hpp b/src/share/vm/runtime/relocator.hpp
index 7fc4241c8..c34866f74 100644
--- a/src/share/vm/runtime/relocator.hpp
+++ b/src/share/vm/runtime/relocator.hpp
@@ -36,6 +36,12 @@
#ifdef TARGET_ARCH_zero
# include "bytes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "bytes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "bytes_ppc.hpp"
+#endif
// This code has been converted from the 1.1E java virtual machine
// Thanks to the JavaTopics group for using the code
diff --git a/src/share/vm/runtime/safepoint.cpp b/src/share/vm/runtime/safepoint.cpp
index 6edd8c9f8..bd9a9e6eb 100644
--- a/src/share/vm/runtime/safepoint.cpp
+++ b/src/share/vm/runtime/safepoint.cpp
@@ -61,6 +61,14 @@
# include "nativeInst_zero.hpp"
# include "vmreg_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "nativeInst_arm.hpp"
+# include "vmreg_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "nativeInst_ppc.hpp"
+# include "vmreg_ppc.inline.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "thread_linux.inline.hpp"
#endif
diff --git a/src/share/vm/runtime/sharedRuntime.cpp b/src/share/vm/runtime/sharedRuntime.cpp
index 801189ce5..1fa811e0b 100644
--- a/src/share/vm/runtime/sharedRuntime.cpp
+++ b/src/share/vm/runtime/sharedRuntime.cpp
@@ -68,6 +68,14 @@
# include "nativeInst_zero.hpp"
# include "vmreg_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "nativeInst_arm.hpp"
+# include "vmreg_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "nativeInst_ppc.hpp"
+# include "vmreg_ppc.inline.hpp"
+#endif
#ifdef COMPILER1
#include "c1/c1_Runtime1.hpp"
#endif
@@ -2618,6 +2626,7 @@ void SharedRuntime::get_utf(oopDesc* src, address dst) {
int jlsLen = java_lang_String::length(src);
jchar* jlsPos = (jlsLen == 0) ? NULL :
jlsValue->char_at_addr(jlsOffset);
+ assert(typeArrayKlass::cast(jlsValue->klass())->element_type() == T_CHAR, "compressed string");
(void) UNICODE::as_utf8(jlsPos, jlsLen, (char *)dst, max_dtrace_string_size);
}
#endif // ndef HAVE_DTRACE_H
diff --git a/src/share/vm/runtime/stackValueCollection.cpp b/src/share/vm/runtime/stackValueCollection.cpp
index 62bef8c83..bc391e599 100644
--- a/src/share/vm/runtime/stackValueCollection.cpp
+++ b/src/share/vm/runtime/stackValueCollection.cpp
@@ -33,6 +33,12 @@
#ifdef TARGET_ARCH_zero
# include "jniTypes_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "jniTypes_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "jniTypes_ppc.hpp"
+#endif
jint StackValueCollection::int_at(int slot) const {
intptr_t val = at(slot)->get_int();
diff --git a/src/share/vm/runtime/statSampler.cpp b/src/share/vm/runtime/statSampler.cpp
index 250dbf37f..bbb947737 100644
--- a/src/share/vm/runtime/statSampler.cpp
+++ b/src/share/vm/runtime/statSampler.cpp
@@ -42,6 +42,12 @@
#ifdef TARGET_ARCH_zero
# include "vm_version_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vm_version_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vm_version_ppc.hpp"
+#endif
// --------------------------------------------------------
// StatSamplerTask
diff --git a/src/share/vm/runtime/stubCodeGenerator.cpp b/src/share/vm/runtime/stubCodeGenerator.cpp
index ab9d76352..ba395194f 100644
--- a/src/share/vm/runtime/stubCodeGenerator.cpp
+++ b/src/share/vm/runtime/stubCodeGenerator.cpp
@@ -36,6 +36,12 @@
#ifdef TARGET_ARCH_zero
# include "assembler_zero.inline.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+#endif
// Implementation of StubCodeDesc
diff --git a/src/share/vm/runtime/stubRoutines.hpp b/src/share/vm/runtime/stubRoutines.hpp
index 46aaf7c0c..0eb0d1136 100644
--- a/src/share/vm/runtime/stubRoutines.hpp
+++ b/src/share/vm/runtime/stubRoutines.hpp
@@ -40,6 +40,12 @@
#ifdef TARGET_ARCH_zero
# include "nativeInst_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "nativeInst_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "nativeInst_ppc.hpp"
+#endif
// StubRoutines provides entry points to assembly routines used by
// compiled code and the run-time system. Platform-specific entry
@@ -105,6 +111,12 @@ class StubRoutines: AllStatic {
#ifdef TARGET_ARCH_MODEL_zero
# include "stubRoutines_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "stubRoutines_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "stubRoutines_ppc.hpp"
+#endif
static jint _verify_oop_count;
diff --git a/src/share/vm/runtime/thread.hpp b/src/share/vm/runtime/thread.hpp
index acdc227bd..c0818321f 100644
--- a/src/share/vm/runtime/thread.hpp
+++ b/src/share/vm/runtime/thread.hpp
@@ -1598,6 +1598,12 @@ public:
#ifdef TARGET_OS_ARCH_windows_x86
# include "thread_windows_x86.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "thread_linux_arm.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "thread_linux_ppc.hpp"
+#endif
public:
diff --git a/src/share/vm/runtime/threadLocalStorage.hpp b/src/share/vm/runtime/threadLocalStorage.hpp
index 8a78e5795..2ca4260d9 100644
--- a/src/share/vm/runtime/threadLocalStorage.hpp
+++ b/src/share/vm/runtime/threadLocalStorage.hpp
@@ -62,6 +62,12 @@ class ThreadLocalStorage : AllStatic {
#ifdef TARGET_OS_ARCH_windows_x86
# include "threadLS_windows_x86.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "threadLS_linux_arm.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "threadLS_linux_ppc.hpp"
+#endif
public:
diff --git a/src/share/vm/runtime/vmStructs.cpp b/src/share/vm/runtime/vmStructs.cpp
index bdcbbfd25..003e659e8 100644
--- a/src/share/vm/runtime/vmStructs.cpp
+++ b/src/share/vm/runtime/vmStructs.cpp
@@ -108,6 +108,12 @@
#ifdef TARGET_ARCH_zero
# include "vmStructs_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vmStructs_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vmStructs_ppc.hpp"
+#endif
#ifdef TARGET_OS_FAMILY_linux
# include "thread_linux.inline.hpp"
#endif
@@ -135,6 +141,12 @@
#ifdef TARGET_OS_ARCH_windows_x86
# include "vmStructs_windows_x86.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "vmStructs_linux_arm.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "vmStructs_linux_ppc.hpp"
+#endif
#ifndef SERIALGC
#include "gc_implementation/concurrentMarkSweep/cmsPermGen.hpp"
#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
@@ -166,6 +178,12 @@
#ifdef TARGET_ARCH_MODEL_zero
# include "adfiles/adGlobals_zero.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_arm
+# include "adfiles/adGlobals_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc
+# include "adfiles/adGlobals_ppc.hpp"
+#endif
#endif
// Note: the cross-product of (c1, c2, product, nonproduct, ...),
diff --git a/src/share/vm/runtime/vm_version.cpp b/src/share/vm/runtime/vm_version.cpp
index 5571db998..11db0c39a 100644
--- a/src/share/vm/runtime/vm_version.cpp
+++ b/src/share/vm/runtime/vm_version.cpp
@@ -35,6 +35,12 @@
#ifdef TARGET_ARCH_zero
# include "vm_version_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "vm_version_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "vm_version_ppc.hpp"
+#endif
const char* Abstract_VM_Version::_s_vm_release = Abstract_VM_Version::vm_release();
const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string();
@@ -220,8 +226,21 @@ const char* Abstract_VM_Version::internal_vm_info_string() {
#endif
#endif
+ #ifndef FLOAT_ARCH
+ #if defined(__SOFTFP__)
+ #define FLOAT_ARCH "-sflt"
+ #elif defined(E500V2)
+ #define FLOAT_ARCH "-e500v2"
+ #elif defined(ARM)
+ #define FLOAT_ARCH "-vfp"
+ #elif defined(PPC)
+ #define FLOAT_ARCH "-hflt"
+ #else
+ #define FLOAT_ARCH ""
+ #endif
+ #endif
- return VMNAME " (" VM_RELEASE ") for " OS "-" CPU
+ return VMNAME " (" VM_RELEASE ") for " OS "-" CPU FLOAT_ARCH
" JRE (" JRE_RELEASE_VERSION "), built on " __DATE__ " " __TIME__
" by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER;
}
diff --git a/src/share/vm/utilities/copy.hpp b/src/share/vm/utilities/copy.hpp
index 67c11a32d..8772fe44f 100644
--- a/src/share/vm/utilities/copy.hpp
+++ b/src/share/vm/utilities/copy.hpp
@@ -331,6 +331,12 @@ class Copy : AllStatic {
#ifdef TARGET_ARCH_zero
# include "copy_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "copy_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "copy_ppc.hpp"
+#endif
};
diff --git a/src/share/vm/utilities/globalDefinitions.hpp b/src/share/vm/utilities/globalDefinitions.hpp
index 56a9043e5..820b6abcb 100644
--- a/src/share/vm/utilities/globalDefinitions.hpp
+++ b/src/share/vm/utilities/globalDefinitions.hpp
@@ -328,6 +328,12 @@ extern int LogMinObjAlignmentInBytes;
#ifdef TARGET_ARCH_zero
# include "globalDefinitions_zero.hpp"
#endif
+#ifdef TARGET_ARCH_arm
+# include "globalDefinitions_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "globalDefinitions_ppc.hpp"
+#endif
// The byte alignment to be used by Arena::Amalloc. See bugid 4169348.
diff --git a/src/share/vm/utilities/taskqueue.hpp b/src/share/vm/utilities/taskqueue.hpp
index 8cfd83df3..79f293444 100644
--- a/src/share/vm/utilities/taskqueue.hpp
+++ b/src/share/vm/utilities/taskqueue.hpp
@@ -47,6 +47,12 @@
#ifdef TARGET_OS_ARCH_windows_x86
# include "orderAccess_windows_x86.inline.hpp"
#endif
+#ifdef TARGET_OS_ARCH_linux_arm
+# include "orderAccess_linux_arm.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_linux_ppc
+# include "orderAccess_linux_ppc.inline.hpp"
+#endif
// Simple TaskQueue stats that are collected by default in debug builds.