changeset 2073:b92c45f2bc75

7016023: Enable building ARM and PPC from src/closed repository Reviewed-by: dholmes, bdelsart
author bobv
date Wed, 02 Feb 2011 11:35:26 -0500
parents 3582bf76420e
children 9cd8a2c2d584
files make/Makefile make/closed.make make/jprt.properties make/linux/Makefile make/linux/makefiles/adlc.make make/linux/makefiles/arm.make make/linux/makefiles/buildtree.make make/linux/makefiles/ppc.make make/linux/makefiles/rules.make make/linux/makefiles/top.make make/linux/makefiles/vm.make make/linux/platform_arm make/linux/platform_ppc src/os/linux/vm/osThread_linux.cpp src/os/linux/vm/os_linux.cpp src/os/linux/vm/os_linux.inline.hpp src/os/linux/vm/thread_linux.inline.hpp src/share/vm/asm/assembler.cpp src/share/vm/asm/assembler.hpp src/share/vm/asm/codeBuffer.hpp src/share/vm/c1/c1_Defs.hpp src/share/vm/c1/c1_FpuStackSim.hpp src/share/vm/c1/c1_FrameMap.cpp src/share/vm/c1/c1_FrameMap.hpp src/share/vm/c1/c1_Instruction.hpp src/share/vm/c1/c1_LIRAssembler.cpp src/share/vm/c1/c1_LIRAssembler.hpp src/share/vm/c1/c1_LinearScan.cpp src/share/vm/c1/c1_LinearScan.hpp src/share/vm/c1/c1_MacroAssembler.hpp src/share/vm/c1/c1_globals.hpp src/share/vm/classfile/classFileStream.hpp src/share/vm/classfile/stackMapTable.hpp src/share/vm/classfile/verifier.cpp src/share/vm/code/codeBlob.cpp src/share/vm/code/compiledIC.hpp src/share/vm/code/icBuffer.cpp src/share/vm/code/relocInfo.cpp src/share/vm/code/relocInfo.hpp src/share/vm/code/vmreg.hpp src/share/vm/compiler/disassembler.cpp src/share/vm/compiler/disassembler.hpp src/share/vm/interpreter/abstractInterpreter.hpp src/share/vm/interpreter/bytecode.hpp src/share/vm/interpreter/bytecodeInterpreter.cpp src/share/vm/interpreter/bytecodeInterpreter.hpp src/share/vm/interpreter/bytecodeInterpreter.inline.hpp src/share/vm/interpreter/bytecodeStream.hpp src/share/vm/interpreter/bytecodes.cpp src/share/vm/interpreter/bytecodes.hpp src/share/vm/interpreter/cppInterpreter.hpp src/share/vm/interpreter/cppInterpreterGenerator.hpp src/share/vm/interpreter/interpreter.hpp src/share/vm/interpreter/interpreterGenerator.hpp src/share/vm/interpreter/interpreterRuntime.cpp src/share/vm/interpreter/interpreterRuntime.hpp src/share/vm/interpreter/templateInterpreter.hpp src/share/vm/interpreter/templateInterpreterGenerator.hpp src/share/vm/interpreter/templateTable.hpp src/share/vm/oops/constantPoolOop.hpp src/share/vm/oops/oop.inline.hpp src/share/vm/oops/typeArrayOop.hpp src/share/vm/opto/buildOopMap.cpp src/share/vm/opto/c2_globals.hpp src/share/vm/opto/c2compiler.cpp src/share/vm/opto/compile.cpp src/share/vm/opto/gcm.cpp src/share/vm/opto/locknode.hpp src/share/vm/opto/output.hpp src/share/vm/opto/regmask.cpp src/share/vm/opto/regmask.hpp src/share/vm/opto/runtime.cpp src/share/vm/prims/jniCheck.cpp src/share/vm/prims/jni_md.h src/share/vm/prims/jvmtiClassFileReconstituter.cpp src/share/vm/runtime/deoptimization.cpp src/share/vm/runtime/dtraceJSDT.hpp src/share/vm/runtime/frame.cpp src/share/vm/runtime/frame.hpp src/share/vm/runtime/frame.inline.hpp src/share/vm/runtime/globals.hpp src/share/vm/runtime/icache.hpp src/share/vm/runtime/java.cpp src/share/vm/runtime/javaCalls.hpp src/share/vm/runtime/javaFrameAnchor.hpp src/share/vm/runtime/os.hpp src/share/vm/runtime/registerMap.hpp src/share/vm/runtime/relocator.hpp src/share/vm/runtime/safepoint.cpp src/share/vm/runtime/sharedRuntime.cpp src/share/vm/runtime/stackValueCollection.cpp src/share/vm/runtime/statSampler.cpp src/share/vm/runtime/stubCodeGenerator.cpp src/share/vm/runtime/stubRoutines.hpp src/share/vm/runtime/thread.hpp src/share/vm/runtime/threadLocalStorage.hpp src/share/vm/runtime/vmStructs.cpp src/share/vm/runtime/vm_version.cpp src/share/vm/utilities/copy.hpp src/share/vm/utilities/globalDefinitions.hpp src/share/vm/utilities/taskqueue.hpp
diffstat 101 files changed, 971 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/make/Makefile	Thu Jan 27 16:11:27 2011 -0800
+++ b/make/Makefile	Wed Feb 02 11:35:26 2011 -0500
@@ -73,6 +73,7 @@
   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/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/%
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/closed.make	Wed Feb 02 11:35:26 2011 -0500
@@ -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
+
--- a/make/jprt.properties	Thu Jan 27 16:11:27 2011 -0800
+++ b/make/jprt.properties	Wed Feb 02 11:35:26 2011 -0500
@@ -44,6 +44,11 @@
 
 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.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.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.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.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.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.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.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.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.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}-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.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.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}}
+
--- a/make/linux/Makefile	Thu Jan 27 16:11:27 2011 -0800
+++ b/make/linux/Makefile	Wed Feb 02 11:35:26 2011 -0500
@@ -208,7 +208,7 @@
 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)
--- a/make/linux/makefiles/adlc.make	Thu Jan 27 16:11:27 2011 -0800
+++ b/make/linux/makefiles/adlc.make	Wed Feb 02 11:35:26 2011 -0500
@@ -39,8 +39,8 @@
 
 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
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/linux/makefiles/arm.make	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/make/linux/makefiles/buildtree.make	Thu Jan 27 16:11:27 2011 -0800
+++ b/make/linux/makefiles/buildtree.make	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
         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 @@
 # 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 @@
 	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 @@
 	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)" ] && \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/linux/makefiles/ppc.make	Wed Feb 02 11:35:26 2011 -0500
@@ -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
+
--- a/make/linux/makefiles/rules.make	Thu Jan 27 16:11:27 2011 -0800
+++ b/make/linux/makefiles/rules.make	Wed Feb 02 11:35:26 2011 -0500
@@ -146,6 +146,8 @@
 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
--- a/make/linux/makefiles/top.make	Thu Jan 27 16:11:27 2011 -0800
+++ b/make/linux/makefiles/top.make	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 
 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)/%)
--- a/make/linux/makefiles/vm.make	Thu Jan 27 16:11:27 2011 -0800
+++ b/make/linux/makefiles/vm.make	Wed Feb 02 11:35:26 2011 -0500
@@ -121,8 +121,8 @@
 
 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/linux/platform_arm	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/linux/platform_ppc	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/os/linux/vm/osThread_linux.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/os/linux/vm/osThread_linux.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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() {
--- a/src/os/linux/vm/os_linux.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/os/linux/vm/os_linux.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/os/linux/vm/os_linux.inline.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/os/linux/vm/os_linux.inline.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
 
--- a/src/os/linux/vm/thread_linux.inline.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/os/linux/vm/thread_linux.inline.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
 
--- a/src/share/vm/asm/assembler.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/asm/assembler.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/asm/assembler.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/asm/assembler.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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
--- a/src/share/vm/asm/codeBuffer.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/asm/codeBuffer.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -566,6 +566,12 @@
 #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
 
 };
 
--- a/src/share/vm/c1/c1_Defs.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_Defs.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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
--- a/src/share/vm/c1/c1_FpuStackSim.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_FpuStackSim.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -38,6 +38,12 @@
 #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
--- a/src/share/vm/c1/c1_FrameMap.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_FrameMap.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
 
 
 
--- a/src/share/vm/c1/c1_FrameMap.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_FrameMap.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -88,6 +88,12 @@
 #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;
--- a/src/share/vm/c1/c1_Instruction.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_Instruction.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -316,6 +316,8 @@
     return res;
   }
 
+  static const int no_bci = -99;
+
   enum InstructionFlag {
     NeedsNullCheckFlag = 0,
     CanTrapFlag,
--- a/src/share/vm/c1/c1_LIRAssembler.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_LIRAssembler.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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) {
--- a/src/share/vm/c1/c1_LIRAssembler.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_LIRAssembler.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -252,6 +252,12 @@
 #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
 
 };
 
--- a/src/share/vm/c1/c1_LinearScan.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_LinearScan.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/c1/c1_LinearScan.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_LinearScan.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -972,6 +972,12 @@
 #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
--- a/src/share/vm/c1/c1_MacroAssembler.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_MacroAssembler.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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
 
 };
 
--- a/src/share/vm/c1/c1_globals.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/c1/c1_globals.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/classfile/classFileStream.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/classfile/classFileStream.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
 //
--- a/src/share/vm/classfile/stackMapTable.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/classfile/stackMapTable.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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;
 
--- a/src/share/vm/classfile/verifier.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/classfile/verifier.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
 
--- a/src/share/vm/code/codeBlob.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/code/codeBlob.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/code/compiledIC.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/code/compiledIC.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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.
--- a/src/share/vm/code/icBuffer.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/code/icBuffer.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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);
--- a/src/share/vm/code/relocInfo.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/code/relocInfo.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/code/relocInfo.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/code/relocInfo.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -430,6 +430,12 @@
 #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:
--- a/src/share/vm/code/vmreg.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/code/vmreg.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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
 
 
 };
--- a/src/share/vm/compiler/disassembler.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/compiler/disassembler.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/compiler/disassembler.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/compiler/disassembler.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -70,6 +70,12 @@
 #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:
--- a/src/share/vm/interpreter/abstractInterpreter.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/abstractInterpreter.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/interpreter/bytecode.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/bytecode.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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;
 
--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/interpreter/bytecodeInterpreter.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/bytecodeInterpreter.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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
--- a/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
 
--- a/src/share/vm/interpreter/bytecodeStream.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/bytecodeStream.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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.
--- a/src/share/vm/interpreter/bytecodes.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/bytecodes.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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))
--- a/src/share/vm/interpreter/bytecodes.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/bytecodes.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -294,6 +294,12 @@
 #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
--- a/src/share/vm/interpreter/cppInterpreter.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/cppInterpreter.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -90,6 +90,12 @@
 #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
 
 
 };
--- a/src/share/vm/interpreter/cppInterpreterGenerator.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/cppInterpreterGenerator.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -53,6 +53,12 @@
 #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
 
 };
 
--- a/src/share/vm/interpreter/interpreter.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/interpreter.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -152,6 +152,12 @@
 #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
 
 };
 
--- a/src/share/vm/interpreter/interpreterGenerator.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/interpreterGenerator.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -50,6 +50,12 @@
 #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
 
 
 };
--- a/src/share/vm/interpreter/interpreterRuntime.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/interpreterRuntime.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/interpreter/interpreterRuntime.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/interpreterRuntime.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -157,6 +157,12 @@
 #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
--- a/src/share/vm/interpreter/templateInterpreter.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/templateInterpreter.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -192,6 +192,12 @@
 #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
 
 
 };
--- a/src/share/vm/interpreter/templateInterpreterGenerator.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/templateInterpreterGenerator.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -96,6 +96,12 @@
 #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
 
 
 };
--- a/src/share/vm/interpreter/templateTable.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/interpreter/templateTable.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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 */
--- a/src/share/vm/oops/constantPoolOop.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/oops/constantPoolOop.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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.
--- a/src/share/vm/oops/oop.inline.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/oops/oop.inline.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/oops/typeArrayOop.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/oops/typeArrayOop.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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}
--- a/src/share/vm/opto/buildOopMap.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/buildOopMap.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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.
 //
--- a/src/share/vm/opto/c2_globals.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/c2_globals.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/opto/c2compiler.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/c2compiler.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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;
--- a/src/share/vm/opto/compile.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/compile.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 -----------------------
--- a/src/share/vm/opto/gcm.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/gcm.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
 
--- a/src/share/vm/opto/locknode.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/locknode.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 {
--- a/src/share/vm/opto/output.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/output.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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;
--- a/src/share/vm/opto/regmask.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/regmask.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 */
 
--- a/src/share/vm/opto/regmask.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/regmask.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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:
 //
--- a/src/share/vm/opto/runtime.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/opto/runtime.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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:
--- a/src/share/vm/prims/jniCheck.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/prims/jniCheck.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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,
--- a/src/share/vm/prims/jni_md.h	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/prims/jni_md.h	Wed Feb 02 11:35:26 2011 -0500
@@ -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
 
 
 /*
--- a/src/share/vm/prims/jvmtiClassFileReconstituter.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/prims/jvmtiClassFileReconstituter.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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()
--- a/src/share/vm/runtime/deoptimization.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/deoptimization.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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;
--- a/src/share/vm/runtime/dtraceJSDT.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/dtraceJSDT.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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;
--- a/src/share/vm/runtime/frame.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/frame.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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;
--- a/src/share/vm/runtime/frame.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/frame.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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
 
 };
 
--- a/src/share/vm/runtime/frame.inline.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/frame.inline.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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
--- a/src/share/vm/runtime/globals.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/globals.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
   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 @@
   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 @@
   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 @@
           "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 @@
                                                                             \
   /* 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.")                                \
+          "and problem isolation purposes."))                               \
+                                                                            \
+  EMBEDDED_ONLY(product(bool, UsePerfData, false,                           \
+          "Flag to disable jvmstat instrumentation for performance testing" \
+          "and problem isolation purposes."))                               \
                                                                             \
   product(bool, PerfDataSaveToFile, false,                                  \
           "Save PerfData memory to hsperfdata_<pid> file on exit")          \
--- a/src/share/vm/runtime/icache.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/icache.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -77,6 +77,12 @@
 #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
 
 
 
--- a/src/share/vm/runtime/java.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/java.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/runtime/javaCalls.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/javaCalls.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/runtime/javaFrameAnchor.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/javaFrameAnchor.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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:
--- a/src/share/vm/runtime/os.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/os.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -676,6 +676,12 @@
 #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)
--- a/src/share/vm/runtime/registerMap.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/registerMap.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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
 
 };
 
--- a/src/share/vm/runtime/relocator.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/relocator.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/runtime/safepoint.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/safepoint.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/runtime/sharedRuntime.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
   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
--- a/src/share/vm/runtime/stackValueCollection.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/stackValueCollection.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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();
--- a/src/share/vm/runtime/statSampler.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/statSampler.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/runtime/stubCodeGenerator.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/stubCodeGenerator.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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
--- a/src/share/vm/runtime/stubRoutines.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/stubRoutines.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
 #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;
--- a/src/share/vm/runtime/thread.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/thread.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -1598,6 +1598,12 @@
 #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:
--- a/src/share/vm/runtime/threadLocalStorage.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/threadLocalStorage.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -62,6 +62,12 @@
 #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:
--- a/src/share/vm/runtime/vmStructs.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/vmStructs.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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, ...),
--- a/src/share/vm/runtime/vm_version.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/runtime/vm_version.cpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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 @@
     #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;
 }
--- a/src/share/vm/utilities/copy.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/utilities/copy.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -331,6 +331,12 @@
 #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
 
 };
 
--- a/src/share/vm/utilities/globalDefinitions.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/utilities/globalDefinitions.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -328,6 +328,12 @@
 #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.
--- a/src/share/vm/utilities/taskqueue.hpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/utilities/taskqueue.hpp	Wed Feb 02 11:35:26 2011 -0500
@@ -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.