# HG changeset patch # User ohair # Date 1291169420 28800 # Node ID 2ca799d83d3c023892acdfb3466e86b82eaebff7 # Parent 0fc262af204ff29ed9c6638c01585360b188ba2c# Parent c7db7adb83b4de2b82cee4bc0e34bc63154a3f21 Merge diff -r c7db7adb83b4 -r 2ca799d83d3c .hgtags --- a/.hgtags Tue Nov 30 18:07:18 2010 -0800 +++ b/.hgtags Tue Nov 30 18:10:20 2010 -0800 @@ -127,4 +127,7 @@ 5511edd5d719f3fc9fdd04879482026a3d2c8652 hs20-b01 bdbc48857210a509b3c50a3291ecb9dd6a72e016 jdk7-b115 96b3f2a7add0b445b8aa421f6823cff5a2e2fe03 jdk7-b116 +52f19c724d9634af79044a2e0defbe4a5f1adbda hs20-b02 806d0c037e6bbb88dac0699673f4ba55ee8c02da jdk7-b117 +698b7b727e12de44139d8cca6ab9a494ead13253 jdk7-b118 +3ef7426b4deac5dcfd4afb35cabe9ab3d666df91 hs20-b02 diff -r c7db7adb83b4 -r 2ca799d83d3c agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java --- a/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java Tue Nov 30 18:07:18 2010 -0800 +++ b/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -188,7 +188,7 @@ } else { throw new RuntimeException("should not reach here"); } - } else if (ctag.isMethodHandle() || ctag.isMethodType()) { + } else if (ctag.isMethodHandle()) { Oop x = getCachedConstant(); int refidx = cpool.getMethodHandleIndexAt(cpIndex); int refkind = cpool.getMethodHandleRefKindAt(cpIndex); diff -r c7db7adb83b4 -r 2ca799d83d3c agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java --- a/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java Tue Nov 30 18:07:18 2010 -0800 +++ b/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java Tue Nov 30 18:10:20 2010 -0800 @@ -53,11 +53,19 @@ private static synchronized void initialize(TypeDataBase db) throws WrongTypeException { Type type = db.lookupType("constantPoolOopDesc"); tags = new OopField(type.getOopField("_tags"), 0); + operands = new OopField(type.getOopField("_operands"), 0); cache = new OopField(type.getOopField("_cache"), 0); poolHolder = new OopField(type.getOopField("_pool_holder"), 0); length = new CIntField(type.getCIntegerField("_length"), 0); headerSize = type.getSize(); elementSize = 0; + // fetch constants: + MULTI_OPERAND_COUNT_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_multi_operand_count_offset").intValue(); + MULTI_OPERAND_BASE_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_multi_operand_base_offset").intValue(); + INDY_BSM_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_indy_bsm_offset").intValue(); + INDY_NT_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_indy_nt_offset").intValue(); + INDY_ARGC_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_indy_argc_offset").intValue(); + INDY_ARGV_OFFSET = db.lookupIntConstant("constantPoolOopDesc::_indy_argv_offset").intValue(); } ConstantPool(OopHandle handle, ObjectHeap heap) { @@ -67,6 +75,7 @@ public boolean isConstantPool() { return true; } private static OopField tags; + private static OopField operands; private static OopField cache; private static OopField poolHolder; private static CIntField length; // number of elements in oop @@ -74,7 +83,15 @@ private static long headerSize; private static long elementSize; + private static int MULTI_OPERAND_COUNT_OFFSET; + private static int MULTI_OPERAND_BASE_OFFSET; + private static int INDY_BSM_OFFSET; + private static int INDY_NT_OFFSET; + private static int INDY_ARGC_OFFSET; + private static int INDY_ARGV_OFFSET; + public TypeArray getTags() { return (TypeArray) tags.getValue(this); } + public TypeArray getOperands() { return (TypeArray) operands.getValue(this); } public ConstantPoolCache getCache() { return (ConstantPoolCache) cache.getValue(this); } public Klass getPoolHolder() { return (Klass) poolHolder.getValue(this); } public int getLength() { return (int)length.getValue(this); } @@ -278,6 +295,25 @@ return res; } + /** Lookup for multi-operand (InvokeDynamic) entries. */ + public int[] getMultiOperandsAt(int i) { + if (Assert.ASSERTS_ENABLED) { + Assert.that(getTagAt(i).isInvokeDynamic(), "Corrupted constant pool"); + } + int pos = this.getIntAt(i); + int countPos = pos + MULTI_OPERAND_COUNT_OFFSET; // == pos-1 + int basePos = pos + MULTI_OPERAND_BASE_OFFSET; // == pos + if (countPos < 0) return null; // safety first + TypeArray operands = getOperands(); + if (operands == null) return null; // safety first + int length = operands.getIntAt(countPos); + int[] values = new int[length]; + for (int j = 0; j < length; j++) { + values[j] = operands.getIntAt(basePos+j); + } + return values; + } + final private static String[] nameForTag = new String[] { }; @@ -522,15 +558,20 @@ case JVM_CONSTANT_InvokeDynamic: { dos.writeByte(cpConstType); - int value = getIntAt(ci); - short bootstrapMethodIndex = (short) extractLowShortFromInt(value); - short nameAndTypeIndex = (short) extractHighShortFromInt(value); - dos.writeShort(bootstrapMethodIndex); - dos.writeShort(nameAndTypeIndex); + int[] values = getMultiOperandsAt(ci); + for (int vn = 0; vn < values.length; vn++) { + dos.writeShort(values[vn]); + } + int bootstrapMethodIndex = values[INDY_BSM_OFFSET]; + int nameAndTypeIndex = values[INDY_NT_OFFSET]; + int argumentCount = values[INDY_ARGC_OFFSET]; + assert(INDY_ARGV_OFFSET + argumentCount == values.length); if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " + bootstrapMethodIndex - + ", N&T = " + nameAndTypeIndex); + + ", N&T = " + nameAndTypeIndex + + ", argc = " + argumentCount); break; } + default: throw new InternalError("unknown tag: " + cpConstType); } // switch diff -r c7db7adb83b4 -r 2ca799d83d3c agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java Tue Nov 30 18:07:18 2010 -0800 +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java Tue Nov 30 18:10:20 2010 -0800 @@ -42,7 +42,8 @@ public static final int JVM_CONSTANT_NameAndType = 12; public static final int JVM_CONSTANT_MethodHandle = 15; public static final int JVM_CONSTANT_MethodType = 16; - public static final int JVM_CONSTANT_InvokeDynamic = 17; + public static final int JVM_CONSTANT_InvokeDynamicTrans = 17; // only occurs in old class files + public static final int JVM_CONSTANT_InvokeDynamic = 18; // JVM_CONSTANT_MethodHandle subtypes public static final int JVM_REF_getField = 1; diff -r c7db7adb83b4 -r 2ca799d83d3c agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java --- a/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java Tue Nov 30 18:07:18 2010 -0800 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java Tue Nov 30 18:10:20 2010 -0800 @@ -303,12 +303,12 @@ case JVM_CONSTANT_MethodHandle: { dos.writeByte(cpConstType); int value = cpool.getIntAt(ci); - short bootstrapMethodIndex = (short) extractLowShortFromInt(value); - short nameAndTypeIndex = (short) extractHighShortFromInt(value); - dos.writeShort(bootstrapMethodIndex); - dos.writeShort(nameAndTypeIndex); - if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " + - bootstrapMethodIndex + ", N&T = " + nameAndTypeIndex); + byte refKind = (byte) extractLowShortFromInt(value); + short memberIndex = (short) extractHighShortFromInt(value); + dos.writeByte(refKind); + dos.writeShort(memberIndex); + if (DEBUG) debugMessage("CP[" + ci + "] = MH kind = " + + refKind + ", mem = " + memberIndex); break; } @@ -323,10 +323,11 @@ case JVM_CONSTANT_InvokeDynamic: { dos.writeByte(cpConstType); - int value = cpool.getIntAt(ci); - short refIndex = (short) value; - dos.writeShort(refIndex); - if (DEBUG) debugMessage("CP[" + ci + "] = MT index = " + refIndex); + int[] values = cpool.getMultiOperandsAt(ci); + for (int vn = 0; vn < values.length; vn++) { + dos.writeShort(values[vn]); + } + if (DEBUG) debugMessage("CP[" + ci + "] = INDY indexes = " + Arrays.toString(values)); break; } diff -r c7db7adb83b4 -r 2ca799d83d3c agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java --- a/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java Tue Nov 30 18:07:18 2010 -0800 +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java Tue Nov 30 18:10:20 2010 -0800 @@ -460,6 +460,18 @@ return buf.toString(); } + private String genListOfShort(int[] values) { + Formatter buf = new Formatter(genHTML); + buf.append('['); + for (int i = 0; i < values.length; i++) { + if (i > 0) buf.append(' '); + buf.append('#'); + buf.append(Integer.toString(values[i])); + } + buf.append(']'); + return buf.toString(); + } + protected String genHTMLTableForConstantPool(ConstantPool cpool) { Formatter buf = new Formatter(genHTML); buf.beginTable(1); @@ -584,7 +596,7 @@ case JVM_CONSTANT_InvokeDynamic: buf.cell("JVM_CONSTANT_InvokeDynamic"); - buf.cell(genLowHighShort(cpool.getIntAt(index))); + buf.cell(genListOfShort(cpool.getMultiOperandsAt(index))); break; default: diff -r c7db7adb83b4 -r 2ca799d83d3c agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java --- a/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java Tue Nov 30 18:07:18 2010 -0800 +++ b/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,8 @@ private static int JVM_CONSTANT_NameAndType = 12; private static int JVM_CONSTANT_MethodHandle = 15; // JSR 292 private static int JVM_CONSTANT_MethodType = 16; // JSR 292 - private static int JVM_CONSTANT_InvokeDynamic = 17; // JSR 292 + // static int JVM_CONSTANT_InvokeDynamicTrans = 17; // JSR 292, only occurs in old class files + private static int JVM_CONSTANT_InvokeDynamic = 18; // JSR 292 private static int JVM_CONSTANT_Invalid = 0; // For bad value initialization private static int JVM_CONSTANT_UnresolvedClass = 100; // Temporary tag until actual use private static int JVM_CONSTANT_ClassIndex = 101; // Temporary tag while constructing constant pool diff -r c7db7adb83b4 -r 2ca799d83d3c make/hotspot_version --- a/make/hotspot_version Tue Nov 30 18:07:18 2010 -0800 +++ b/make/hotspot_version Tue Nov 30 18:10:20 2010 -0800 @@ -35,7 +35,7 @@ HS_MAJOR_VER=20 HS_MINOR_VER=0 -HS_BUILD_NUMBER=02 +HS_BUILD_NUMBER=03 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/Makefile --- a/make/linux/Makefile Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/Makefile Tue Nov 30 18:10:20 2010 -0800 @@ -62,7 +62,9 @@ include $(GAMMADIR)/make/$(OSNAME)/makefiles/rules.make ifndef CC_INTERP -FORCE_TIERED=1 + ifndef FORCE_TIERED + FORCE_TIERED=1 + endif endif ifdef LP64 @@ -254,7 +256,7 @@ $(BUILDTREE) VARIANT=tiered $(SUBDIRS_C2): $(BUILDTREE_MAKE) -ifdef FORCE_TIERED +ifeq ($(FORCE_TIERED),1) $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks $(BUILDTREE) VARIANT=tiered FORCE_TIERED=1 else diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/adlc.make --- a/make/linux/makefiles/adlc.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/adlc.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -42,16 +42,14 @@ SOURCES.AD = $(GAMMADIR)/src/cpu/$(ARCH)/vm/$(Platform_arch_model).ad \ $(GAMMADIR)/src/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad -Src_Dirs += $(GAMMADIR)/src/share/vm/adlc - EXEC = $(OUTDIR)/adlc # set VPATH so make knows where to look for source files -Src_Dirs_V = ${Src_Dirs} $(GENERATED)/incls -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc +VPATH += $(Src_Dirs_V:%=%:) # set INCLUDES for C preprocessor -Src_Dirs_I = ${Src_Dirs} $(GENERATED) +Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED) INCLUDES += $(Src_Dirs_I:%=-I%) # set flags for adlc compilation diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/amd64.make --- a/make/linux/makefiles/amd64.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/amd64.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -22,9 +22,6 @@ # # -# Not included in includeDB because it has no dependencies -Obj_Files += linux_x86_64.o - # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT) # The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/buildtree.make --- a/make/linux/makefiles/buildtree.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/buildtree.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -113,7 +113,7 @@ COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE)) SIMPLE_DIRS = \ - $(PLATFORM_DIR)/generated/incls \ + $(PLATFORM_DIR)/generated/dependencies \ $(PLATFORM_DIR)/generated/adfiles \ $(PLATFORM_DIR)/generated/jvmtifiles @@ -197,11 +197,27 @@ echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \ echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \ echo; \ - echo "Src_Dirs = \\"; \ + echo "# Used for platform dispatching"; \ + echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \ + echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \ + echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \ + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \ + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \ + echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \ + echo "CFLAGS += \$$(TARGET_DEFINES)"; \ + echo; \ + echo "Src_Dirs_V = \\"; \ sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \ echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \ echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \ echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \ + echo; \ + echo "Src_Dirs_I = \\"; \ + echo "\$$(GAMMADIR)/src/share/vm \\"; \ + echo "\$$(GAMMADIR)/src/share/vm/prims \\"; \ + echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \ + echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \ + echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \ [ -n "$(CFLAGS_BROWSE)" ] && \ echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/core.make --- a/make/linux/makefiles/core.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/core.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,8 +24,7 @@ # Sets make macros for making core version of VM -# Note the effect on includeDB lists in top.make: -# includeDB_compiler* and ad_.*pp are excluded from the build, +# Select which files to use (in top.make) TYPE=CORE # There is no "core" directory in JDK. Install core build in server directory. diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/gcc.make --- a/make/linux/makefiles/gcc.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/gcc.make Tue Nov 30 18:10:20 2010 -0800 @@ -44,7 +44,8 @@ ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0" USE_PRECOMPILED_HEADER=1 PRECOMPILED_HEADER_DIR=. -PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch +PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp +PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch endif @@ -144,6 +145,11 @@ OPT_CFLAGS/mulnode.o += -O0 endif +# Flags for generating make dependency flags. +ifneq ("${CC_VER_MAJOR}", "2") +DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d) +endif + #------------------------------------------------------------------------ # Linker flags diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/i486.make --- a/make/linux/makefiles/i486.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/i486.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,6 @@ # # TLS helper, assembled from .s file -# Not included in includeDB because it has no dependencies -Obj_Files += linux_x86_32.o # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT) diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/jvmti.make --- a/make/linux/makefiles/jvmti.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/jvmti.make Tue Nov 30 18:10:20 2010 -0800 @@ -37,11 +37,10 @@ JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter -Src_Dirs += $(JvmtiSrcDir) # set VPATH so make knows where to look for source files -Src_Dirs_V = ${Src_Dirs} -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(JvmtiSrcDir) +VPATH += $(Src_Dirs_V:%=%:) JvmtiGeneratedNames = \ jvmtiEnv.hpp \ diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/launcher.make --- a/make/linux/makefiles/launcher.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/launcher.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -56,7 +56,7 @@ LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK) launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c - $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) + $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) $(TARGET_DEFINES) launcher.c: @echo Generating $@ diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/makedeps.make --- a/make/linux/makefiles/makedeps.make Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -# -# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# -# - -include $(GAMMADIR)/make/linux/makefiles/rules.make - -COMPILE.JAVAC.FLAGS += -d $(OUTDIR) - -MakeDepsSources=\ - $(GAMMADIR)/src/share/tools/MakeDeps/Database.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/DirectoryTree.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/DirectoryTreeNode.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileFormatException.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileList.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileName.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/Macro.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MacroDefinitions.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MakeDeps.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MetroWerksMacPlatform.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/Platform.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/UnixPlatform.java - -MakeDepsOptions= diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/rules.make --- a/make/linux/makefiles/rules.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/rules.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -151,20 +151,20 @@ %.o: %.cpp @echo Compiling $< $(QUIETLY) $(REMOVE_TARGET) - $(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE) + $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) else %.o: %.cpp @echo Compiling $< $(QUIETLY) $(REMOVE_TARGET) $(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \ - $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \ - $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)) + $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \ + $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)) endif %.o: %.s @echo Assembling $< $(QUIETLY) $(REMOVE_TARGET) - $(QUIETLY) $(AS.S) -o $@ $< $(COMPILE_DONE) + $(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) %.s: %.cpp @echo Generating assembly for $< diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/saproc.make --- a/make/linux/makefiles/saproc.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/saproc.make Tue Nov 30 18:10:20 2010 -0800 @@ -55,10 +55,12 @@ # if $(AGENT_DIR) does not exist, we don't build SA # also, we don't build SA on Itanium, PPC, ARM or zero. -checkAndBuildSA: - $(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "arm" -a "$(SRCARCH)" != "ppc" -a "$(SRCARCH)" != "zero" ] ; then \ - $(MAKE) -f vm.make $(LIBSAPROC); \ - fi +ifneq ($(wildcard $(AGENT_DIR)),) +ifneq ($(filter-out ia64 arm ppc zero,$(SRCARCH)),) + BUILDLIBSAPROC = $(LIBSAPROC) +endif +endif + SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) @@ -81,10 +83,10 @@ -lthread_db $(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); } -install_saproc: checkAndBuildSA +install_saproc: $(BUILDLIBSAPROC) $(QUIETLY) if [ -e $(LIBSAPROC) ] ; then \ echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ fi -.PHONY: checkAndBuildSA install_saproc +.PHONY: install_saproc diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/sparc.make --- a/make/linux/makefiles/sparc.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/sparc.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,3 @@ # # -# Not included in includeDB because it has no dependencies -Obj_Files += linux_sparc.o - diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/sparcWorks.make --- a/make/linux/makefiles/sparcWorks.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/sparcWorks.make Tue Nov 30 18:10:20 2010 -0800 @@ -74,6 +74,11 @@ OPT_CFLAGS+=-xO4 OPT_CFLAGS/NOOPT=-xO0 +# Flags for creating the dependency files. +ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1) +DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d) +endif + #------------------------------------------------------------------------ # Linker flags diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/sparcv9.make --- a/make/linux/makefiles/sparcv9.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/sparcv9.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -21,10 +21,6 @@ # questions. # -# -# Not included in includeDB because it has no dependencies -Obj_Files += linux_sparc.o - # gcc 4.0 miscompiles this code in -m64 OPT_CFLAGS/macro.o = -O0 diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/top.make --- a/make/linux/makefiles/top.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/top.make Tue Nov 30 18:10:20 2010 -0800 @@ -31,7 +31,7 @@ # -generate sa-jdi.jar (JDI binding to core files) # It assumes the following flags are set: -# CFLAGS Platform_file, Src_Dirs, SYSDEFS, AOUT, Obj_Files +# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Obj_Files # -- D. Ungar (5/97) from a file by Bill Bush @@ -45,10 +45,6 @@ Plat_File = $(Platform_file) CDG = cd $(GENERATED); -# Pick up MakeDeps' sources and definitions -include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/makedeps.make -MakeDepsClass = MakeDeps.class - ifdef USE_PRECOMPILED_HEADER PrecompiledOption = -DUSE_PRECOMPILED_HEADER UpdatePCH = $(MAKE) -f vm.make $(PRECOMPILED_HEADER) $(MFLAGS) @@ -57,33 +53,7 @@ PrecompiledOption = endif -MakeDeps = $(RUN.JAVA) $(PrecompiledOption) -classpath $(GENERATED) MakeDeps - -Include_DBs/GC = $(VM)/includeDB_gc \ - $(VM)/includeDB_gc_parallel \ - $(VM)/gc_implementation/includeDB_gc_parallelScavenge \ - $(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \ - $(VM)/gc_implementation/includeDB_gc_parNew \ - $(VM)/gc_implementation/includeDB_gc_g1 \ - $(VM)/gc_implementation/includeDB_gc_serial \ - $(VM)/gc_implementation/includeDB_gc_shared - -Include_DBs/CORE = $(VM)/includeDB_core $(Include_DBs/GC) \ - $(VM)/includeDB_jvmti \ - $(VM)/includeDB_features -Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 -Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2 -Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 $(VM)/includeDB_compiler2 -Include_DBs/ZERO = $(Include_DBs/CORE) $(VM)/includeDB_zero -Include_DBs/SHARK = $(Include_DBs/ZERO) $(VM)/includeDB_shark -Include_DBs = $(Include_DBs/$(TYPE)) - Cached_plat = $(GENERATED)/platform.current -Cached_db = $(GENERATED)/includeDB.current - -Incremental_Lists = $(Cached_db) -# list generation also creates $(GENERATED)/$(Cached_plat) - AD_Dir = $(GENERATED)/adfiles ADLC = $(AD_Dir)/adlc @@ -102,7 +72,7 @@ MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"` -# default target: make makeDeps, update lists, make vm +# default target: update lists, make vm # done in stages to force sequential order with parallel make # @@ -110,39 +80,18 @@ @echo All done. # This is an explicit dependency for the sake of parallel makes. -vm_build_preliminaries: checks $(Incremental_Lists) $(AD_Files_If_Required) jvmti_stuff sa_stuff +vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff @# We need a null action here, so implicit rules don't get consulted. -# make makeDeps: (and zap the cached db files to force a nonincremental run) - -$(GENERATED)/$(MakeDepsClass): $(MakeDepsSources) - @$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources) - @echo Removing $(Incremental_Lists) to force regeneration. - @rm -f $(Incremental_Lists) - @$(CDG) echo >$(Cached_plat) - -# make incremental_lists, if cached files out of date, run makeDeps - -$(Incremental_Lists): $(Include_DBs) $(Plat_File) $(GENERATED)/$(MakeDepsClass) - $(CDG) cat $(Include_DBs) > $(GENERATED)/includeDB - $(CDG) if [ ! -r incls ] ; then \ - mkdir incls ; \ - fi - $(CDG) (echo $(CDG) echo $(MakeDeps) diffs UnixPlatform $(Cached_plat) $(Cached_db) $(Plat_File) $(GENERATED)/includeDB $(MakeDepsOptions)) > makeDeps.sh - $(CDG) $(REMOTE) sh $(GENERATED)/makeDeps.sh - $(CDG) cp includeDB $(Cached_db) +$(Cached_plat): $(Plat_File) $(CDG) cp $(Plat_File) $(Cached_plat) -# symbolic target for command lines -lists: $(Incremental_Lists) - @: lists are now up to date - # make AD files as necessary -ad_stuff: $(Incremental_Lists) $(adjust-mflags) +ad_stuff: $(Cached_plat) $(adjust-mflags) @$(MAKE) -f adlc.make $(MFLAGS-adjusted) # generate JVMTI files from the spec -jvmti_stuff: $(Incremental_Lists) $(adjust-mflags) +jvmti_stuff: $(Cached_plat) $(adjust-mflags) @$(MAKE) -f jvmti.make $(MFLAGS-adjusted) # generate SA jar files and native header @@ -169,7 +118,7 @@ install: the_vm @$(MAKE) -f vm.make install -# next rules support "make foo.[oi]" +# next rules support "make foo.[ois]" %.o %.i %.s: $(UpdatePCH) @@ -179,7 +128,6 @@ # this should force everything to be rebuilt clean: rm -f $(GENERATED)/*.class - $(MAKE) $(MFLAGS) $(GENERATED)/$(MakeDepsClass) $(MAKE) -f vm.make $(MFLAGS) clean # just in case it doesn't, this should do it diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/vm.make --- a/make/linux/makefiles/vm.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/vm.make Tue Nov 30 18:10:20 2010 -0800 @@ -35,9 +35,10 @@ # Defs GENERATED = ../generated +DEP_DIR = $(GENERATED)/dependencies -# read a generated file defining the set of .o's and the .o .h dependencies -include $(GENERATED)/Dependencies +# reads the generated files defining the set of .o's and the .o .h dependencies +-include $(DEP_DIR)/*.d # read machine-specific adjustments (%%% should do this via buildtree.make?) ifeq ($(ZERO_BUILD), true) @@ -47,16 +48,16 @@ endif # set VPATH so make knows where to look for source files -# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm -# The incls directory contains generated header file lists for inclusion. +# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm # The adfiles directory contains ad_.[ch]pp. # The jvmtifiles directory contains jvmti*.[ch]pp -Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles +VPATH += $(Src_Dirs_V:%=%:) -# set INCLUDES for C preprocessor -Src_Dirs_I = $(PRECOMPILED_HEADER_DIR) $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED) -INCLUDES += $(Src_Dirs_I:%=-I%) +# set INCLUDES for C preprocessor. +Src_Dirs_I += $(GENERATED) +# The order is important for the precompiled headers to work. +INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%) ifeq (${VERSION}, debug) SYMFLAG = -g @@ -118,6 +119,62 @@ LIBJVM = lib$(JVM).so LIBJVM_G = lib$(JVM)$(G_SUFFIX).so +CORE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)) +CORE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm +CORE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm +CORE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm +CORE_PATHS += $(GENERATED)/jvmtifiles + +COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1 + +COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto +COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt +COMPILER2_PATHS += $(GENERATED)/adfiles + +# Include dirs per type. +Src_Dirs/CORE := $(CORE_PATHS) +Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS) +Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS) +Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS) +Src_Dirs/ZERO := $(CORE_PATHS) +Src_Dirs/SHARK := $(CORE_PATHS) +Src_Dirs := $(Src_Dirs/$(TYPE)) + +COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\* +COMPILER1_SPECIFIC_FILES := c1_\* +SHARK_SPECIFIC_FILES := shark +ZERO_SPECIFIC_FILES := zero + +# Always exclude these. +Src_Files_EXCLUDE := jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp + +# Exclude per type. +Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) +Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) +Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) + +Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE)) + +# Special handling of arch model. +ifeq ($(Platform_arch_model), x86_32) +Src_Files_EXCLUDE += \*x86_64\* +endif +ifeq ($(Platform_arch_model), x86_64) +Src_Files_EXCLUDE += \*x86_32\* +endif + +# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE. +define findsrc + $(notdir $(shell find $(1) \( -name \*.c -o -name \*.cpp -o -name \*.s \) -a \! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \) )) +endef + +Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e))) + +Obj_Files = $(addsuffix .o,$(basename $(Src_Files))) + JVM_OBJ_FILES = $(Obj_Files) vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) @@ -180,10 +237,10 @@ LINK_VM = $(LINK_LIB.c) # rule for building precompiled header -$(PRECOMPILED_HEADER): $(Precompiled_Files) +$(PRECOMPILED_HEADER): $(QUIETLY) echo Generating precompiled header $@ - $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)/incls - $(QUIETLY) $(COMPILE.CC) -x c++-header -c $(GENERATED)/incls/_precompiled.incl -o $@ $(COMPILE_DONE) + $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR) + $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE) # making the library: @@ -252,7 +309,7 @@ #---------------------------------------------------------------------- -build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) checkAndBuildSA +build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) install: install_jvm install_jsig install_saproc diff -r c7db7adb83b4 -r 2ca799d83d3c make/linux/makefiles/zero.make --- a/make/linux/makefiles/zero.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/linux/makefiles/zero.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # Copyright 2009 Red Hat, Inc. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # @@ -25,7 +25,7 @@ # Setup for Zero (non-Shark) version of VM -# Select which includeDB files to use (in top.make) +# Select which files to use (in top.make) TYPE = ZERO # Install libjvm.so, etc in in server directory. diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/Makefile --- a/make/solaris/Makefile Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/Makefile Tue Nov 30 18:10:20 2010 -0800 @@ -53,7 +53,9 @@ include $(GAMMADIR)/make/$(OSNAME)/makefiles/rules.make ifndef CC_INTERP -FORCE_TIERED=1 + ifndef FORCE_TIERED + FORCE_TIERED=1 + endif endif ifdef LP64 @@ -210,7 +212,7 @@ $(BUILDTREE) VARIANT=tiered $(SUBDIRS_C2): $(BUILDTREE_MAKE) -ifdef FORCE_TIERED +ifeq ($(FORCE_TIERED),1) $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks $(BUILDTREE) VARIANT=tiered FORCE_TIERED=1 else diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/adlc.make --- a/make/solaris/makefiles/adlc.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/adlc.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -42,16 +42,14 @@ SOURCES.AD = $(GAMMADIR)/src/cpu/$(ARCH)/vm/$(Platform_arch_model).ad \ $(GAMMADIR)/src/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad -Src_Dirs += $(GAMMADIR)/src/share/vm/adlc - EXEC = $(OUTDIR)/adlc # set VPATH so make knows where to look for source files -Src_Dirs_V = ${Src_Dirs} $(GENERATED)/incls -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc +VPATH += $(Src_Dirs_V:%=%:) # set INCLUDES for C preprocessor -Src_Dirs_I = ${Src_Dirs} $(GENERATED) +Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED) INCLUDES += $(Src_Dirs_I:%=-I%) # set flags for adlc compilation diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/amd64.make --- a/make/solaris/makefiles/amd64.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/amd64.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -25,9 +25,6 @@ # Must also specify if CPU is little endian CFLAGS += -DVM_LITTLE_ENDIAN -# Not included in includeDB because it has no dependencies -Obj_Files += solaris_x86_64.o - # # Special case flags for compilers and compiler versions on amd64. # diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/buildtree.make --- a/make/solaris/makefiles/buildtree.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/buildtree.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -106,7 +106,7 @@ COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE)) SIMPLE_DIRS = \ - $(PLATFORM_DIR)/generated/incls \ + $(PLATFORM_DIR)/generated/dependencies \ $(PLATFORM_DIR)/generated/adfiles \ $(PLATFORM_DIR)/generated/jvmtifiles @@ -191,11 +191,27 @@ echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \ echo "$(LP64_SETTING/$(DATA_MODE))"; \ echo; \ - echo "Src_Dirs = \\"; \ + echo "# Used for platform dispatching"; \ + echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \ + echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \ + echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \ + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \ + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \ + echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \ + echo "CFLAGS += \$$(TARGET_DEFINES)"; \ + echo; \ + echo "Src_Dirs_V = \\"; \ sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \ echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \ echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \ echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \ + echo; \ + echo "Src_Dirs_I = \\"; \ + echo "\$$(GAMMADIR)/src/share/vm \\"; \ + echo "\$$(GAMMADIR)/src/share/vm/prims \\"; \ + echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \ + echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \ + echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \ [ -n "$(CFLAGS_BROWSE)" ] && \ echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/core.make --- a/make/solaris/makefiles/core.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/core.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,8 +24,7 @@ # Sets make macros for making core version of VM -# Note the effect on includeDB lists in top.make: -# includeDB_compiler* and ad_.*pp are excluded from the build, +# Select which files to use (in top.make) TYPE=CORE # There is no "core" directory in JDK. Install core build in server directory. diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/dtrace.make --- a/make/solaris/makefiles/dtrace.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/dtrace.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -63,8 +63,6 @@ # making libjvm_db -INCLS = $(GENERATED)/incls - # Use mapfile with libjvm_db.so LIBJVM_DB_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jvm_db LFLAGS_JVM_DB += $(MAPFLAG:FILENAME=$(LIBJVM_DB_MAPFILE)) @@ -114,7 +112,7 @@ endif lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \ - $(INCLS)/_vmStructs.cpp.incl $(LIBJVM.o) + $(LIBJVM.o) $(QUIETLY) $(CCC) $(CPPFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \ $(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc @@ -161,6 +159,27 @@ $(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d $(QUIETLY) cat $^ > $@ +DTraced_Files = ciEnv.o \ + classLoadingService.o \ + compileBroker.o \ + hashtable.o \ + instanceKlass.o \ + java.o \ + jni.o \ + jvm.o \ + memoryManager.o \ + nmethod.o \ + objectMonitor.o \ + runtimeService.o \ + sharedRuntime.o \ + synchronizer.o \ + thread.o \ + unsafe.o \ + vmThread.o \ + vmCMSOperations.o \ + vmPSOperations.o \ + vmGCOperations.o \ + # Dtrace is available, so we build $(DTRACE.o) $(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files) @echo Compiling $(DTRACE).d diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/gcc.make --- a/make/solaris/makefiles/gcc.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/gcc.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -49,7 +49,8 @@ ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0" USE_PRECOMPILED_HEADER=1 PRECOMPILED_HEADER_DIR=. -PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch +PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp +PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch endif @@ -131,6 +132,12 @@ endif OPT_CFLAGS/NOOPT=-O0 + +# Flags for generating make dependency flags. +ifneq ("${CC_VER_MAJOR}", "2") +DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d) +endif + #------------------------------------------------------------------------ # Linker flags diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/i486.make --- a/make/solaris/makefiles/i486.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/i486.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -26,8 +26,6 @@ CFLAGS += -DVM_LITTLE_ENDIAN # TLS helper, assembled from .s file -# Not included in includeDB because it has no dependencies -Obj_Files += solaris_x86_32.o # # Special case flags for compilers and compiler versions on i486. diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/jvmti.make --- a/make/solaris/makefiles/jvmti.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/jvmti.make Tue Nov 30 18:10:20 2010 -0800 @@ -36,11 +36,10 @@ JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter -Src_Dirs += $(JvmtiSrcDir) # set VPATH so make knows where to look for source files -Src_Dirs_V = ${Src_Dirs} -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(JvmtiSrcDir) +VPATH += $(Src_Dirs_V:%=%:) JvmtiGeneratedNames = \ jvmtiEnv.hpp \ diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/launcher.make --- a/make/solaris/makefiles/launcher.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/launcher.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -69,7 +69,7 @@ endif # Platform_compiler == sparcWorks launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c - $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) + $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) ${TARGET_DEFINES} launcher.c: @echo Generating $@ diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/makedeps.make --- a/make/solaris/makefiles/makedeps.make Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -# -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# -# - -include $(GAMMADIR)/make/solaris/makefiles/rules.make - -COMPILE.JAVAC.FLAGS += -d $(OUTDIR) - -MakeDepsSources=\ - $(GAMMADIR)/src/share/tools/MakeDeps/Database.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/DirectoryTree.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/DirectoryTreeNode.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileFormatException.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileList.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileName.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/Macro.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MacroDefinitions.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MakeDeps.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MetroWerksMacPlatform.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/Platform.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/UnixPlatform.java - -MakeDepsOptions= diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/rules.make --- a/make/solaris/makefiles/rules.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/rules.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -151,14 +151,14 @@ %.o: %.cpp @echo Compiling $< $(QUIETLY) $(REMOVE_TARGET) - $(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE) + $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) else %.o: %.cpp @echo Compiling $< $(QUIETLY) $(REMOVE_TARGET) $(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \ - $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \ - $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)) + $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \ + $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)) endif %.o: %.s diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/saproc.make --- a/make/solaris/makefiles/saproc.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/saproc.make Tue Nov 30 18:10:20 2010 -0800 @@ -44,10 +44,9 @@ # if $(AGENT_DIR) does not exist, we don't build SA -checkAndBuildSA: - $(QUIETLY) if [ -d $(AGENT_DIR) ] ; then \ - $(MAKE) -f vm.make $(LIBSAPROC); \ - fi +ifneq ($(wildcard $(AGENT_DIR)),) + BUILDLIBSAPROC = $(LIBSAPROC) +endif SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) @@ -75,10 +74,10 @@ -ldl -ldemangle -lthread -lc [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); } -install_saproc: checkAndBuildSA +install_saproc: $(BULDLIBSAPROC) $(QUIETLY) if [ -f $(LIBSAPROC) ] ; then \ echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ fi -.PHONY: checkAndBuildSA install_saproc +.PHONY: install_saproc diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/sparcWorks.make --- a/make/solaris/makefiles/sparcWorks.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/sparcWorks.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -145,7 +145,12 @@ OPT_CFLAGS/O2=-xO2 OPT_CFLAGS/NOOPT=-xO1 -################################################# +# Flags for creating the dependency files. +ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1) +DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d) +endif + +################################################ # Begin current (>=5.9) Forte compiler options # ################################################# diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/sparcv9.make --- a/make/solaris/makefiles/sparcv9.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/sparcv9.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,6 @@ # # -Obj_Files += solaris_sparc.o ASFLAGS += $(AS_ARCHFLAG) ifeq ("${Platform_compiler}", "sparcWorks") diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/top.make --- a/make/solaris/makefiles/top.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/top.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -31,7 +31,7 @@ # -generate sa-jdi.jar (JDI binding to core files) # It assumes the following flags are set: -# CFLAGS Platform_file, Src_Dirs, SYSDEFS, AOUT, Jvm_Obj_Files +# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Jvm_Obj_Files # -- D. Ungar (5/97) from a file by Bill Bush @@ -44,42 +44,7 @@ Plat_File = $(Platform_file) CDG = cd $(GENERATED); -# Pick up MakeDeps' sources and definitions -include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/makedeps.make -MakeDepsClass = MakeDeps.class -MakeDeps = $(RUN.JAVA) -classpath . MakeDeps - -Include_DBs/GC = $(VM)/includeDB_gc \ - $(VM)/includeDB_gc_parallel \ - $(VM)/gc_implementation/includeDB_gc_parallelScavenge \ - $(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \ - $(VM)/gc_implementation/includeDB_gc_parNew \ - $(VM)/gc_implementation/includeDB_gc_g1 \ - $(VM)/gc_implementation/includeDB_gc_serial \ - $(VM)/gc_implementation/includeDB_gc_shared - - -Include_DBs/KERNEL = $(VM)/includeDB_core $(VM)/includeDB_gc \ - $(VM)/gc_implementation/includeDB_gc_serial \ - $(VM)/includeDB_jvmti \ - $(VM)/includeDB_compiler1 - -Include_DBs/CORE = $(VM)/includeDB_core $(Include_DBs/GC) \ - $(VM)/includeDB_jvmti \ - $(VM)/includeDB_features -Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 -Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2 -Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 \ - $(VM)/includeDB_compiler2 - -Include_DBs = $(Include_DBs/$(TYPE)) - -Cached_plat = platform.current -Cached_db = includeDB.current - -Incremental_Lists =$(GENERATED)/$(Cached_db) -# list generation also creates $(GENERATED)/$(Cached_plat) - +Cached_plat = $(GENERATED)/platform.current AD_Dir = $(GENERATED)/adfiles ADLC = $(AD_Dir)/adlc @@ -98,7 +63,7 @@ MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"` -# default target: make makeDeps, update lists, make vm +# default target: update lists, make vm # done in stages to force sequential order with parallel make # @@ -106,38 +71,18 @@ @echo All done. # This is an explicit dependency for the sake of parallel makes. -vm_build_preliminaries: checks $(Incremental_Lists) $(AD_Files_If_Required) jvmti_stuff sa_stuff +vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff @# We need a null action here, so implicit rules don't get consulted. -# make makeDeps: (and zap the cached db files to force a nonincremental run) - -$(GENERATED)/$(MakeDepsClass): $(MakeDepsSources) - @$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources) - @echo Removing $(Incremental_Lists) to force regeneration. - @rm -f $(Incremental_Lists) - @$(CDG) echo >$(Cached_plat) - -# make incremental_lists, if cached files out of date, run makeDeps - -$(Incremental_Lists): $(Include_DBs) $(Plat_File) $(GENERATED)/$(MakeDepsClass) - $(CDG) cat $(Include_DBs) > includeDB - $(CDG) if [ ! -r incls ] ; then \ - mkdir incls ; \ - fi - $(CDG) $(MakeDeps) diffs UnixPlatform $(Cached_plat) $(Cached_db) $(Plat_File) includeDB $(MakeDepsOptions) - $(CDG) cp includeDB $(Cached_db) - $(CDG) cp $(Plat_File) $(Cached_plat) - -# symbolic target for command lines -lists: $(Incremental_Lists) - @: lists are now up to date +$(Cached_plat): $(Plat_File) + $(CDG) cp $(Plat_File) $(Cached_plat) # make AD files as necessary -ad_stuff: $(Incremental_Lists) $(adjust-mflags) +ad_stuff: $(Cached_plat) $(adjust-mflags) @$(MAKE) -f adlc.make $(MFLAGS-adjusted) # generate JVMTI files from the spec -jvmti_stuff: $(Incremental_Lists) $(adjust-mflags) +jvmti_stuff: $(Cached_plat) $(adjust-mflags) @$(MAKE) -f jvmti.make $(MFLAGS-adjusted) # generate SA jar files and native header @@ -172,7 +117,6 @@ # this should force everything to be rebuilt clean: rm -f $(GENERATED)/*.class - $(MAKE) $(MFLAGS) $(GENERATED)/$(MakeDepsClass) $(MAKE) -f vm.make $(MFLAGS) clean # just in case it doesn't, this should do it diff -r c7db7adb83b4 -r 2ca799d83d3c make/solaris/makefiles/vm.make --- a/make/solaris/makefiles/vm.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/solaris/makefiles/vm.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -35,23 +35,23 @@ # Defs GENERATED = ../generated +DEP_DIR = $(GENERATED)/dependencies -# read a generated file defining the set of .o's and the .o .h dependencies -include $(GENERATED)/Dependencies +# reads the generated files defining the set of .o's and the .o .h dependencies +-include $(DEP_DIR)/*.d # read machine-specific adjustments (%%% should do this via buildtree.make?) include $(MAKEFILES_DIR)/$(BUILDARCH).make # set VPATH so make knows where to look for source files -# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm -# The incls directory contains generated header file lists for inclusion. +# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm # The adfiles directory contains ad_.[ch]pp. # The jvmtifiles directory contains jvmti*.[ch]pp -Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles +VPATH += $(Src_Dirs_V:%=%:) # set INCLUDES for C preprocessor -Src_Dirs_I = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED) +Src_Dirs_I += $(GENERATED) INCLUDES += $(Src_Dirs_I:%=-I%) ifeq (${VERSION}, debug) @@ -135,6 +135,62 @@ LIBJVM = lib$(JVM).so LIBJVM_G = lib$(JVM)$(G_SUFFIX).so +CORE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)) +CORE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm +CORE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm +CORE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm +CORE_PATHS += $(GENERATED)/jvmtifiles + +COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1 + +COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto +COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt +COMPILER2_PATHS += $(GENERATED)/adfiles + +# Include dirs per type. +Src_Dirs/CORE := $(CORE_PATHS) +Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS) +Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS) +Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS) +Src_Dirs/ZERO := $(CORE_PATHS) +Src_Dirs/SHARK := $(CORE_PATHS) +Src_Dirs := $(Src_Dirs/$(TYPE)) + +COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\* +COMPILER1_SPECIFIC_FILES := c1_\* +SHARK_SPECIFIC_FILES := shark +ZERO_SPECIFIC_FILES := zero + +# Always exclude these. +Src_Files_EXCLUDE := dtrace jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp + +# Exclude per type. +Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) +Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) +Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) + +Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE)) + +# Special handling of arch model. +ifeq ($(Platform_arch_model), x86_32) +Src_Files_EXCLUDE += \*x86_64\* +endif +ifeq ($(Platform_arch_model), x86_64) +Src_Files_EXCLUDE += \*x86_32\* +endif + +# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE. +define findsrc + $(notdir $(shell find $(1) \( -name \*.c -o -name \*.cpp -o -name \*.s \) -a \! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \) )) +endef + +Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e))) + +Obj_Files = $(addsuffix .o,$(basename $(Src_Files))) + JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS) vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) @@ -205,7 +261,7 @@ #---------------------------------------------------------------------- -build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) checkAndBuildSA dtraceCheck +build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) $(BUILDLIBSAPROC) dtraceCheck install: install_jvm install_jsig install_saproc diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/README --- a/make/windows/README Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -Copyright (c) 2007 Oracle and/or its affiliates. All rights reserved. -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - -This code is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License version 2 only, as -published by the Free Software Foundation. - -This code is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -version 2 for more details (a copy is included in the LICENSE file that -accompanied this code). - -You should have received a copy of the GNU General Public License version -2 along with this work; if not, write to the Free Software Foundation, -Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - -Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -or visit www.oracle.com if you need additional information or have any -questions. - -________________________________________________________________________________ - -__Introduction__________________________________________________________________ - -This readme file should provide all the information needed to build -the HotSpot VM for Windows 95/Windows NT from its teamware workspace. -It is intended as a starting point for people who want to learn how -to work with the current HotSpot source workspace and who need to -build the VM locally. It is not intended as a tutorial for licensees. - -Last update: 03/28/05 - - -__Platform______________________________________________________________________ - -The VM builds under the following platforms: -- Windows NT 4.0 on Intel x486 or greater -- x486 PC (or greater), 32MByte or more - - -__Tools_________________________________________________________________________ - -For building/testing the following tools need to be available: -- Microsoft Visual C++ 6.0 (with nmake version 1.62.7022 or greater) -- MKS Toolkit 6.1 or greater - see: /net/reinstall/export/vol0/pc-archive/software/mks6.1 (NFS) - or: \\reinstall\pc-archive\software\mks6.1 (NT) - - -__JDK___________________________________________________________________________ - -The workspace works with the following version of the JDK: -(NOTE: these are out of date) -- JDK1.2FCS "V" build - see: /usr/local/java/jdk1.2/win32 - -and the following version(s) of HotJava: -- hjb1.1.4 -- hjb1.1.5 - see /usr/local/java/hjb1.1.x/win32 - - -__Environment variables_________________________________________________________ - -The following environment variables need to be set up for the IDE -build process. For batch builds these do not need to be set. - -HotSpotMksHome points to the (NFS or PC-local) directory where the MKS - executables (like sh.exe and grep.exe) are installed - -Optionally you may set the following variables in your environment and they -will be picked up by the create.bat script used to generate the vm.vcproj files. -See the section on building within MS Developer Studio for more details. - -HotSpotWorkSpace points to the (NFS) directory where the workspace is located -HotSpotBuildSpace points to the (PC-local) directory where the vm is built -HotSpotReleaseBinDest points to the (NFS or PC-local) directory where the product DLL is - written -HotSpotDebugBinDest points to the (NFS or PC-local) directory where the debug DLL is - written - -NOTE: For both batch and IDE builds, java and javac must be in your -PATH, and the versions found by default must work. (If this turns out -to be a problem, we can define HotSpotJava and HotSpotJavaC for -bootstrapping...) - -__Building the JVM from the command line________________________________________ - -1) choose a directory in which you want to build the vm - (the build process will create a subdirectory) - -2) To build the 'core' version (debug || optimized) - %HotSpotWorkSpace%\build\windows\build core %HotSpotWorkSpace% - To build the 'compiler2' version (debug || optimized) - %HotSpotWorkSpace%\build\windows\build compiler2 %HotSpotWorkSpace% - - where is a full path to a JDK in which bin/java and - bin/javac are present and working. - -3) If you have problems with building, first try: - vcvars32 (sets path for VC++) - -4) In addition to jvm.dll, the Serviceability Agent (SA) based JDI connector - and command line tools are built if dbgeng.h and dbgeng.lib - can be located, and BUILD_WIN_SA=1 is specified. We look for dbgeng.h here: - $(MSVCDIR)\PlatformSDK\Include - $(SYSTEMROOT)\..\Program Files\Microsoft SDK\include - - The first directory is part of Visual Studio VC .NET 2003. - The second is used on Windows-amd64. - - -__Building the JVM from within MS Developer Studio______________________________ - -0) Set environment variables as described above - -1) Run the following script: - %HotSpotWorkSpace%\build\windows\create { } - where type is one of core, compiler1, compiler2. If you leave off the - " " part, the script expects to find their - values in the HotSpotWorkSpace, HotSpotBuildSpace, HotSpotReleaseBinDest, and HotSpotDebugBinDest environment - variables. The resulting vm.vcproj does not depend on these values in the environment. - - This will populate the build space with the appropriate makefiles - and run nmake in it. This builds and runs makedeps, which now - generates the appropriate vm.vcproj into the build space. It also - builds and runs adlc. - - To regenerate the .incl and .dsp files after changing the include - databases, just run nmake in the build space. - - The build process now relies on java and javac. For the IDE builds, - the full path to a JDK (in which bin/java and bin/javac are present - and working) can be specified either explicitly with the - ALT_BOOTDIR environment variable (like the JDK build process), via - the JDK build's default BOOTDIR environment variable, via JAVA_HOME, - or implicitly via the PATH. - - (Note that there are now many more command line options to MakeDeps - on the Windows platform than before. These have been bundled into - makefiles/makedeps.make, but it is still necessary to keep this in - sync with the batch makefiles, in vm/generated.) - - If you have problems with building (i.e,. finding nmake), first try: - vcvars32 (sets path for VC++) - -2) Double-click the vm.vcproj file in the %HotSpotBuildSpace% directory - to open MS Developer Studio. - -3) build desired or all versions: - menu Build -> Batch Build... -> Build (or Rebuild All) - -4) jvm.dll is in the %HotSpotReleaseBinDest% or %HotSpotDebugBinDest% directory - depending on which configuration you built (release or debug). - -Note: do not edit any of the files (especially the vm.vcproj file) in the -build space, since they are all either autogenerated or copied from -the work space. If necessary, modify the original Makefiles in -%HotSpotWorkSpace%\build\windows\projectfiles, or the shared -makedeps arguments in -%HotSpotWorkSpace%\build\windows\makefiles\makedeps.make. - -Note that it appears that some options set in the IDE (for example, -the default executable) show up not in the .dsp file, but in the .opt -file, so the automatic regeneration of the .dsp file should not -destroy the project settings. However, makedeps.make should be edited -to supply per-file compiler options. - -To build adlc from within the IDE for debugging purposes: - -1) in MS Developer Studio, open ADLCompiler.dsw: - menu File -> Open Workspace... - select & double-click ADLCompiler.dsw - -2) rebuild all (debug mode is enough) - menu Build -> Rebuild All (make sure Win32 Debug version is selected) - - -__Testing the VM________________________________________________________________ - -To test the VM using the Tonga Testsuite, use testlook. testlook is a very -simple testing framework on top of Tonga which allows us to use one (Tonga) -test file, that can be extended with attributes. - -1) copy %HotSpotWorkSpace%\test\testlook.bat onto PC (preferably - %HotSpotBuildSpace%\bin, which should ideally be in the path) - -2) run testlook or testlook help for details - -3) to run testlook you need to have Tonga mounted: - net use T: \\tapas\export1\psqe - - -__HotJava under HotSpot_________________________________________________________ - -To run HotJava, use the .bat file %HotSpotWorkSpace%\test\h.bat. Copy -it into %HotSpotBuildSpace%/ (which ideally is in the path) and run -HotJava: h java (e.g., h java_g -Xint). - - -__Preferred directory setup under Windows NT____________________________________ - -Within the HotSpot group we are using the following directory setup: - -D:\jdk1.2 - where we install the JDK - -The following drives are mounted for testing/putbacks/etc.: - -net use T: \\tapas\export1\psqe -net use Y: \\rschmidt\GammaBase -net use Z: \\animorphic\animorphic diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/build.make --- a/make/windows/build.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/build.make Tue Nov 30 18:10:20 2010 -0800 @@ -74,9 +74,11 @@ !if "$(BUILDARCH)" != "ia64" !ifndef CC_INTERP +!ifndef FORCE_TIERED FORCE_TIERED=1 !endif !endif +!endif !if "$(BUILDARCH)" == "amd64" Platform_arch=x86 @@ -100,7 +102,7 @@ !if "$(Variant)" == "compiler1" VARIANT_TEXT=Client !elseif "$(Variant)" == "compiler2" -!ifdef FORCE_TIERED +!if "$(FORCE_TIERED)" == "1" VARIANT_TEXT=Server realVariant=tiered !else diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/create.bat --- a/make/windows/create.bat Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/create.bat Tue Nov 30 18:10:20 2010 -0800 @@ -1,6 +1,6 @@ @echo off REM -REM Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. +REM Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. REM REM This code is free software; you can redistribute it and/or modify it @@ -26,11 +26,8 @@ REM This is the interactive build setup script (as opposed to the batch REM build execution script). It creates $HotSpotBuildSpace if necessary, REM copies the appropriate files out of $HotSpotWorkSpace into it, and -REM builds and runs MakeDeps in it. This has the side-effect of creating +REM builds and runs ProjectCreator in it. This has the side-effect of creating REM the vm.vcproj file in the buildspace, which is then used in Visual C++. -REM -REM The generated project file depends upon the include databases. If -REM those are changed then MakeDeps is rerun. REM REM Since we don't have uname and we could be cross-compiling, @@ -158,13 +155,31 @@ echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make -REM build config specific stuff - pushd %HotSpotBuildSpace%\%%i nmake /nologo popd + ) +pushd %HotSpotBuildSpace% + +echo # Generated file! > local.make +echo # Changing a variable below and then deleting %ProjectFile% will cause >> local.make +echo # %ProjectFile% to be regenerated with the new values. Changing the >> local.make +echo # version requires rerunning create.bat. >> local.make +echo. >> local.make +echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> local.make +echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> local.make +echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> local.make +echo ARCH=%ARCH% >> local.make +echo BUILDARCH=%BUILDARCH% >> local.make +echo Platform_arch=%Platform_arch% >> local.make +echo Platform_arch_model=%Platform_arch_model% >> local.make + +nmake /nologo /F %HotSpotWorkSpace%/make/windows/projectfiles/common/Makefile %HotSpotBuildSpace%/%ProjectFile% + +popd + goto end :usage @@ -173,14 +188,11 @@ echo This is the interactive build setup script (as opposed to the batch echo build execution script). It creates HotSpotBuildSpace if necessary, echo copies the appropriate files out of HotSpotWorkSpace into it, and -echo builds and runs MakeDeps in it. This has the side-effect of creating +echo builds and runs ProjectCreator in it. This has the side-effect of creating echo the %ProjectFile% file in the build space, which is then used in Visual C++. echo The HotSpotJDKDist defines place where JVM binaries should be placed. echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection. echo. -echo The generated project file depends upon the include databases. If -echo those are changed then MakeDeps is rerun. -echo. echo NOTE that it is now NOT safe to modify any of the files in the build echo space, since they may be overwritten whenever this script is run or echo nmake is run in that directory. diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/create_obj_files.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/windows/create_obj_files.sh Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,124 @@ +# +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# +# + +set -e + +# Note that we currently do not have a way to set HotSpotMksHome in +# the batch build, but so far this has not seemed to be a problem. The +# reason this environment variable is necessary is that it seems that +# Windows truncates very long PATHs when executing shells like MKS's +# sh, and it has been found that sometimes `which sh` fails. + +if [ "x$HotSpotMksHome" != "x" ]; then + TOOL_DIR="$HotSpotMksHome" +else + # HotSpotMksHome is not set so use the directory that contains "sh". + # This works with both MKS and Cygwin. + SH=`which sh` + TOOL_DIR=`dirname "$SH"` +fi + +DIRNAME="$TOOL_DIR/dirname" +FIND="$TOOL_DIR/find" + +TYPE=$1 +Platform_arch=$2 +Platform_arch_model=$3 +Platform_os_family=windows +Platform_os_arch=windows_$Platform_arch + +WorkSpace=$4 +GENERATED=$5 + +BASE_PATHS="` $FIND ${WorkSpace}/src/share/vm ! -name vm -prune -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)`" +BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/share/vm/gc_implementation/shared" +BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os/${Platform_os_family}/vm" +BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/cpu/${Platform_arch}/vm" +BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os_cpu/${Platform_os_arch}/vm" +BASE_PATHS="${BASE_PATHS} ${GENERATED}/jvmtifiles" + +CORE_PATHS="${BASE_PATHS}" +# shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS. +CORE_PATHS="${CORE_PATHS} `$FIND ${WorkSpace}/src/share/vm/gc_implementation ! -name gc_implementation -prune -type d \! -name shared`" + +COMPILER1_PATHS="${WorkSpace}/src/share/vm/c1" + +COMPILER2_PATHS="${WorkSpace}/src/share/vm/opto" +COMPILER2_PATHS="${COMPILER2_PATHS} ${WorkSpace}/src/share/vm/libadt" +COMPILER2_PATHS="${COMPILER2_PATHS} ${GENERATED}/adfiles" + +# Include dirs per type. +case "${TYPE}" in + "core") Src_Dirs="${CORE_PATHS}" ;; + "kernel") Src_Dirs="${BASE_PATHS} ${COMPILER1_PATHS}" ;; + "compiler1") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS}" ;; + "compiler2") Src_Dirs="${CORE_PATHS} ${COMPILER2_PATHS}" ;; + "tiered") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS} ${COMPILER2_PATHS}" ;; + "zero") Src_Dirs="${CORE_PATHS}" ;; + "shark") Src_Dirs="${CORE_PATHS}" ;; +esac + +COMPILER2_SPECIFIC_FILES="opto libadt bcEscapeAnalyzer.cpp chaitin* c2_* runtime_*" +COMPILER1_SPECIFIC_FILES="c1_*" +SHARK_SPECIFIC_FILES="shark" +ZERO_SPECIFIC_FILES="zero" + +# These files need to be excluded when building the kernel target. +KERNEL_EXCLUDED_FILES="attachListener.cpp attachListener_windows.cpp dump.cpp dump_${Platform_arch_model}.cpp forte.cpp fprofiler.cpp heapDumper.cpp heapInspection.cpp jniCheck.cpp jvmtiCodeBlobEvents.cpp jvmtiExtensions.cpp jvmtiImpl.cpp jvmtiRawMonitor.cpp jvmtiTagMap.cpp jvmtiTrace.cpp restore.cpp serialize.cpp vmStructs.cpp g1MemoryPool.cpp psMemoryPool.cpp gcAdaptivePolicyCounters.cpp concurrentGCThread.cpp mutableNUMASpace.cpp allocationStats.cpp gSpaceCounters.cpp immutableSpace.cpp mutableSpace.cpp spaceCounters.cpp yieldingWorkgroup.cpp" + +# Always exclude these. +Src_Files_EXCLUDE="jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp" + +# Exclude per type. +case "${TYPE}" in + "core") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; + "kernel") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ${KERNEL_EXCLUDED_FILES} ciTypeFlow.cpp" ;; + "compiler1") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; + "compiler2") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;; + "tiered") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;; + "zero") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; + "shark") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES}" ;; +esac + +# Special handling of arch model. +case "${Platform_arch_model}" in + "x86_32") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_64*" ;; + "x86_64") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_32*" ;; +esac + +function findsrc { + $FIND ${1} \( -name \*.c -o -name \*.cpp -o -name \*.s \) -a \! \( -name ${Src_Files_EXCLUDE// / -o -name } \) | sed 's/.*\/\(.*\)/\1/'; +} + +Src_Files= +for e in ${Src_Dirs}; do + Src_Files="${Src_Files}`findsrc ${e}` " +done + +Obj_Files= +for e in ${Src_Files}; do + Obj_Files="${Obj_Files}${e%\.[!.]*}.obj " +done + +echo Obj_Files=${Obj_Files} diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/makefiles/adlc.make --- a/make/windows/makefiles/adlc.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/makefiles/adlc.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -49,24 +49,13 @@ CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE CPP_INCLUDE_DIRS=\ - /I "..\generated" \ - /I "$(WorkSpace)\src\share\vm\compiler" \ - /I "$(WorkSpace)\src\share\vm\code" \ - /I "$(WorkSpace)\src\share\vm\interpreter" \ - /I "$(WorkSpace)\src\share\vm\classfile" \ - /I "$(WorkSpace)\src\share\vm\asm" \ - /I "$(WorkSpace)\src\share\vm\memory" \ - /I "$(WorkSpace)\src\share\vm\oops" \ - /I "$(WorkSpace)\src\share\vm\prims" \ - /I "$(WorkSpace)\src\share\vm\runtime" \ - /I "$(WorkSpace)\src\share\vm\utilities" \ - /I "$(WorkSpace)\src\share\vm\libadt" \ - /I "$(WorkSpace)\src\share\vm\opto" \ - /I "$(WorkSpace)\src\os\windows\vm" \ + /I "..\generated" \ + /I "$(WorkSpace)\src\share\vm" \ + /I "$(WorkSpace)\src\os\windows\vm" \ /I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm" -# NOTE! If you add any files here, you must also update GENERATED_NAMES_IN_INCL -# and MakeDepsIDEOptions in makedeps.make. +# NOTE! If you add any files here, you must also update GENERATED_NAMES_IN_DIR +# and ProjectCreatorIDEOptions in projectcreator.make. GENERATED_NAMES=\ ad_$(Platform_arch_model).cpp \ ad_$(Platform_arch_model).hpp \ @@ -81,18 +70,18 @@ dfa_$(Platform_arch_model).cpp # NOTE! This must be kept in sync with GENERATED_NAMES -GENERATED_NAMES_IN_INCL=\ - incls/ad_$(Platform_arch_model).cpp \ - incls/ad_$(Platform_arch_model).hpp \ - incls/ad_$(Platform_arch_model)_clone.cpp \ - incls/ad_$(Platform_arch_model)_expand.cpp \ - incls/ad_$(Platform_arch_model)_format.cpp \ - incls/ad_$(Platform_arch_model)_gen.cpp \ - incls/ad_$(Platform_arch_model)_misc.cpp \ - incls/ad_$(Platform_arch_model)_peephole.cpp \ - incls/ad_$(Platform_arch_model)_pipeline.cpp \ - incls/adGlobals_$(Platform_arch_model).hpp \ - incls/dfa_$(Platform_arch_model).cpp +GENERATED_NAMES_IN_DIR=\ + $(AdlcOutDir)\ad_$(Platform_arch_model).cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model).hpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_clone.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_expand.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_format.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_gen.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_misc.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_peephole.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_pipeline.cpp \ + $(AdlcOutDir)\adGlobals_$(Platform_arch_model).hpp \ + $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp {$(WorkSpace)\src\share\vm\adlc}.cpp.obj:: $(CPP) $(CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $< @@ -110,10 +99,12 @@ $(MT) /manifest $@.manifest /outputresource:$@;#1 !endif -$(GENERATED_NAMES_IN_INCL): $(Platform_arch_model).ad adlc.exe includeDB.current +$(GENERATED_NAMES_IN_DIR): $(Platform_arch_model).ad adlc.exe rm -f $(GENERATED_NAMES) + if exist $(AdlcOutDir) rmdir /s /q $(AdlcOutDir) + mkdir $(AdlcOutDir) $(ADLC) $(ADLCFLAGS) $(Platform_arch_model).ad - mv $(GENERATED_NAMES) incls/ + mv $(GENERATED_NAMES) $(AdlcOutDir)/ $(Platform_arch_model).ad: $(WorkSpace)/src/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad $(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm/windows_$(Platform_arch_model).ad rm -f $(Platform_arch_model).ad diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/makefiles/debug.make --- a/make/windows/makefiles/debug.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/makefiles/debug.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -38,8 +38,6 @@ !include $(WorkSpace)/make/windows/makefiles/vm.make !include local.make -!include $(GENERATED)/Dependencies - HS_BUILD_ID=$(HS_BUILD_VER)-debug # Force resources to be rebuilt every time diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/makefiles/fastdebug.make --- a/make/windows/makefiles/fastdebug.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/makefiles/fastdebug.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -38,8 +38,6 @@ !include $(WorkSpace)/make/windows/makefiles/vm.make !include local.make -!include $(GENERATED)/Dependencies - HS_BUILD_ID=$(HS_BUILD_VER)-fastdebug # Force resources to be rebuilt every time @@ -57,6 +55,5 @@ $(MT) /manifest $@.manifest /outputresource:$@;#2 !endif - !include $(WorkSpace)/make/windows/makefiles/shared.make !include $(WorkSpace)/make/windows/makefiles/sa.make diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/makefiles/generated.make --- a/make/windows/makefiles/generated.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/makefiles/generated.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ # !include ../local.make -!include $(WorkSpace)/make/windows/makefiles/makedeps.make +!include $(WorkSpace)/make/windows/makefiles/projectcreator.make !include local.make # Pick up rules for building JVMTI (JSR-163) @@ -33,65 +33,21 @@ # Pick up rules for building SA !include $(WorkSpace)/make/windows/makefiles/sa.make -!if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered") -default:: includeDB.current Dependencies incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp $(JvmtiGeneratedFiles) -!else -default:: includeDB.current Dependencies $(JvmtiGeneratedFiles) -!endif - -# core plus serial gc -IncludeDBs_base=$(WorkSpace)/src/share/vm/includeDB_core \ - $(WorkSpace)/src/share/vm/includeDB_jvmti \ - $(WorkSpace)/src/share/vm/includeDB_gc \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_serial +AdlcOutDir=adfiles -# parallel gc -IncludeDBs_gc= $(WorkSpace)/src/share/vm/includeDB_gc_parallel \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_shared \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parNew \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_g1 - -IncludeDBs_core=$(IncludeDBs_base) $(IncludeDBs_gc) \ - $(WorkSpace)/src/share/vm/includeDB_features - -!if "$(Variant)" == "core" -IncludeDBs=$(IncludeDBs_core) +!if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered") +default:: $(AdlcOutDir)/ad_$(Platform_arch_model).cpp $(AdlcOutDir)/dfa_$(Platform_arch_model).cpp $(JvmtiGeneratedFiles) buildobjfiles +!else +default:: $(JvmtiGeneratedFiles) buildobjfiles !endif -!if "$(Variant)" == "kernel" -IncludeDBs=$(IncludeDBs_base) $(WorkSpace)/src/share/vm/includeDB_compiler1 -!endif - -!if "$(Variant)" == "compiler1" -IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler1 -!endif - - -!if "$(Variant)" == "compiler2" -IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler2 -!endif +buildobjfiles: + @ sh $(WorkSpace)/make/windows/create_obj_files.sh $(Variant) $(Platform_arch) $(Platform_arch_model) $(WorkSpace) . > objfiles.make -!if "$(Variant)" == "tiered" -IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler1 \ - $(WorkSpace)/src/share/vm/includeDB_compiler2 -!endif - -# Note we don't generate a Visual C++ project file using MakeDeps for -# the batch build. -includeDB.current Dependencies: classes/MakeDeps.class $(IncludeDBs) - cat $(IncludeDBs) > includeDB - if exist incls rmdir /s /q incls - mkdir incls - $(RUN_JAVA) -Djava.class.path=classes MakeDeps WinGammaPlatform$(VcVersion) $(WorkSpace)/make/windows/platform_$(BUILDARCH) includeDB $(MakeDepsOptions) - rm -f includeDB.current - cp includeDB includeDB.current - -classes/MakeDeps.class: $(MakeDepsSources) +classes/ProjectCreator.class: $(ProjectCreatorSources) if exist classes rmdir /s /q classes mkdir classes - $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -d classes $(MakeDepsSources) + $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\ProjectCreator -d classes $(ProjectCreatorSources) !if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered") diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/makefiles/makedeps.make --- a/make/windows/makefiles/makedeps.make Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -# -# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# -# - -!include $(WorkSpace)/make/windows/makefiles/rules.make - -# This is used externally by both batch and IDE builds, so can't -# reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE, -# HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables. -# -# NOTE: unfortunately the MakeDepsSources list must be kept -# synchronized between this and the Solaris version -# (make/solaris/makefiles/makedeps.make). - -MakeDepsSources=\ - $(WorkSpace)\src\share\tools\MakeDeps\Database.java \ - $(WorkSpace)\src\share\tools\MakeDeps\DirectoryTree.java \ - $(WorkSpace)\src\share\tools\MakeDeps\DirectoryTreeNode.java \ - $(WorkSpace)\src\share\tools\MakeDeps\FileFormatException.java \ - $(WorkSpace)\src\share\tools\MakeDeps\FileList.java \ - $(WorkSpace)\src\share\tools\MakeDeps\FileName.java \ - $(WorkSpace)\src\share\tools\MakeDeps\Macro.java \ - $(WorkSpace)\src\share\tools\MakeDeps\MacroDefinitions.java \ - $(WorkSpace)\src\share\tools\MakeDeps\MakeDeps.java \ - $(WorkSpace)\src\share\tools\MakeDeps\MetroWerksMacPlatform.java \ - $(WorkSpace)\src\share\tools\MakeDeps\Platform.java \ - $(WorkSpace)\src\share\tools\MakeDeps\UnixPlatform.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatform.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC6.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC7.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC8.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC9.java \ - $(WorkSpace)\src\share\tools\MakeDeps\Util.java \ - $(WorkSpace)\src\share\tools\MakeDeps\BuildConfig.java \ - $(WorkSpace)\src\share\tools\MakeDeps\ArgsParser.java - -# This is only used internally -MakeDepsIncludesPRIVATE=\ - -relativeInclude src\share\vm\c1 \ - -relativeInclude src\share\vm\compiler \ - -relativeInclude src\share\vm\code \ - -relativeInclude src\share\vm\interpreter \ - -relativeInclude src\share\vm\ci \ - -relativeInclude src\share\vm\classfile \ - -relativeInclude src\share\vm\gc_implementation\parallelScavenge \ - -relativeInclude src\share\vm\gc_implementation\shared \ - -relativeInclude src\share\vm\gc_implementation\parNew \ - -relativeInclude src\share\vm\gc_implementation\concurrentMarkSweep \ - -relativeInclude src\share\vm\gc_implementation\g1 \ - -relativeInclude src\share\vm\gc_interface \ - -relativeInclude src\share\vm\asm \ - -relativeInclude src\share\vm\memory \ - -relativeInclude src\share\vm\oops \ - -relativeInclude src\share\vm\prims \ - -relativeInclude src\share\vm\runtime \ - -relativeInclude src\share\vm\services \ - -relativeInclude src\share\vm\utilities \ - -relativeInclude src\share\vm\libadt \ - -relativeInclude src\share\vm\opto \ - -relativeInclude src\os\windows\vm \ - -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \ - -relativeInclude src\cpu\$(Platform_arch)\vm - -# This is referenced externally by both the IDE and batch builds -MakeDepsOptions= - -# This is used externally, but only by the IDE builds, so we can -# reference environment variables which aren't defined in the batch -# build process. - -MakeDepsIDEOptions = \ - -useToGeneratePch java.cpp \ - -disablePch os_windows.cpp \ - -disablePch os_windows_$(Platform_arch).cpp \ - -disablePch osThread_windows.cpp \ - -disablePch bytecodeInterpreter.cpp \ - -disablePch bytecodeInterpreterWithChecks.cpp \ - -disablePch getThread_windows_$(Platform_arch).cpp \ - -disablePch_compiler2 opcodes.cpp - -# Common options for the IDE builds for core, c1, and c2 -MakeDepsIDEOptions=\ - $(MakeDepsIDEOptions) \ - -sourceBase $(HOTSPOTWORKSPACE) \ - -buildBase $(HOTSPOTBUILDSPACE)\%f\%b \ - -startAt src \ - -compiler $(VcVersion) \ - -projectFileName $(HOTSPOTBUILDSPACE)\$(ProjectFile) \ - -jdkTargetRoot $(HOTSPOTJDKDIST) \ - -define ALIGN_STACK_FRAMES \ - -define VM_LITTLE_ENDIAN \ - -additionalFile includeDB_compiler1 \ - -additionalFile includeDB_compiler2 \ - -additionalFile includeDB_core \ - -additionalFile includeDB_features \ - -additionalFile includeDB_jvmti \ - -additionalFile includeDB_gc \ - -additionalFile includeDB_gc_parallel \ - -additionalFile includeDB_gc_parallelScavenge \ - -additionalFile includeDB_gc_concurrentMarkSweep \ - -additionalFile includeDB_gc_g1 \ - -additionalFile includeDB_gc_parNew \ - -additionalFile includeDB_gc_shared \ - -additionalFile includeDB_gc_serial \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)\%f\%b vm.def \ - -prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \ - $(MakeDepsIncludesPRIVATE) - -# Add in build-specific options -!if "$(BUILDARCH)" == "i486" -MakeDepsIDEOptions=$(MakeDepsIDEOptions) -define IA32 -!endif - -################################################## -# JKERNEL specific options -################################################## -MakeDepsIDEOptions=$(MakeDepsIDEOptions) \ - -define_kernel KERNEL \ - -################################################## -# Client(C1) compiler specific options -################################################## -MakeDepsIDEOptions=$(MakeDepsIDEOptions) \ - -define_compiler1 COMPILER1 \ - -################################################## -# Server(C2) compiler specific options -################################################## -#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make. -MakeDepsIDEOptions=$(MakeDepsIDEOptions) \ - -define_compiler2 COMPILER2 \ - -absoluteInclude_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls \ - -additionalFile_compiler2 $(Platform_arch_model).ad \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model).cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model).hpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_clone.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_expand.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_format.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_gen.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_misc.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_peephole.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_pipeline.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls adGlobals_$(Platform_arch_model).hpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls dfa_$(Platform_arch_model).cpp - -# Add in the jvmti (JSR-163) options -# NOTE: do not pull in jvmtiEnvRecommended.cpp. This file is generated -# so the programmer can diff it with jvmtiEnv.cpp to be sure the -# code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java). -# If so, they would then check it in as a new version of jvmtiEnv.cpp. -MakeDepsIDEOptions=$(MakeDepsIDEOptions) \ - -absoluteInclude $(HOTSPOTBUILDSPACE)/jvmtifiles \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnv.hpp \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnter.cpp \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnterTrace.cpp \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmti.h \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles bytecodeInterpreterWithChecks.cpp diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/makefiles/product.make --- a/make/windows/makefiles/product.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/makefiles/product.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -41,8 +41,6 @@ !include $(WorkSpace)/make/windows/makefiles/vm.make !include local.make -!include $(GENERATED)/Dependencies - HS_BUILD_ID=$(HS_BUILD_VER) # Force resources to be rebuilt every time diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/makefiles/projectcreator.make --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/windows/makefiles/projectcreator.make Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,234 @@ +# +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# +# + +!include $(WorkSpace)/make/windows/makefiles/rules.make + +# This is used externally by both batch and IDE builds, so can't +# reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE, +# HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables. +# +# NOTE: unfortunately the ProjectCreatorSources list must be kept +# synchronized between this and the Solaris version +# (make/solaris/makefiles/projectcreator.make). + +ProjectCreatorSources=\ + $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTree.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTreeNode.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\FileFormatException.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\Macro.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\MacroDefinitions.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\ProjectCreator.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatform.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC6.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC7.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC8.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC9.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\Util.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\BuildConfig.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\ArgsParser.java + +# This is only used internally +ProjectCreatorIncludesPRIVATE=\ + -relativeInclude src\share\vm \ + -relativeInclude src\share\vm\prims \ + -relativeInclude src\os\windows\vm \ + -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \ + -relativeInclude src\cpu\$(Platform_arch)\vm \ + -absoluteInclude $(HOTSPOTBUILDSPACE)/%f/generated \ + -ignorePath $(HOTSPOTBUILDSPACE)/%f/generated \ + -ignorePath src\share\vm\adlc \ + -ignorePath src\share\vm\shark + +# This is referenced externally by both the IDE and batch builds +ProjectCreatorOptions= + +# This is used externally, but only by the IDE builds, so we can +# reference environment variables which aren't defined in the batch +# build process. + +ProjectCreatorIDEOptions = \ + -useToGeneratePch java.cpp \ + -disablePch os_windows.cpp \ + -disablePch os_windows_$(Platform_arch).cpp \ + -disablePch osThread_windows.cpp \ + -disablePch bytecodeInterpreter.cpp \ + -disablePch bytecodeInterpreterWithChecks.cpp \ + -disablePch getThread_windows_$(Platform_arch).cpp \ + -disablePch_compiler2 opcodes.cpp + +# Common options for the IDE builds for core, c1, and c2 +ProjectCreatorIDEOptions=\ + $(ProjectCreatorIDEOptions) \ + -sourceBase $(HOTSPOTWORKSPACE) \ + -buildBase $(HOTSPOTBUILDSPACE)\%f\%b \ + -startAt src \ + -compiler $(VcVersion) \ + -projectFileName $(HOTSPOTBUILDSPACE)\$(ProjectFile) \ + -jdkTargetRoot $(HOTSPOTJDKDIST) \ + -define ALIGN_STACK_FRAMES \ + -define VM_LITTLE_ENDIAN \ + -prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \ + -ignoreFile jsig.c \ + -ignoreFile jvmtiEnvRecommended.cpp \ + -ignoreFile jvmtiEnvStub.cpp \ + -ignoreFile globalDefinitions_gcc.hpp \ + -ignoreFile globalDefinitions_sparcWorks.hpp \ + -ignoreFile version.rc \ + -ignoreFile Xusage.txt \ + -define TARGET_ARCH_x86 \ + -define TARGET_OS_ARCH_windows_x86 \ + -define TARGET_OS_FAMILY_windows \ + -define TARGET_COMPILER_visCPP \ + $(ProjectCreatorIncludesPRIVATE) + +# Add in build-specific options +!if "$(BUILDARCH)" == "i486" +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -define IA32 \ + -ignorePath x86_64 \ + -define TARGET_ARCH_MODEL_x86_32 +!else +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -ignorePath x86_32 \ + -define TARGET_ARCH_MODEL_x86_64 +!endif + +ProjectCreatorIDEOptionsIgnoreCompiler1=\ + -ignorePath_TARGET c1_ + +ProjectCreatorIDEOptionsIgnoreCompiler2=\ + -ignorePath_TARGET src/share/vm/opto \ + -ignorePath_TARGET src/share/vm/libadt \ + -ignorePath_TARGET adfiles \ + -ignoreFile_TARGET bcEscapeAnalyzer.cpp \ + -ignoreFile_TARGET bcEscapeAnalyzer.hpp \ + -ignorePath_TARGET chaitin \ + -ignorePath_TARGET c2_ \ + -ignorePath_TARGET runtime_ \ + -ignoreFile_TARGET ciTypeFlow.cpp \ + -ignoreFile_TARGET ciTypeFlow.hpp \ + -ignoreFile_TARGET $(Platform_arch_model).ad + +################################################## +# Without compiler(core) specific options +################################################## +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ +$(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=core) \ +$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=core) + +################################################## +# JKERNEL specific options +################################################## +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -define_kernel KERNEL \ +$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=kernel) \ + -ignorePath_kernel src/share/vm/gc_implementation/parallelScavenge \ + -ignorePath_kernel src/share/vm/gc_implementation/parNew \ + -ignorePath_kernel src/share/vm/gc_implementation/concurrentMarkSweep \ + -ignorePath_kernel src/share/vm/gc_implementation/g1 \ + -ignoreFile_kernel attachListener.cpp \ + -ignoreFile_kernel attachListener_windows.cpp \ + -ignoreFile_kernel dump.cpp \ + -ignoreFile_kernel dump_$(Platform_arch_model).cpp \ + -ignoreFile_kernel forte.cpp \ + -ignoreFile_kernel fprofiler.cpp \ + -ignoreFile_kernel heapDumper.cpp \ + -ignoreFile_kernel heapInspection.cpp \ + -ignoreFile_kernel jniCheck.cpp \ + -ignoreFile_kernel jvmtiCodeBlobEvents.cpp \ + -ignoreFile_kernel jvmtiExtensions.cpp \ + -ignoreFile_kernel jvmtiImpl.cpp \ + -ignoreFile_kernel jvmtiRawMonitor.cpp \ + -ignoreFile_kernel jvmtiTagMap.cpp \ + -ignoreFile_kernel jvmtiTrace.cpp \ + -ignoreFile_kernel jvmtiTrace.hpp \ + -ignoreFile_kernel restore.cpp \ + -ignoreFile_kernel serialize.cpp \ + -ignoreFile_kernel vmStructs.cpp \ + -ignoreFile_kernel g1MemoryPool.cpp \ + -ignoreFile_kernel g1MemoryPool.hpp \ + -ignoreFile_kernel psMemoryPool.cpp \ + -ignoreFile_kernel psMemoryPool.hpp \ + -ignoreFile_kernel gcAdaptivePolicyCounters.cpp \ + -ignoreFile_kernel concurrentGCThread.cpp \ + -ignoreFile_kernel mutableNUMASpace.cpp \ + -ignoreFile_kernel ciTypeFlow.cpp \ + -ignoreFile_kernel ciTypeFlow.hpp \ + -ignoreFile_kernel oop.pcgc.inline.hpp \ + -ignoreFile_kernel oop.psgc.inline.hpp \ + -ignoreFile_kernel allocationStats.cpp \ + -ignoreFile_kernel allocationStats.hpp \ + -ignoreFile_kernel concurrentGCThread.hpp \ + -ignoreFile_kernel gSpaceCounters.cpp \ + -ignoreFile_kernel gSpaceCounters.hpp \ + -ignoreFile_kernel gcAdaptivePolicyCounters.hpp \ + -ignoreFile_kernel immutableSpace.cpp \ + -ignoreFile_kernel mutableNUMASpace.hpp \ + -ignoreFile_kernel mutableSpace.cpp \ + -ignoreFile_kernel spaceCounters.cpp \ + -ignoreFile_kernel spaceCounters.hpp \ + -ignoreFile_kernel yieldingWorkgroup.cpp \ + -ignoreFile_kernel yieldingWorkgroup.hpp \ + -ignorePath_kernel vmStructs_ \ + -ignoreFile_kernel $(Platform_arch_model).ad \ + -additionalFile_kernel gcTaskManager.hpp + +################################################## +# Client(C1) compiler specific options +################################################## +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -define_compiler1 COMPILER1 \ +$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1) + +################################################## +# Server(C2) compiler specific options +################################################## +#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make. +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -define_compiler2 COMPILER2 \ + -additionalFile_compiler2 $(Platform_arch_model).ad \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).hpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_clone.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_expand.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_format.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_gen.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_misc.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_peephole.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_pipeline.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles adGlobals_$(Platform_arch_model).hpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles dfa_$(Platform_arch_model).cpp \ + $(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=compiler2) + +# Add in the jvmti (JSR-163) options +# NOTE: do not pull in jvmtiEnvRecommended.cpp. This file is generated +# so the programmer can diff it with jvmtiEnv.cpp to be sure the +# code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java). +# If so, they would then check it in as a new version of jvmtiEnv.cpp. +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnv.hpp \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnter.cpp \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnterTrace.cpp \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmti.h \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles bytecodeInterpreterWithChecks.cpp diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/makefiles/vm.make --- a/make/windows/makefiles/vm.make Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/makefiles/vm.make Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,8 @@ # Resource file containing VERSIONINFO Res_Files=.\version.res +!include ..\generated\objfiles.make + !ifdef RELEASE !ifdef DEVELOP CPP_FLAGS=$(CPP_FLAGS) /D "DEBUG" @@ -77,6 +79,14 @@ # Define that so jni.h is on correct side CPP_FLAGS=$(CPP_FLAGS) /D "_JNI_IMPLEMENTATION_" +# Used for platform dispatching +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_FAMILY_windows +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_$(Platform_arch) +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_MODEL_$(Platform_arch_model) +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_windows_$(Platform_arch) +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_MODEL_windows_$(Platform_arch_model) +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_COMPILER_visCPP + !if "$(BUILDARCH)" == "ia64" STACK_SIZE="/STACK:1048576,262144" !else @@ -111,37 +121,18 @@ /export:JVM_InitAgentProperties CPP_INCLUDE_DIRS=\ - /I "..\generated" \ - /I "..\generated\jvmtifiles" \ - /I "$(WorkSpace)\src\share\vm\c1" \ - /I "$(WorkSpace)\src\share\vm\compiler" \ - /I "$(WorkSpace)\src\share\vm\code" \ - /I "$(WorkSpace)\src\share\vm\interpreter" \ - /I "$(WorkSpace)\src\share\vm\ci" \ - /I "$(WorkSpace)\src\share\vm\classfile" \ - /I "$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge"\ - /I "$(WorkSpace)\src\share\vm\gc_implementation\shared"\ - /I "$(WorkSpace)\src\share\vm\gc_implementation\parNew"\ - /I "$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep"\ - /I "$(WorkSpace)\src\share\vm\gc_implementation\g1"\ - /I "$(WorkSpace)\src\share\vm\gc_interface"\ - /I "$(WorkSpace)\src\share\vm\asm" \ - /I "$(WorkSpace)\src\share\vm\memory" \ - /I "$(WorkSpace)\src\share\vm\oops" \ - /I "$(WorkSpace)\src\share\vm\prims" \ - /I "$(WorkSpace)\src\share\vm\runtime" \ - /I "$(WorkSpace)\src\share\vm\services" \ - /I "$(WorkSpace)\src\share\vm\utilities" \ - /I "$(WorkSpace)\src\share\vm\libadt" \ - /I "$(WorkSpace)\src\share\vm\opto" \ - /I "$(WorkSpace)\src\os\windows\vm" \ + /I "..\generated" \ + /I "$(WorkSpace)\src\share\vm" \ + /I "$(WorkSpace)\src\share\vm\prims" \ + /I "$(WorkSpace)\src\os\windows\vm" \ /I "$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm" \ /I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm" -CPP_USE_PCH=/Fp"vm.pch" /Yu"incls/_precompiled.incl" +CPP_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp" # Where to find the source code for the virtual machine -VM_PATH=../generated/incls +VM_PATH=../generated +VM_PATH=$(VM_PATH);../generated/adfiles VM_PATH=$(VM_PATH);../generated/jvmtifiles VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler @@ -280,11 +271,14 @@ {..\generated\incls}.cpp.obj:: $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< +{..\generated\adfiles}.cpp.obj:: + $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< + {..\generated\jvmtifiles}.cpp.obj:: $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< default:: _build_pch_file.obj: - @echo #include "incls/_precompiled.incl" > ../generated/_build_pch_file.cpp - $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"incls/_precompiled.incl" /c ../generated/_build_pch_file.cpp + @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp + $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/projectfiles/common/Makefile --- a/make/windows/projectfiles/common/Makefile Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/projectfiles/common/Makefile Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,8 @@ # # +!include local.make + WorkSpace=$(HOTSPOTWORKSPACE) !ifdef ALT_BOOTDIR @@ -36,70 +38,25 @@ !endif !endif -!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/makedeps.make +!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/projectcreator.make # Pick up rules for building JVMTI (JSR-163) -JvmtiOutDir=$(HOTSPOTBUILDSPACE)\jvmtifiles +JvmtiOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\jvmtifiles !include $(HOTSPOTWORKSPACE)/make/windows/makefiles/jvmti.make Platform=$(HOTSPOTWORKSPACE)/make/windows/platform_$(BUILDARCH) -default:: $(AdditionalTargets) $(JvmtiGeneratedFiles) - -IncludeDBs_base=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_core \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_jvmti \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_serial - -# Parallel gc files -IncludeDBs_gc=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc_parallel \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_shared \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parNew \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_g1 - - -IncludeDBs_kernel =$(IncludeDBs_base) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1 - -IncludeDBs_core =$(IncludeDBs_base) $(IncludeDBs_gc) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_features - -IncludeDBs_compiler1=$(IncludeDBs_core) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1 - -IncludeDBs_compiler2=$(IncludeDBs_core) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler2 - -IncludeDBs_tiered=$(IncludeDBs_core) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1 \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler2 - - -!if "$(Variant)" == "compiler1" -IncludeDBs = $(IncludeDBs_compiler1) -!endif - !if "$(Variant)" == "compiler2" -IncludeDBs = $(IncludeDBs_compiler2) # Pick up rules for building adlc !include $(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make !endif !if "$(Variant)" == "tiered" -IncludeDBs = $(IncludeDBs_tiered) # Pick up rules for building adlc !include $(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make !endif -!if "$(Variant)" == "core" -IncludeDBs = $(IncludeDBs_core) -!endif - -!if "$(Variant)" == "kernel" -IncludeDBs = $(IncludeDBs_kernel) -!endif +default:: $(AdditionalTargets) $(JvmtiGeneratedFiles) !include $(HOTSPOTWORKSPACE)/make/hotspot_version @@ -134,55 +91,22 @@ !endif !endif -MakeDepsIDEOptions = $(MakeDepsIDEOptions) \ - -includeDB_kernel $(HOTSPOTBUILDSPACE)\includeDB_kernel \ - -includeDB_core $(HOTSPOTBUILDSPACE)\includeDB_core \ - -includeDB_compiler1 $(HOTSPOTBUILDSPACE)\includeDB_compiler1 \ - -includeDB_compiler2 $(HOTSPOTBUILDSPACE)\includeDB_compiler2 \ - -includeDB_tiered $(HOTSPOTBUILDSPACE)\includeDB_tiered \ +ProjectCreatorIDEOptions = $(ProjectCreatorIDEOptions) \ -platform $(Platform) \ -define HOTSPOT_RELEASE_VERSION=\\\"$(HOTSPOT_RELEASE_VERSION)\\\" \ -define JRE_RELEASE_VERSION=\\\"$(JRE_RELEASE_VERSION)\\\" \ -define HOTSPOT_VM_DISTRO=\\\"$(HOTSPOT_VM_DISTRO)\\\" -incls: - @mkdir incls - -includeDB.current $(ProjectFile) Dependencies: local.make $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class \ - $(IncludeDBs) incls - @rm -f includeDB $(HOTSPOTBUILDSPACE)\includeDB_kernel \ - $(HOTSPOTBUILDSPACE)\includeDB_core \ - $(HOTSPOTBUILDSPACE)\includeDB_compiler1 \ - $(HOTSPOTBUILDSPACE)\includeDB_compiler2 \ - $(HOTSPOTBUILDSPACE)\includeDB_tiered - @cat $(IncludeDBs_kernel) > $(HOTSPOTBUILDSPACE)\includeDB_kernel - @cat $(IncludeDBs_core) > $(HOTSPOTBUILDSPACE)\includeDB_core - @cat $(IncludeDBs_compiler1) > $(HOTSPOTBUILDSPACE)\includeDB_compiler1 - @cat $(IncludeDBs_compiler2) > $(HOTSPOTBUILDSPACE)\includeDB_compiler2 - @cat $(IncludeDBs_tiered) > $(HOTSPOTBUILDSPACE)\includeDB_tiered - @echo java.cpp jni.h > includeDB - @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes MakeDeps diffs WinGammaPlatform$(VcVersion) \ - $(Platform) includeDB.current $(Platform) includeDB $(MakeDepsOptions) $(MakeDepsIDEOptions) - @rm -f includeDB.current - @cp includeDB includeDB.current - -lists: $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class FORCE - @if exist incls rmdir /s /q incls - @rm -f includeDB - @cat $(IncludeDBs) > includeDB - @mkdir incls - @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes MakeDeps WinGammaPlatform$(VcVersion) \ - $(Platform) includeDB $(MakeDepsOptions) $(MakeDepsIDEOptions) - @rm -f includeDB.current - @cp includeDB includeDB.current +$(HOTSPOTBUILDSPACE)/$(ProjectFile): local.make $(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class + @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes ProjectCreator WinGammaPlatform$(VcVersion) $(ProjectCreatorIDEOptions) clean: - @rm -rf incls $(HOTSPOTBUILDSPACE)/classes - @rm -f includeDB includeDB.current $(ProjectFile) Dependencies + @rm -rf $(HOTSPOTBUILDSPACE)/classes + @rm -r ../$(ProjectFile) -$(HOTSPOTBUILDSPACE)/classes/MakeDeps.class: $(MakeDepsSources) +$(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class: $(ProjectCreatorSources) @if exist $(HOTSPOTBUILDSPACE)\classes rmdir /s /q $(HOTSPOTBUILDSPACE)\classes @mkdir $(HOTSPOTBUILDSPACE)\classes - @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources) + @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\ProjectCreator -d $(HOTSPOTBUILDSPACE)/classes $(ProjectCreatorSources) FORCE: diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/projectfiles/compiler2/Makefile --- a/make/windows/projectfiles/compiler2/Makefile Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/projectfiles/compiler2/Makefile Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ Variant=compiler2 !include local.make -AdditionalTargets=incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp +AdlcOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\adfiles +AdditionalTargets=$(AdlcOutDir)\ad_$(Platform_arch_model).cpp $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp !include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/projectfiles/kernel/Makefile --- a/make/windows/projectfiles/kernel/Makefile Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/projectfiles/kernel/Makefile Tue Nov 30 18:10:20 2010 -0800 @@ -22,7 +22,7 @@ # # -Variant=compiler1 +Variant=kernel !include local.make !include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile diff -r c7db7adb83b4 -r 2ca799d83d3c make/windows/projectfiles/tiered/Makefile --- a/make/windows/projectfiles/tiered/Makefile Tue Nov 30 18:07:18 2010 -0800 +++ b/make/windows/projectfiles/tiered/Makefile Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ Variant=tiered !include local.make -AdditionalTargets=incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp +AdlcOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\adfiles +AdditionalTargets=$(AdlcOutDir)\ad_$(Platform_arch_model).cpp $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp !include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/assembler_sparc.cpp --- a/src/cpu/sparc/vm/assembler_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/assembler_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/resourceArea.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/os.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#endif // Convert the raw encoding form into the form expected by the // constructor for Address. diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/assembler_sparc.hpp --- a/src/cpu/sparc/vm/assembler_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/assembler_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_HPP +#define CPU_SPARC_VM_ASSEMBLER_SPARC_HPP + class BiasedLockingCounters; // promises that the system will not use traps 16-31 @@ -1126,7 +1129,7 @@ inline void add(Register s1, int simm13a, Register d, relocInfo::relocType rtype = relocInfo::none); inline void add(Register s1, int simm13a, Register d, RelocationHolder const& rspec); inline void add(Register s1, RegisterOrConstant s2, Register d, int offset = 0); - inline void add(const Address& a, Register d, int offset = 0) { add( a.base(), a.disp() + offset, d, a.rspec(offset)); } + inline void add(const Address& a, Register d, int offset = 0); void addcc( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(add_op3 | cc_bit_op3) | rs1(s1) | rs2(s2) ); } void addcc( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(add_op3 | cc_bit_op3) | rs1(s1) | immed(true) | simm(simm13a, 13) ); } @@ -2500,3 +2503,5 @@ // On RISC, there's no benefit to verifying instruction boundaries. inline bool AbstractAssembler::pd_check_instruction_mark() { return false; } #endif + +#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/assembler_sparc.inline.hpp --- a/src/cpu/sparc/vm/assembler_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/assembler_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP +#define CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP + +#include "asm/assembler.inline.hpp" +#include "asm/codeBuffer.hpp" +#include "code/codeCache.hpp" +#include "runtime/handles.inline.hpp" + inline void MacroAssembler::pd_patch_instruction(address branch, address target) { jint& stub_inst = *(jint*) branch; stub_inst = patched_branch(target - branch, stub_inst, 0); @@ -206,6 +214,11 @@ inline void Assembler::ldd( Register s1, RegisterOrConstant s2, Register d) { ldd( Address(s1, s2), d); } // form effective addresses this way: +inline void Assembler::add(const Address& a, Register d, int offset) { + if (a.has_index()) add(a.base(), a.index(), d); + else { add(a.base(), a.disp() + offset, d, a.rspec(offset)); offset = 0; } + if (offset != 0) add(d, offset, d); +} inline void Assembler::add(Register s1, RegisterOrConstant s2, Register d, int offset) { if (s2.is_register()) add(s1, s2.as_register(), d); else { add(s1, s2.as_constant() + offset, d); offset = 0; } @@ -817,3 +830,5 @@ Assembler::ldstub(SP, 0, G0); } } + +#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp --- a/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,24 @@ * */ +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interp_masm_sparc.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" + // KILL THIS FILE diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp --- a/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP +#define CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP + // Platform specific for C++ based Interpreter #define LOTS_OF_REGS /* Lets interpreter use plenty of registers */ @@ -97,3 +100,5 @@ ((VMJavaVal64*)(addr))->d) #define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \ ((VMJavaVal64*)(addr))->l) + +#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp --- a/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP +#define CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP + // Inline interpreter functions for sparc inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { return op1 + op2; } @@ -331,3 +334,5 @@ } }; #endif /* ALIGN_CONVERTER */ + +#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/bytecodes_sparc.cpp --- a/src/cpu/sparc/vm/bytecodes_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/bytecodes_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecodes_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecodes.hpp" void Bytecodes::pd_initialize() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/bytecodes_sparc.hpp --- a/src/cpu/sparc/vm/bytecodes_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/bytecodes_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_BYTECODES_SPARC_HPP +#define CPU_SPARC_VM_BYTECODES_SPARC_HPP + #ifdef SPARC #define NLOCALS_IN_REGS 6 #endif @@ -30,3 +33,5 @@ // Sparc specific bytecodes // (none) + +#endif // CPU_SPARC_VM_BYTECODES_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/bytes_sparc.hpp --- a/src/cpu/sparc/vm/bytes_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/bytes_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef CPU_SPARC_VM_BYTES_SPARC_HPP +#define CPU_SPARC_VM_BYTES_SPARC_HPP + +#include "memory/allocation.hpp" + class Bytes: AllStatic { public: // Efficient reading and writing of unaligned unsigned data in platform-specific byte ordering @@ -155,3 +160,5 @@ // 1.15 98/10/05 16:30:21 bytes_i486.hpp // 1.17 99/06/22 16:37:35 bytes_i486.hpp //End + +#endif // CPU_SPARC_VM_BYTES_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp --- a/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_CodeStubs_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CodeStubs.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "nativeInst_sparc.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_sparc.inline.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#endif #define __ ce->masm()-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_Defs_sparc.hpp --- a/src/cpu/sparc/vm/c1_Defs_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_Defs_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_DEFS_SPARC_HPP +#define CPU_SPARC_VM_C1_DEFS_SPARC_HPP + // native word offsets from memory address (big endian) enum { pd_lo_word_offset_in_bytes = BytesPerInt, @@ -65,3 +68,5 @@ enum { pd_float_saved_as_double = false }; + +#endif // CPU_SPARC_VM_C1_DEFS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp --- a/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,10 @@ * */ +#include "precompiled.hpp" +#include "c1/c1_FpuStackSim.hpp" +#include "c1/c1_FrameMap.hpp" +#include "utilities/array.hpp" +#include "utilities/ostream.hpp" + // No FPU stack on SPARC diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp --- a/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,10 @@ * */ +#ifndef CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP +#define CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP + // No FPU stack on SPARC class FpuStackSim; + +#endif // CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_FrameMap_sparc.cpp --- a/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_FrameMap_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIR.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_sparc.inline.hpp" const int FrameMap::pd_c_runtime_reserved_arg_size = 7; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_FrameMap_sparc.hpp --- a/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP +#define CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP + public: enum { @@ -151,3 +154,5 @@ static bool is_caller_save_register (LIR_Opr reg); static bool is_caller_save_register (Register r); + +#endif // CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp --- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRAssembler_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciInstance.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/barrierSet.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/objArrayKlass.hpp" +#include "runtime/sharedRuntime.hpp" #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp --- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP +#define CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP + private: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -90,3 +93,5 @@ #endif // _LP64 exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4), deopt_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4) }; + +#endif // CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp --- a/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRGenerator_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_LIRGenerator.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_sparc.inline.hpp" #ifdef ASSERT #define __ gen()->lir(__FILE__, __LINE__)-> @@ -664,7 +676,7 @@ // Use temps to avoid kills LIR_Opr t1 = FrameMap::G1_opr; LIR_Opr t2 = FrameMap::G3_opr; - LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register(); + LIR_Opr addr = new_pointer_register(); // get address of field obj.load_item(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_LinearScan_sparc.cpp --- a/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_LinearScan_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LinearScan.hpp" +#include "utilities/bitMap.inline.hpp" void LinearScan::allocate_fpu_stack() { // No FPU stack on SPARC diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_LinearScan_sparc.hpp --- a/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP +#define CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP + inline bool LinearScan::is_processed_reg_num(int reg_num) { return reg_num < 26 || reg_num > 31; } @@ -71,3 +74,5 @@ } return false; } + +#endif // CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp --- a/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_MacroAssembler_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) { Label L; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp --- a/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP +#define CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP + void pd_init() { /* nothing to do */ } public: @@ -84,3 +87,5 @@ // invalidates registers in this window void invalidate_registers(bool iregisters, bool lregisters, bool oregisters, Register preserve1 = noreg, Register preserve2 = noreg); + +#endif // CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_Runtime1_sparc.cpp --- a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,20 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Runtime1_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Defs.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "register_sparc.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/signature.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_sparc.inline.hpp" // Implementation of StubAssembler diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c1_globals_sparc.hpp --- a/src/cpu/sparc/vm/c1_globals_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c1_globals_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP +#define CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the client compiler. // (see c1_globals.hpp) @@ -61,3 +67,5 @@ define_pd_global(bool, TwoOperandLIRForm, false); define_pd_global(intx, SafepointPollOffset, 0 ); + +#endif // CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c2_globals_sparc.hpp --- a/src/cpu/sparc/vm/c2_globals_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c2_globals_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP +#define CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the server compiler. // (see c2_globals.hpp). Alpha-sorted. @@ -88,3 +94,5 @@ // Ergonomics related flags define_pd_global(bool, NeverActAsServerClassMachine, false); + +#endif // CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/c2_init_sparc.cpp --- a/src/cpu/sparc/vm/c2_init_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/c2_init_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c2_init_sparc.cpp.incl" +#include "precompiled.hpp" +#include "opto/compile.hpp" +#include "opto/node.hpp" // processor dependent initialization for sparc diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/codeBuffer_sparc.hpp --- a/src/cpu/sparc/vm/codeBuffer_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/codeBuffer_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_CODEBUFFER_SPARC_HPP +#define CPU_SPARC_VM_CODEBUFFER_SPARC_HPP + private: void pd_initialize() {} @@ -32,3 +35,5 @@ bool is_backward_branch(Label& L) { return L.is_bound() && insts_end() <= locator_address(L.loc()); } + +#endif // CPU_SPARC_VM_CODEBUFFER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/copy_sparc.hpp --- a/src/cpu/sparc/vm/copy_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/copy_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_COPY_SPARC_HPP +#define CPU_SPARC_VM_COPY_SPARC_HPP + // Inline functions for memory copy and fill. static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { @@ -186,3 +189,5 @@ static void pd_zero_to_bytes(void* to, size_t count) { (void)memset(to, 0, count); } + +#endif // CPU_SPARC_VM_COPY_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp --- a/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP +#define CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP + static address frame_manager_return; static address frame_manager_sync_return; @@ -32,3 +35,5 @@ void generate_compute_interpreter_state(const Register state, const Register prev_state, bool native); + +#endif // CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/cppInterpreter_sparc.cpp --- a/src/cpu/sparc/vm/cppInterpreter_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/cppInterpreter_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cppInterpreter_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/cppInterpreter.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef SHARK +#include "shark/shark_globals.hpp" +#endif #ifdef CC_INTERP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/cppInterpreter_sparc.hpp --- a/src/cpu/sparc/vm/cppInterpreter_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/cppInterpreter_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP +#define CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP + // Size of interpreter code. Increase if too small. Interpreter will // fail with a guarantee ("not enough space for interpreter generation"); // if too small. @@ -37,3 +40,5 @@ #else const static int InterpreterCodeSize = 180 * K; #endif + +#endif // CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/debug_sparc.cpp --- a/src/cpu/sparc/vm/debug_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/debug_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_debug_sparc.cpp.incl" +#include "precompiled.hpp" +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#include "runtime/frame.hpp" +#include "runtime/init.hpp" +#include "runtime/os.hpp" +#include "utilities/debug.hpp" +#include "utilities/top.hpp" #ifndef PRODUCT diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/depChecker_sparc.cpp --- a/src/cpu/sparc/vm/depChecker_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/depChecker_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_depChecker_sparc.cpp.incl" +#include "precompiled.hpp" +#include "compiler/disassembler.hpp" +#include "depChecker_sparc.hpp" +#include "runtime/hpi.hpp" // Nothing to do on Sparc diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/depChecker_sparc.hpp --- a/src/cpu/sparc/vm/depChecker_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/depChecker_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_DEPCHECKER_SPARC_HPP +#define CPU_SPARC_VM_DEPCHECKER_SPARC_HPP + // Nothing to do on Sparc + +#endif // CPU_SPARC_VM_DEPCHECKER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/disassembler_sparc.hpp --- a/src/cpu/sparc/vm/disassembler_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/disassembler_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP +#define CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP + static int pd_instruction_alignment() { return sizeof(int); } @@ -30,3 +33,5 @@ return (VM_Version::v9_instructions_work()? (VM_Version::v8_instructions_work()? "" : "v9only") : "v8only"); } + +#endif // CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/dump_sparc.cpp --- a/src/cpu/sparc/vm/dump_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/dump_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dump_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "memory/compactingPermGenGen.hpp" +#include "memory/generation.inline.hpp" +#include "memory/space.inline.hpp" diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/frame_sparc.cpp --- a/src/cpu/sparc/vm/frame_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/frame_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,24 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_frame_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/resourceArea.hpp" +#include "oops/markOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/monitorChunk.hpp" +#include "runtime/signature.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_sparc.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#include "runtime/vframeArray.hpp" +#endif void RegisterMap::pd_clear() { if (_thread->has_last_Java_frame()) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/frame_sparc.hpp --- a/src/cpu/sparc/vm/frame_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/frame_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_FRAME_SPARC_HPP +#define CPU_SPARC_VM_FRAME_SPARC_HPP + +#include "runtime/synchronizer.hpp" +#include "utilities/top.hpp" + // A frame represents a physical stack frame (an activation). Frames can be // C or Java frames, and the Java frames can be interpreted or compiled. // In contrast, vframes represent source-level activations, so that one physical frame @@ -309,3 +315,5 @@ return reg->is_out() || reg->is_global(); #endif } + +#endif // CPU_SPARC_VM_FRAME_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/frame_sparc.inline.hpp --- a/src/cpu/sparc/vm/frame_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/frame_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP +#define CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP + // Inline functions for SPARC frames: // Constructors @@ -295,3 +298,5 @@ inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) { *((oop*) map->location(O0->as_VMReg())) = obj; } + +#endif // CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/globalDefinitions_sparc.hpp --- a/src/cpu/sparc/vm/globalDefinitions_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/globalDefinitions_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP +#define CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP + // Size of Sparc Instructions const int BytesPerInstWord = 4; const int StackAlignmentInBytes = (2*wordSize); + +#endif // CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/globals_sparc.hpp --- a/src/cpu/sparc/vm/globals_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/globals_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_GLOBALS_SPARC_HPP +#define CPU_SPARC_VM_GLOBALS_SPARC_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -62,3 +68,7 @@ define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); + +define_pd_global(bool, UseMembar, false); + +#endif // CPU_SPARC_VM_GLOBALS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/icBuffer_sparc.cpp --- a/src/cpu/sparc/vm/icBuffer_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/icBuffer_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icBuffer_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "code/icBuffer.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" int InlineCacheBuffer::ic_stub_code_size() { #ifdef _LP64 diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/icache_sparc.cpp --- a/src/cpu/sparc/vm/icache_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/icache_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icache_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "runtime/icache.hpp" #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/icache_sparc.hpp --- a/src/cpu/sparc/vm/icache_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/icache_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_ICACHE_SPARC_HPP +#define CPU_SPARC_VM_ICACHE_SPARC_HPP + // Interface for updating the instruction cache. Whenever the VM modifies // code, part of the processor instruction cache potentially has to be flushed. @@ -36,3 +39,5 @@ // Use default implementation }; + +#endif // CPU_SPARC_VM_ICACHE_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/interp_masm_sparc.cpp --- a/src/cpu/sparc/vm/interp_masm_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/interp_masm_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,26 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interp_masm_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interp_masm_sparc.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif #ifndef CC_INTERP #ifndef FAST_DISPATCH diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/interp_masm_sparc.hpp --- a/src/cpu/sparc/vm/interp_masm_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/interp_masm_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_INTERP_MASM_SPARC_HPP +#define CPU_SPARC_VM_INTERP_MASM_SPARC_HPP + +#include "assembler_sparc.inline.hpp" +#include "interpreter/invocationCounter.hpp" + // This file specializes the assember with interpreter-specific macros REGISTER_DECLARATION( Register, Otos_i , O0); // tos for ints, etc @@ -327,3 +333,5 @@ void restore_return_value(TosState state, bool is_native_call); }; + +#endif // CPU_SPARC_VM_INTERP_MASM_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/interpreterGenerator_sparc.hpp --- a/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP +#define CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP + friend class AbstractInterpreterGenerator; private: @@ -39,3 +42,5 @@ void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue); void generate_counter_overflow(Label& Lcontinue); + +#endif // CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/interpreterRT_sparc.cpp --- a/src/cpu/sparc/vm/interpreterRT_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/interpreterRT_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreterRT_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/signature.hpp" #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/interpreterRT_sparc.hpp --- a/src/cpu/sparc/vm/interpreterRT_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/interpreterRT_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP +#define CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP + +#include "memory/allocation.hpp" + static int binary_search(int key, LookupswitchPair* array, int n); static address iload (JavaThread* thread); @@ -54,3 +59,5 @@ // Code generation void generate( uint64_t fingerprint ); }; + +#endif // CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/interpreter_sparc.cpp --- a/src/cpu/sparc/vm/interpreter_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/interpreter_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/interpreter_sparc.hpp --- a/src/cpu/sparc/vm/interpreter_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/interpreter_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_INTERPRETER_SPARC_HPP +#define CPU_SPARC_VM_INTERPRETER_SPARC_HPP + public: static int expr_offset_in_bytes(int i) { return stackElementSize * i + wordSize; } @@ -34,3 +37,5 @@ assert(i <= 0, "local direction already negated"); return stackElementWords * i; } + +#endif // CPU_SPARC_VM_INTERPRETER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp --- a/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP +#define CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP + private: volatile int _flags; @@ -97,3 +100,5 @@ _flags |= flushed; OrderAccess::fence(); } + +#endif // CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/jniFastGetField_sparc.cpp --- a/src/cpu/sparc/vm/jniFastGetField_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/jniFastGetField_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_jniFastGetField_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/safepoint.hpp" // TSO ensures that loads are blocking and ordered with respect to // to earlier loads, so we don't need LoadLoad membars. diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/jniTypes_sparc.hpp --- a/src/cpu/sparc/vm/jniTypes_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/jniTypes_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef CPU_SPARC_VM_JNITYPES_SPARC_HPP +#define CPU_SPARC_VM_JNITYPES_SPARC_HPP + +#include "memory/allocation.hpp" +#include "oops/oop.hpp" +#include "prims/jni.h" + // This file holds platform-dependent routines used to write primitive jni // types to the array of arguments passed into JavaCalls::call @@ -106,3 +113,5 @@ #endif }; + +#endif // CPU_SPARC_VM_JNITYPES_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/jni_sparc.h --- a/src/cpu/sparc/vm/jni_sparc.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/jni_sparc.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/methodHandles_sparc.cpp --- a/src/cpu/sparc/vm/methodHandles_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_methodHandles_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.inline.hpp" +#include "prims/methodHandles.hpp" #define __ _masm-> @@ -70,17 +72,29 @@ // Code generation address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler* _masm) { - // I5_savedSP: sender SP (must preserve) + // I5_savedSP/O5_savedSP: sender SP (must preserve) // G4 (Gargs): incoming argument list (must preserve) - // G5_method: invoke methodOop; becomes method type. + // G5_method: invoke methodOop // G3_method_handle: receiver method handle (must load from sp[MethodTypeForm.vmslots]) - // O0, O1: garbage temps, blown away - Register O0_argslot = O0; + // O0, O1, O2, O3, O4: garbage temps, blown away + Register O0_mtype = O0; Register O1_scratch = O1; + Register O2_scratch = O2; + Register O3_scratch = O3; + Register O4_argslot = O4; + Register O4_argbase = O4; // emit WrongMethodType path first, to enable back-branch from main path Label wrong_method_type; __ bind(wrong_method_type); + Label invoke_generic_slow_path; + assert(methodOopDesc::intrinsic_id_size_in_bytes() == sizeof(u1), "");; + __ ldub(Address(G5_method, methodOopDesc::intrinsic_id_offset_in_bytes()), O1_scratch); + __ cmp(O1_scratch, (int) vmIntrinsics::_invokeExact); + __ brx(Assembler::notEqual, false, Assembler::pt, invoke_generic_slow_path); + __ delayed()->nop(); + __ mov(O0_mtype, G5_method_type); // required by throw_WrongMethodType + // mov(G3_method_handle, G3_method_handle); // already in this register __ jump_to(AddressLiteral(Interpreter::throw_WrongMethodType_entry()), O1_scratch); __ delayed()->nop(); @@ -88,23 +102,74 @@ __ align(CodeEntryAlignment); address entry_point = __ pc(); - // fetch the MethodType from the method handle into G5_method_type + // fetch the MethodType from the method handle { Register tem = G5_method; - assert(tem == G5_method_type, "yes, it's the same register"); for (jint* pchase = methodOopDesc::method_type_offsets_chain(); (*pchase) != -1; pchase++) { - __ ld_ptr(Address(tem, *pchase), G5_method_type); + __ ld_ptr(Address(tem, *pchase), O0_mtype); + tem = O0_mtype; // in case there is another indirection } } // given the MethodType, find out where the MH argument is buried - __ load_heap_oop(Address(G5_method_type, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, O1_scratch)), O0_argslot); - __ ldsw( Address(O0_argslot, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, O1_scratch)), O0_argslot); - __ ld_ptr(__ argument_address(O0_argslot), G3_method_handle); + __ load_heap_oop(Address(O0_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, O1_scratch)), O4_argslot); + __ ldsw( Address(O4_argslot, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, O1_scratch)), O4_argslot); + __ add(Gargs, __ argument_offset(O4_argslot, 1), O4_argbase); + // Note: argument_address uses its input as a scratch register! + __ ld_ptr(Address(O4_argbase, -Interpreter::stackElementSize), G3_method_handle); + + trace_method_handle(_masm, "invokeExact"); + + __ check_method_handle_type(O0_mtype, G3_method_handle, O1_scratch, wrong_method_type); + __ jump_to_method_handle_entry(G3_method_handle, O1_scratch); + + // for invokeGeneric (only), apply argument and result conversions on the fly + __ bind(invoke_generic_slow_path); +#ifdef ASSERT + { Label L; + __ ldub(Address(G5_method, methodOopDesc::intrinsic_id_offset_in_bytes()), O1_scratch); + __ cmp(O1_scratch, (int) vmIntrinsics::_invokeGeneric); + __ brx(Assembler::equal, false, Assembler::pt, L); + __ delayed()->nop(); + __ stop("bad methodOop::intrinsic_id"); + __ bind(L); + } +#endif //ASSERT - __ check_method_handle_type(G5_method_type, G3_method_handle, O1_scratch, wrong_method_type); + // make room on the stack for another pointer: + insert_arg_slots(_masm, 2 * stack_move_unit(), _INSERT_REF_MASK, O4_argbase, O1_scratch, O2_scratch, O3_scratch); + // load up an adapter from the calling type (Java weaves this) + Register O2_form = O2_scratch; + Register O3_adapter = O3_scratch; + __ load_heap_oop(Address(O0_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, O1_scratch)), O2_form); + // load_heap_oop(Address(O2_form, __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter); + // deal with old JDK versions: + __ add( Address(O2_form, __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter); + __ cmp(O3_adapter, O2_form); + Label sorry_no_invoke_generic; + __ brx(Assembler::lessUnsigned, false, Assembler::pn, sorry_no_invoke_generic); + __ delayed()->nop(); + + __ load_heap_oop(Address(O3_adapter, 0), O3_adapter); + __ tst(O3_adapter); + __ brx(Assembler::zero, false, Assembler::pn, sorry_no_invoke_generic); + __ delayed()->nop(); + __ st_ptr(O3_adapter, Address(O4_argbase, 1 * Interpreter::stackElementSize)); + // As a trusted first argument, pass the type being called, so the adapter knows + // the actual types of the arguments and return values. + // (Generic invokers are shared among form-families of method-type.) + __ st_ptr(O0_mtype, Address(O4_argbase, 0 * Interpreter::stackElementSize)); + // FIXME: assert that O3_adapter is of the right method-type. + __ mov(O3_adapter, G3_method_handle); + trace_method_handle(_masm, "invokeGeneric"); __ jump_to_method_handle_entry(G3_method_handle, O1_scratch); + __ bind(sorry_no_invoke_generic); // no invokeGeneric implementation available! + __ mov(O0_mtype, G5_method_type); // required by throw_WrongMethodType + // mov(G3_method_handle, G3_method_handle); // already in this register + __ jump_to(AddressLiteral(Interpreter::throw_WrongMethodType_entry()), O1_scratch); + __ delayed()->nop(); + return entry_point; } @@ -630,9 +695,15 @@ switch (ek) { case _adapter_opt_i2i: + value = vmarg; + break; case _adapter_opt_l2i: - __ unimplemented(entry_name(ek)); - value = vmarg; + { + // just delete the extra slot + __ add(Gargs, __ argument_offset(O0_argslot), O0_argslot); + remove_arg_slots(_masm, -stack_move_unit(), O0_argslot, O1_scratch, O2_scratch, O3_scratch); + value = vmarg = Address(O0_argslot, 0); + } break; case _adapter_opt_unboxi: { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/nativeInst_sparc.cpp --- a/src/cpu/sparc/vm/nativeInst_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/nativeInst_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_nativeInst_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/ostream.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif bool NativeInstruction::is_dtrace_trap() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/nativeInst_sparc.hpp --- a/src/cpu/sparc/vm/nativeInst_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/nativeInst_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef CPU_SPARC_VM_NATIVEINST_SPARC_HPP +#define CPU_SPARC_VM_NATIVEINST_SPARC_HPP + +#include "asm/assembler.hpp" +#include "memory/allocation.hpp" +#include "runtime/icache.hpp" +#include "runtime/os.hpp" +#include "utilities/top.hpp" + // We have interface for the following instructions: // - NativeInstruction // - - NativeCall @@ -913,3 +922,5 @@ // Insert illegal opcode as specific address static void insert(address code_pos); }; + +#endif // CPU_SPARC_VM_NATIVEINST_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/registerMap_sparc.hpp --- a/src/cpu/sparc/vm/registerMap_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/registerMap_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_REGISTERMAP_SPARC_HPP +#define CPU_SPARC_VM_REGISTERMAP_SPARC_HPP + // machine-dependent implemention for register maps friend class frame; @@ -51,3 +54,5 @@ void shift_individual_registers(); // When popping out of compiled frames, we make all IRegs disappear. void make_integer_regs_unsaved() { _location_valid[0] = 0; } + +#endif // CPU_SPARC_VM_REGISTERMAP_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/register_definitions_sparc.cpp --- a/src/cpu/sparc/vm/register_definitions_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/register_definitions_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -25,8 +25,11 @@ // make sure the defines don't screw up the declarations later on in this file #define DONT_USE_REGISTER_DEFINES -#include "incls/_precompiled.incl" -#include "incls/_register_definitions_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/register.hpp" +#include "interp_masm_sparc.hpp" +#include "register_sparc.hpp" REGISTER_DEFINITION(Register, noreg); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/register_sparc.cpp --- a/src/cpu/sparc/vm/register_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/register_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register_sparc.cpp.incl" +#include "precompiled.hpp" +#include "register_sparc.hpp" const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers << 1; const int ConcreteRegisterImpl::max_fpr = ConcreteRegisterImpl::max_gpr + FloatRegisterImpl::number_of_registers; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/register_sparc.hpp --- a/src/cpu/sparc/vm/register_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/register_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_REGISTER_SPARC_HPP +#define CPU_SPARC_VM_REGISTER_SPARC_HPP + +#include "asm/register.hpp" +#include "vm_version_sparc.hpp" + // forward declaration class Address; class VMRegImpl; @@ -440,3 +446,5 @@ return as_FloatRegister( ((encoding & 1) << 5) | (encoding & 0x1c) ); } }; + +#endif // CPU_SPARC_VM_REGISTER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/relocInfo_sparc.cpp --- a/src/cpu/sparc/vm/relocInfo_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/relocInfo_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_relocInfo_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.inline.hpp" +#include "assembler_sparc.inline.hpp" +#include "code/relocInfo.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/safepoint.hpp" void Relocation::pd_set_data_value(address x, intptr_t o) { NativeInstruction* ip = nativeInstruction_at(addr()); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/relocInfo_sparc.hpp --- a/src/cpu/sparc/vm/relocInfo_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/relocInfo_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_RELOCINFO_SPARC_HPP +#define CPU_SPARC_VM_RELOCINFO_SPARC_HPP + // machine-dependent parts of class relocInfo private: enum { @@ -49,3 +52,5 @@ // 1.8 99/06/22 16:37:50 relocInfo_i486.hpp // 1.9 99/07/16 11:12:11 relocInfo_i486.hpp //End + +#endif // CPU_SPARC_VM_RELOCINFO_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/runtime_sparc.cpp --- a/src/cpu/sparc/vm/runtime_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/runtime_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,22 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_runtime_sparc.cpp.incl" +#include "precompiled.hpp" +#ifdef COMPILER2 +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/vmreg.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_sparc.hpp" +#include "opto/runtime.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/globalDefinitions.hpp" +#include "vmreg_sparc.inline.hpp" +#endif #define __ masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/sharedRuntime_sparc.cpp --- a/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sharedRuntime_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "code/debugInfoRec.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_sparc.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif +#ifdef SHARK +#include "compiler/compileBroker.hpp" +#include "shark/sharkCompiler.hpp" +#endif #define __ masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/sparc.ad --- a/src/cpu/sparc/vm/sparc.ad Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/sparc.ad Tue Nov 30 18:10:20 2010 -0800 @@ -1843,6 +1843,12 @@ return can_be_java_arg(reg); } +bool Matcher::use_asm_for_ldiv_by_con( jlong divisor ) { + // Use hardware SDIVX instruction when it is + // faster than a code which use multiply. + return VM_Version::has_fast_idiv(); +} + // Register for DIVI projection of divmodI RegMask Matcher::divI_proj_mask() { ShouldNotReachHere(); @@ -9510,16 +9516,16 @@ Register Rdst = $dst$$Register; Register Rsrc = $src$$Register; Register Rtmp = $tmp$$Register; - __ srl(Rsrc, 1, Rtmp); - __ srl(Rsrc, 0, Rdst); + __ srl(Rsrc, 1, Rtmp); + __ srl(Rsrc, 0, Rdst); __ or3(Rdst, Rtmp, Rdst); - __ srl(Rdst, 2, Rtmp); + __ srl(Rdst, 2, Rtmp); __ or3(Rdst, Rtmp, Rdst); - __ srl(Rdst, 4, Rtmp); + __ srl(Rdst, 4, Rtmp); __ or3(Rdst, Rtmp, Rdst); - __ srl(Rdst, 8, Rtmp); + __ srl(Rdst, 8, Rtmp); __ or3(Rdst, Rtmp, Rdst); - __ srl(Rdst, 16, Rtmp); + __ srl(Rdst, 16, Rtmp); __ or3(Rdst, Rtmp, Rdst); __ popc(Rdst, Rdst); __ mov(BitsPerInt, Rtmp); @@ -9528,7 +9534,7 @@ ins_pipe(ialu_reg); %} -instruct countLeadingZerosL(iRegI dst, iRegL src, iRegL tmp, flagsReg cr) %{ +instruct countLeadingZerosL(iRegIsafe dst, iRegL src, iRegL tmp, flagsReg cr) %{ predicate(UsePopCountInstruction); // See Matcher::match_rule_supported match(Set dst (CountLeadingZerosL src)); effect(TEMP dst, TEMP tmp, KILL cr); @@ -9559,18 +9565,18 @@ Register Rdst = $dst$$Register; Register Rsrc = $src$$Register; Register Rtmp = $tmp$$Register; - __ srlx(Rsrc, 1, Rtmp); - __ or3(Rsrc, Rtmp, Rdst); - __ srlx(Rdst, 2, Rtmp); - __ or3(Rdst, Rtmp, Rdst); - __ srlx(Rdst, 4, Rtmp); - __ or3(Rdst, Rtmp, Rdst); - __ srlx(Rdst, 8, Rtmp); - __ or3(Rdst, Rtmp, Rdst); - __ srlx(Rdst, 16, Rtmp); - __ or3(Rdst, Rtmp, Rdst); - __ srlx(Rdst, 32, Rtmp); - __ or3(Rdst, Rtmp, Rdst); + __ srlx(Rsrc, 1, Rtmp); + __ or3( Rsrc, Rtmp, Rdst); + __ srlx(Rdst, 2, Rtmp); + __ or3( Rdst, Rtmp, Rdst); + __ srlx(Rdst, 4, Rtmp); + __ or3( Rdst, Rtmp, Rdst); + __ srlx(Rdst, 8, Rtmp); + __ or3( Rdst, Rtmp, Rdst); + __ srlx(Rdst, 16, Rtmp); + __ or3( Rdst, Rtmp, Rdst); + __ srlx(Rdst, 32, Rtmp); + __ or3( Rdst, Rtmp, Rdst); __ popc(Rdst, Rdst); __ mov(BitsPerLong, Rtmp); __ sub(Rtmp, Rdst, Rdst); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/stubGenerator_sparc.cpp --- a/src/cpu/sparc/vm/stubGenerator_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/stubGenerator_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,31 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubGenerator_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/instanceOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // Declaration and definition of StubGenerator (no .hpp file). // For a more detailed description of the stub routine structure diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/stubRoutines_sparc.cpp --- a/src/cpu/sparc/vm/stubRoutines_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/stubRoutines_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif // Implementation of the platform-specific part of StubRoutines - for // a description of how to extend it, see the stubRoutines.hpp file. diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/stubRoutines_sparc.hpp --- a/src/cpu/sparc/vm/stubRoutines_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/stubRoutines_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_STUBROUTINES_SPARC_HPP +#define CPU_SPARC_VM_STUBROUTINES_SPARC_HPP + // This file holds the platform specific parts of the StubRoutines // definition. See stubRoutines.hpp for a description on how to // extend it. @@ -100,3 +103,5 @@ static address partial_subtype_check() { return _partial_subtype_check; } }; + +#endif // CPU_SPARC_VM_STUBROUTINES_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp --- a/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP +#define CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP + protected: void generate_fixed_frame(bool native_call); // template interpreter only void generate_stack_overflow_check(Register Rframe_size, Register Rscratch, Register Rscratch2); + +#endif // CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/templateInterpreter_sparc.cpp --- a/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateInterpreter_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" #ifndef CC_INTERP #ifndef FAST_DISPATCH diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/templateInterpreter_sparc.hpp --- a/src/cpu/sparc/vm/templateInterpreter_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/templateInterpreter_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP +#define CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP + protected: @@ -38,3 +41,5 @@ #else const static int InterpreterCodeSize = 180 * K; #endif + +#endif // CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/templateTable_sparc.cpp --- a/src/cpu/sparc/vm/templateTable_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/templateTable_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateTable_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" #ifndef CC_INTERP #define __ _masm-> @@ -341,6 +351,26 @@ resolve_cache_and_index(f1_oop, Otos_i, Rcache, Rscratch, wide ? sizeof(u2) : sizeof(u1)); __ verify_oop(Otos_i); + + Label L_done; + const Register Rcon_klass = G3_scratch; // same as Rcache + const Register Rarray_klass = G4_scratch; // same as Rscratch + __ load_klass(Otos_i, Rcon_klass); + AddressLiteral array_klass_addr((address)Universe::systemObjArrayKlassObj_addr()); + __ load_contents(array_klass_addr, Rarray_klass); + __ cmp(Rarray_klass, Rcon_klass); + __ brx(Assembler::notEqual, false, Assembler::pt, L_done); + __ delayed()->nop(); + __ ld(Address(Otos_i, arrayOopDesc::length_offset_in_bytes()), Rcon_klass); + __ tst(Rcon_klass); + __ brx(Assembler::zero, true, Assembler::pt, L_done); + __ delayed()->clr(Otos_i); // executed only if branch is taken + + // Load the exception from the system-array which wraps it: + __ load_heap_oop(Otos_i, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Otos_i); + __ throw_if_not_x(Assembler::never, Interpreter::throw_exception_entry(), G3_scratch); + + __ bind(L_done); } void TemplateTable::ldc2_w() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/templateTable_sparc.hpp --- a/src/cpu/sparc/vm/templateTable_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/templateTable_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP +#define CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP + // helper function static void invokevfinal_helper(Register Rcache, Register Rret); static void invokeinterface_object_method(Register RklassOop, Register Rcall, @@ -29,3 +32,5 @@ Register Rflags); static void generate_vtable_call(Register Rrecv, Register Rindex, Register Rret); static void volatile_barrier(Assembler::Membar_mask_bits order_constraint); + +#endif // CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/vmStructs_sparc.hpp --- a/src/cpu/sparc/vm/vmStructs_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/vmStructs_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP +#define CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP + // These are the CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -97,3 +100,5 @@ /* NOTE that we do not use the last_entry() macro here; it is used */ /* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ /* be present there) */ + +#endif // CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/vm_version_sparc.cpp --- a/src/cpu/sparc/vm/vm_version_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/vm_version_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,18 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/java.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "vm_version_sparc.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif int VM_Version::_features = VM_Version::unknown_m; const char* VM_Version::_features_str = ""; @@ -80,7 +90,8 @@ FLAG_SET_DEFAULT(InteriorEntryAlignment, 4); } if (is_niagara1_plus()) { - if (AllocatePrefetchStyle > 0 && FLAG_IS_DEFAULT(AllocatePrefetchStyle)) { + if (has_blk_init() && AllocatePrefetchStyle > 0 && + FLAG_IS_DEFAULT(AllocatePrefetchStyle)) { // Use BIS instruction for allocation prefetch. FLAG_SET_DEFAULT(AllocatePrefetchStyle, 3); if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) { @@ -118,16 +129,18 @@ #endif char buf[512]; - jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s%s%s%s%s%s%s%s", + jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s", (has_v8() ? ", has_v8" : ""), (has_v9() ? ", has_v9" : ""), (has_hardware_popc() ? ", popc" : ""), (has_vis1() ? ", has_vis1" : ""), (has_vis2() ? ", has_vis2" : ""), + (has_blk_init() ? ", has_blk_init" : ""), (is_ultra3() ? ", is_ultra3" : ""), (is_sun4v() ? ", is_sun4v" : ""), (is_niagara1() ? ", is_niagara1" : ""), (is_niagara1_plus() ? ", is_niagara1_plus" : ""), + (is_sparc64() ? ", is_sparc64" : ""), (!has_hardware_mul32() ? ", no-mul32" : ""), (!has_hardware_div32() ? ", no-div32" : ""), (!has_hardware_fsmuld() ? ", no-fsmuld" : "")); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/vm_version_sparc.hpp --- a/src/cpu/sparc/vm/vm_version_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/vm_version_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_VM_VERSION_SPARC_HPP +#define CPU_SPARC_VM_VM_VERSION_SPARC_HPP + +#include "runtime/globals_extension.hpp" +#include "runtime/vm_version.hpp" + class VM_Version: public Abstract_VM_Version { protected: enum Feature_Flag { @@ -33,7 +39,9 @@ v9_instructions = 5, vis1_instructions = 6, vis2_instructions = 7, - sun4v_instructions = 8 + sun4v_instructions = 8, + blk_init_instructions = 9, + fmaf_instructions = 10 }; enum Feature_Flag_Set { @@ -49,6 +57,8 @@ vis1_instructions_m = 1 << vis1_instructions, vis2_instructions_m = 1 << vis2_instructions, sun4v_m = 1 << sun4v_instructions, + blk_init_instructions_m = 1 << blk_init_instructions, + fmaf_instructions_m = 1 << fmaf_instructions, generic_v8_m = v8_instructions_m | hardware_mul32_m | hardware_div32_m | hardware_fsmuld_m, generic_v9_m = generic_v8_m | v9_instructions_m, @@ -67,6 +77,7 @@ static int platform_features(int features); static bool is_niagara1(int features) { return (features & sun4v_m) != 0; } + static bool is_sparc64(int features) { return (features & fmaf_instructions_m) != 0; } static int maximum_niagara1_processor_count() { return 32; } // Returns true if the platform is in the niagara line and @@ -86,6 +97,7 @@ static bool has_hardware_popc() { return (_features & hardware_popc_m) != 0; } static bool has_vis1() { return (_features & vis1_instructions_m) != 0; } static bool has_vis2() { return (_features & vis2_instructions_m) != 0; } + static bool has_blk_init() { return (_features & blk_init_instructions_m) != 0; } static bool supports_compare_and_exchange() { return has_v9(); } @@ -93,8 +105,10 @@ static bool is_ultra3() { return (_features & ultra3_m) == ultra3_m; } static bool is_sun4v() { return (_features & sun4v_m) != 0; } static bool is_niagara1() { return is_niagara1(_features); } + static bool is_sparc64() { return is_sparc64(_features); } static bool has_fast_fxtof() { return has_v9() && !is_ultra3(); } + static bool has_fast_idiv() { return is_niagara1_plus() || is_sparc64(); } static const char* cpu_features() { return _features_str; } @@ -144,3 +158,5 @@ // Calculates the number of parallel threads static unsigned int calc_parallel_worker_threads(); }; + +#endif // CPU_SPARC_VM_VM_VERSION_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/vmreg_sparc.cpp --- a/src/cpu/sparc/vm/vmreg_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/vmreg_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vmreg_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/vmreg_sparc.hpp --- a/src/cpu/sparc/vm/vmreg_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/vmreg_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_SPARC_VM_VMREG_SPARC_HPP +#define CPU_SPARC_VM_VMREG_SPARC_HPP + bool is_Register(); Register as_Register(); bool is_FloatRegister(); FloatRegister as_FloatRegister(); + +#endif // CPU_SPARC_VM_VMREG_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/vmreg_sparc.inline.hpp --- a/src/cpu/sparc/vm/vmreg_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/vmreg_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP +#define CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP + inline VMReg RegisterImpl::as_VMReg() { if( this==noreg ) return VMRegImpl::Bad(); return VMRegImpl::as_VMReg(encoding() << 1 ); @@ -60,3 +63,5 @@ assert(false, "what register?"); return false; } + +#endif // CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/sparc/vm/vtableStubs_sparc.cpp --- a/src/cpu/sparc/vm/vtableStubs_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/sparc/vm/vtableStubs_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "code/vtableStubs.hpp" +#include "interp_masm_sparc.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_sparc.inline.hpp" +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // machine-dependent part of VtableStubs: create vtableStub of correct size and // initialize its code diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/assembler_x86.cpp --- a/src/cpu/x86/vm/assembler_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/assembler_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_x86.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/resourceArea.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/os.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#endif // Implementation of AddressLiteral @@ -1275,6 +1291,12 @@ emit_byte(0xF8 | encode); } +void Assembler::divl(Register src) { // Unsigned + int encode = prefix_and_encode(src->encoding()); + emit_byte(0xF7); + emit_byte(0xF0 | encode); +} + void Assembler::imull(Register dst, Register src) { int encode = prefix_and_encode(dst->encoding(), src->encoding()); emit_byte(0x0F); @@ -1288,7 +1310,7 @@ if (is8bit(value)) { emit_byte(0x6B); emit_byte(0xC0 | encode); - emit_byte(value); + emit_byte(value & 0xFF); } else { emit_byte(0x69); emit_byte(0xC0 | encode); @@ -3903,7 +3925,7 @@ if (is8bit(value)) { emit_byte(0x6B); emit_byte(0xC0 | encode); - emit_byte(value); + emit_byte(value & 0xFF); } else { emit_byte(0x69); emit_byte(0xC0 | encode); @@ -5516,17 +5538,14 @@ } void MacroAssembler::warn(const char* msg) { - push(r12); - movq(r12, rsp); + push(rsp); andq(rsp, -16); // align stack as required by push_CPU_state and call push_CPU_state(); // keeps alignment at 16 bytes lea(c_rarg0, ExternalAddress((address) msg)); call_VM_leaf(CAST_FROM_FN_PTR(address, warning), c_rarg0); pop_CPU_state(); - - movq(rsp, r12); - pop(r12); + pop(rsp); } #ifndef PRODUCT @@ -5838,6 +5857,10 @@ // debugging support assert(number_of_arguments >= 0 , "cannot have negative number of arguments"); LP64_ONLY(assert(java_thread == r15_thread, "unexpected register")); +#ifdef ASSERT + LP64_ONLY(if (UseCompressedOops) verify_heapbase("call_VM_base");) +#endif // ASSERT + assert(java_thread != oop_result , "cannot use the same register for java_thread & oop_result"); assert(java_thread != last_java_sp, "cannot use the same register for java_thread & last_java_sp"); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/assembler_x86.hpp --- a/src/cpu/x86/vm/assembler_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/assembler_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_ASSEMBLER_X86_HPP +#define CPU_X86_VM_ASSEMBLER_X86_HPP + class BiasedLockingCounters; // Contains all the definitions needed for x86 assembly code generation. @@ -1011,6 +1014,7 @@ void hlt(); void idivl(Register src); + void divl(Register src); // Unsigned division void idivq(Register src); @@ -2272,3 +2276,5 @@ #ifdef ASSERT inline bool AbstractAssembler::pd_check_instruction_mark() { return true; } #endif + +#endif // CPU_X86_VM_ASSEMBLER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/assembler_x86.inline.hpp --- a/src/cpu/x86/vm/assembler_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/assembler_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP +#define CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP + +#include "asm/assembler.inline.hpp" +#include "asm/codeBuffer.hpp" +#include "code/codeCache.hpp" +#include "runtime/handles.inline.hpp" + inline void MacroAssembler::pd_patch_instruction(address branch, address target) { unsigned char op = branch[0]; assert(op == 0xE8 /* call */ || @@ -85,3 +93,5 @@ code_section()->set_end(_code_pos); } #endif // _LP64 + +#endif // CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/bytecodeInterpreter_x86.cpp --- a/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,30 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecodeInterpreter_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef TARGET_ARCH_MODEL_x86_32 +# include "interp_masm_x86_32.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_x86_64 +# include "interp_masm_x86_64.hpp" +#endif #ifdef CC_INTERP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/bytecodeInterpreter_x86.hpp --- a/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP +#define CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP + // Platform specific for C++ based Interpreter private: @@ -108,3 +111,5 @@ ((VMJavaVal64*)(addr))->d) #define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \ ((VMJavaVal64*)(addr))->l) + +#endif // CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp --- a/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP +#define CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP + // Inline interpreter functions for IA32 inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { return op1 + op2; } @@ -278,3 +281,5 @@ inline jbyte BytecodeInterpreter::VMint2Byte(jint val) { return (jbyte) val; } + +#endif // CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/bytecodes_x86.cpp --- a/src/cpu/x86/vm/bytecodes_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/bytecodes_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecodes_x86.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecodes.hpp" void Bytecodes::pd_initialize() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/bytecodes_x86.hpp --- a/src/cpu/x86/vm/bytecodes_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/bytecodes_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef CPU_X86_VM_BYTECODES_X86_HPP +#define CPU_X86_VM_BYTECODES_X86_HPP + // No i486 specific bytecodes + +#endif // CPU_X86_VM_BYTECODES_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/bytes_x86.hpp --- a/src/cpu/x86/vm/bytes_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/bytes_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef CPU_X86_VM_BYTES_X86_HPP +#define CPU_X86_VM_BYTES_X86_HPP + +#include "memory/allocation.hpp" + class Bytes: AllStatic { private: #ifndef AMD64 @@ -67,4 +72,15 @@ // The following header contains the implementations of swap_u2, swap_u4, and swap_u8[_base] -#include "incls/_bytes_pd.inline.hpp.incl" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "bytes_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "bytes_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_windows_x86 +# include "bytes_windows_x86.inline.hpp" +#endif + + +#endif // CPU_X86_VM_BYTES_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_CodeStubs_x86.cpp --- a/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_CodeStubs_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CodeStubs.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "nativeInst_x86.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_x86.inline.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#endif #define __ ce->masm()-> @@ -499,7 +509,7 @@ Register new_val_reg = new_val()->as_register(); __ cmpptr(new_val_reg, (int32_t) NULL_WORD); __ jcc(Assembler::equal, _continuation); - ce->store_parameter(addr()->as_register(), 0); + ce->store_parameter(addr()->as_pointer_register(), 0); __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::g1_post_barrier_slow_id))); __ jmp(_continuation); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_Defs_x86.hpp --- a/src/cpu/x86/vm/c1_Defs_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_Defs_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_DEFS_X86_HPP +#define CPU_X86_VM_C1_DEFS_X86_HPP + // native word offsets from memory address (little endian) enum { pd_lo_word_offset_in_bytes = 0, @@ -71,3 +74,5 @@ enum { pd_float_saved_as_double = true }; + +#endif // CPU_X86_VM_C1_DEFS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_FpuStackSim_x86.cpp --- a/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_FpuStackSim_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_FpuStackSim.hpp" +#include "c1/c1_FrameMap.hpp" +#include "utilities/array.hpp" +#include "utilities/ostream.hpp" //-------------------------------------------------------- // FpuStackSim diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_FpuStackSim_x86.hpp --- a/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP +#define CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP + // Simulates the FPU stack and maintains mapping [fpu-register -> stack offset] // FPU registers are described as numbers from 0..nof_fpu_regs-1 @@ -65,3 +68,5 @@ void print() PRODUCT_RETURN; }; + +#endif // CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_FrameMap_x86.cpp --- a/src/cpu/x86/vm/c1_FrameMap_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_FrameMap_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_FrameMap_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIR.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_x86.inline.hpp" const int FrameMap::pd_c_runtime_reserved_arg_size = 0; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_FrameMap_x86.hpp --- a/src/cpu/x86/vm/c1_FrameMap_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_FrameMap_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_FRAMEMAP_X86_HPP +#define CPU_X86_VM_C1_FRAMEMAP_X86_HPP + // On i486 the frame looks as follows: // // +-----------------------------+---------+----------------------------------------+----------------+----------- @@ -126,3 +129,5 @@ assert(i >= 0 && i < nof_caller_save_xmm_regs, "out of bounds"); return _caller_save_xmm_regs[i]; } + +#endif // CPU_X86_VM_C1_FRAMEMAP_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_LIRAssembler_x86.cpp --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRAssembler_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciInstance.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/barrierSet.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "nativeInst_x86.hpp" +#include "oops/objArrayKlass.hpp" +#include "runtime/sharedRuntime.hpp" // These masks are used to provide 128-bit aligned bitmasks to the XMM diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_LIRAssembler_x86.hpp --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP +#define CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP + private: Address::ScaleFactor array_element_size(BasicType type) const; @@ -56,3 +59,5 @@ exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(175), deopt_handler_size = NOT_LP64(10) LP64_ONLY(17) }; + +#endif // CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_LIRGenerator_x86.cpp --- a/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRGenerator_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_LIRGenerator.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_x86.inline.hpp" #ifdef ASSERT #define __ gen()->lir(__FILE__, __LINE__)-> @@ -765,7 +777,7 @@ ShouldNotReachHere(); } - LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register(); + LIR_Opr addr = new_pointer_register(); LIR_Address* a; if(offset.result()->is_constant()) { a = new LIR_Address(obj.result(), diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_LinearScan_x86.cpp --- a/src/cpu/x86/vm/c1_LinearScan_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_LinearScan_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_LinearScan_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LinearScan.hpp" +#include "utilities/bitMap.inline.hpp" //---------------------------------------------------------------------- diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_LinearScan_x86.hpp --- a/src/cpu/x86/vm/c1_LinearScan_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_LinearScan_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_LINEARSCAN_X86_HPP +#define CPU_X86_VM_C1_LINEARSCAN_X86_HPP + inline bool LinearScan::is_processed_reg_num(int reg_num) { #ifndef _LP64 // rsp and rbp (numbers 6 ancd 7) are ignored @@ -185,3 +188,5 @@ FpuStackAllocator(Compilation* compilation, LinearScan* allocator); void allocate(); }; + +#endif // CPU_X86_VM_C1_LINEARSCAN_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_MacroAssembler_x86.cpp --- a/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_MacroAssembler_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Register scratch, Label& slow_case) { const int aligned_mask = BytesPerWord -1; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_MacroAssembler_x86.hpp --- a/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP +#define CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP + // C1_MacroAssembler contains high-level macros for C1 private: @@ -113,3 +116,5 @@ } void invalidate_registers(bool inv_rax, bool inv_rbx, bool inv_rcx, bool inv_rdx, bool inv_rsi, bool inv_rdi) PRODUCT_RETURN; + +#endif // CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_Runtime1_x86.cpp --- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,20 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Runtime1_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Defs.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "register_x86.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/signature.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_x86.inline.hpp" // Implementation of StubAssembler diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c1_globals_x86.hpp --- a/src/cpu/x86/vm/c1_globals_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c1_globals_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_C1_GLOBALS_X86_HPP +#define CPU_X86_VM_C1_GLOBALS_X86_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the client compiler. // (see c1_globals.hpp) @@ -60,3 +66,5 @@ define_pd_global(bool, TwoOperandLIRForm, true ); define_pd_global(intx, SafepointPollOffset, 256 ); + +#endif // CPU_X86_VM_C1_GLOBALS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c2_globals_x86.hpp --- a/src/cpu/x86/vm/c2_globals_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c2_globals_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_C2_GLOBALS_X86_HPP +#define CPU_X86_VM_C2_GLOBALS_X86_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the server compiler. // (see c2_globals.hpp). Alpha-sorted. @@ -87,3 +93,5 @@ // Ergonomics related flags define_pd_global(bool, NeverActAsServerClassMachine, false); + +#endif // CPU_X86_VM_C2_GLOBALS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/c2_init_x86.cpp --- a/src/cpu/x86/vm/c2_init_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/c2_init_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c2_init_x86.cpp.incl" +#include "precompiled.hpp" +#include "opto/compile.hpp" +#include "opto/node.hpp" // processor dependent initialization for i486 diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/codeBuffer_x86.hpp --- a/src/cpu/x86/vm/codeBuffer_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/codeBuffer_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_X86_VM_CODEBUFFER_X86_HPP +#define CPU_X86_VM_CODEBUFFER_X86_HPP + private: void pd_initialize() {} public: void flush_bundle(bool start_new_bundle) {} + +#endif // CPU_X86_VM_CODEBUFFER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/copy_x86.hpp --- a/src/cpu/x86/vm/copy_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/copy_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,10 +22,22 @@ * */ +#ifndef CPU_X86_VM_COPY_X86_HPP +#define CPU_X86_VM_COPY_X86_HPP + // Inline functions for memory copy and fill. // Contains inline asm implementations -#include "incls/_copy_pd.inline.hpp.incl" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "copy_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "copy_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_windows_x86 +# include "copy_windows_x86.inline.hpp" +#endif + static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) { #ifdef AMD64 @@ -58,3 +70,5 @@ static void pd_zero_to_bytes(void* to, size_t count) { (void)memset(to, 0, count); } + +#endif // CPU_X86_VM_COPY_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp --- a/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP +#define CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP + protected: #if 0 @@ -45,3 +48,5 @@ const Register prev_state, const Register sender_sp, bool native); // C++ interpreter only + +#endif // CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/cppInterpreter_x86.cpp --- a/src/cpu/x86/vm/cppInterpreter_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/cppInterpreter_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cppInterpreter_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/cppInterpreter.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef SHARK +#include "shark/shark_globals.hpp" +#endif #ifdef CC_INTERP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/cppInterpreter_x86.hpp --- a/src/cpu/x86/vm/cppInterpreter_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/cppInterpreter_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_CPPINTERPRETER_X86_HPP +#define CPU_X86_VM_CPPINTERPRETER_X86_HPP + protected: @@ -31,3 +34,5 @@ // Run with +PrintInterpreter to get the VM to print out the size. // Max size with JVMTI const static int InterpreterCodeSize = 168 * 1024; + +#endif // CPU_X86_VM_CPPINTERPRETER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/debug_x86.cpp --- a/src/cpu/x86/vm/debug_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/debug_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_debug_x86.cpp.incl" +#include "precompiled.hpp" +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#include "runtime/frame.hpp" +#include "runtime/init.hpp" +#include "runtime/os.hpp" +#include "utilities/debug.hpp" +#include "utilities/top.hpp" void pd_ps(frame f) {} diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/depChecker_x86.cpp --- a/src/cpu/x86/vm/depChecker_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/depChecker_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_depChecker_x86.cpp.incl" +#include "precompiled.hpp" +#include "compiler/disassembler.hpp" +#include "depChecker_x86.hpp" +#include "runtime/hpi.hpp" // Nothing to do on i486 diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/depChecker_x86.hpp --- a/src/cpu/x86/vm/depChecker_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/depChecker_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef CPU_X86_VM_DEPCHECKER_X86_HPP +#define CPU_X86_VM_DEPCHECKER_X86_HPP + // Nothing to do on i486 + +#endif // CPU_X86_VM_DEPCHECKER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/disassembler_x86.hpp --- a/src/cpu/x86/vm/disassembler_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/disassembler_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_DISASSEMBLER_X86_HPP +#define CPU_X86_VM_DISASSEMBLER_X86_HPP + static int pd_instruction_alignment() { return 1; } @@ -29,3 +32,5 @@ static const char* pd_cpu_opts() { return ""; } + +#endif // CPU_X86_VM_DISASSEMBLER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/dump_x86_32.cpp --- a/src/cpu/x86/vm/dump_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/dump_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dump_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/compactingPermGenGen.hpp" +#include "memory/generation.inline.hpp" +#include "memory/space.inline.hpp" diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/dump_x86_64.cpp --- a/src/cpu/x86/vm/dump_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/dump_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dump_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/compactingPermGenGen.hpp" +#include "memory/generation.inline.hpp" +#include "memory/space.inline.hpp" diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/frame_x86.cpp --- a/src/cpu/x86/vm/frame_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/frame_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,24 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_frame_x86.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/resourceArea.hpp" +#include "oops/markOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/monitorChunk.hpp" +#include "runtime/signature.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#include "runtime/vframeArray.hpp" +#endif #ifdef ASSERT void RegisterMap::check_location_valid() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/frame_x86.hpp --- a/src/cpu/x86/vm/frame_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/frame_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_FRAME_X86_HPP +#define CPU_X86_VM_FRAME_X86_HPP + +#include "runtime/synchronizer.hpp" +#include "utilities/top.hpp" + // A frame represents a physical stack frame (an activation). Frames can be // C or Java frames, and the Java frames can be interpreted or compiled. // In contrast, vframes represent source-level activations, so that one physical frame @@ -199,3 +205,5 @@ #ifdef CC_INTERP inline interpreterState get_interpreterState() const; #endif // CC_INTERP + +#endif // CPU_X86_VM_FRAME_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/frame_x86.inline.hpp --- a/src/cpu/x86/vm/frame_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/frame_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_FRAME_X86_INLINE_HPP +#define CPU_X86_VM_FRAME_X86_INLINE_HPP + // Inline functions for Intel frames: // Constructors: @@ -296,3 +299,5 @@ inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) { *((oop*) map->location(rax->as_VMReg())) = obj; } + +#endif // CPU_X86_VM_FRAME_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/globalDefinitions_x86.hpp --- a/src/cpu/x86/vm/globalDefinitions_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/globalDefinitions_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP +#define CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP + const int StackAlignmentInBytes = 16; + +#endif // CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/globals_x86.hpp --- a/src/cpu/x86/vm/globals_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/globals_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_GLOBALS_X86_HPP +#define CPU_X86_VM_GLOBALS_X86_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -63,3 +69,7 @@ define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); + +define_pd_global(bool, UseMembar, false); + +#endif // CPU_X86_VM_GLOBALS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/icBuffer_x86.cpp --- a/src/cpu/x86/vm/icBuffer_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/icBuffer_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icBuffer_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/icBuffer.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_x86.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" int InlineCacheBuffer::ic_stub_code_size() { return NativeMovConstReg::instruction_size + diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/icache_x86.cpp --- a/src/cpu/x86/vm/icache_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/icache_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icache_x86.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "runtime/icache.hpp" #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/icache_x86.hpp --- a/src/cpu/x86/vm/icache_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/icache_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_ICACHE_X86_HPP +#define CPU_X86_VM_ICACHE_X86_HPP + // Interface for updating the instruction cache. Whenever the VM modifies // code, part of the processor instruction cache potentially has to be flushed. @@ -53,3 +56,5 @@ }; #endif // AMD64 }; + +#endif // CPU_X86_VM_ICACHE_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interp_masm_x86_32.cpp --- a/src/cpu/x86/vm/interp_masm_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interp_masm_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,29 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interp_masm_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "interp_masm_x86_32.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // Implementation of InterpreterMacroAssembler diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interp_masm_x86_32.hpp --- a/src/cpu/x86/vm/interp_masm_x86_32.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interp_masm_x86_32.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_INTERP_MASM_X86_32_HPP +#define CPU_X86_VM_INTERP_MASM_X86_32_HPP + +#include "assembler_x86.inline.hpp" +#include "interpreter/invocationCounter.hpp" + // This file specializes the assember with interpreter-specific macros @@ -227,3 +233,5 @@ void notify_method_exit(TosState state, NotifyMethodExitMode mode); }; + +#endif // CPU_X86_VM_INTERP_MASM_X86_32_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interp_masm_x86_64.cpp --- a/src/cpu/x86/vm/interp_masm_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interp_masm_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,29 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interp_masm_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "interp_masm_x86_64.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // Implementation of InterpreterMacroAssembler @@ -428,10 +449,9 @@ // JVMTI events, such as single-stepping, are implemented partly by avoiding running // compiled code in threads for which the event is enabled. Check here for // interp_only_mode if these events CAN be enabled. - get_thread(temp); // interp_only is an int, on little endian it is sufficient to test the byte only - // Is a cmpl faster (ce - cmpb(Address(temp, JavaThread::interp_only_mode_offset()), 0); + // Is a cmpl faster? + cmpb(Address(r15_thread, JavaThread::interp_only_mode_offset()), 0); jcc(Assembler::zero, run_compiled_code); jmp(Address(method, methodOopDesc::interpreter_entry_offset())); bind(run_compiled_code); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interp_masm_x86_64.hpp --- a/src/cpu/x86/vm/interp_masm_x86_64.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interp_masm_x86_64.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_INTERP_MASM_X86_64_HPP +#define CPU_X86_VM_INTERP_MASM_X86_64_HPP + +#include "assembler_x86.inline.hpp" +#include "interpreter/invocationCounter.hpp" + // This file specializes the assember with interpreter-specific macros @@ -243,3 +249,5 @@ void notify_method_entry(); void notify_method_exit(TosState state, NotifyMethodExitMode mode); }; + +#endif // CPU_X86_VM_INTERP_MASM_X86_64_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interpreterGenerator_x86.hpp --- a/src/cpu/x86/vm/interpreterGenerator_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interpreterGenerator_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP +#define CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP + // Generation of Interpreter // @@ -41,3 +44,5 @@ void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue); void generate_counter_overflow(Label* do_continue); + +#endif // CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interpreterRT_x86.hpp --- a/src/cpu/x86/vm/interpreterRT_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interpreterRT_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef CPU_X86_VM_INTERPRETERRT_X86_HPP +#define CPU_X86_VM_INTERPRETERRT_X86_HPP + +#include "memory/allocation.hpp" + // native method calls class SignatureHandlerGenerator: public NativeSignatureIterator { @@ -72,3 +77,5 @@ static Register to(); static Register temp(); }; + +#endif // CPU_X86_VM_INTERPRETERRT_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interpreterRT_x86_32.cpp --- a/src/cpu/x86/vm/interpreterRT_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interpreterRT_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreterRT_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/signature.hpp" #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interpreterRT_x86_64.cpp --- a/src/cpu/x86/vm/interpreterRT_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interpreterRT_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreterRT_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/signature.hpp" #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interpreter_x86.hpp --- a/src/cpu/x86/vm/interpreter_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interpreter_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_INTERPRETER_X86_HPP +#define CPU_X86_VM_INTERPRETER_X86_HPP + public: // Sentinel placed in the code for interpreter returns so @@ -44,3 +47,5 @@ assert(i <= 0, "local direction already negated"); return stackElementWords * i; } + +#endif // CPU_X86_VM_INTERPRETER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interpreter_x86_32.cpp --- a/src/cpu/x86/vm/interpreter_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interpreter_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/interpreter_x86_64.cpp --- a/src/cpu/x86/vm/interpreter_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/interpreter_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/javaFrameAnchor_x86.hpp --- a/src/cpu/x86/vm/javaFrameAnchor_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/javaFrameAnchor_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP +#define CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP + private: // FP value associated with _last_Java_sp: @@ -79,3 +82,5 @@ intptr_t* last_Java_fp(void) { return _last_Java_fp; } // Assert (last_Java_sp == NULL || fp == NULL) void set_last_Java_fp(intptr_t* fp) { _last_Java_fp = fp; } + +#endif // CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/jniFastGetField_x86_32.cpp --- a/src/cpu/x86/vm/jniFastGetField_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/jniFastGetField_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_jniFastGetField_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/safepoint.hpp" #define __ masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/jniFastGetField_x86_64.cpp --- a/src/cpu/x86/vm/jniFastGetField_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/jniFastGetField_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_jniFastGetField_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/safepoint.hpp" #define __ masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/jniTypes_x86.hpp --- a/src/cpu/x86/vm/jniTypes_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/jniTypes_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef CPU_X86_VM_JNITYPES_X86_HPP +#define CPU_X86_VM_JNITYPES_X86_HPP + +#include "memory/allocation.hpp" +#include "oops/oop.hpp" +#include "prims/jni.h" + // This file holds platform-dependent routines used to write primitive jni // types to the array of arguments passed into JavaCalls::call @@ -122,3 +129,5 @@ static inline jdouble get_double(intptr_t *from) { return *(jdouble *)(from + _JNI_SLOT_OFFSET); } #undef _JNI_SLOT_OFFSET }; + +#endif // CPU_X86_VM_JNITYPES_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/jni_x86.h --- a/src/cpu/x86/vm/jni_x86.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/jni_x86.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/methodHandles_x86.cpp --- a/src/cpu/x86/vm/methodHandles_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_methodHandles_x86.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.inline.hpp" +#include "prims/methodHandles.hpp" #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/nativeInst_x86.cpp --- a/src/cpu/x86/vm/nativeInst_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/nativeInst_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,18 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_nativeInst_x86.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_x86.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/ostream.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif void NativeInstruction::wrote(int offset) { ICache::invalidate_word(addr_at(offset)); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/nativeInst_x86.hpp --- a/src/cpu/x86/vm/nativeInst_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/nativeInst_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef CPU_X86_VM_NATIVEINST_X86_HPP +#define CPU_X86_VM_NATIVEINST_X86_HPP + +#include "asm/assembler.hpp" +#include "memory/allocation.hpp" +#include "runtime/icache.hpp" +#include "runtime/os.hpp" +#include "utilities/top.hpp" + // We have interfaces for the following instructions: // - NativeInstruction // - - NativeCall @@ -547,3 +556,5 @@ return false; #endif // AMD64 } + +#endif // CPU_X86_VM_NATIVEINST_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/registerMap_x86.hpp --- a/src/cpu/x86/vm/registerMap_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/registerMap_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_REGISTERMAP_X86_HPP +#define CPU_X86_VM_REGISTERMAP_X86_HPP + // machine-dependent implemention for register maps friend class frame; @@ -37,3 +40,5 @@ void pd_clear() {} void pd_initialize() {} void pd_initialize_from(const RegisterMap* map) {} + +#endif // CPU_X86_VM_REGISTERMAP_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/register_definitions_x86.cpp --- a/src/cpu/x86/vm/register_definitions_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/register_definitions_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register_definitions_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/register.hpp" +#include "register_x86.hpp" +#ifdef TARGET_ARCH_MODEL_x86_32 +# include "interp_masm_x86_32.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_x86_64 +# include "interp_masm_x86_64.hpp" +#endif REGISTER_DEFINITION(Register, noreg); REGISTER_DEFINITION(Register, rax); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/register_x86.cpp --- a/src/cpu/x86/vm/register_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/register_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register_x86.cpp.incl" +#include "precompiled.hpp" +#include "register_x86.hpp" + #ifndef AMD64 const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers; #else diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/register_x86.hpp --- a/src/cpu/x86/vm/register_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/register_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_REGISTER_X86_HPP +#define CPU_X86_VM_REGISTER_X86_HPP + +#include "asm/register.hpp" +#include "vm_version_x86.hpp" + class VMRegImpl; typedef VMRegImpl* VMReg; @@ -219,3 +225,5 @@ static const int max_xmm; }; + +#endif // CPU_X86_VM_REGISTER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/relocInfo_x86.cpp --- a/src/cpu/x86/vm/relocInfo_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/relocInfo_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_relocInfo_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.inline.hpp" +#include "assembler_x86.inline.hpp" +#include "code/relocInfo.hpp" +#include "nativeInst_x86.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/safepoint.hpp" void Relocation::pd_set_data_value(address x, intptr_t o) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/relocInfo_x86.hpp --- a/src/cpu/x86/vm/relocInfo_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/relocInfo_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_RELOCINFO_X86_HPP +#define CPU_X86_VM_RELOCINFO_X86_HPP + // machine-dependent parts of class relocInfo private: enum { @@ -36,3 +39,5 @@ format_width = 2 #endif }; + +#endif // CPU_X86_VM_RELOCINFO_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/runtime_x86_32.cpp --- a/src/cpu/x86/vm/runtime_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/runtime_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,9 +22,23 @@ * */ +#include "precompiled.hpp" +#ifdef COMPILER2 +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/vmreg.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "opto/runtime.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/globalDefinitions.hpp" +#include "vmreg_x86.inline.hpp" +#endif -#include "incls/_precompiled.incl" -#include "incls/_runtime_x86_32.cpp.incl" #define __ masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/runtime_x86_64.cpp --- a/src/cpu/x86/vm/runtime_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/runtime_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,23 @@ * */ -#include "incls/_precompiled.incl" +#include "precompiled.hpp" +#ifdef COMPILER2 +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/vmreg.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "opto/runtime.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/globalDefinitions.hpp" +#include "vmreg_x86.inline.hpp" +#endif + // This file should really contain the code for generating the OptoRuntime // exception_blob. However that code uses SimpleRuntimeFrame which only diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/sharedRuntime_x86_32.cpp --- a/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sharedRuntime_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/debugInfoRec.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif #define __ masm-> #ifdef COMPILER2 diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/sharedRuntime_x86_64.cpp --- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sharedRuntime_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/debugInfoRec.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif DeoptimizationBlob *SharedRuntime::_deopt_blob; #ifdef COMPILER2 diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/stubGenerator_x86_32.cpp --- a/src/cpu/x86/vm/stubGenerator_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/stubGenerator_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,34 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubGenerator_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "oops/instanceOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // Declaration and definition of StubGenerator (no .hpp file). // For a more detailed description of the stub routine structure diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/stubGenerator_x86_64.cpp --- a/src/cpu/x86/vm/stubGenerator_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/stubGenerator_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,34 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubGenerator_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "oops/instanceOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // Declaration and definition of StubGenerator (no .hpp file). // For a more detailed description of the stub routine structure diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/stubRoutines_x86_32.cpp --- a/src/cpu/x86/vm/stubRoutines_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/stubRoutines_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // Implementation of the platform-specific part of StubRoutines - for // a description of how to extend it, see the stubRoutines.hpp file. diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/stubRoutines_x86_32.hpp --- a/src/cpu/x86/vm/stubRoutines_x86_32.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/stubRoutines_x86_32.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_STUBROUTINES_X86_32_HPP +#define CPU_X86_VM_STUBROUTINES_X86_32_HPP + // This file holds the platform specific parts of the StubRoutines // definition. See stubRoutines.hpp for a description on how to // extend it. @@ -60,3 +63,5 @@ static bool returns_to_call_stub(address return_pc) { return (return_pc == _call_stub_return_address) || return_pc == x86::get_call_stub_compiled_return(); } + +#endif // CPU_X86_VM_STUBROUTINES_X86_32_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/stubRoutines_x86_64.cpp --- a/src/cpu/x86/vm/stubRoutines_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/stubRoutines_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // Implementation of the platform-specific part of StubRoutines - for // a description of how to extend it, see the stubRoutines.hpp file. diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/stubRoutines_x86_64.hpp --- a/src/cpu/x86/vm/stubRoutines_x86_64.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/stubRoutines_x86_64.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_STUBROUTINES_X86_64_HPP +#define CPU_X86_VM_STUBROUTINES_X86_64_HPP + // This file holds the platform specific parts of the StubRoutines // definition. See stubRoutines.hpp for a description on how to // extend it. @@ -113,3 +116,5 @@ return _mxcsr_std; } }; + +#endif // CPU_X86_VM_STUBROUTINES_X86_64_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp --- a/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP +#define CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP + protected: void generate_fixed_frame(bool native_call); // address generate_asm_interpreter_entry(bool synchronized); + +#endif // CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/templateInterpreter_x86.hpp --- a/src/cpu/x86/vm/templateInterpreter_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/templateInterpreter_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP +#define CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP + protected: @@ -35,3 +38,5 @@ #else const static int InterpreterCodeSize = 168 * 1024; #endif // AMD64 + +#endif // CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/templateInterpreter_x86_32.cpp --- a/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateInterpreter_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" #define __ _masm-> diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/templateInterpreter_x86_64.cpp --- a/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" #define __ _masm-> @@ -1049,7 +1069,7 @@ // runtime call by hand. // __ mov(c_rarg0, r15_thread); - __ mov(r12, rsp); // remember sp + __ mov(r12, rsp); // remember sp (can only use r12 if not using call_VM) __ subptr(rsp, frame::arg_reg_save_area_bytes); // windows __ andptr(rsp, -16); // align stack as required by ABI __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, JavaThread::check_special_condition_for_native_trans))); @@ -1096,7 +1116,7 @@ __ jcc(Assembler::notEqual, no_reguard); __ pusha(); // XXX only save smashed registers - __ mov(r12, rsp); // remember sp + __ mov(r12, rsp); // remember sp (can only use r12 if not using call_VM) __ subptr(rsp, frame::arg_reg_save_area_bytes); // windows __ andptr(rsp, -16); // align stack as required by ABI __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::reguard_yellow_pages))); @@ -1887,7 +1907,7 @@ assert(Interpreter::trace_code(t->tos_in()) != NULL, "entry must have been generated"); - __ mov(r12, rsp); // remember sp + __ mov(r12, rsp); // remember sp (can only use r12 if not using call_VM) __ andptr(rsp, -16); // align stack as required by ABI __ call(RuntimeAddress(Interpreter::trace_code(t->tos_in()))); __ mov(rsp, r12); // restore sp diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/templateTable_x86_32.cpp --- a/src/cpu/x86/vm/templateTable_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/templateTable_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateTable_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" #ifndef CC_INTERP #define __ _masm-> @@ -399,6 +409,23 @@ if (VerifyOops) { __ verify_oop(rax); } + + Label L_done, L_throw_exception; + const Register con_klass_temp = rcx; // same as Rcache + __ movptr(con_klass_temp, Address(rax, oopDesc::klass_offset_in_bytes())); + __ cmpptr(con_klass_temp, ExternalAddress((address)Universe::systemObjArrayKlassObj_addr())); + __ jcc(Assembler::notEqual, L_done); + __ cmpl(Address(rax, arrayOopDesc::length_offset_in_bytes()), 0); + __ jcc(Assembler::notEqual, L_throw_exception); + __ xorptr(rax, rax); + __ jmp(L_done); + + // Load the exception from the system-array which wraps it: + __ bind(L_throw_exception); + __ movptr(rax, Address(rax, arrayOopDesc::base_offset_in_bytes(T_OBJECT))); + __ jump(ExternalAddress(Interpreter::throw_exception_entry())); + + __ bind(L_done); } void TemplateTable::ldc2_w() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/templateTable_x86_32.hpp --- a/src/cpu/x86/vm/templateTable_x86_32.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/templateTable_x86_32.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_TEMPLATETABLE_X86_32_HPP +#define CPU_X86_VM_TEMPLATETABLE_X86_32_HPP + static void prepare_invoke(Register method, Register index, int byte_no); static void invokevirtual_helper(Register index, Register recv, Register flags); @@ -30,3 +33,5 @@ // Helpers static void index_check(Register array, Register index); static void index_check_without_pop(Register array, Register index); + +#endif // CPU_X86_VM_TEMPLATETABLE_X86_32_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/templateTable_x86_64.cpp --- a/src/cpu/x86/vm/templateTable_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/templateTable_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateTable_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" #ifndef CC_INTERP @@ -413,6 +423,25 @@ if (VerifyOops) { __ verify_oop(rax); } + + Label L_done, L_throw_exception; + const Register con_klass_temp = rcx; // same as cache + const Register array_klass_temp = rdx; // same as index + __ movptr(con_klass_temp, Address(rax, oopDesc::klass_offset_in_bytes())); + __ lea(array_klass_temp, ExternalAddress((address)Universe::systemObjArrayKlassObj_addr())); + __ cmpptr(con_klass_temp, Address(array_klass_temp, 0)); + __ jcc(Assembler::notEqual, L_done); + __ cmpl(Address(rax, arrayOopDesc::length_offset_in_bytes()), 0); + __ jcc(Assembler::notEqual, L_throw_exception); + __ xorptr(rax, rax); + __ jmp(L_done); + + // Load the exception from the system-array which wraps it: + __ bind(L_throw_exception); + __ movptr(rax, Address(rax, arrayOopDesc::base_offset_in_bytes(T_OBJECT))); + __ jump(ExternalAddress(Interpreter::throw_exception_entry())); + + __ bind(L_done); } void TemplateTable::ldc2_w() { @@ -2733,7 +2762,7 @@ // access constant pool cache entry __ get_cache_entry_pointer_at_bcp(c_rarg2, rcx, 1); __ verify_oop(rax); - __ mov(r12, rax); // save object pointer before call_VM() clobbers it + __ push_ptr(rax); // save object pointer before call_VM() clobbers it __ mov(c_rarg1, rax); // c_rarg1: object pointer copied above // c_rarg2: cache entry pointer @@ -2741,8 +2770,7 @@ CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_access), c_rarg1, c_rarg2); - __ mov(rax, r12); // restore object pointer - __ reinit_heapbase(); + __ pop_ptr(rax); // restore object pointer __ bind(L1); } @@ -3336,10 +3364,7 @@ JVM_CONSTANT_Class); __ jcc(Assembler::equal, quicked); __ push(atos); // save receiver for result, and for GC - __ mov(r12, rcx); // save rcx XXX call_VM(rax, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc)); - __ movq(rcx, r12); // restore rcx XXX - __ reinit_heapbase(); __ pop_ptr(rdx); // restore receiver __ jmpb(resolved); @@ -3393,11 +3418,9 @@ __ jcc(Assembler::equal, quicked); __ push(atos); // save receiver for result, and for GC - __ mov(r12, rcx); // save rcx call_VM(rax, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc)); - __ movq(rcx, r12); // restore rcx - __ reinit_heapbase(); __ pop_ptr(rdx); // restore receiver + __ verify_oop(rdx); __ load_klass(rdx, rdx); __ jmpb(resolved); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/templateTable_x86_64.hpp --- a/src/cpu/x86/vm/templateTable_x86_64.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/templateTable_x86_64.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_TEMPLATETABLE_X86_64_HPP +#define CPU_X86_VM_TEMPLATETABLE_X86_64_HPP + static void prepare_invoke(Register method, Register index, int byte_no); static void invokevirtual_helper(Register index, Register recv, Register flags); @@ -30,3 +33,5 @@ // Helpers static void index_check(Register array, Register index); static void index_check_without_pop(Register array, Register index); + +#endif // CPU_X86_VM_TEMPLATETABLE_X86_64_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/vmStructs_x86.hpp --- a/src/cpu/x86/vm/vmStructs_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/vmStructs_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_VMSTRUCTS_X86_HPP +#define CPU_X86_VM_VMSTRUCTS_X86_HPP + // These are the CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -60,3 +63,5 @@ /* NOTE that we do not use the last_entry() macro here; it is used */ /* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ /* be present there) */ + +#endif // CPU_X86_VM_VMSTRUCTS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/vm_version_x86.cpp --- a/src/cpu/x86/vm/vm_version_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/vm_version_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,21 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_x86.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/java.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "vm_version_x86.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif int VM_Version::_cpu; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/vm_version_x86.hpp --- a/src/cpu/x86/vm/vm_version_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/vm_version_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_VM_VERSION_X86_HPP +#define CPU_X86_VM_VM_VERSION_X86_HPP + +#include "runtime/globals_extension.hpp" +#include "runtime/vm_version.hpp" + class VM_Version : public Abstract_VM_Version { public: // cpuid result register layouts. These are all unions of a uint32_t @@ -446,6 +452,10 @@ static bool supports_lzcnt() { return (_cpuFeatures & CPU_LZCNT) != 0; } static bool supports_sse4a() { return (_cpuFeatures & CPU_SSE4A) != 0; } + // Intel Core and newer cpus have fast IDIV instruction (excluding Atom). + static bool has_fast_idiv() { return is_intel() && cpu_family() == 6 && + supports_sse3() && _model != 0x1C; } + static bool supports_compare_and_exchange() { return true; } static const char* cpu_features() { return _features_str; } @@ -516,3 +526,5 @@ return count >= 0 ? count : 1; } }; + +#endif // CPU_X86_VM_VM_VERSION_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/vmreg_x86.cpp --- a/src/cpu/x86/vm/vmreg_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/vmreg_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vmreg_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/vmreg_x86.hpp --- a/src/cpu/x86/vm/vmreg_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/vmreg_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_VMREG_X86_HPP +#define CPU_X86_VM_VMREG_X86_HPP + bool is_Register(); Register as_Register(); @@ -30,3 +33,5 @@ bool is_XMMRegister(); XMMRegister as_XMMRegister(); + +#endif // CPU_X86_VM_VMREG_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/vmreg_x86.inline.hpp --- a/src/cpu/x86/vm/vmreg_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/vmreg_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_VMREG_X86_INLINE_HPP +#define CPU_X86_VM_VMREG_X86_INLINE_HPP + inline VMReg RegisterImpl::as_VMReg() { if( this==noreg ) return VMRegImpl::Bad(); #ifdef AMD64 @@ -82,3 +85,5 @@ #endif // AMD64 return is_even(value()); } + +#endif // CPU_X86_VM_VMREG_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/vtableStubs_x86_32.cpp --- a/src/cpu/x86/vm/vtableStubs_x86_32.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/vtableStubs_x86_32.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/vtableStubs.hpp" +#include "interp_masm_x86_32.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // machine-dependent part of VtableStubs: create VtableStub of correct size and // initialize its code diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/vtableStubs_x86_64.cpp --- a/src/cpu/x86/vm/vtableStubs_x86_64.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/vtableStubs_x86_64.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/vtableStubs.hpp" +#include "interp_masm_x86_64.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // machine-dependent part of VtableStubs: create VtableStub of correct size and // initialize its code diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/x86_32.ad --- a/src/cpu/x86/vm/x86_32.ad Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/x86_32.ad Tue Nov 30 18:10:20 2010 -0800 @@ -1508,6 +1508,16 @@ return can_be_java_arg(reg); } +bool Matcher::use_asm_for_ldiv_by_con( jlong divisor ) { + // Use hardware integer DIV instruction when + // it is faster than a code which use multiply. + // Only when constant divisor fits into 32 bit + // (min_jint is excluded to get only correct + // positive 32 bit values from negative). + return VM_Version::has_fast_idiv() && + (divisor == (int)divisor && divisor != min_jint); +} + // Register for DIVI projection of divmodI RegMask Matcher::divI_proj_mask() { return EAX_REG_mask; @@ -1546,6 +1556,9 @@ return true; } } + if (opc == Op_ConL && (n->get_long() & 0xFFFFFFFF00000000LL) == 0LL) { + return true; + } return false; } @@ -2309,9 +2322,11 @@ enc_class move_long_big_shift_sign( eRegL dst, immI_32_63 cnt ) %{ emit_opcode( cbuf, 0x8B ); // Move emit_rm(cbuf, 0x3, $dst$$reg, HIGH_FROM_LOW($dst$$reg)); - emit_d8(cbuf,$primary); - emit_rm(cbuf, 0x3, $secondary, $dst$$reg); - emit_d8(cbuf,$cnt$$constant-32); + if( $cnt$$constant > 32 ) { // Shift, if not by zero + emit_d8(cbuf,$primary); + emit_rm(cbuf, 0x3, $secondary, $dst$$reg); + emit_d8(cbuf,$cnt$$constant-32); + } emit_d8(cbuf,$primary); emit_rm(cbuf, 0x3, $secondary, HIGH_FROM_LOW($dst$$reg)); emit_d8(cbuf,31); @@ -8842,6 +8857,144 @@ ins_pipe( pipe_slow ); %} +// Divide Register Long (no special case since divisor != -1) +instruct divL_eReg_imm32( eADXRegL dst, immL32 imm, eRegI tmp, eRegI tmp2, eFlagsReg cr ) %{ + match(Set dst (DivL dst imm)); + effect( TEMP tmp, TEMP tmp2, KILL cr ); + ins_cost(1000); + format %{ "MOV $tmp,abs($imm) # ldiv EDX:EAX,$imm\n\t" + "XOR $tmp2,$tmp2\n\t" + "CMP $tmp,EDX\n\t" + "JA,s fast\n\t" + "MOV $tmp2,EAX\n\t" + "MOV EAX,EDX\n\t" + "MOV EDX,0\n\t" + "JLE,s pos\n\t" + "LNEG EAX : $tmp2\n\t" + "DIV $tmp # unsigned division\n\t" + "XCHG EAX,$tmp2\n\t" + "DIV $tmp\n\t" + "LNEG $tmp2 : EAX\n\t" + "JMP,s done\n" + "pos:\n\t" + "DIV $tmp\n\t" + "XCHG EAX,$tmp2\n" + "fast:\n\t" + "DIV $tmp\n" + "done:\n\t" + "MOV EDX,$tmp2\n\t" + "NEG EDX:EAX # if $imm < 0" %} + ins_encode %{ + int con = (int)$imm$$constant; + assert(con != 0 && con != -1 && con != min_jint, "wrong divisor"); + int pcon = (con > 0) ? con : -con; + Label Lfast, Lpos, Ldone; + + __ movl($tmp$$Register, pcon); + __ xorl($tmp2$$Register,$tmp2$$Register); + __ cmpl($tmp$$Register, HIGH_FROM_LOW($dst$$Register)); + __ jccb(Assembler::above, Lfast); // result fits into 32 bit + + __ movl($tmp2$$Register, $dst$$Register); // save + __ movl($dst$$Register, HIGH_FROM_LOW($dst$$Register)); + __ movl(HIGH_FROM_LOW($dst$$Register),0); // preserve flags + __ jccb(Assembler::lessEqual, Lpos); // result is positive + + // Negative dividend. + // convert value to positive to use unsigned division + __ lneg($dst$$Register, $tmp2$$Register); + __ divl($tmp$$Register); + __ xchgl($dst$$Register, $tmp2$$Register); + __ divl($tmp$$Register); + // revert result back to negative + __ lneg($tmp2$$Register, $dst$$Register); + __ jmpb(Ldone); + + __ bind(Lpos); + __ divl($tmp$$Register); // Use unsigned division + __ xchgl($dst$$Register, $tmp2$$Register); + // Fallthrow for final divide, tmp2 has 32 bit hi result + + __ bind(Lfast); + // fast path: src is positive + __ divl($tmp$$Register); // Use unsigned division + + __ bind(Ldone); + __ movl(HIGH_FROM_LOW($dst$$Register),$tmp2$$Register); + if (con < 0) { + __ lneg(HIGH_FROM_LOW($dst$$Register), $dst$$Register); + } + %} + ins_pipe( pipe_slow ); +%} + +// Remainder Register Long (remainder fit into 32 bits) +instruct modL_eReg_imm32( eADXRegL dst, immL32 imm, eRegI tmp, eRegI tmp2, eFlagsReg cr ) %{ + match(Set dst (ModL dst imm)); + effect( TEMP tmp, TEMP tmp2, KILL cr ); + ins_cost(1000); + format %{ "MOV $tmp,abs($imm) # lrem EDX:EAX,$imm\n\t" + "CMP $tmp,EDX\n\t" + "JA,s fast\n\t" + "MOV $tmp2,EAX\n\t" + "MOV EAX,EDX\n\t" + "MOV EDX,0\n\t" + "JLE,s pos\n\t" + "LNEG EAX : $tmp2\n\t" + "DIV $tmp # unsigned division\n\t" + "MOV EAX,$tmp2\n\t" + "DIV $tmp\n\t" + "NEG EDX\n\t" + "JMP,s done\n" + "pos:\n\t" + "DIV $tmp\n\t" + "MOV EAX,$tmp2\n" + "fast:\n\t" + "DIV $tmp\n" + "done:\n\t" + "MOV EAX,EDX\n\t" + "SAR EDX,31\n\t" %} + ins_encode %{ + int con = (int)$imm$$constant; + assert(con != 0 && con != -1 && con != min_jint, "wrong divisor"); + int pcon = (con > 0) ? con : -con; + Label Lfast, Lpos, Ldone; + + __ movl($tmp$$Register, pcon); + __ cmpl($tmp$$Register, HIGH_FROM_LOW($dst$$Register)); + __ jccb(Assembler::above, Lfast); // src is positive and result fits into 32 bit + + __ movl($tmp2$$Register, $dst$$Register); // save + __ movl($dst$$Register, HIGH_FROM_LOW($dst$$Register)); + __ movl(HIGH_FROM_LOW($dst$$Register),0); // preserve flags + __ jccb(Assembler::lessEqual, Lpos); // result is positive + + // Negative dividend. + // convert value to positive to use unsigned division + __ lneg($dst$$Register, $tmp2$$Register); + __ divl($tmp$$Register); + __ movl($dst$$Register, $tmp2$$Register); + __ divl($tmp$$Register); + // revert remainder back to negative + __ negl(HIGH_FROM_LOW($dst$$Register)); + __ jmpb(Ldone); + + __ bind(Lpos); + __ divl($tmp$$Register); + __ movl($dst$$Register, $tmp2$$Register); + + __ bind(Lfast); + // fast path: src is positive + __ divl($tmp$$Register); + + __ bind(Ldone); + __ movl($dst$$Register, HIGH_FROM_LOW($dst$$Register)); + __ sarl(HIGH_FROM_LOW($dst$$Register), 31); // result sign + + %} + ins_pipe( pipe_slow ); +%} + // Integer Shift Instructions // Shift Left by one instruct shlI_eReg_1(eRegI dst, immI1 shift, eFlagsReg cr) %{ diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/x86/vm/x86_64.ad --- a/src/cpu/x86/vm/x86_64.ad Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/x86/vm/x86_64.ad Tue Nov 30 18:10:20 2010 -0800 @@ -2065,6 +2065,13 @@ return can_be_java_arg(reg); } +bool Matcher::use_asm_for_ldiv_by_con( jlong divisor ) { + // In 64 bit mode a code which use multiply when + // devisor is constant is faster than hardware + // DIV instruction (it uses MulHiL). + return false; +} + // Register for DIVI projection of divmodI RegMask Matcher::divI_proj_mask() { return INT_RAX_REG_mask; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/assembler_zero.cpp --- a/src/cpu/zero/vm/assembler_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/assembler_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/resourceArea.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/os.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#endif int AbstractAssembler::code_fill_byte() { return 0; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/assembler_zero.hpp --- a/src/cpu/zero/vm/assembler_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/assembler_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_ASSEMBLER_ZERO_HPP +#define CPU_ZERO_VM_ASSEMBLER_ZERO_HPP + // In normal, CPU-specific ports of HotSpot these two classes are used // for generating assembly language. We don't do any of this in zero, // of course, but we do sneak entry points around in CodeBuffers so we @@ -62,3 +65,5 @@ address ShouldNotCallThisStub(); address ShouldNotCallThisEntry(); + +#endif // CPU_ZERO_VM_ASSEMBLER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/assembler_zero.inline.hpp --- a/src/cpu/zero/vm/assembler_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/assembler_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,14 @@ * */ +#ifndef CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP +#define CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP + +#include "asm/assembler.inline.hpp" +#include "asm/codeBuffer.hpp" +#include "code/codeCache.hpp" +#include "runtime/handles.inline.hpp" + // This file is intentionally empty + +#endif // CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/bytecodeInterpreter_zero.cpp --- a/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,25 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cppInterpreter_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interp_masm_zero.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" #ifdef CC_INTERP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/bytecodeInterpreter_zero.hpp --- a/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP +#define CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP + // Platform specific for C++ based Interpreter #if defined(PPC) || defined(SPARC) || defined(IA64) @@ -146,3 +149,5 @@ ((VMJavaVal64*)(addr))->d) #define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \ ((VMJavaVal64*)(addr))->l) + +#endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp --- a/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP +#define CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP + // Inline interpreter functions for zero inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { @@ -299,3 +302,5 @@ inline jbyte BytecodeInterpreter::VMint2Byte(jint val) { return (jbyte) val; } + +#endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/bytecodes_zero.cpp --- a/src/cpu/zero/vm/bytecodes_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/bytecodes_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecodes_zero.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecodes.hpp" void Bytecodes::pd_initialize() { // No zero specific initialization diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/bytecodes_zero.hpp --- a/src/cpu/zero/vm/bytecodes_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/bytecodes_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_BYTECODES_ZERO_HPP +#define CPU_ZERO_VM_BYTECODES_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_BYTECODES_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/bytes_zero.hpp --- a/src/cpu/zero/vm/bytes_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/bytes_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,11 @@ * */ +#ifndef CPU_ZERO_VM_BYTES_ZERO_HPP +#define CPU_ZERO_VM_BYTES_ZERO_HPP + +#include "memory/allocation.hpp" + typedef union unaligned { u4 u; u2 us; @@ -160,5 +165,10 @@ #ifdef VM_LITTLE_ENDIAN // The following header contains the implementations of swap_u2, // swap_u4, and swap_u8 -#include "incls/_bytes_pd.inline.hpp.incl" +#ifdef TARGET_OS_ARCH_linux_zero +# include "bytes_linux_zero.inline.hpp" +#endif + #endif // VM_LITTLE_ENDIAN + +#endif // CPU_ZERO_VM_BYTES_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/codeBuffer_zero.hpp --- a/src/cpu/zero/vm/codeBuffer_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/codeBuffer_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,5 +23,10 @@ * */ +#ifndef CPU_ZERO_VM_CODEBUFFER_ZERO_HPP +#define CPU_ZERO_VM_CODEBUFFER_ZERO_HPP + private: void pd_initialize() {} + +#endif // CPU_ZERO_VM_CODEBUFFER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/copy_zero.hpp --- a/src/cpu/zero/vm/copy_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/copy_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_COPY_ZERO_HPP +#define CPU_ZERO_VM_COPY_ZERO_HPP + // Inline functions for memory copy and fill. static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { @@ -176,3 +179,5 @@ static void pd_zero_to_bytes(void* to, size_t count) { memset(to, 0, count); } + +#endif // CPU_ZERO_VM_COPY_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp --- a/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP +#define CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP + protected: MacroAssembler* assembler() const { return _masm; @@ -35,3 +38,5 @@ entry->set_entry_point(entry_point); return (address) entry; } + +#endif // CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,33 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cppInterpreter_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/cppInterpreter.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "stack_zero.inline.hpp" +#include "utilities/debug.hpp" +#ifdef SHARK +#include "shark/shark_globals.hpp" +#endif #ifdef CC_INTERP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/cppInterpreter_zero.hpp --- a/src/cpu/zero/vm/cppInterpreter_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/cppInterpreter_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP +#define CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP + protected: // Size of interpreter code const static int InterpreterCodeSize = 6 * K; @@ -41,3 +44,5 @@ private: // Fast result type determination static BasicType result_type_of(methodOop method); + +#endif // CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/debug_zero.cpp --- a/src/cpu/zero/vm/debug_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/debug_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_debug_zero.cpp.incl" +#include "precompiled.hpp" +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#include "runtime/frame.hpp" +#include "runtime/init.hpp" +#include "runtime/os.hpp" +#include "utilities/debug.hpp" +#include "utilities/top.hpp" void pd_ps(frame f) { ShouldNotCallThis(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/depChecker_zero.cpp --- a/src/cpu/zero/vm/depChecker_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/depChecker_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#include "precompiled.hpp" +#include "compiler/disassembler.hpp" +#include "depChecker_zero.hpp" +#include "runtime/hpi.hpp" + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/depChecker_zero.hpp --- a/src/cpu/zero/vm/depChecker_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/depChecker_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_DEPCHECKER_ZERO_HPP +#define CPU_ZERO_VM_DEPCHECKER_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_DEPCHECKER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/disassembler_zero.cpp --- a/src/cpu/zero/vm/disassembler_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/disassembler_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,6 @@ * */ +#include "precompiled.hpp" + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/disassembler_zero.hpp --- a/src/cpu/zero/vm/disassembler_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/disassembler_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP +#define CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP + static int pd_instruction_alignment() { return 1; } @@ -30,3 +33,5 @@ static const char* pd_cpu_opts() { return ""; } + +#endif // CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/dump_zero.cpp --- a/src/cpu/zero/vm/dump_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/dump_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_dump_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "memory/compactingPermGenGen.hpp" +#include "memory/generation.inline.hpp" +#include "memory/space.inline.hpp" void CompactingPermGenGen::generate_vtable_methods(void** vtbl_list, void** vtable, diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/entryFrame_zero.hpp --- a/src/cpu/zero/vm/entryFrame_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/entryFrame_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP +#define CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP + +#include "runtime/javaCalls.hpp" +#include "stack_zero.hpp" + // | ... | // +--------------------+ ------------------ // | parameter n-1 | low addresses @@ -63,3 +69,5 @@ char* valuebuf, int buflen) const; }; + +#endif // CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/entry_zero.hpp --- a/src/cpu/zero/vm/entry_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/entry_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP +#define CPU_ZERO_VM_ENTRY_ZERO_HPP + class ZeroEntry { public: ZeroEntry() { @@ -72,3 +75,5 @@ return byte_offset_of(ZeroEntry, _entry_point); } }; + +#endif // CPU_ZERO_VM_ENTRY_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/fakeStubFrame_zero.hpp --- a/src/cpu/zero/vm/fakeStubFrame_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/fakeStubFrame_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,11 @@ * */ +#ifndef CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP +#define CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP + +#include "stack_zero.hpp" + // | ... | // +--------------------+ ------------------ // | frame_type | low addresses @@ -51,3 +56,5 @@ char* valuebuf, int buflen) const {} }; + +#endif // CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/frame_zero.cpp --- a/src/cpu/zero/vm/frame_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/frame_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,26 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_frame_zero.cpp.incl" +#include "precompiled.hpp" +#include "code/scopeDesc.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/resourceArea.hpp" +#include "oops/markOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/monitorChunk.hpp" +#include "runtime/signature.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_zero.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#include "runtime/vframeArray.hpp" +#endif #ifdef ASSERT void RegisterMap::check_location_valid() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/frame_zero.hpp --- a/src/cpu/zero/vm/frame_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/frame_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_FRAME_ZERO_HPP +#define CPU_ZERO_VM_FRAME_ZERO_HPP + +#include "runtime/synchronizer.hpp" +#include "utilities/top.hpp" + // A frame represents a physical stack frame on the Zero stack. public: @@ -72,3 +78,5 @@ outputStream* st, char* buf, int buflen) const; + +#endif // CPU_ZERO_VM_FRAME_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/frame_zero.inline.hpp --- a/src/cpu/zero/vm/frame_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/frame_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP +#define CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP + // Constructors inline frame::frame() { @@ -149,3 +152,5 @@ else return (intptr_t *) -1; } + +#endif // CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/globalDefinitions_zero.hpp --- a/src/cpu/zero/vm/globalDefinitions_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/globalDefinitions_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP +#define CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP + #include + +#endif // CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/globals_zero.hpp --- a/src/cpu/zero/vm/globals_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/globals_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_GLOBALS_ZERO_HPP +#define CPU_ZERO_VM_GLOBALS_ZERO_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Set the default values for platform dependent flags used by the // runtime system. See globals.hpp for details of what they do. @@ -45,3 +51,7 @@ define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); + +define_pd_global(bool, UseMembar, false); + +#endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/icBuffer_zero.cpp --- a/src/cpu/zero/vm/icBuffer_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/icBuffer_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icBuffer_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "code/icBuffer.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_zero.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" int InlineCacheBuffer::ic_stub_code_size() { // NB set this once the functions below are implemented diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/icache_zero.cpp --- a/src/cpu/zero/vm/icache_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/icache_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icache_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "runtime/icache.hpp" void ICacheStubGenerator::generate_icache_flush( ICache::flush_icache_stub_t* flush_icache_stub) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/icache_zero.hpp --- a/src/cpu/zero/vm/icache_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/icache_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_ICACHE_ZERO_HPP +#define CPU_ZERO_VM_ICACHE_ZERO_HPP + // Interface for updating the instruction cache. Whenever the VM // modifies code, part of the processor instruction cache potentially // has to be flushed. This implementation is empty: Zero never deals @@ -34,3 +37,5 @@ static void invalidate_word(address addr) {} static void invalidate_range(address start, int nbytes) {} }; + +#endif // CPU_ZERO_VM_ICACHE_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/interp_masm_zero.cpp --- a/src/cpu/zero/vm/interp_masm_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/interp_masm_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,22 @@ * */ +#include "precompiled.hpp" +#include "interp_masm_zero.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/interp_masm_zero.hpp --- a/src/cpu/zero/vm/interp_masm_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/interp_masm_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_INTERP_MASM_ZERO_HPP +#define CPU_ZERO_VM_INTERP_MASM_ZERO_HPP + +#include "assembler_zero.inline.hpp" +#include "interpreter/invocationCounter.hpp" + // This file specializes the assember with interpreter-specific macros class InterpreterMacroAssembler : public MacroAssembler { @@ -36,3 +42,5 @@ ShouldNotCallThis(); } }; + +#endif // CPU_ZERO_VM_INTERP_MASM_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/interpreterFrame_zero.hpp --- a/src/cpu/zero/vm/interpreterFrame_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/interpreterFrame_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,14 @@ * */ +#ifndef CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP +#define CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP + +#include "interpreter/bytecodeInterpreter.hpp" +#include "oops/methodOop.hpp" +#include "runtime/thread.hpp" +#include "stack_zero.hpp" + #ifdef CC_INTERP // | ... | // +--------------------+ ------------------ @@ -71,3 +79,5 @@ int buflen) const; }; #endif // CC_INTERP + +#endif // CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/interpreterGenerator_zero.hpp --- a/src/cpu/zero/vm/interpreterGenerator_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/interpreterGenerator_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP +#define CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP + // Generation of Interpreter // friend class AbstractInterpreterGenerator; @@ -35,3 +38,5 @@ address generate_empty_entry(); address generate_accessor_entry(); address generate_method_handle_entry(); + +#endif // CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/interpreterRT_zero.cpp --- a/src/cpu/zero/vm/interpreterRT_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/interpreterRT_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreterRT_zero.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/signature.hpp" +#include "stack_zero.inline.hpp" void InterpreterRuntime::SignatureHandlerGeneratorBase::pass_int() { push(T_INT); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/interpreterRT_zero.hpp --- a/src/cpu/zero/vm/interpreterRT_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/interpreterRT_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,11 @@ * */ +#ifndef CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP +#define CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP + +#include "memory/allocation.hpp" + class SignatureHandler { public: static SignatureHandler *from_handlerAddr(address handlerAddr) { @@ -125,3 +130,5 @@ return (SignatureHandler *) cif(); } }; + +#endif // CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/interpreter_zero.cpp --- a/src/cpu/zero/vm/interpreter_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/interpreter_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif address AbstractInterpreterGenerator::generate_slow_signature_handler() { _masm->advance(1); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/interpreter_zero.hpp --- a/src/cpu/zero/vm/interpreter_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/interpreter_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_INTERPRETER_ZERO_HPP +#define CPU_ZERO_VM_INTERPRETER_ZERO_HPP + public: static void invoke_method(methodOop method, address entry_point, TRAPS) { ((ZeroEntry *) entry_point)->invoke(method, THREAD); @@ -47,3 +50,5 @@ assert(i <= 0, "local direction already negated"); return stackElementWords * i; } + +#endif // CPU_ZERO_VM_INTERPRETER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/javaFrameAnchor_zero.hpp --- a/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP +#define CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP + private: ZeroFrame* volatile _last_Java_fp; @@ -89,3 +92,5 @@ static ByteSize last_Java_fp_offset() { return byte_offset_of(JavaFrameAnchor, _last_Java_fp); } + +#endif // CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/jniFastGetField_zero.cpp --- a/src/cpu/zero/vm/jniFastGetField_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/jniFastGetField_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_jniFastGetField_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/safepoint.hpp" address JNI_FastGetField::generate_fast_get_boolean_field() { return (address) -1; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/jniTypes_zero.hpp --- a/src/cpu/zero/vm/jniTypes_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/jniTypes_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef CPU_ZERO_VM_JNITYPES_ZERO_HPP +#define CPU_ZERO_VM_JNITYPES_ZERO_HPP + +#include "memory/allocation.hpp" +#include "oops/oop.hpp" +#include "prims/jni.h" + // This file holds platform-dependent routines used to write primitive jni // types to the array of arguments passed into JavaCalls::call @@ -106,3 +113,5 @@ #endif }; + +#endif // CPU_ZERO_VM_JNITYPES_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/jni_zero.h --- a/src/cpu/zero/vm/jni_zero.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/jni_zero.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/methodHandles_zero.cpp --- a/src/cpu/zero/vm/methodHandles_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/methodHandles_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_methodHandles_zero.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.inline.hpp" +#include "prims/methodHandles.hpp" int MethodHandles::adapter_conversion_ops_supported_mask() { ShouldNotCallThis(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/nativeInst_zero.cpp --- a/src/cpu/zero/vm/nativeInst_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/nativeInst_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_nativeInst_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_zero.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/ostream.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif // This method is called by nmethod::make_not_entrant_or_zombie to // insert a jump to SharedRuntime::get_handle_wrong_method_stub() diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/nativeInst_zero.hpp --- a/src/cpu/zero/vm/nativeInst_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/nativeInst_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,15 @@ * */ +#ifndef CPU_ZERO_VM_NATIVEINST_ZERO_HPP +#define CPU_ZERO_VM_NATIVEINST_ZERO_HPP + +#include "asm/assembler.hpp" +#include "memory/allocation.hpp" +#include "runtime/icache.hpp" +#include "runtime/os.hpp" +#include "utilities/top.hpp" + // We have interfaces for the following instructions: // - NativeInstruction // - - NativeCall @@ -183,3 +192,5 @@ inline NativeGeneralJump* nativeGeneralJump_at(address address) { ShouldNotCallThis(); } + +#endif // CPU_ZERO_VM_NATIVEINST_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/registerMap_zero.hpp --- a/src/cpu/zero/vm/registerMap_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/registerMap_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_ZERO_VM_REGISTERMAP_ZERO_HPP +#define CPU_ZERO_VM_REGISTERMAP_ZERO_HPP + // machine-dependent implemention for register maps friend class frame; @@ -37,3 +40,5 @@ void pd_clear() {} void pd_initialize() {} void pd_initialize_from(const RegisterMap* map) {} + +#endif // CPU_ZERO_VM_REGISTERMAP_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/register_definitions_zero.cpp --- a/src/cpu/zero/vm/register_definitions_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/register_definitions_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,10 @@ * */ +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/register.hpp" +#include "interp_masm_zero.hpp" +#include "register_zero.hpp" + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/register_zero.cpp --- a/src/cpu/zero/vm/register_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/register_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register_zero.cpp.incl" +#include "precompiled.hpp" +#include "register_zero.hpp" const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers; const int ConcreteRegisterImpl::max_fpr = diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/register_zero.hpp --- a/src/cpu/zero/vm/register_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/register_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_REGISTER_ZERO_HPP +#define CPU_ZERO_VM_REGISTER_ZERO_HPP + +#include "asm/register.hpp" +#include "vm_version_zero.hpp" + class VMRegImpl; typedef VMRegImpl* VMReg; @@ -108,3 +114,5 @@ }; CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1)); + +#endif // CPU_ZERO_VM_REGISTER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/relocInfo_zero.cpp --- a/src/cpu/zero/vm/relocInfo_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/relocInfo_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_relocInfo_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.inline.hpp" +#include "assembler_zero.inline.hpp" +#include "code/relocInfo.hpp" +#include "nativeInst_zero.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/safepoint.hpp" void Relocation::pd_set_data_value(address x, intptr_t o) { ShouldNotCallThis(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/relocInfo_zero.hpp --- a/src/cpu/zero/vm/relocInfo_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/relocInfo_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_RELOCINFO_ZERO_HPP +#define CPU_ZERO_VM_RELOCINFO_ZERO_HPP + // machine-dependent parts of class relocInfo private: enum { @@ -30,3 +33,5 @@ offset_unit = 1, format_width = 1 }; + +#endif // CPU_ZERO_VM_RELOCINFO_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/sharedRuntime_zero.cpp --- a/src/cpu/zero/vm/sharedRuntime_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/sharedRuntime_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sharedRuntime_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "code/debugInfoRec.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_zero.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif +#ifdef SHARK +#include "compiler/compileBroker.hpp" +#include "shark/sharkCompiler.hpp" +#endif DeoptimizationBlob *SharedRuntime::_deopt_blob; SafepointBlob *SharedRuntime::_polling_page_safepoint_handler_blob; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/sharkFrame_zero.hpp --- a/src/cpu/zero/vm/sharkFrame_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/sharkFrame_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_SHARKFRAME_ZERO_HPP +#define CPU_ZERO_VM_SHARKFRAME_ZERO_HPP + +#include "oops/methodOop.hpp" +#include "stack_zero.hpp" + // | ... | // +--------------------+ ------------------ // | stack slot n-1 | low addresses @@ -77,3 +83,5 @@ char* valuebuf, int buflen) const; }; + +#endif // CPU_ZERO_VM_SHARKFRAME_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/shark_globals_zero.hpp --- a/src/cpu/zero/vm/shark_globals_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/shark_globals_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP +#define CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP + // Set the default values for platform dependent flags used by the // Shark compiler. See globals.hpp for details of what they do. @@ -60,3 +63,5 @@ define_pd_global(bool, NeverActAsServerClassMachine, true ); define_pd_global(uint64_t, MaxRAM, 1ULL*G); define_pd_global(bool, CICompileOSR, true ); + +#endif // CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/stack_zero.cpp --- a/src/cpu/zero/vm/stack_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/stack_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stack_zero.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "stack_zero.hpp" +#include "stack_zero.inline.hpp" int ZeroStack::suggest_size(Thread *thread) const { assert(needs_setup(), "already set up"); diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/stack_zero.hpp --- a/src/cpu/zero/vm/stack_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/stack_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,11 @@ * */ +#ifndef CPU_ZERO_VM_STACK_ZERO_HPP +#define CPU_ZERO_VM_STACK_ZERO_HPP + +#include "utilities/sizes.hpp" + class ZeroStack { private: intptr_t *_base; // the last available word @@ -217,3 +222,5 @@ char* fieldbuf, int buflen) const; }; + +#endif // CPU_ZERO_VM_STACK_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/stack_zero.inline.hpp --- a/src/cpu/zero/vm/stack_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/stack_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_STACK_ZERO_INLINE_HPP +#define CPU_ZERO_VM_STACK_ZERO_INLINE_HPP + +#include "runtime/thread.hpp" +#include "stack_zero.hpp" + // This function should match SharkStack::CreateStackOverflowCheck inline void ZeroStack::overflow_check(int required_words, TRAPS) { // Check the Zero stack @@ -46,3 +52,5 @@ int stack_free = thread->stack_size() - stack_used; return stack_free - shadow_pages_size(); } + +#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/stubGenerator_zero.cpp --- a/src/cpu/zero/vm/stubGenerator_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/stubGenerator_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,29 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubGenerator_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_zero.hpp" +#include "oops/instanceOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "stack_zero.inline.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // Declaration and definition of StubGenerator (no .hpp file). // For a more detailed description of the stub routine structure diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/stubRoutines_zero.cpp --- a/src/cpu/zero/vm/stubRoutines_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/stubRoutines_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_zero.cpp.incl" +#include "precompiled.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif #ifdef IA32 address StubRoutines::x86::_call_stub_compiled_return = NULL; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/stubRoutines_zero.hpp --- a/src/cpu/zero/vm/stubRoutines_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/stubRoutines_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_STUBROUTINES_ZERO_HPP +#define CPU_ZERO_VM_STUBROUTINES_ZERO_HPP + // This file holds the platform specific parts of the StubRoutines // definition. See stubRoutines.hpp for a description on how to // extend it. @@ -53,3 +56,5 @@ static address _call_stub_compiled_return; }; #endif // IA32 + +#endif // CPU_ZERO_VM_STUBROUTINES_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp --- a/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP +#define CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/templateInterpreter_zero.cpp --- a/src/cpu/zero/vm/templateInterpreter_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/templateInterpreter_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,27 @@ * */ +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/templateInterpreter_zero.hpp --- a/src/cpu/zero/vm/templateInterpreter_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/templateInterpreter_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP +#define CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/templateTable_zero.cpp --- a/src/cpu/zero/vm/templateTable_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/templateTable_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,17 @@ * */ +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/templateTable_zero.hpp --- a/src/cpu/zero/vm/templateTable_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/templateTable_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP +#define CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/vmStructs_zero.hpp --- a/src/cpu/zero/vm/vmStructs_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/vmStructs_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP +#define CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP + // These are the CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -50,3 +53,5 @@ /* NOTE that we do not use the last_entry() macro here; it is used */ /* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ /* be present there) */ + +#endif // CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/vm_version_zero.cpp --- a/src/cpu/zero/vm/vm_version_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/vm_version_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,14 @@ * */ +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/java.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "vm_version_zero.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/vm_version_zero.hpp --- a/src/cpu/zero/vm/vm_version_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/vm_version_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,9 +23,17 @@ * */ +#ifndef CPU_ZERO_VM_VM_VERSION_ZERO_HPP +#define CPU_ZERO_VM_VM_VERSION_ZERO_HPP + +#include "runtime/globals_extension.hpp" +#include "runtime/vm_version.hpp" + class VM_Version : public Abstract_VM_Version { public: static const char* cpu_features() { return ""; } }; + +#endif // CPU_ZERO_VM_VM_VERSION_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/vmreg_zero.cpp --- a/src/cpu/zero/vm/vmreg_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/vmreg_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vmreg_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" void VMRegImpl::set_regName() { int i = 0; diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/vmreg_zero.hpp --- a/src/cpu/zero/vm/vmreg_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/vmreg_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_ZERO_VM_VMREG_ZERO_HPP +#define CPU_ZERO_VM_VMREG_ZERO_HPP + bool is_Register(); Register as_Register(); bool is_FloatRegister(); FloatRegister as_FloatRegister(); + +#endif // CPU_ZERO_VM_VMREG_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/vmreg_zero.inline.hpp --- a/src/cpu/zero/vm/vmreg_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/vmreg_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP +#define CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP + inline VMReg RegisterImpl::as_VMReg() { return VMRegImpl::as_VMReg(encoding()); } @@ -30,3 +33,5 @@ inline VMReg FloatRegisterImpl::as_VMReg() { return VMRegImpl::as_VMReg(encoding() + ConcreteRegisterImpl::max_gpr); } + +#endif // CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/cpu/zero/vm/vtableStubs_zero.cpp --- a/src/cpu/zero/vm/vtableStubs_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/cpu/zero/vm/vtableStubs_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "code/vtableStubs.hpp" +#include "interp_masm_zero.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_zero.inline.hpp" +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif VtableStub* VtableStubs::create_vtable_stub(int vtable_index) { ShouldNotCallThis(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/launcher/java.c --- a/src/os/linux/launcher/java.c Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/launcher/java.c Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/launcher/java.h --- a/src/os/linux/launcher/java.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/launcher/java.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/launcher/java_md.c --- a/src/os/linux/launcher/java_md.c Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/launcher/java_md.c Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/launcher/java_md.h --- a/src/os/linux/launcher/java_md.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/launcher/java_md.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/attachListener_linux.cpp --- a/src/os/linux/vm/attachListener_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/attachListener_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_attachListener_linux.cpp.incl" +#include "precompiled.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/os.hpp" +#include "services/attachListener.hpp" +#include "services/dtraceAttacher.hpp" #include #include @@ -176,10 +179,10 @@ int n = snprintf(path, UNIX_PATH_MAX, "%s/.java_pid%d", os::get_temp_directory(), os::current_process_id()); - if (n <= (int)UNIX_PATH_MAX) { + if (n < (int)UNIX_PATH_MAX) { n = snprintf(initial_path, UNIX_PATH_MAX, "%s.tmp", path); } - if (n > (int)UNIX_PATH_MAX) { + if (n >= (int)UNIX_PATH_MAX) { return -1; } diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/c1_globals_linux.hpp --- a/src/os/linux/vm/c1_globals_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/c1_globals_linux.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_LINUX_VM_C1_GLOBALS_LINUX_HPP +#define OS_LINUX_VM_C1_GLOBALS_LINUX_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // client compiler. (see c1_globals.hpp) // + +#endif // OS_LINUX_VM_C1_GLOBALS_LINUX_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/c2_globals_linux.hpp --- a/src/os/linux/vm/c2_globals_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/c2_globals_linux.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_LINUX_VM_C2_GLOBALS_LINUX_HPP +#define OS_LINUX_VM_C2_GLOBALS_LINUX_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // server compiler. (see c2_globals.hpp) // + +#endif // OS_LINUX_VM_C2_GLOBALS_LINUX_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/chaitin_linux.cpp --- a/src/os/linux/vm/chaitin_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/chaitin_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_chaitin_linux.cpp.incl" +#include "precompiled.hpp" +#include "opto/chaitin.hpp" +#include "opto/machnode.hpp" void PhaseRegAlloc::pd_preallocate_hook() { // no action diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/dtraceJSDT_linux.cpp --- a/src/os/linux/vm/dtraceJSDT_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/dtraceJSDT_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_dtraceJSDT_linux.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "code/codeBlob.hpp" +#include "memory/allocation.hpp" +#include "prims/jvm.h" +#include "runtime/dtraceJSDT.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/os.hpp" +#include "runtime/signature.hpp" +#include "utilities/globalDefinitions.hpp" int DTraceJSDT::pd_activate( void* baseAddress, jstring module, diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/globals_linux.hpp --- a/src/os/linux/vm/globals_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/globals_linux.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_GLOBALS_LINUX_HPP +#define OS_LINUX_VM_GLOBALS_LINUX_HPP + // // Defines Linux specific flags. They are not available on other platforms. // @@ -42,3 +45,5 @@ define_pd_global(bool, UseLargePagesIndividualAllocation, false); define_pd_global(bool, UseOSErrorReporting, false); define_pd_global(bool, UseThreadPriorities, true) ; + +#endif // OS_LINUX_VM_GLOBALS_LINUX_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/hpi_linux.cpp --- a/src/os/linux/vm/hpi_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/hpi_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_hpi_linux.cpp.incl" +#include "precompiled.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/os.hpp" # include # include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/hpi_linux.hpp --- a/src/os/linux/vm/hpi_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/hpi_linux.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_HPI_LINUX_HPP +#define OS_LINUX_VM_HPI_LINUX_HPP + // // Because the interruptible IO has been dropped for HotSpot/Linux, // the following HPI interface is very different from HotSparc. @@ -222,3 +225,5 @@ // Reconciliation History // hpi_solaris.hpp 1.9 99/08/30 16:31:23 // End + +#endif // OS_LINUX_VM_HPI_LINUX_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/interfaceSupport_linux.hpp --- a/src/os/linux/vm/interfaceSupport_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/interfaceSupport_linux.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP +#define OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP + // Contains inlined functions for class InterfaceSupport static inline void serialize_memory(JavaThread *thread) { os::write_memory_serialize_page(thread); } + +#endif // OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/jsig.c --- a/src/os/linux/vm/jsig.c Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/jsig.c Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/jvm_linux.cpp --- a/src/os/linux/vm/jvm_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/jvm_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_jvm_linux.cpp.incl" +#include "precompiled.hpp" +#include "prims/jvm.h" +#include "runtime/interfaceSupport.hpp" +#include "runtime/osThread.hpp" #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/jvm_linux.h --- a/src/os/linux/vm/jvm_linux.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/jvm_linux.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_JVM_LINUX_H +#define OS_LINUX_VM_JVM_LINUX_H + /* // HotSpot integration note: // @@ -95,3 +98,5 @@ // Reconciliation History // jvm_solaris.h 1.6 99/06/22 16:38:47 // End + +#endif // OS_LINUX_VM_JVM_LINUX_H diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/mutex_linux.cpp --- a/src/os/linux/vm/mutex_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/mutex_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutex_linux.cpp.incl" +#include "precompiled.hpp" +#include "mutex_linux.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/mutex.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/events.hpp" // put OS-includes here # include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/mutex_linux.inline.hpp --- a/src/os/linux/vm/mutex_linux.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/mutex_linux.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,16 @@ * */ +#ifndef OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP +#define OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP + +#include "os_linux.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "thread_linux.inline.hpp" + // Reconciliation History // mutex_solaris.inline.hpp 1.5 99/06/22 16:38:49 // End + +#endif // OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/objectMonitor_linux.cpp --- a/src/os/linux/vm/objectMonitor_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ - -/* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/objectMonitor_linux.hpp --- a/src/os/linux/vm/objectMonitor_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - - private: diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/objectMonitor_linux.inline.hpp --- a/src/os/linux/vm/objectMonitor_linux.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/osThread_linux.cpp --- a/src/os/linux/vm/osThread_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/osThread_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,23 @@ * */ -// do not include precompiled header file -# include "incls/_osThread_linux.cpp.incl" +// no precompiled headers +#include "runtime/atomic.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" +#include "runtime/osThread.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +#endif void OSThread::pd_initialize() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/osThread_linux.hpp --- a/src/os/linux/vm/osThread_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/osThread_linux.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_OSTHREAD_LINUX_HPP +#define OS_LINUX_VM_OSTHREAD_LINUX_HPP + private: int _thread_type; @@ -139,3 +142,5 @@ // Reconciliation History // osThread_solaris.hpp 1.24 99/08/27 13:11:54 // End + +#endif // OS_LINUX_VM_OSTHREAD_LINUX_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/os_linux.cpp --- a/src/os/linux/vm/os_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/os_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,8 +24,64 @@ # define __STDC_FORMAT_MACROS -// do not include precompiled header file -# include "incls/_os_linux.cpp.incl" +// no precompiled headers +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/compileBroker.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_linux.h" +#include "memory/allocation.inline.hpp" +#include "memory/filemap.hpp" +#include "mutex_linux.inline.hpp" +#include "oops/oop.inline.hpp" +#include "os_share_linux.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/globals.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/osThread.hpp" +#include "runtime/perfMemory.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/statSampler.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/timer.hpp" +#include "services/attachListener.hpp" +#include "services/runtimeService.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/defaultStream.hpp" +#include "utilities/events.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/vmError.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +# include "nativeInst_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +# include "nativeInst_zero.hpp" +#endif +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // put OS-includes here # include @@ -827,8 +883,10 @@ switch (thr_type) { case os::java_thread: - // Java threads use ThreadStackSize which default value can be changed with the flag -Xss - if (JavaThread::stack_size_at_create() > 0) stack_size = JavaThread::stack_size_at_create(); + // Java threads use ThreadStackSize which default value can be + // changed with the flag -Xss + assert (JavaThread::stack_size_at_create() > 0, "this should be set"); + stack_size = JavaThread::stack_size_at_create(); break; case os::compiler_thread: if (CompilerThreadStackSize > 0) { @@ -3922,12 +3980,21 @@ Linux::signal_sets_init(); Linux::install_signal_handlers(); + // Check minimum allowable stack size for thread creation and to initialize + // the java system classes, including StackOverflowError - depends on page + // size. Add a page for compiler2 recursion in main thread. + // Add in 2*BytesPerWord times page size to account for VM stack during + // class initialization depending on 32 or 64 bit VM. + os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed, + (size_t)(StackYellowPages+StackRedPages+StackShadowPages+ + 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size()); + size_t threadStackSizeInBytes = ThreadStackSize * K; if (threadStackSizeInBytes != 0 && - threadStackSizeInBytes < Linux::min_stack_allowed) { + threadStackSizeInBytes < os::Linux::min_stack_allowed) { tty->print_cr("\nThe stack size specified is too small, " "Specify at least %dk", - Linux::min_stack_allowed / K); + os::Linux::min_stack_allowed/ K); return JNI_ERR; } @@ -4839,7 +4906,7 @@ // Next, demultiplex/decode time arguments timespec absTime; - if (time < 0) { // don't wait at all + if (time < 0 || (isAbsolute && time == 0) ) { // don't wait at all return; } if (time > 0) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/os_linux.hpp --- a/src/os/linux/vm/os_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/os_linux.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_OS_LINUX_HPP +#define OS_LINUX_VM_OS_LINUX_HPP + // Linux_OS defines the interface to Linux operating systems /* pthread_getattr_np comes with LinuxThreads-0.9-7 on RedHat 7.1 */ @@ -328,3 +331,5 @@ assert_status(status == 0, status, "mutex_init"); } } ; + +#endif // OS_LINUX_VM_OS_LINUX_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/os_linux.inline.hpp --- a/src/os/linux/vm/os_linux.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/os_linux.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,24 @@ * */ +#ifndef OS_LINUX_VM_OS_LINUX_INLINE_HPP +#define OS_LINUX_VM_OS_LINUX_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "atomic_linux_x86.inline.hpp" +# include "orderAccess_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_sparc +# include "atomic_linux_sparc.inline.hpp" +# include "orderAccess_linux_sparc.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_zero +# include "atomic_linux_zero.inline.hpp" +# include "orderAccess_linux_zero.inline.hpp" +#endif + inline void* os::thread_local_storage_at(int index) { return pthread_getspecific((pthread_key_t)index); } @@ -123,3 +141,5 @@ inline bool os::numa_has_static_binding() { return true; } inline bool os::numa_has_group_homing() { return false; } + +#endif // OS_LINUX_VM_OS_LINUX_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/os_share_linux.hpp --- a/src/os/linux/vm/os_share_linux.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/os_share_linux.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_OS_SHARE_LINUX_HPP +#define OS_LINUX_VM_OS_SHARE_LINUX_HPP + // misc void signalHandler(int, siginfo_t*, ucontext_t*); void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, address pc, address adjusted_pc); @@ -30,3 +33,5 @@ #endif #define PROCFILE_LENGTH 128 + +#endif // OS_LINUX_VM_OS_SHARE_LINUX_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/perfMemory_linux.cpp --- a/src/os/linux/vm/perfMemory_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/perfMemory_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,15 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_perfMemory_linux.cpp.incl" +#include "precompiled.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "os_linux.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/perfMemory.hpp" +#include "utilities/exceptions.hpp" // put OS-includes here # include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/stubRoutines_linux.cpp --- a/src/os/linux/vm/stubRoutines_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/stubRoutines_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_linux.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" + diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/threadCritical_linux.cpp --- a/src/os/linux/vm/threadCritical_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/threadCritical_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadCritical_linux.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadCritical.hpp" +#include "thread_linux.inline.hpp" // put OS-includes here # include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/thread_linux.inline.hpp --- a/src/os/linux/vm/thread_linux.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/thread_linux.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,31 @@ * */ +#ifndef OS_LINUX_VM_THREAD_LINUX_INLINE_HPP +#define OS_LINUX_VM_THREAD_LINUX_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/prefetch.hpp" +#include "runtime/thread.hpp" +#include "runtime/threadLocalStorage.hpp" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "atomic_linux_x86.inline.hpp" +# include "orderAccess_linux_x86.inline.hpp" +# include "prefetch_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_sparc +# include "atomic_linux_sparc.inline.hpp" +# include "orderAccess_linux_sparc.inline.hpp" +# include "prefetch_linux_sparc.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_zero +# include "atomic_linux_zero.inline.hpp" +# include "orderAccess_linux_zero.inline.hpp" +# include "prefetch_linux_zero.inline.hpp" +#endif + // Contains inlined functions for class Thread and ThreadLocalStorage inline void ThreadLocalStorage::pd_invalidate_all() {} // nothing to do + +#endif // OS_LINUX_VM_THREAD_LINUX_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/linux/vm/vmError_linux.cpp --- a/src/os/linux/vm/vmError_linux.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/linux/vm/vmError_linux.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmError_linux.cpp.incl" +#include "precompiled.hpp" +#include "runtime/arguments.hpp" +#include "runtime/os.hpp" +#include "runtime/thread.hpp" +#include "utilities/vmError.hpp" #include #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/dtrace/generateJvmOffsets.cpp --- a/src/os/solaris/dtrace/generateJvmOffsets.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/dtrace/generateJvmOffsets.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -38,9 +38,22 @@ #define protected public #include -#include "incls/_precompiled.incl" -#include "incls/_vmStructs.cpp.incl" - +#include "code/codeBlob.hpp" +#include "code/nmethod.hpp" +#include "code/pcDesc.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/heap.hpp" +#include "memory/memRegion.hpp" +#include "memory/universe.hpp" +#include "oops/constMethodOop.hpp" +#include "oops/klass.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/virtualspace.hpp" +#include "runtime/vmStructs.hpp" +#include "utilities/accessFlags.hpp" +#include "utilities/globalDefinitions.hpp" #ifdef COMPILER1 #if defined(DEBUG) || defined(FASTDEBUG) diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/dtrace/generateJvmOffsets.h --- a/src/os/solaris/dtrace/generateJvmOffsets.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/dtrace/generateJvmOffsets.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H +#define OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H + #include #include @@ -36,3 +39,5 @@ void gen_prologue(GEN_variant gen_var); void gen_epilogue(GEN_variant gen_var); } + +#endif // OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/dtrace/generateJvmOffsetsMain.c --- a/src/os/solaris/dtrace/generateJvmOffsetsMain.c Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/dtrace/generateJvmOffsetsMain.c Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/dtrace/jvm_dtrace.c --- a/src/os/solaris/dtrace/jvm_dtrace.c Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/dtrace/jvm_dtrace.c Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/dtrace/jvm_dtrace.h --- a/src/os/solaris/dtrace/jvm_dtrace.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/dtrace/jvm_dtrace.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/dtrace/libjvm_db.h --- a/src/os/solaris/dtrace/libjvm_db.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/dtrace/libjvm_db.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_DTRACE_LIBJVM_DB_H +#define OS_SOLARIS_DTRACE_LIBJVM_DB_H + #include #ifdef __cplusplus @@ -61,3 +64,5 @@ #ifdef __cplusplus } /* extern "C" */ #endif /* __cplusplus */ + +#endif // OS_SOLARIS_DTRACE_LIBJVM_DB_H diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/launcher/java.c --- a/src/os/solaris/launcher/java.c Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/launcher/java.c Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/launcher/java.h --- a/src/os/solaris/launcher/java.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/launcher/java.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/launcher/java_md.c --- a/src/os/solaris/launcher/java_md.c Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/launcher/java_md.c Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/launcher/java_md.h --- a/src/os/solaris/launcher/java_md.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/launcher/java_md.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/attachListener_solaris.cpp --- a/src/os/solaris/vm/attachListener_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/attachListener_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_attachListener_solaris.cpp.incl" +#include "precompiled.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/os.hpp" +#include "services/attachListener.hpp" +#include "services/dtraceAttacher.hpp" #include #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/c1_globals_solaris.hpp --- a/src/os/solaris/vm/c1_globals_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/c1_globals_solaris.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP +#define OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // client compiler. (see c1_globals.hpp) // + +#endif // OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/c2_globals_solaris.hpp --- a/src/os/solaris/vm/c2_globals_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/c2_globals_solaris.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP +#define OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // server compiler. (see c2_globals.hpp) // + +#endif // OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/chaitin_solaris.cpp --- a/src/os/solaris/vm/chaitin_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/chaitin_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_chaitin_solaris.cpp.incl" +#include "precompiled.hpp" +#include "opto/chaitin.hpp" +#include "opto/machnode.hpp" void PhaseRegAlloc::pd_preallocate_hook() { // no action diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/dtraceJSDT_solaris.cpp --- a/src/os/solaris/vm/dtraceJSDT_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/dtraceJSDT_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_dtraceJSDT_solaris.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "code/codeBlob.hpp" +#include "memory/allocation.hpp" +#include "prims/jvm.h" +#include "runtime/dtraceJSDT.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/os.hpp" +#include "runtime/signature.hpp" +#include "utilities/globalDefinitions.hpp" #ifdef HAVE_DTRACE_H diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/globals_solaris.hpp --- a/src/os/solaris/vm/globals_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/globals_solaris.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP +#define OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP + // // Defines Solaris specific flags. They are not available on other platforms. // @@ -47,3 +50,5 @@ define_pd_global(bool, UseLargePagesIndividualAllocation, false); define_pd_global(bool, UseOSErrorReporting, false); define_pd_global(bool, UseThreadPriorities, false); + +#endif // OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/hpi_solaris.cpp --- a/src/os/solaris/vm/hpi_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/hpi_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_hpi_solaris.cpp.incl" +#include "precompiled.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/os.hpp" # include # include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/hpi_solaris.hpp --- a/src/os/solaris/vm/hpi_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/hpi_solaris.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_HPI_SOLARIS_HPP +#define OS_SOLARIS_VM_HPI_SOLARIS_HPP + // // Parts of the HPI interface for which the HotSparc does not use the // HPI (because the interruptible IO mechanims used are different). @@ -247,3 +250,5 @@ // 1.3 98/10/21 18:17:14 hpi_win32.hpp // 1.6 99/06/28 11:01:36 hpi_win32.hpp //End + +#endif // OS_SOLARIS_VM_HPI_SOLARIS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/interfaceSupport_solaris.hpp --- a/src/os/solaris/vm/interfaceSupport_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/interfaceSupport_solaris.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP +#define OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP + // Contains inlined functions for class InterfaceSupport static inline void serialize_memory(JavaThread *thread) { os::write_memory_serialize_page(thread); } + +#endif // OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/jsig.c --- a/src/os/solaris/vm/jsig.c Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/jsig.c Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/jvm_solaris.cpp --- a/src/os/solaris/vm/jvm_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/jvm_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_jvm_solaris.cpp.incl" +#include "precompiled.hpp" +#include "prims/jvm.h" +#include "runtime/interfaceSupport.hpp" +#include "runtime/osThread.hpp" #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/jvm_solaris.h --- a/src/os/solaris/vm/jvm_solaris.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/jvm_solaris.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_JVM_SOLARIS_H +#define OS_SOLARIS_VM_JVM_SOLARIS_H + /* // HotSpot integration note: // @@ -98,3 +101,5 @@ #define JSIG_VERSION_1_4_1 0x30140100 #endif /* JVM_MD_H */ + +#endif // OS_SOLARIS_VM_JVM_SOLARIS_H diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/mutex_solaris.cpp --- a/src/os/solaris/vm/mutex_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/mutex_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutex_solaris.cpp.incl" +#include "precompiled.hpp" +#include "mutex_solaris.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/mutex.hpp" +#include "thread_solaris.inline.hpp" +#include "utilities/events.hpp" // Solaris-specific include, therefore not in includeDB_* # include "os_share_solaris.hpp" diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/mutex_solaris.inline.hpp --- a/src/os/solaris/vm/mutex_solaris.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/mutex_solaris.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,3 +21,12 @@ * questions. * */ + +#ifndef OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP +#define OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP + +#include "os_solaris.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "thread_solaris.inline.hpp" + +#endif // OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/objectMonitor_solaris.cpp --- a/src/os/solaris/vm/objectMonitor_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/objectMonitor_solaris.hpp --- a/src/os/solaris/vm/objectMonitor_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - - private: diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/objectMonitor_solaris.inline.hpp --- a/src/os/solaris/vm/objectMonitor_solaris.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/osThread_solaris.cpp --- a/src/os/solaris/vm/osThread_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/osThread_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,21 @@ * */ -// do not include precompiled header file -# include "incls/_osThread_solaris.cpp.incl" +// no precompiled headers +#include "runtime/atomic.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" +#include "runtime/osThread.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif + # include // *************************************************************** diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/osThread_solaris.hpp --- a/src/os/solaris/vm/osThread_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/osThread_solaris.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP +#define OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP + // This is embedded via include into the class OSThread private: @@ -149,3 +152,5 @@ void pd_initialize(); void pd_destroy(); + +#endif // OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/os_share_solaris.hpp --- a/src/os/solaris/vm/os_share_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/os_share_solaris.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP +#define OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP + // Defines the interfaces to Solaris operating systems that vary across platforms @@ -65,3 +68,5 @@ #endif #define PROCFILE_LENGTH 128 + +#endif // OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/os_solaris.cpp --- a/src/os/solaris/vm/os_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/os_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,60 @@ * */ -// do not include precompiled header file -# include "incls/_os_solaris.cpp.incl" +// no precompiled headers +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/compileBroker.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_solaris.h" +#include "memory/allocation.inline.hpp" +#include "memory/filemap.hpp" +#include "mutex_solaris.inline.hpp" +#include "oops/oop.inline.hpp" +#include "os_share_solaris.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/globals.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/osThread.hpp" +#include "runtime/perfMemory.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/statSampler.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/timer.hpp" +#include "services/attachListener.hpp" +#include "services/runtimeService.hpp" +#include "thread_solaris.inline.hpp" +#include "utilities/defaultStream.hpp" +#include "utilities/events.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/vmError.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +# include "nativeInst_sparc.hpp" +#endif +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // put OS-includes here # include @@ -3375,7 +3427,12 @@ // INTERRUPTIBLE_NORESTART_VM_ALWAYS returns res == OS_INTRPT for // thread.Interrupt. - if((res == OS_ERR) && (errno == EINTR)) { + // See c/r 6751923. Poll can return 0 before time + // has elapsed if time is set via clock_settime (as NTP does). + // res == 0 if poll timed out (see man poll RETURN VALUES) + // using the logic below checks that we really did + // sleep at least "millis" if not we'll sleep again. + if( ( res == 0 ) || ((res == OS_ERR) && (errno == EINTR))) { newtime = getTimeMillis(); assert(newtime >= prevtime, "time moving backwards"); /* Doing prevtime and newtime in microseconds doesn't help precision, @@ -4878,18 +4935,17 @@ // Check minimum allowable stack size for thread creation and to initialize // the java system classes, including StackOverflowError - depends on page // size. Add a page for compiler2 recursion in main thread. - // Add in BytesPerWord times page size to account for VM stack during + // Add in 2*BytesPerWord times page size to account for VM stack during // class initialization depending on 32 or 64 bit VM. - guarantee((Solaris::min_stack_allowed >= - (StackYellowPages+StackRedPages+StackShadowPages+BytesPerWord - COMPILER2_PRESENT(+1)) * page_size), - "need to increase Solaris::min_stack_allowed on this platform"); + os::Solaris::min_stack_allowed = MAX2(os::Solaris::min_stack_allowed, + (size_t)(StackYellowPages+StackRedPages+StackShadowPages+ + 2*BytesPerWord COMPILER2_PRESENT(+1)) * page_size); size_t threadStackSizeInBytes = ThreadStackSize * K; if (threadStackSizeInBytes != 0 && - threadStackSizeInBytes < Solaris::min_stack_allowed) { + threadStackSizeInBytes < os::Solaris::min_stack_allowed) { tty->print_cr("\nThe stack size specified is too small, Specify at least %dk", - Solaris::min_stack_allowed/K); + os::Solaris::min_stack_allowed/K); return JNI_ERR; } @@ -5837,7 +5893,7 @@ // First, demultiplex/decode time arguments timespec absTime; - if (time < 0) { // don't wait at all + if (time < 0 || (isAbsolute && time == 0) ) { // don't wait at all return; } if (time > 0) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/os_solaris.hpp --- a/src/os/solaris/vm/os_solaris.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/os_solaris.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_OS_SOLARIS_HPP +#define OS_SOLARIS_VM_OS_SOLARIS_HPP + // Solaris_OS defines the interface to Solaris operating systems class Solaris { @@ -394,3 +397,5 @@ assert_status(status == 0, status, "mutex_init"); } } ; + +#endif // OS_SOLARIS_VM_OS_SOLARIS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/os_solaris.inline.hpp --- a/src/os/solaris/vm/os_solaris.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/os_solaris.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP +#define OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "atomic_solaris_x86.inline.hpp" +# include "orderAccess_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_sparc +# include "atomic_solaris_sparc.inline.hpp" +# include "orderAccess_solaris_sparc.inline.hpp" +#endif + inline const char* os::file_separator() { return "/"; } inline const char* os::line_separator() { return "\n"; } inline const char* os::path_separator() { return ":"; } @@ -207,3 +221,5 @@ inline bool os::numa_has_static_binding() { return false; } inline bool os::numa_has_group_homing() { return true; } + +#endif // OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/perfMemory_solaris.cpp --- a/src/os/solaris/vm/perfMemory_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/perfMemory_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,15 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_perfMemory_solaris.cpp.incl" +#include "precompiled.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "os_solaris.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/perfMemory.hpp" +#include "utilities/exceptions.hpp" // put OS-includes here # include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/stubRoutines_solaris.cpp --- a/src/os/solaris/vm/stubRoutines_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/stubRoutines_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_solaris.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" + diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/threadCritical_solaris.cpp --- a/src/os/solaris/vm/threadCritical_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/threadCritical_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadCritical_solaris.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadCritical.hpp" +#include "thread_solaris.inline.hpp" // OS-includes here #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/thread_solaris.inline.hpp --- a/src/os/solaris/vm/thread_solaris.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/thread_solaris.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,24 @@ * */ +#ifndef OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP +#define OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/prefetch.hpp" +#include "runtime/thread.hpp" +#include "runtime/threadLocalStorage.hpp" +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "atomic_solaris_x86.inline.hpp" +# include "orderAccess_solaris_x86.inline.hpp" +# include "prefetch_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_sparc +# include "atomic_solaris_sparc.inline.hpp" +# include "orderAccess_solaris_sparc.inline.hpp" +# include "prefetch_solaris_sparc.inline.hpp" +#endif + // Thread::current is "hot" it's called > 128K times in the 1st 500 msecs of // startup. // ThreadLocalStorage::thread is warm -- it's called > 16K times in the same @@ -43,3 +61,5 @@ return ThreadLocalStorage::get_thread_via_cache_slowly(raw, ix); } } + +#endif // OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/solaris/vm/vmError_solaris.cpp --- a/src/os/solaris/vm/vmError_solaris.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/solaris/vm/vmError_solaris.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmError_solaris.cpp.incl" +#include "precompiled.hpp" +#include "runtime/arguments.hpp" +#include "runtime/os.hpp" +#include "runtime/thread.hpp" +#include "utilities/vmError.hpp" #include #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/attachListener_windows.cpp --- a/src/os/windows/vm/attachListener_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/attachListener_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_attachListener_windows.cpp.incl" +#include "precompiled.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/os.hpp" +#include "services/attachListener.hpp" +#include "services/dtraceAttacher.hpp" #include #include // SIGBREAK diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/c1_globals_windows.hpp --- a/src/os/windows/vm/c1_globals_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/c1_globals_windows.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP +#define OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // client compiler. (see c1_globals.hpp) // + +#endif // OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/c2_globals_windows.hpp --- a/src/os/windows/vm/c2_globals_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/c2_globals_windows.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP +#define OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // server compiler. (see c2_globals.hpp) // + +#endif // OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/chaitin_windows.cpp --- a/src/os/windows/vm/chaitin_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/chaitin_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_chaitin_windows.cpp.incl" +#include "precompiled.hpp" +#include "opto/chaitin.hpp" +#include "opto/machnode.hpp" // Disallow the use of the frame pointer (EBP) for implicit null exceptions // on win95/98. If we do not do this, the OS gets confused and gives a stack diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/dtraceJSDT_windows.cpp --- a/src/os/windows/vm/dtraceJSDT_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/dtraceJSDT_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_dtraceJSDT_windows.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "code/codeBlob.hpp" +#include "memory/allocation.hpp" +#include "prims/jvm.h" +#include "runtime/dtraceJSDT.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/os.hpp" +#include "runtime/signature.hpp" +#include "utilities/globalDefinitions.hpp" int DTraceJSDT::pd_activate( void* baseAddress, jstring module, diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/globals_windows.hpp --- a/src/os/windows/vm/globals_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/globals_windows.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP +#define OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP + // // Defines Windows specific flags. They are not available on other platforms. // @@ -40,3 +43,5 @@ define_pd_global(bool, UseLargePagesIndividualAllocation, true); define_pd_global(bool, UseOSErrorReporting, false); // for now. define_pd_global(bool, UseThreadPriorities, true) ; + +#endif // OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/hpi_windows.cpp --- a/src/os/windows/vm/hpi_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/hpi_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_hpi_windows.cpp.incl" +#include "precompiled.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/os.hpp" typedef jint (JNICALL *init_t)(GetInterfaceFunc *, void *); diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/hpi_windows.hpp --- a/src/os/windows/vm/hpi_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/hpi_windows.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_HPI_WINDOWS_HPP +#define OS_WINDOWS_VM_HPI_WINDOWS_HPP + // Win32 delegates these to the HPI. Solaris provides its own // implementation without using the HPI (for Interrupitble I/O). @@ -168,3 +171,5 @@ ("name = %p", name), (name)); + +#endif // OS_WINDOWS_VM_HPI_WINDOWS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/interfaceSupport_windows.hpp --- a/src/os/windows/vm/interfaceSupport_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/interfaceSupport_windows.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP +#define OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP + // Contains inlined functions for class InterfaceSupport static inline void serialize_memory(JavaThread *thread) { @@ -39,3 +42,5 @@ serialize_fault_filter((_EXCEPTION_POINTERS*)_exception_info())) {} } + +#endif // OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/jvm_windows.cpp --- a/src/os/windows/vm/jvm_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/jvm_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_jvm_windows.cpp.incl" +#include "precompiled.hpp" +#include "prims/jvm.h" +#include "runtime/interfaceSupport.hpp" +#include "runtime/osThread.hpp" #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/jvm_windows.h --- a/src/os/windows/vm/jvm_windows.h Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/jvm_windows.h Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/mutex_windows.cpp --- a/src/os/windows/vm/mutex_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/mutex_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutex_windows.cpp.incl" +#include "precompiled.hpp" +#include "mutex_windows.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/mutex.hpp" +#include "thread_windows.inline.hpp" +#include "utilities/events.hpp" // put OS-includes here # include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/mutex_windows.inline.hpp --- a/src/os/windows/vm/mutex_windows.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/mutex_windows.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,3 +21,12 @@ * questions. * */ + +#ifndef OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP +#define OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP + +#include "os_windows.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "thread_windows.inline.hpp" + +#endif // OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/objectMonitor_windows.cpp --- a/src/os/windows/vm/objectMonitor_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#include "incls/_precompiled.incl" diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/objectMonitor_windows.hpp --- a/src/os/windows/vm/objectMonitor_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - - private: diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/objectMonitor_windows.inline.hpp --- a/src/os/windows/vm/objectMonitor_windows.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/osThread_windows.cpp --- a/src/os/windows/vm/osThread_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/osThread_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,17 @@ * */ -#include "incls/_osThread_windows.cpp.incl" +// no precompiled headers +#include "runtime/atomic.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" +#include "runtime/osThread.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif void OSThread::pd_initialize() { set_thread_handle(NULL); diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/osThread_windows.hpp --- a/src/os/windows/vm/osThread_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/osThread_windows.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP +#define OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP + typedef void* HANDLE; private: @@ -64,3 +67,5 @@ private: void pd_initialize(); void pd_destroy(); + +#endif // OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/os_share_windows.hpp --- a/src/os/windows/vm/os_share_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/os_share_windows.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP +#define OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP + // Defines the interfaces to Windows operating system that vary across platforms + +#endif // OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/os_windows.cpp --- a/src/os/windows/vm/os_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/os_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -27,8 +27,56 @@ #define _WIN32_WINNT 0x500 #endif -// do not include precompiled header file -# include "incls/_os_windows.cpp.incl" +// no precompiled headers +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/compileBroker.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_windows.h" +#include "memory/allocation.inline.hpp" +#include "memory/filemap.hpp" +#include "mutex_windows.inline.hpp" +#include "oops/oop.inline.hpp" +#include "os_share_windows.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/globals.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/osThread.hpp" +#include "runtime/perfMemory.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/statSampler.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/timer.hpp" +#include "services/attachListener.hpp" +#include "services/runtimeService.hpp" +#include "thread_windows.inline.hpp" +#include "utilities/defaultStream.hpp" +#include "utilities/events.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/vmError.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +# include "nativeInst_x86.hpp" +#endif +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif #ifdef _DEBUG #include @@ -3311,7 +3359,6 @@ } } - // this is called _after_ the global arguments have been parsed jint os::init_2(void) { // Allocate a single page and mark it as readable for safepoint polling @@ -3390,6 +3437,21 @@ actual_reserve_size = default_reserve_size; } + // Check minimum allowable stack size for thread creation and to initialize + // the java system classes, including StackOverflowError - depends on page + // size. Add a page for compiler2 recursion in main thread. + // Add in 2*BytesPerWord times page size to account for VM stack during + // class initialization depending on 32 or 64 bit VM. + size_t min_stack_allowed = + (size_t)(StackYellowPages+StackRedPages+StackShadowPages+ + 2*BytesPerWord COMPILER2_PRESENT(+1)) * os::vm_page_size(); + if (actual_reserve_size < min_stack_allowed) { + tty->print_cr("\nThe stack size specified is too small, " + "Specify at least %dk", + min_stack_allowed / K); + return JNI_ERR; + } + JavaThread::set_stack_size_at_create(stack_commit_size); // Calculate theoretical max. size of Threads to guard gainst artifical @@ -3992,7 +4054,7 @@ if (time < 0) { // don't wait return; } - else if (time == 0) { + else if (time == 0 && !isAbsolute) { time = INFINITE; } else if (isAbsolute) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/os_windows.hpp --- a/src/os/windows/vm/os_windows.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/os_windows.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_OS_WINDOWS_HPP +#define OS_WINDOWS_VM_OS_WINDOWS_HPP + // Win32_OS defines the interface to windows operating systems class win32 { @@ -124,3 +127,5 @@ } } ; + +#endif // OS_WINDOWS_VM_OS_WINDOWS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/os_windows.inline.hpp --- a/src/os/windows/vm/os_windows.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/os_windows.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP +#define OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_OS_ARCH_windows_x86 +# include "atomic_windows_x86.inline.hpp" +# include "orderAccess_windows_x86.inline.hpp" +#endif + inline const char* os::file_separator() { return "\\"; } inline const char* os::line_separator() { return "\r\n"; } inline const char* os::path_separator() { return ";"; } @@ -72,3 +82,5 @@ inline bool os::numa_has_static_binding() { return true; } inline bool os::numa_has_group_homing() { return false; } + +#endif // OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/perfMemory_windows.cpp --- a/src/os/windows/vm/perfMemory_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/perfMemory_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,15 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_perfMemory_windows.cpp.incl" +#include "precompiled.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "os_windows.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/perfMemory.hpp" +#include "utilities/exceptions.hpp" #include #include @@ -889,6 +896,7 @@ DWORD newACLsize = aclinfo.AclBytesInUse + (sizeof(ACCESS_ALLOWED_ACE) - sizeof(DWORD)) * ace_count; for (int i = 0; i < ace_count; i++) { + assert(aces[i].pSid != 0, "pSid should not be 0"); newACLsize += GetLengthSid(aces[i].pSid); } @@ -1084,6 +1092,9 @@ aces[0].pSid = get_user_sid(GetCurrentProcess()); aces[0].mask = umask; + if (aces[0].pSid == 0) + return NULL; + // get the well known SID for BUILTIN\Administrators PSID administratorsSid = NULL; SID_IDENTIFIER_AUTHORITY SIDAuthAdministrators = SECURITY_NT_AUTHORITY; diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/stubRoutines_windows.cpp --- a/src/os/windows/vm/stubRoutines_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/stubRoutines_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_windows.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" + diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/threadCritical_windows.cpp --- a/src/os/windows/vm/threadCritical_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/threadCritical_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_threadCritical_windows.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadCritical.hpp" +#include "thread_windows.inline.hpp" // OS-includes here # include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/thread_windows.inline.hpp --- a/src/os/windows/vm/thread_windows.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/thread_windows.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,21 @@ * */ +#ifndef OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP +#define OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/prefetch.hpp" +#include "runtime/thread.hpp" +#include "runtime/threadLocalStorage.hpp" +#ifdef TARGET_OS_ARCH_windows_x86 +# include "atomic_windows_x86.inline.hpp" +# include "orderAccess_windows_x86.inline.hpp" +# include "prefetch_windows_x86.inline.hpp" +#endif + // Contains inlined functions for class Thread and ThreadLocalStorage inline void ThreadLocalStorage::pd_invalidate_all() { return; } + +#endif // OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os/windows/vm/vmError_windows.cpp --- a/src/os/windows/vm/vmError_windows.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os/windows/vm/vmError_windows.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmError_windows.cpp.incl" +#include "precompiled.hpp" +#include "runtime/arguments.hpp" +#include "runtime/os.hpp" +#include "runtime/thread.hpp" +#include "utilities/vmError.hpp" void VMError::show_message_box(char *buf, int buflen) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp --- a/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_linux_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp --- a/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP +#define OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP + +#include "orderAccess_linux_sparc.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_sparc.hpp" + // Implementation of class atomic inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } @@ -204,3 +212,5 @@ inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void* dest, void* compare_value) { return (void*)cmpxchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest, (intptr_t)compare_value); } + +#endif // OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp --- a/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP + // // Sets the default values for platform dependent flags used by the // runtime system. (see globals.hpp) @@ -34,3 +37,5 @@ define_pd_global(uintx, HeapBaseMinAddress, 4*G); // Only used on 64 bit Windows platforms define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp --- a/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP +#define OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_sparc.hpp" + // Implementation of class OrderAccess. // Assume TSO. @@ -100,3 +106,5 @@ inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); } inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); } + +#endif // OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp --- a/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,9 +22,44 @@ * */ -// do not include precompiled header file +// no precompiled headers +#include "assembler_sparc.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_linux.h" +#include "memory/allocation.inline.hpp" +#include "mutex_linux.inline.hpp" +#include "nativeInst_sparc.hpp" +#include "os_share_linux.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif -#include "incls/_os_linux_sparc.cpp.incl" // Linux/Sparc has rather obscure naming of registers in sigcontext // different between 32 and 64 bits @@ -200,6 +235,18 @@ sigcontext* sc = (sigcontext*)context; st->print_cr("Registers:"); + st->print_cr(" G1=" INTPTR_FORMAT " G2=" INTPTR_FORMAT + " G3=" INTPTR_FORMAT " G4=" INTPTR_FORMAT, + SIG_REGS(sc).u_regs[CON_G1], + SIG_REGS(sc).u_regs[CON_G2], + SIG_REGS(sc).u_regs[CON_G3], + SIG_REGS(sc).u_regs[CON_G4]); + st->print_cr(" G5=" INTPTR_FORMAT " G6=" INTPTR_FORMAT + " G7=" INTPTR_FORMAT " Y=" INTPTR_FORMAT, + SIG_REGS(sc).u_regs[CON_G5], + SIG_REGS(sc).u_regs[CON_G6], + SIG_REGS(sc).u_regs[CON_G7], + SIG_REGS(sc).y); st->print_cr(" O0=" INTPTR_FORMAT " O1=" INTPTR_FORMAT " O2=" INTPTR_FORMAT " O3=" INTPTR_FORMAT, SIG_REGS(sc).u_regs[CON_O0], @@ -213,18 +260,32 @@ SIG_REGS(sc).u_regs[CON_O6], SIG_REGS(sc).u_regs[CON_O7]); - st->print_cr(" G1=" INTPTR_FORMAT " G2=" INTPTR_FORMAT - " G3=" INTPTR_FORMAT " G4=" INTPTR_FORMAT, - SIG_REGS(sc).u_regs[CON_G1], - SIG_REGS(sc).u_regs[CON_G2], - SIG_REGS(sc).u_regs[CON_G3], - SIG_REGS(sc).u_regs[CON_G4]); - st->print_cr(" G5=" INTPTR_FORMAT " G6=" INTPTR_FORMAT - " G7=" INTPTR_FORMAT " Y=" INTPTR_FORMAT, - SIG_REGS(sc).u_regs[CON_G5], - SIG_REGS(sc).u_regs[CON_G6], - SIG_REGS(sc).u_regs[CON_G7], - SIG_REGS(sc).y); + + intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc); + st->print_cr(" L0=" INTPTR_FORMAT " L1=" INTPTR_FORMAT + " L2=" INTPTR_FORMAT " L3=" INTPTR_FORMAT, + sp[L0->sp_offset_in_saved_window()], + sp[L1->sp_offset_in_saved_window()], + sp[L2->sp_offset_in_saved_window()], + sp[L3->sp_offset_in_saved_window()]); + st->print_cr(" L4=" INTPTR_FORMAT " L5=" INTPTR_FORMAT + " L6=" INTPTR_FORMAT " L7=" INTPTR_FORMAT, + sp[L4->sp_offset_in_saved_window()], + sp[L5->sp_offset_in_saved_window()], + sp[L6->sp_offset_in_saved_window()], + sp[L7->sp_offset_in_saved_window()]); + st->print_cr(" I0=" INTPTR_FORMAT " I1=" INTPTR_FORMAT + " I2=" INTPTR_FORMAT " I3=" INTPTR_FORMAT, + sp[I0->sp_offset_in_saved_window()], + sp[I1->sp_offset_in_saved_window()], + sp[I2->sp_offset_in_saved_window()], + sp[I3->sp_offset_in_saved_window()]); + st->print_cr(" I4=" INTPTR_FORMAT " I5=" INTPTR_FORMAT + " I6=" INTPTR_FORMAT " I7=" INTPTR_FORMAT, + sp[I4->sp_offset_in_saved_window()], + sp[I5->sp_offset_in_saved_window()], + sp[I6->sp_offset_in_saved_window()], + sp[I7->sp_offset_in_saved_window()]); st->print_cr(" PC=" INTPTR_FORMAT " nPC=" INTPTR_FORMAT, SIG_PC(sc), @@ -232,7 +293,6 @@ st->cr(); st->cr(); - intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc); st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", sp); print_hex_dump(st, (address)sp, (address)(sp + 32), sizeof(intptr_t)); st->cr(); @@ -242,7 +302,58 @@ // this at the end, and hope for the best. address pc = os::Linux::ucontext_get_pc(uc); st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc); - print_hex_dump(st, pc - 16, pc + 16, sizeof(char)); + print_hex_dump(st, pc - 32, pc + 32, sizeof(char)); +} + + +void os::print_register_info(outputStream *st, void *context) { + if (context == NULL) return; + + ucontext_t *uc = (ucontext_t*)context; + intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc); + + st->print_cr("Register to memory mapping:"); + st->cr(); + + // this is only for the "general purpose" registers + st->print("G1="); print_location(st, SIG_REGS(sc).u_regs[CON__G1]); + st->print("G2="); print_location(st, SIG_REGS(sc).u_regs[CON__G2]); + st->print("G3="); print_location(st, SIG_REGS(sc).u_regs[CON__G3]); + st->print("G4="); print_location(st, SIG_REGS(sc).u_regs[CON__G4]); + st->print("G5="); print_location(st, SIG_REGS(sc).u_regs[CON__G5]); + st->print("G6="); print_location(st, SIG_REGS(sc).u_regs[CON__G6]); + st->print("G7="); print_location(st, SIG_REGS(sc).u_regs[CON__G7]); + st->cr(); + + st->print("O0="); print_location(st, SIG_REGS(sc).u_regs[CON__O0]); + st->print("O1="); print_location(st, SIG_REGS(sc).u_regs[CON__O1]); + st->print("O2="); print_location(st, SIG_REGS(sc).u_regs[CON__O2]); + st->print("O3="); print_location(st, SIG_REGS(sc).u_regs[CON__O3]); + st->print("O4="); print_location(st, SIG_REGS(sc).u_regs[CON__O4]); + st->print("O5="); print_location(st, SIG_REGS(sc).u_regs[CON__O5]); + st->print("O6="); print_location(st, SIG_REGS(sc).u_regs[CON__O6]); + st->print("O7="); print_location(st, SIG_REGS(sc).u_regs[CON__O7]); + st->cr(); + + st->print("L0="); print_location(st, sp[L0->sp_offset_in_saved_window()]); + st->print("L1="); print_location(st, sp[L1->sp_offset_in_saved_window()]); + st->print("L2="); print_location(st, sp[L2->sp_offset_in_saved_window()]); + st->print("L3="); print_location(st, sp[L3->sp_offset_in_saved_window()]); + st->print("L4="); print_location(st, sp[L4->sp_offset_in_saved_window()]); + st->print("L5="); print_location(st, sp[L5->sp_offset_in_saved_window()]); + st->print("L6="); print_location(st, sp[L6->sp_offset_in_saved_window()]); + st->print("L7="); print_location(st, sp[L7->sp_offset_in_saved_window()]); + st->cr(); + + st->print("I0="); print_location(st, sp[I0->sp_offset_in_saved_window()]); + st->print("I1="); print_location(st, sp[I1->sp_offset_in_saved_window()]); + st->print("I2="); print_location(st, sp[I2->sp_offset_in_saved_window()]); + st->print("I3="); print_location(st, sp[I3->sp_offset_in_saved_window()]); + st->print("I4="); print_location(st, sp[I4->sp_offset_in_saved_window()]); + st->print("I5="); print_location(st, sp[I5->sp_offset_in_saved_window()]); + st->print("I6="); print_location(st, sp[I6->sp_offset_in_saved_window()]); + st->print("I7="); print_location(st, sp[I7->sp_offset_in_saved_window()]); + st->cr(); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp --- a/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP + // // NOTE: we are back in class os here, not Linux // @@ -42,3 +45,5 @@ // Used to register dynamic code cache area with the OS // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } + +#endif // OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp --- a/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP +#define OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP + +#include "runtime/prefetch.hpp" + #if defined(COMPILER2) || defined(_LP64) inline void Prefetch::read(void *loc, intx interval) { @@ -38,3 +43,5 @@ inline void Prefetch::write(void *loc, intx interval) {} #endif + +#endif // OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp --- a/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadLS_linux_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_linux.inline.hpp" void ThreadLocalStorage::generate_code_for_get_thread() { } diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp --- a/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,12 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP + public: static Thread* thread() { return (Thread*) os::thread_local_storage_at(thread_index()); } + +#endif // OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp --- a/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_linux_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_linux.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp --- a/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP + private: void pd_initialize() { @@ -96,3 +99,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp --- a/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -67,3 +70,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp --- a/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_linux_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_sparc.hpp" static bool detect_niagara() { char cpu[128]; diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp --- a/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_linux_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" #ifndef _LP64 void MacroAssembler::int3() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp --- a/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP + +#include "orderAccess_linux_x86.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + // Implementation of class atomic inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } @@ -193,3 +201,5 @@ return (void*)cmpxchg((jint)exchange_value, (volatile jint*)dest, (jint)compare_value); } #endif // AMD64 + +#endif // OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp --- a/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP + #include // Efficient swapping of data bytes from Java byte @@ -83,3 +86,5 @@ return swap_u8_base(*(u4*)&x, *(((u4*)&x)+1)); } #endif // !AMD64 + +#endif // OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp --- a/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP + static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { #ifdef AMD64 (void)memmove(to, from, count * HeapWordSize); @@ -302,3 +305,5 @@ pd_conjoint_oops_atomic((oop*)from, (oop*)to, count); #endif // AMD64 } + +#endif // OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/globals_linux_x86.hpp --- a/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -45,3 +48,5 @@ define_pd_global(uintx,HeapBaseMinAddress, 2*G); // Only used on 64 bit Windows platforms define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp --- a/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_x86.hpp" + // Implementation of class OrderAccess. inline void OrderAccess::loadload() { acquire(); } @@ -204,3 +210,5 @@ release_store_fence((volatile jint*)p, (jint)v); #endif // AMD64 } + +#endif // OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/os_linux_x86.cpp --- a/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,43 @@ * */ -// do not include precompiled header file -# include "incls/_os_linux_x86.cpp.incl" +// no precompiled headers +#include "assembler_x86.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_linux.h" +#include "memory/allocation.inline.hpp" +#include "mutex_linux.inline.hpp" +#include "nativeInst_x86.hpp" +#include "os_share_linux.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // put OS-includes here # include @@ -718,11 +753,6 @@ ucontext_t *uc = (ucontext_t*)context; st->print_cr("Registers:"); - - // this is horrendously verbose but the layout of the registers in the - // context does not match how we defined our abstract Register set, so - // we can't just iterate through the gregs area - #ifdef AMD64 st->print( "RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]); st->print(", RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]); @@ -745,68 +775,11 @@ st->print(", R15=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R15]); st->cr(); st->print( "RIP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RIP]); - st->print(", EFL=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]); + st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]); st->print(", CSGSFS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_CSGSFS]); st->print(", ERR=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ERR]); st->cr(); st->print(" TRAPNO=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_TRAPNO]); - - st->cr(); - st->cr(); - - st->print_cr("Register to memory mapping:"); - st->cr(); - - // this is only for the "general purpose" registers - - st->print_cr("RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]); - print_location(st, uc->uc_mcontext.gregs[REG_RAX]); - st->cr(); - st->print_cr("RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]); - print_location(st, uc->uc_mcontext.gregs[REG_RBX]); - st->cr(); - st->print_cr("RCX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RCX]); - print_location(st, uc->uc_mcontext.gregs[REG_RCX]); - st->cr(); - st->print_cr("RDX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDX]); - print_location(st, uc->uc_mcontext.gregs[REG_RDX]); - st->cr(); - st->print_cr("RSP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RSP]); - print_location(st, uc->uc_mcontext.gregs[REG_RSP]); - st->cr(); - st->print_cr("RBP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBP]); - print_location(st, uc->uc_mcontext.gregs[REG_RBP]); - st->cr(); - st->print_cr("RSI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RSI]); - print_location(st, uc->uc_mcontext.gregs[REG_RSI]); - st->cr(); - st->print_cr("RDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDI]); - print_location(st, uc->uc_mcontext.gregs[REG_RDI]); - st->cr(); - st->print_cr("R8 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]); - print_location(st, uc->uc_mcontext.gregs[REG_R8]); - st->cr(); - st->print_cr("R9 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R9]); - print_location(st, uc->uc_mcontext.gregs[REG_R9]); - st->cr(); - st->print_cr("R10=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R10]); - print_location(st, uc->uc_mcontext.gregs[REG_R10]); - st->cr(); - st->print_cr("R11=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R11]); - print_location(st, uc->uc_mcontext.gregs[REG_R11]); - st->cr(); - st->print_cr("R12=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R12]); - print_location(st, uc->uc_mcontext.gregs[REG_R12]); - st->cr(); - st->print_cr("R13=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R13]); - print_location(st, uc->uc_mcontext.gregs[REG_R13]); - st->cr(); - st->print_cr("R14=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R14]); - print_location(st, uc->uc_mcontext.gregs[REG_R14]); - st->cr(); - st->print_cr("R15=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R15]); - print_location(st, uc->uc_mcontext.gregs[REG_R15]); - #else st->print( "EAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EAX]); st->print(", EBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EBX]); @@ -819,41 +792,8 @@ st->print(", EDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EDI]); st->cr(); st->print( "EIP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EIP]); + st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]); st->print(", CR2=" INTPTR_FORMAT, uc->uc_mcontext.cr2); - st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]); - - st->cr(); - st->cr(); - - st->print_cr("Register to memory mapping:"); - st->cr(); - - // this is only for the "general purpose" registers - - st->print_cr("EAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EAX]); - print_location(st, uc->uc_mcontext.gregs[REG_EAX]); - st->cr(); - st->print_cr("EBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EBX]); - print_location(st, uc->uc_mcontext.gregs[REG_EBX]); - st->cr(); - st->print_cr("ECX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ECX]); - print_location(st, uc->uc_mcontext.gregs[REG_ECX]); - st->cr(); - st->print_cr("EDX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EDX]); - print_location(st, uc->uc_mcontext.gregs[REG_EDX]); - st->cr(); - st->print_cr("ESP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ESP]); - print_location(st, uc->uc_mcontext.gregs[REG_ESP]); - st->cr(); - st->print_cr("EBP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EBP]); - print_location(st, uc->uc_mcontext.gregs[REG_EBP]); - st->cr(); - st->print_cr("ESI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ESI]); - print_location(st, uc->uc_mcontext.gregs[REG_ESI]); - st->cr(); - st->print_cr("EDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EDI]); - print_location(st, uc->uc_mcontext.gregs[REG_EDI]); - #endif // AMD64 st->cr(); st->cr(); @@ -868,7 +808,52 @@ // this at the end, and hope for the best. address pc = os::Linux::ucontext_get_pc(uc); st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc); - print_hex_dump(st, pc - 16, pc + 16, sizeof(char)); + print_hex_dump(st, pc - 32, pc + 32, sizeof(char)); +} + +void os::print_register_info(outputStream *st, void *context) { + if (context == NULL) return; + + ucontext_t *uc = (ucontext_t*)context; + + st->print_cr("Register to memory mapping:"); + st->cr(); + + // this is horrendously verbose but the layout of the registers in the + // context does not match how we defined our abstract Register set, so + // we can't just iterate through the gregs area + + // this is only for the "general purpose" registers + +#ifdef AMD64 + st->print("RAX="); print_location(st, uc->uc_mcontext.gregs[REG_RAX]); + st->print("RBX="); print_location(st, uc->uc_mcontext.gregs[REG_RBX]); + st->print("RCX="); print_location(st, uc->uc_mcontext.gregs[REG_RCX]); + st->print("RDX="); print_location(st, uc->uc_mcontext.gregs[REG_RDX]); + st->print("RSP="); print_location(st, uc->uc_mcontext.gregs[REG_RSP]); + st->print("RBP="); print_location(st, uc->uc_mcontext.gregs[REG_RBP]); + st->print("RSI="); print_location(st, uc->uc_mcontext.gregs[REG_RSI]); + st->print("RDI="); print_location(st, uc->uc_mcontext.gregs[REG_RDI]); + st->print("R8 ="); print_location(st, uc->uc_mcontext.gregs[REG_R8]); + st->print("R9 ="); print_location(st, uc->uc_mcontext.gregs[REG_R9]); + st->print("R10="); print_location(st, uc->uc_mcontext.gregs[REG_R10]); + st->print("R11="); print_location(st, uc->uc_mcontext.gregs[REG_R11]); + st->print("R12="); print_location(st, uc->uc_mcontext.gregs[REG_R12]); + st->print("R13="); print_location(st, uc->uc_mcontext.gregs[REG_R13]); + st->print("R14="); print_location(st, uc->uc_mcontext.gregs[REG_R14]); + st->print("R15="); print_location(st, uc->uc_mcontext.gregs[REG_R15]); +#else + st->print("EAX="); print_location(st, uc->uc_mcontext.gregs[REG_EAX]); + st->print("EBX="); print_location(st, uc->uc_mcontext.gregs[REG_EBX]); + st->print("ECX="); print_location(st, uc->uc_mcontext.gregs[REG_ECX]); + st->print("EDX="); print_location(st, uc->uc_mcontext.gregs[REG_EDX]); + st->print("ESP="); print_location(st, uc->uc_mcontext.gregs[REG_ESP]); + st->print("EBP="); print_location(st, uc->uc_mcontext.gregs[REG_EBP]); + st->print("ESI="); print_location(st, uc->uc_mcontext.gregs[REG_ESI]); + st->print("EDI="); print_location(st, uc->uc_mcontext.gregs[REG_EDI]); +#endif // AMD64 + + st->cr(); } void os::setup_fpu() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/os_linux_x86.hpp --- a/src/os_cpu/linux_x86/vm/os_linux_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/os_linux_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP + static void setup_fpu(); static bool supports_sse(); @@ -30,3 +33,5 @@ // Used to register dynamic code cache area with the OS // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } + +#endif // OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp --- a/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP + +#include "runtime/prefetch.hpp" + inline void Prefetch::read (void *loc, intx interval) { #ifdef AMD64 @@ -38,3 +43,5 @@ #endif // AMD64 } + +#endif // OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp --- a/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadLS_linux_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_linux.inline.hpp" // Map stack pointer (%esp) to thread pointer for faster TLS access // diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp --- a/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP + // Processor dependent parts of ThreadLocalStorage #ifndef AMD64 @@ -47,3 +50,5 @@ return _sp_map[sp >> PAGE_SHIFT]; #endif // AMD64 } + +#endif // OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/thread_linux_x86.cpp --- a/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_linux_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_linux.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/thread_linux_x86.hpp --- a/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP + private: void pd_initialize() { _anchor.clear(); @@ -63,3 +66,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp --- a/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -58,3 +61,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp --- a/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_linux_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp --- a/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,10 @@ * */ +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp --- a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,14 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP +#define OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP + +#include "orderAccess_linux_zero.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_zero.hpp" + // Implementation of class atomic #ifdef M68K @@ -291,3 +299,5 @@ (volatile intptr_t*) dest, (intptr_t) compare_value); } + +#endif // OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp --- a/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP +#define OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP + // Efficient swapping of data bytes from Java byte // ordering to native byte ordering and vice versa. @@ -38,3 +41,5 @@ inline u8 Bytes::swap_u8(u8 x) { return bswap_64(x); } + +#endif // OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/globals_linux_zero.hpp --- a/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP + // // Set the default values for platform dependent flags used by the // runtime system. See globals.hpp for details of what they do. @@ -42,3 +45,5 @@ define_pd_global(bool, UseVectoredExceptions, false); // Only used on 64 bit platforms define_pd_global(uintx, HeapBaseMinAddress, 2*G); + +#endif // OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp --- a/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP +#define OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_zero.hpp" + #ifdef ARM /* @@ -165,3 +171,5 @@ inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { release_store_ptr(p, v); fence(); } inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { release_store_ptr(p, v); fence(); } + +#endif // OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/os_linux_zero.cpp --- a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,43 @@ * */ -// do not include precompiled header file -#include "incls/_os_linux_zero.cpp.incl" +// no precompiled headers +#include "assembler_zero.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_linux.h" +#include "memory/allocation.inline.hpp" +#include "mutex_linux.inline.hpp" +#include "nativeInst_zero.hpp" +#include "os_share_linux.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif address os::current_stack_pointer() { address dummy = (address) &dummy; @@ -370,6 +405,10 @@ ShouldNotCallThis(); } +void os::print_register_info(outputStream *st, void *context) { + ShouldNotCallThis(); +} + ///////////////////////////////////////////////////////////////////////////// // Stubs for things that would be in linux_zero.s if it existed. // You probably want to disassemble these monkeys to check they're ok. diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/os_linux_zero.hpp --- a/src/os_cpu/linux_zero/vm/os_linux_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/os_linux_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP + static void setup_fpu() {} static bool is_allocatable(size_t bytes); @@ -49,3 +52,5 @@ *(jlong *) dst = *(jlong *) src; #endif } + +#endif // OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp --- a/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,15 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP +#define OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP + +#include "runtime/prefetch.hpp" + inline void Prefetch::read(void* loc, intx interval) { } inline void Prefetch::write(void* loc, intx interval) { } + +#endif // OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp --- a/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadLS_linux_zero.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_linux.inline.hpp" void ThreadLocalStorage::generate_code_for_get_thread() { // nothing to do diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp --- a/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,9 +22,14 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP + // Processor dependent parts of ThreadLocalStorage public: static Thread* thread() { return (Thread*) os::thread_local_storage_at(thread_index()); } + +#endif // OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/thread_linux_zero.cpp --- a/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_linux_zero.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_linux.inline.hpp" void JavaThread::cache_global_variables() { // nothing to do diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP + private: ZeroStack _zero_stack; ZeroFrame* _top_zero_frame; @@ -114,3 +117,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp --- a/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -43,3 +46,5 @@ #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp --- a/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,8 @@ * */ +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_zero.hpp" + // This file is intentionally empty diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp --- a/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_solaris_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" #include // For trap numbers #include // For V8 compatibility diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp --- a/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP +#define OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP + +#include "orderAccess_solaris_sparc.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_sparc.hpp" + // Implementation of class atomic inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } @@ -342,3 +350,5 @@ #endif // _LP64 || COMPILER2 #endif // _GNU_SOURCE + +#endif // OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp --- a/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP + // // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -36,3 +39,5 @@ define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp --- a/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP +#define OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_sparc.hpp" + // Implementation of class OrderAccess. // Assume TSO. @@ -124,3 +130,5 @@ inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); } inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); } + +#endif // OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp --- a/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,12 +22,47 @@ * */ -// do not include precompiled header file +// no precompiled headers +#include "assembler_sparc.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_solaris.h" +#include "memory/allocation.inline.hpp" +#include "mutex_solaris.inline.hpp" +#include "nativeInst_sparc.hpp" +#include "os_share_solaris.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_solaris.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif + # include // needed first to avoid name collision for "std" with SC 5.0 -# include "incls/_os_solaris_sparc.cpp.incl" - // put OS-includes here # include # include @@ -540,6 +575,11 @@ pc = (address) uc->uc_mcontext.gregs[REG_PC]; } + // Sometimes the register windows are not properly flushed. + if(uc->uc_mcontext.gwins != NULL) { + ::handle_unflushed_register_windows(uc->uc_mcontext.gwins); + } + // unmask current signal sigset_t newset; sigemptyset(&newset); @@ -558,6 +598,18 @@ ucontext_t *uc = (ucontext_t*)context; st->print_cr("Registers:"); + st->print_cr(" G1=" INTPTR_FORMAT " G2=" INTPTR_FORMAT + " G3=" INTPTR_FORMAT " G4=" INTPTR_FORMAT, + uc->uc_mcontext.gregs[REG_G1], + uc->uc_mcontext.gregs[REG_G2], + uc->uc_mcontext.gregs[REG_G3], + uc->uc_mcontext.gregs[REG_G4]); + st->print_cr(" G5=" INTPTR_FORMAT " G6=" INTPTR_FORMAT + " G7=" INTPTR_FORMAT " Y=" INTPTR_FORMAT, + uc->uc_mcontext.gregs[REG_G5], + uc->uc_mcontext.gregs[REG_G6], + uc->uc_mcontext.gregs[REG_G7], + uc->uc_mcontext.gregs[REG_Y]); st->print_cr(" O0=" INTPTR_FORMAT " O1=" INTPTR_FORMAT " O2=" INTPTR_FORMAT " O3=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O0], @@ -571,81 +623,39 @@ uc->uc_mcontext.gregs[REG_O6], uc->uc_mcontext.gregs[REG_O7]); - st->print_cr(" G1=" INTPTR_FORMAT " G2=" INTPTR_FORMAT - " G3=" INTPTR_FORMAT " G4=" INTPTR_FORMAT, - uc->uc_mcontext.gregs[REG_G1], - uc->uc_mcontext.gregs[REG_G2], - uc->uc_mcontext.gregs[REG_G3], - uc->uc_mcontext.gregs[REG_G4]); - st->print_cr(" G5=" INTPTR_FORMAT " G6=" INTPTR_FORMAT - " G7=" INTPTR_FORMAT " Y=" INTPTR_FORMAT, - uc->uc_mcontext.gregs[REG_G5], - uc->uc_mcontext.gregs[REG_G6], - uc->uc_mcontext.gregs[REG_G7], - uc->uc_mcontext.gregs[REG_Y]); + + intptr_t *sp = (intptr_t *)os::Solaris::ucontext_get_sp(uc); + st->print_cr(" L0=" INTPTR_FORMAT " L1=" INTPTR_FORMAT + " L2=" INTPTR_FORMAT " L3=" INTPTR_FORMAT, + sp[L0->sp_offset_in_saved_window()], + sp[L1->sp_offset_in_saved_window()], + sp[L2->sp_offset_in_saved_window()], + sp[L3->sp_offset_in_saved_window()]); + st->print_cr(" L4=" INTPTR_FORMAT " L5=" INTPTR_FORMAT + " L6=" INTPTR_FORMAT " L7=" INTPTR_FORMAT, + sp[L4->sp_offset_in_saved_window()], + sp[L5->sp_offset_in_saved_window()], + sp[L6->sp_offset_in_saved_window()], + sp[L7->sp_offset_in_saved_window()]); + st->print_cr(" I0=" INTPTR_FORMAT " I1=" INTPTR_FORMAT + " I2=" INTPTR_FORMAT " I3=" INTPTR_FORMAT, + sp[I0->sp_offset_in_saved_window()], + sp[I1->sp_offset_in_saved_window()], + sp[I2->sp_offset_in_saved_window()], + sp[I3->sp_offset_in_saved_window()]); + st->print_cr(" I4=" INTPTR_FORMAT " I5=" INTPTR_FORMAT + " I6=" INTPTR_FORMAT " I7=" INTPTR_FORMAT, + sp[I4->sp_offset_in_saved_window()], + sp[I5->sp_offset_in_saved_window()], + sp[I6->sp_offset_in_saved_window()], + sp[I7->sp_offset_in_saved_window()]); st->print_cr(" PC=" INTPTR_FORMAT " nPC=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_PC], uc->uc_mcontext.gregs[REG_nPC]); - st->cr(); st->cr(); - st->print_cr("Register to memory mapping:"); - st->cr(); - - // this is only for the "general purpose" registers - - st->print_cr("O0=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O0]); - print_location(st, uc->uc_mcontext.gregs[REG_O0]); - st->cr(); - st->print_cr("O1=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O1]); - print_location(st, uc->uc_mcontext.gregs[REG_O1]); - st->cr(); - st->print_cr("O2=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O2]); - print_location(st, uc->uc_mcontext.gregs[REG_O2]); - st->cr(); - st->print_cr("O3=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O3]); - print_location(st, uc->uc_mcontext.gregs[REG_O3]); - st->cr(); - st->print_cr("O4=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O4]); - print_location(st, uc->uc_mcontext.gregs[REG_O4]); - st->cr(); - st->print_cr("O5=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O5]); - print_location(st, uc->uc_mcontext.gregs[REG_O5]); - st->cr(); - st->print_cr("O6=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O6]); - print_location(st, uc->uc_mcontext.gregs[REG_O6]); - st->cr(); - st->print_cr("O7=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_O7]); - print_location(st, uc->uc_mcontext.gregs[REG_O7]); - st->cr(); - - st->print_cr("G1=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G1]); - print_location(st, uc->uc_mcontext.gregs[REG_G1]); - st->cr(); - st->print_cr("G2=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G2]); - print_location(st, uc->uc_mcontext.gregs[REG_G2]); - st->cr(); - st->print_cr("G3=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G3]); - print_location(st, uc->uc_mcontext.gregs[REG_G3]); - st->cr(); - st->print_cr("G4=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G4]); - print_location(st, uc->uc_mcontext.gregs[REG_G4]); - st->cr(); - st->print_cr("G5=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G5]); - print_location(st, uc->uc_mcontext.gregs[REG_G5]); - st->cr(); - st->print_cr("G6=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G6]); - print_location(st, uc->uc_mcontext.gregs[REG_G6]); - st->cr(); - st->print_cr("G7=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_G7]); - print_location(st, uc->uc_mcontext.gregs[REG_G7]); - - st->cr(); - st->cr(); - - intptr_t *sp = (intptr_t *)os::Solaris::ucontext_get_sp(uc); st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", sp); print_hex_dump(st, (address)sp, (address)(sp + 32), sizeof(intptr_t)); st->cr(); @@ -656,7 +666,57 @@ ExtendedPC epc = os::Solaris::ucontext_get_ExtendedPC(uc); address pc = epc.pc(); st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc); - print_hex_dump(st, pc - 16, pc + 16, sizeof(char)); + print_hex_dump(st, pc - 32, pc + 32, sizeof(char)); +} + +void os::print_register_info(outputStream *st, void *context) { + if (context == NULL) return; + + ucontext_t *uc = (ucontext_t*)context; + intptr_t *sp = (intptr_t *)os::Solaris::ucontext_get_sp(uc); + + st->print_cr("Register to memory mapping:"); + st->cr(); + + // this is only for the "general purpose" registers + st->print("G1="); print_location(st, uc->uc_mcontext.gregs[REG_G1]); + st->print("G2="); print_location(st, uc->uc_mcontext.gregs[REG_G2]); + st->print("G3="); print_location(st, uc->uc_mcontext.gregs[REG_G3]); + st->print("G4="); print_location(st, uc->uc_mcontext.gregs[REG_G4]); + st->print("G5="); print_location(st, uc->uc_mcontext.gregs[REG_G5]); + st->print("G6="); print_location(st, uc->uc_mcontext.gregs[REG_G6]); + st->print("G7="); print_location(st, uc->uc_mcontext.gregs[REG_G7]); + st->cr(); + + st->print("O0="); print_location(st, uc->uc_mcontext.gregs[REG_O0]); + st->print("O1="); print_location(st, uc->uc_mcontext.gregs[REG_O1]); + st->print("O2="); print_location(st, uc->uc_mcontext.gregs[REG_O2]); + st->print("O3="); print_location(st, uc->uc_mcontext.gregs[REG_O3]); + st->print("O4="); print_location(st, uc->uc_mcontext.gregs[REG_O4]); + st->print("O5="); print_location(st, uc->uc_mcontext.gregs[REG_O5]); + st->print("O6="); print_location(st, uc->uc_mcontext.gregs[REG_O6]); + st->print("O7="); print_location(st, uc->uc_mcontext.gregs[REG_O7]); + st->cr(); + + st->print("L0="); print_location(st, sp[L0->sp_offset_in_saved_window()]); + st->print("L1="); print_location(st, sp[L1->sp_offset_in_saved_window()]); + st->print("L2="); print_location(st, sp[L2->sp_offset_in_saved_window()]); + st->print("L3="); print_location(st, sp[L3->sp_offset_in_saved_window()]); + st->print("L4="); print_location(st, sp[L4->sp_offset_in_saved_window()]); + st->print("L5="); print_location(st, sp[L5->sp_offset_in_saved_window()]); + st->print("L6="); print_location(st, sp[L6->sp_offset_in_saved_window()]); + st->print("L7="); print_location(st, sp[L7->sp_offset_in_saved_window()]); + st->cr(); + + st->print("I0="); print_location(st, sp[I0->sp_offset_in_saved_window()]); + st->print("I1="); print_location(st, sp[I1->sp_offset_in_saved_window()]); + st->print("I2="); print_location(st, sp[I2->sp_offset_in_saved_window()]); + st->print("I3="); print_location(st, sp[I3->sp_offset_in_saved_window()]); + st->print("I4="); print_location(st, sp[I4->sp_offset_in_saved_window()]); + st->print("I5="); print_location(st, sp[I5->sp_offset_in_saved_window()]); + st->print("I6="); print_location(st, sp[I6->sp_offset_in_saved_window()]); + st->print("I7="); print_location(st, sp[I7->sp_offset_in_saved_window()]); + st->cr(); } void os::Solaris::init_thread_fpu_state(void) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp --- a/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP + // // NOTE: we are back in class os here, not Solaris // @@ -42,3 +45,5 @@ // Used to register dynamic code cache area with the OS // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } + +#endif // OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp --- a/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP +#define OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP + +#include "runtime/prefetch.hpp" + #if defined(COMPILER2) || defined(_LP64) // For Sun Studio inplementation is in solaris_sparc.il @@ -56,3 +61,5 @@ inline void Prefetch::write(void *loc, intx interval) {} #endif // defined(COMPILER2) || defined(_LP64) + +#endif // OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp --- a/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,13 +22,15 @@ * */ +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_solaris.inline.hpp" + // Provides an entry point we can link against and // a buffer we can emit code into. The buffer is // filled by ThreadLocalStorage::generate_code_for_get_thread // and called from ThreadLocalStorage::thread() -#include "incls/_precompiled.incl" -#include "incls/_threadLS_solaris_sparc.cpp.incl" #include // The portable TLS mechanism (get_thread_via_cache) is enough on SPARC. diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp --- a/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP + public: // Java Thread - force inlining static inline Thread* thread() ; @@ -64,3 +67,5 @@ uintptr_t ix = (int) (((raw_id >> 9) ^ (raw_id >> 20)) % _pd_cache_size); return ix; } + +#endif // OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp --- a/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_solaris_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_solaris.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp --- a/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,6 +21,9 @@ * questions. * */ + +#ifndef OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP private: void pd_initialize() { @@ -95,3 +98,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp --- a/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -65,3 +68,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp --- a/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_solaris_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_sparc.hpp" # include # include @@ -65,10 +66,6 @@ // getisax(2), SI_ARCHITECTURE_32, and SI_ARCHITECTURE_64 are // supported on Solaris 10 and later. if (os::Solaris::supports_getisax()) { -#ifndef PRODUCT - if (PrintMiscellaneous && Verbose) - tty->print_cr("getisax(2) supported."); -#endif // Check 32-bit architecture. do_sysinfo(SI_ARCHITECTURE_32, "sparc", &features, v8_instructions_m); @@ -81,6 +78,11 @@ uint_t avn = os::Solaris::getisax(&av, 1); assert(avn == 1, "should only return one av"); +#ifndef PRODUCT + if (PrintMiscellaneous && Verbose) + tty->print_cr("getisax(2) returned: " PTR32_FORMAT, av); +#endif + if (av & AV_SPARC_MUL32) features |= hardware_mul32_m; if (av & AV_SPARC_DIV32) features |= hardware_div32_m; if (av & AV_SPARC_FSMULD) features |= hardware_fsmuld_m; @@ -88,11 +90,22 @@ if (av & AV_SPARC_POPC) features |= hardware_popc_m; if (av & AV_SPARC_VIS) features |= vis1_instructions_m; if (av & AV_SPARC_VIS2) features |= vis2_instructions_m; + + // Next values are not defined before Solaris 10 + // but Solaris 8 is used for jdk6 update builds. +#ifndef AV_SPARC_ASI_BLK_INIT +#define AV_SPARC_ASI_BLK_INIT 0x0080 /* ASI_BLK_INIT_xxx ASI */ +#endif +#ifndef AV_SPARC_FMAF +#define AV_SPARC_FMAF 0x0100 /* Sparc64 Fused Multiply-Add */ +#endif + if (av & AV_SPARC_ASI_BLK_INIT) features |= blk_init_instructions_m; + if (av & AV_SPARC_FMAF) features |= fmaf_instructions_m; } else { // getisax(2) failed, use the old legacy code. #ifndef PRODUCT if (PrintMiscellaneous && Verbose) - tty->print_cr("getisax(2) not supported."); + tty->print_cr("getisax(2) is not supported."); #endif char tmp; diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp --- a/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_solaris_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" void MacroAssembler::int3() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp --- a/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP + +#include "orderAccess_solaris_x86.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } inline void Atomic::store (jshort store_value, jshort* dest) { *dest = store_value; } inline void Atomic::store (jint store_value, jint* dest) { *dest = store_value; } @@ -245,3 +253,5 @@ #undef LOCK_IF_MP #endif // _GNU_SOURCE + +#endif // OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp --- a/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP + // For Sun Studio - implementation is in solaris_i486.il. // For gcc - implementation is just below. extern "C" u2 _raw_swap_u2(u2 x); @@ -109,3 +112,5 @@ #endif // AMD64 } #endif //_GNU_SOURCE + +#endif // OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp --- a/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP + static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { (void)memmove(to, from, count * HeapWordSize); } @@ -136,3 +139,5 @@ _Copy_arrayof_conjoint_jints(from, to, count); #endif // AMD64 } + +#endif // OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp --- a/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -44,3 +47,5 @@ define_pd_global(uintx,HeapBaseMinAddress, 256*M); // Only used on 64 bit Windows platforms define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp --- a/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_x86.hpp" + // Implementation of class OrderAccess. // For Sun Studio - implementation is in solaris_i486.il. @@ -127,3 +133,5 @@ inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); } inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); } + +#endif // OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp --- a/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,43 @@ * */ -// do not include precompiled header file -# include "incls/_os_solaris_x86.cpp.incl" +// no precompiled headers +#include "assembler_x86.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_solaris.h" +#include "memory/allocation.inline.hpp" +#include "mutex_solaris.inline.hpp" +#include "nativeInst_x86.hpp" +#include "os_share_solaris.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_solaris.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // put OS-includes here # include @@ -719,11 +754,6 @@ ucontext_t *uc = (ucontext_t*)context; st->print_cr("Registers:"); - - // this is horrendously verbose but the layout of the registers in the - // context does not match how we defined our abstract Register set, so - // we can't just iterate through the gregs area - #ifdef AMD64 st->print( "RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]); st->print(", RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]); @@ -735,8 +765,8 @@ st->print(", RSI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RSI]); st->print(", RDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDI]); st->cr(); - st->print( "R8=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]); - st->print(", R9=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R9]); + st->print( "R8 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]); + st->print(", R9 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R9]); st->print(", R10=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R10]); st->print(", R11=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R11]); st->cr(); @@ -747,63 +777,6 @@ st->cr(); st->print( "RIP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RIP]); st->print(", RFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RFL]); - - st->cr(); - st->cr(); - - st->print_cr("Register to memory mapping:"); - st->cr(); - - // this is only for the "general purpose" registers - - st->print_cr("RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]); - print_location(st, uc->uc_mcontext.gregs[REG_RAX]); - st->cr(); - st->print_cr("RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]); - print_location(st, uc->uc_mcontext.gregs[REG_RBX]); - st->cr(); - st->print_cr("RCX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RCX]); - print_location(st, uc->uc_mcontext.gregs[REG_RCX]); - st->cr(); - st->print_cr("RDX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDX]); - print_location(st, uc->uc_mcontext.gregs[REG_RDX]); - st->cr(); - st->print_cr("RSP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RSP]); - print_location(st, uc->uc_mcontext.gregs[REG_RSP]); - st->cr(); - st->print_cr("RBP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBP]); - print_location(st, uc->uc_mcontext.gregs[REG_RSP]); - st->cr(); - st->print_cr("RSI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RSI]); - print_location(st, uc->uc_mcontext.gregs[REG_RSI]); - st->cr(); - st->print_cr("RDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDI]); - print_location(st, uc->uc_mcontext.gregs[REG_RDI]); - st->cr(); - st->print_cr("R8 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]); - print_location(st, uc->uc_mcontext.gregs[REG_R8]); - st->cr(); - st->print_cr("R9 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R9]); - print_location(st, uc->uc_mcontext.gregs[REG_R9]); - st->cr(); - st->print_cr("R10=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R10]); - print_location(st, uc->uc_mcontext.gregs[REG_R10]); - st->cr(); - st->print_cr("R11=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R11]); - print_location(st, uc->uc_mcontext.gregs[REG_R11]); - st->cr(); - st->print_cr("R12=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R12]); - print_location(st, uc->uc_mcontext.gregs[REG_R12]); - st->cr(); - st->print_cr("R13=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R13]); - print_location(st, uc->uc_mcontext.gregs[REG_R13]); - st->cr(); - st->print_cr("R14=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R14]); - print_location(st, uc->uc_mcontext.gregs[REG_R14]); - st->cr(); - st->print_cr("R15=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R15]); - print_location(st, uc->uc_mcontext.gregs[REG_R15]); - #else st->print( "EAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EAX]); st->print(", EBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EBX]); @@ -817,39 +790,6 @@ st->cr(); st->print( "EIP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EIP]); st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EFL]); - - st->cr(); - st->cr(); - - st->print_cr("Register to memory mapping:"); - st->cr(); - - // this is only for the "general purpose" registers - - st->print_cr("EAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EAX]); - print_location(st, uc->uc_mcontext.gregs[EAX]); - st->cr(); - st->print_cr("EBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EBX]); - print_location(st, uc->uc_mcontext.gregs[EBX]); - st->cr(); - st->print_cr("ECX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[ECX]); - print_location(st, uc->uc_mcontext.gregs[ECX]); - st->cr(); - st->print_cr("EDX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EDX]); - print_location(st, uc->uc_mcontext.gregs[EDX]); - st->cr(); - st->print_cr("ESP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[UESP]); - print_location(st, uc->uc_mcontext.gregs[UESP]); - st->cr(); - st->print_cr("EBP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EBP]); - print_location(st, uc->uc_mcontext.gregs[EBP]); - st->cr(); - st->print_cr("ESI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[ESI]); - print_location(st, uc->uc_mcontext.gregs[ESI]); - st->cr(); - st->print_cr("EDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[EDI]); - print_location(st, uc->uc_mcontext.gregs[EDI]); - #endif // AMD64 st->cr(); st->cr(); @@ -865,7 +805,52 @@ ExtendedPC epc = os::Solaris::ucontext_get_ExtendedPC(uc); address pc = epc.pc(); st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc); - print_hex_dump(st, pc - 16, pc + 16, sizeof(char)); + print_hex_dump(st, pc - 32, pc + 32, sizeof(char)); +} + +void os::print_register_info(outputStream *st, void *context) { + if (context == NULL) return; + + ucontext_t *uc = (ucontext_t*)context; + + st->print_cr("Register to memory mapping:"); + st->cr(); + + // this is horrendously verbose but the layout of the registers in the + // context does not match how we defined our abstract Register set, so + // we can't just iterate through the gregs area + + // this is only for the "general purpose" registers + +#ifdef AMD64 + st->print("RAX="); print_location(st, uc->uc_mcontext.gregs[REG_RAX]); + st->print("RBX="); print_location(st, uc->uc_mcontext.gregs[REG_RBX]); + st->print("RCX="); print_location(st, uc->uc_mcontext.gregs[REG_RCX]); + st->print("RDX="); print_location(st, uc->uc_mcontext.gregs[REG_RDX]); + st->print("RSP="); print_location(st, uc->uc_mcontext.gregs[REG_RSP]); + st->print("RBP="); print_location(st, uc->uc_mcontext.gregs[REG_RBP]); + st->print("RSI="); print_location(st, uc->uc_mcontext.gregs[REG_RSI]); + st->print("RDI="); print_location(st, uc->uc_mcontext.gregs[REG_RDI]); + st->print("R8 ="); print_location(st, uc->uc_mcontext.gregs[REG_R8]); + st->print("R9 ="); print_location(st, uc->uc_mcontext.gregs[REG_R9]); + st->print("R10="); print_location(st, uc->uc_mcontext.gregs[REG_R10]); + st->print("R11="); print_location(st, uc->uc_mcontext.gregs[REG_R11]); + st->print("R12="); print_location(st, uc->uc_mcontext.gregs[REG_R12]); + st->print("R13="); print_location(st, uc->uc_mcontext.gregs[REG_R13]); + st->print("R14="); print_location(st, uc->uc_mcontext.gregs[REG_R14]); + st->print("R15="); print_location(st, uc->uc_mcontext.gregs[REG_R15]); +#else + st->print("EAX="); print_location(st, uc->uc_mcontext.gregs[EAX]); + st->print("EBX="); print_location(st, uc->uc_mcontext.gregs[EBX]); + st->print("ECX="); print_location(st, uc->uc_mcontext.gregs[ECX]); + st->print("EDX="); print_location(st, uc->uc_mcontext.gregs[EDX]); + st->print("ESP="); print_location(st, uc->uc_mcontext.gregs[UESP]); + st->print("EBP="); print_location(st, uc->uc_mcontext.gregs[EBP]); + st->print("ESI="); print_location(st, uc->uc_mcontext.gregs[ESI]); + st->print("EDI="); print_location(st, uc->uc_mcontext.gregs[EDI]); +#endif + + st->cr(); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp --- a/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP + // // NOTE: we are back in class os here, not Solaris // @@ -48,3 +51,5 @@ // Used to register dynamic code cache area with the OS // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } + +#endif // OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/prefetch_solaris_x86.inline.hpp --- a/src/os_cpu/solaris_x86/vm/prefetch_solaris_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/prefetch_solaris_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP + +#include "runtime/prefetch.hpp" + extern "C" { void _Prefetch_read (void *loc, intx interval); void _Prefetch_write(void *loc, intx interval); @@ -39,3 +44,5 @@ _Prefetch_write(loc, interval); #endif // AMD64 } + +#endif // OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp --- a/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadLS_solaris_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_solaris.inline.hpp" #ifdef AMD64 extern "C" Thread* fs_load(ptrdiff_t tlsOffset); diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.hpp --- a/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_THREADLS_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_THREADLS_SOLARIS_X86_HPP + // Processor dependent parts of ThreadLocalStorage private: @@ -78,3 +81,5 @@ // Java Thread static inline Thread* thread(); + +#endif // OS_CPU_SOLARIS_X86_VM_THREADLS_SOLARIS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp --- a/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_solaris_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_solaris.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/thread_solaris_x86.hpp --- a/src/os_cpu/solaris_x86/vm/thread_solaris_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/thread_solaris_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP + private: void pd_initialize() { _anchor.clear(); } @@ -57,3 +60,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp --- a/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -57,3 +60,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/solaris_x86/vm/vm_version_solaris_x86.cpp --- a/src/os_cpu/solaris_x86/vm/vm_version_solaris_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/solaris_x86/vm/vm_version_solaris_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_solaris_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/assembler_windows_x86.cpp --- a/src/os_cpu/windows_x86/vm/assembler_windows_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/assembler_windows_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_windows_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" void MacroAssembler::int3() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp --- a/src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP + +#include "orderAccess_windows_x86.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + // The following alternative implementations are needed because // Windows 95 doesn't support (some of) the corresponding Windows NT // calls. Furthermore, these versions allow inlining in the caller. @@ -249,3 +257,5 @@ #endif // AMD64 #pragma warning(default: 4035) // Enables warnings reporting missing return statement + +#endif // OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp --- a/src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP + #pragma warning(disable: 4035) // Disable warning 4035: no return value // Efficient swapping of data bytes from Java byte @@ -80,3 +83,5 @@ #endif // AMD64 #pragma warning(default: 4035) // Enable warning 4035: no return value + +#endif // OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp --- a/src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP + static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { (void)memmove(to, from, count * HeapWordSize); } @@ -164,3 +167,5 @@ static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) { pd_conjoint_oops_atomic((oop*)from, (oop*)to, count); } + +#endif // OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/globals_windows_x86.hpp --- a/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -46,3 +49,5 @@ define_pd_global(uintx, HeapBaseMinAddress, 2*G); // Only used on 64 bit Windows platforms define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp --- a/src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_x86.hpp" + #pragma warning(disable: 4035) // Disables warnings reporting missing return statement // Implementation of class OrderAccess. @@ -208,3 +214,5 @@ } #pragma warning(default: 4035) // Enables warnings reporting missing return statement + +#endif // OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/os_windows_x86.cpp --- a/src/os_cpu/windows_x86/vm/os_windows_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/os_windows_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,44 @@ * */ -// do not include precompiled header file -# include "incls/_os_windows_x86.cpp.incl" +// no precompiled headers +#include "assembler_x86.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_windows.h" +#include "memory/allocation.inline.hpp" +#include "mutex_windows.inline.hpp" +#include "nativeInst_x86.hpp" +#include "os_share_windows.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_windows.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif + # include "unwind_windows_x86.hpp" #undef REG_SP #undef REG_FP @@ -387,8 +423,8 @@ st->print(", RSI=" INTPTR_FORMAT, uc->Rsi); st->print(", RDI=" INTPTR_FORMAT, uc->Rdi); st->cr(); - st->print( "R8=" INTPTR_FORMAT, uc->R8); - st->print(", R9=" INTPTR_FORMAT, uc->R9); + st->print( "R8 =" INTPTR_FORMAT, uc->R8); + st->print(", R9 =" INTPTR_FORMAT, uc->R9); st->print(", R10=" INTPTR_FORMAT, uc->R10); st->print(", R11=" INTPTR_FORMAT, uc->R11); st->cr(); @@ -399,62 +435,6 @@ st->cr(); st->print( "RIP=" INTPTR_FORMAT, uc->Rip); st->print(", EFLAGS=" INTPTR_FORMAT, uc->EFlags); - - st->cr(); - st->cr(); - - st->print_cr("Register to memory mapping:"); - st->cr(); - - // this is only for the "general purpose" registers - - st->print_cr("RAX=" INTPTR_FORMAT, uc->Rax); - print_location(st, uc->Rax); - st->cr(); - st->print_cr("RBX=" INTPTR_FORMAT, uc->Rbx); - print_location(st, uc->Rbx); - st->cr(); - st->print_cr("RCX=" INTPTR_FORMAT, uc->Rcx); - print_location(st, uc->Rcx); - st->cr(); - st->print_cr("RDX=" INTPTR_FORMAT, uc->Rdx); - print_location(st, uc->Rdx); - st->cr(); - st->print_cr("RSP=" INTPTR_FORMAT, uc->Rsp); - print_location(st, uc->Rsp); - st->cr(); - st->print_cr("RBP=" INTPTR_FORMAT, uc->Rbp); - print_location(st, uc->Rbp); - st->cr(); - st->print_cr("RSI=" INTPTR_FORMAT, uc->Rsi); - print_location(st, uc->Rsi); - st->cr(); - st->print_cr("RDI=" INTPTR_FORMAT, uc->Rdi); - print_location(st, uc->Rdi); - st->cr(); - st->print_cr("R8 =" INTPTR_FORMAT, uc->R8); - print_location(st, uc->R8); - st->cr(); - st->print_cr("R9 =" INTPTR_FORMAT, uc->R9); - print_location(st, uc->R9); - st->cr(); - st->print_cr("R10=" INTPTR_FORMAT, uc->R10); - print_location(st, uc->R10); - st->cr(); - st->print_cr("R11=" INTPTR_FORMAT, uc->R11); - print_location(st, uc->R11); - st->cr(); - st->print_cr("R12=" INTPTR_FORMAT, uc->R12); - print_location(st, uc->R12); - st->cr(); - st->print_cr("R13=" INTPTR_FORMAT, uc->R13); - print_location(st, uc->R13); - st->cr(); - st->print_cr("R14=" INTPTR_FORMAT, uc->R14); - print_location(st, uc->R14); - st->cr(); - st->print_cr("R15=" INTPTR_FORMAT, uc->R15); - print_location(st, uc->R15); #else st->print( "EAX=" INTPTR_FORMAT, uc->Eax); st->print(", EBX=" INTPTR_FORMAT, uc->Ebx); @@ -468,38 +448,6 @@ st->cr(); st->print( "EIP=" INTPTR_FORMAT, uc->Eip); st->print(", EFLAGS=" INTPTR_FORMAT, uc->EFlags); - - st->cr(); - st->cr(); - - st->print_cr("Register to memory mapping:"); - st->cr(); - - // this is only for the "general purpose" registers - - st->print_cr("EAX=" INTPTR_FORMAT, uc->Eax); - print_location(st, uc->Eax); - st->cr(); - st->print_cr("EBX=" INTPTR_FORMAT, uc->Ebx); - print_location(st, uc->Ebx); - st->cr(); - st->print_cr("ECX=" INTPTR_FORMAT, uc->Ecx); - print_location(st, uc->Ecx); - st->cr(); - st->print_cr("EDX=" INTPTR_FORMAT, uc->Edx); - print_location(st, uc->Edx); - st->cr(); - st->print_cr("ESP=" INTPTR_FORMAT, uc->Esp); - print_location(st, uc->Esp); - st->cr(); - st->print_cr("EBP=" INTPTR_FORMAT, uc->Ebp); - print_location(st, uc->Ebp); - st->cr(); - st->print_cr("ESI=" INTPTR_FORMAT, uc->Esi); - print_location(st, uc->Esi); - st->cr(); - st->print_cr("EDI=" INTPTR_FORMAT, uc->Edi); - print_location(st, uc->Edi); #endif // AMD64 st->cr(); st->cr(); @@ -514,7 +462,49 @@ // this at the end, and hope for the best. address pc = (address)uc->REG_PC; st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc); - print_hex_dump(st, pc - 16, pc + 16, sizeof(char)); + print_hex_dump(st, pc - 32, pc + 32, sizeof(char)); + st->cr(); +} + + +void os::print_register_info(outputStream *st, void *context) { + if (context == NULL) return; + + CONTEXT* uc = (CONTEXT*)context; + + st->print_cr("Register to memory mapping:"); + st->cr(); + + // this is only for the "general purpose" registers + +#ifdef AMD64 + st->print("RAX="); print_location(st, uc->Rax); + st->print("RBX="); print_location(st, uc->Rbx); + st->print("RCX="); print_location(st, uc->Rcx); + st->print("RDX="); print_location(st, uc->Rdx); + st->print("RSP="); print_location(st, uc->Rsp); + st->print("RBP="); print_location(st, uc->Rbp); + st->print("RSI="); print_location(st, uc->Rsi); + st->print("RDI="); print_location(st, uc->Rdi); + st->print("R8 ="); print_location(st, uc->R8); + st->print("R9 ="); print_location(st, uc->R9); + st->print("R10="); print_location(st, uc->R10); + st->print("R11="); print_location(st, uc->R11); + st->print("R12="); print_location(st, uc->R12); + st->print("R13="); print_location(st, uc->R13); + st->print("R14="); print_location(st, uc->R14); + st->print("R15="); print_location(st, uc->R15); +#else + st->print("EAX="); print_location(st, uc->Eax); + st->print("EBX="); print_location(st, uc->Ebx); + st->print("ECX="); print_location(st, uc->Ecx); + st->print("EDX="); print_location(st, uc->Edx); + st->print("ESP="); print_location(st, uc->Esp); + st->print("EBP="); print_location(st, uc->Ebp); + st->print("ESI="); print_location(st, uc->Esi); + st->print("EDI="); print_location(st, uc->Edi); +#endif + st->cr(); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/os_windows_x86.hpp --- a/src/os_cpu/windows_x86/vm/os_windows_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/os_windows_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP + // // NOTE: we are back in class os here, not win32 // @@ -56,3 +59,5 @@ static bool supports_sse() { return true; } static bool register_code_area(char *low, char *high); + +#endif // OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hpp --- a/src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,12 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP + +#include "runtime/prefetch.hpp" + inline void Prefetch::read (void *loc, intx interval) {} inline void Prefetch::write(void *loc, intx interval) {} + +#endif // OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/threadLS_windows_x86.cpp --- a/src/os_cpu/windows_x86/vm/threadLS_windows_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/threadLS_windows_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,14 +22,15 @@ * */ +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_windows.inline.hpp" + // Provides an entry point we can link against and // a buffer we can emit code into. The buffer is // filled by ThreadLocalStorage::generate_code_for_get_thread // and called from ThreadLocalStorage::thread() -#include "incls/_precompiled.incl" -#include "incls/_threadLS_windows_x86.cpp.incl" - int ThreadLocalStorage::_thread_ptr_offset = 0; static void call_wrapper_dummy() {} diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp --- a/src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_THREADLS_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_THREADLS_WINDOWS_X86_HPP + // Processor dependent parts of ThreadLocalStorage protected: @@ -42,3 +45,5 @@ static inline void set_thread_ptr_offset( int offset ) { _thread_ptr_offset = offset; } static inline int get_thread_ptr_offset() { return _thread_ptr_offset; } + +#endif // OS_CPU_WINDOWS_X86_VM_THREADLS_WINDOWS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/thread_windows_x86.cpp --- a/src/os_cpu/windows_x86/vm/thread_windows_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/thread_windows_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_windows_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_windows.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/thread_windows_x86.hpp --- a/src/os_cpu/windows_x86/vm/thread_windows_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/thread_windows_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP + private: void pd_initialize() { _anchor.clear(); @@ -60,3 +63,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp --- a/src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP + #ifdef AMD64 typedef unsigned char UBYTE; @@ -81,3 +84,5 @@ #endif #endif // AMD64 + +#endif // OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp --- a/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -52,3 +55,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/os_cpu/windows_x86/vm/vm_version_windows_x86.cpp --- a/src/os_cpu/windows_x86/vm/vm_version_windows_x86.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/os_cpu/windows_x86/vm/vm_version_windows_x86.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_windows_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/ArgsParser.java --- a/src/share/tools/MakeDeps/ArgsParser.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -class ArgIterator { - String[] args; - int i; - ArgIterator(String[] args) { - this.args = args; - this.i = 0; - } - String get() { return args[i]; } - boolean hasMore() { return args != null && i < args.length; } - boolean next() { return ++i < args.length; } -} - -abstract class ArgHandler { - public abstract void handle(ArgIterator it); - -} - -class ArgRule { - String arg; - ArgHandler handler; - ArgRule(String arg, ArgHandler handler) { - this.arg = arg; - this.handler = handler; - } - - boolean process(ArgIterator it) { - if (match(it.get(), arg)) { - handler.handle(it); - return true; - } - return false; - } - boolean match(String rule_pattern, String arg) { - return arg.equals(rule_pattern); - } -} - -class ArgsParser { - ArgsParser(String[] args, - ArgRule[] rules, - ArgHandler defaulter) { - ArgIterator ai = new ArgIterator(args); - while (ai.hasMore()) { - boolean processed = false; - for (int i=0; i.hpp os_.hpp but only - // recorded if the platform file was seen. - private FileList platformFiles; - private FileList outerFiles; - private FileList indivIncludes; - private FileList grandInclude; // the results for the grand include file - private HashMap platformDepFiles; - private long threshold; - private int nOuterFiles; - private boolean missingOk; - private Platform plat; - /** These allow you to specify files not in the include database - which are prepended and appended to the file list, allowing - you to have well-known functions at the start and end of the - text segment (allows us to find out in a portable fashion - whether the current PC is in VM code or not upon a crash) */ - private String firstFile; - private String lastFile; - - public Database(Platform plat, long t) { - this.plat = plat; - macros = new MacroDefinitions(); - allFiles = new FileList("allFiles", plat); - platformFiles = new FileList("platformFiles", plat); - outerFiles = new FileList("outerFiles", plat); - indivIncludes = new FileList("IndivIncludes", plat); - grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat); - platformDepFiles = new HashMap(); - - threshold = t; - nOuterFiles = 0; - missingOk = false; - firstFile = null; - lastFile = null; - }; - - public FileList getAllFiles() { - return allFiles; - } - - public Iterator getMacros() { - return macros.getMacros(); - } - - public void canBeMissing() { - missingOk = true; - } - - public boolean hfileIsInGrandInclude(FileList hfile, FileList cfile) { - return ((hfile.getCount() >= threshold) && (cfile.getUseGrandInclude())); - } - - /** These allow you to specify files not in the include database - which are prepended and appended to the file list, allowing - you to have well-known functions at the start and end of the - text segment (allows us to find out in a portable fashion - whether the current PC is in VM code or not upon a crash) */ - public void setFirstFile(String fileName) { - firstFile = fileName; - } - - public void setLastFile(String fileName) { - lastFile = fileName; - } - - public void get(String platFileName, String dbFileName) - throws FileFormatException, IOException, FileNotFoundException { - macros.readFrom(platFileName, missingOk); - - BufferedReader reader = null; - try { - reader = new BufferedReader(new FileReader(dbFileName)); - } catch (FileNotFoundException e) { - if (missingOk) { - return; - } else { - throw(e); - } - } - System.out.println("\treading database: " + dbFileName); - String line; - int lineNo = 0; - do { - line = reader.readLine(); - lineNo++; - if (line != null) { - StreamTokenizer tokenizer = - new StreamTokenizer(new StringReader(line)); - tokenizer.slashSlashComments(true); - tokenizer.wordChars('_', '_'); - tokenizer.wordChars('<', '>'); - // NOTE: if we didn't have to do this line by line, - // we could trivially recognize C-style comments as - // well. - // tokenizer.slashStarComments(true); - int numTok = 0; - int res; - String unexpandedIncluder = null; - String unexpandedIncludee = null; - do { - res = tokenizer.nextToken(); - if (res != StreamTokenizer.TT_EOF) { - if (numTok == 0) { - unexpandedIncluder = tokenizer.sval; - } else if (numTok == 1) { - unexpandedIncludee = tokenizer.sval; - } else { - throw new FileFormatException( - "invalid line: \"" + line + - "\". Error position: line " + lineNo - ); - } - numTok++; - } - } while (res != StreamTokenizer.TT_EOF); - - if ((numTok != 0) && (numTok != 2)) { - throw new FileFormatException( - "invalid line: \"" + line + - "\". Error position: line " + lineNo - ); - } - - if (numTok == 2) { - // Non-empty line - String includer = macros.expand(unexpandedIncluder); - String includee = macros.expand(unexpandedIncludee); - - if (includee.equals(plat.generatePlatformDependentInclude())) { - MacroDefinitions localExpander = macros.copy(); - MacroDefinitions localExpander2 = macros.copy(); - localExpander.setAllMacroBodiesTo("pd"); - localExpander2.setAllMacroBodiesTo(""); - - // unexpanded_includer e.g. thread_.hpp - // thread_solaris_i486.hpp -> _thread_pd.hpp.incl - - FileName pdName = - plat.getInclFileTemplate().copyStem( - localExpander.expand(unexpandedIncluder) - ); - - // derive generic name from platform specific name - // e.g. os_.hpp => os.hpp. We enforce the - // restriction (imperfectly) noted in includeDB_core - // that platform specific files will have an underscore - // preceding the macro invocation. - - // First expand macro as null string. - - String newIncluder_temp = - localExpander2.expand(unexpandedIncluder); - - // Now find "_." and remove the underscore. - - String newIncluder = ""; - - int len = newIncluder_temp.length(); - int count = 0; - - for ( int i = 0; i < len - 1 ; i++ ) { - if (newIncluder_temp.charAt(i) == '_' && newIncluder_temp.charAt(i+1) == '.') { - count++; - } else { - newIncluder += newIncluder_temp.charAt(i); - } - } - newIncluder += newIncluder_temp.charAt(len-1); - - if (count != 1) { - throw new FileFormatException( - "Unexpected filename format for platform dependent file.\nline: \"" + line + - "\".\nError position: line " + lineNo - ); - } - - FileList p = allFiles.listForFile(includer); - p.setPlatformDependentInclude(pdName.dirPreStemSuff()); - - // Record the implicit include of this file so that the - // dependencies for precompiled headers can mention it. - platformDepFiles.put(newIncluder, includer); - - // Add an implicit dependency on platform - // specific file for the generic file - - p = platformFiles.listForFile(newIncluder); - - // if this list is empty then this is 1st - // occurance of a platform dependent file and - // we need a new version of the include file. - // Otherwise we just append to the current - // file. - - PrintWriter pdFile = - new PrintWriter( - new FileWriter(pdName.dirPreStemSuff(), - !p.isEmpty()) - ); - pdFile.println("# include \"" + includer + "\""); - pdFile.close(); - - // Add the platform specific file to the list - // for this generic file. - - FileList q = allFiles.listForFile(includer); - p.addIfAbsent(q); - } else { - FileList p = allFiles.listForFile(includer); - if (isOuterFile(includer)) - outerFiles.addIfAbsent(p); - - if (includee.equals(plat.noGrandInclude())) { - p.setUseGrandInclude(false); - } else { - FileList q = allFiles.listForFile(includee); - p.addIfAbsent(q); - } - } - } - } - } while (line != null); - reader.close(); - - // Keep allFiles in well-known order so we can easily determine - // whether the known files are the same - allFiles.sortByName(); - - // Add first and last files differently to prevent a mistake - // in ordering in the include databases from breaking the - // error reporting in the VM. - if (firstFile != null) { - FileList p = allFiles.listForFile(firstFile); - allFiles.setFirstFile(p); - outerFiles.setFirstFile(p); - } - - if (lastFile != null) { - FileList p = allFiles.listForFile(lastFile); - allFiles.setLastFile(p); - outerFiles.setLastFile(p); - } - } - - public void compute() { - System.out.println("\tcomputing closures\n"); - // build both indiv and grand results - for (Iterator iter = outerFiles.iterator(); iter.hasNext(); ) { - indivIncludes.add(((FileList) iter.next()).doCFile()); - ++nOuterFiles; - } - - if (!plat.haveGrandInclude()) - return; // nothing in grand include - - // count how many times each include is included & add em to grand - for (Iterator iter = indivIncludes.iterator(); iter.hasNext(); ) { - FileList indivInclude = (FileList) iter.next(); - if (!indivInclude.getUseGrandInclude()) { - continue; // do not bump count if my files cannot be - // in grand include - } - indivInclude.doFiles(grandInclude); // put em on - // grand_include list - for (Iterator incListIter = indivInclude.iterator(); - incListIter.hasNext(); ) { - ((FileList) incListIter.next()).incrementCount(); - } - } - } - - // Not sure this is necessary in Java - public void verify() { - for (Iterator iter = indivIncludes.iterator(); iter.hasNext(); ) { - if (iter.next() == null) { - plat.abort(); - } - } - } - - public void put() throws IOException { - writeIndividualIncludes(); - - if (plat.haveGrandInclude()) - writeGrandInclude(); - - writeGrandUnixMakefile(); - } - - private void writeIndividualIncludes() throws IOException { - System.out.println("\twriting individual include files\n"); - - for (Iterator iter = indivIncludes.iterator(); iter.hasNext(); ) { - FileList list = (FileList) iter.next(); - System.out.println("\tcreating " + list.getName()); - list.putInclFile(this); - } - } - - private void writeGrandInclude() throws IOException { - System.out.println("\twriting grand include file\n"); - PrintWriter inclFile = - new PrintWriter(new FileWriter(plat.getGIFileTemplate().dirPreStemSuff())); - plat.writeGIPragma(inclFile); - for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) { - FileList list = (FileList) iter.next(); - if (list.getCount() >= threshold) { - inclFile.println("# include \"" + - plat.getGIFileTemplate().getInvDir() + - list.getName() + - "\""); - } - } - inclFile.println(); - inclFile.close(); - } - - private void writeGrandUnixMakefile() throws IOException { - if (!plat.writeDeps()) - return; - - System.out.println("\twriting dependencies file\n"); - PrintWriter gd = - new PrintWriter(new FileWriter( - plat.getGDFileTemplate().dirPreStemSuff()) - ); - gd.println("# generated by makeDeps"); - gd.println(); - - - // HACK ALERT. The compilation of ad_ files is very slow. - // We want to start compiling them as early as possible. The compilation - // order on unix is dependent on the order we emit files here. - // By sorting the output before emitting it, we expect - // that ad_ will be compiled early. - boolean shouldSortObjFiles = true; - - if (shouldSortObjFiles) { - ArrayList sortList = new ArrayList(); - - // We need to preserve the ordering of the first and last items - // in outerFiles. - int size = outerFiles.size() - 1; - String firstName = removeSuffixFrom(((FileList)outerFiles.get(0)).getName()); - String lastName = removeSuffixFrom(((FileList)outerFiles.get(size)).getName()); - - for (int i=1; i= threshold) { - gd.println(list.getName() + " \\"); - String platformDep = platformDepFiles.get(list.getName()); - if (platformDep != null) { - // make sure changes to the platform dependent file will - // cause regeneration of the pch file. - gd.println(platformDep + " \\"); - } - } - } - gd.println(); - gd.println(); - - gd.println("DTraced_Files = \\"); - for (Iterator iter = outerFiles.iterator(); iter.hasNext(); ) { - FileList anOuterFile = (FileList) iter.next(); - - if (anOuterFile.hasListForFile("dtrace.hpp")) { - String stemName = removeSuffixFrom(anOuterFile.getName()); - gd.println(stemName + plat.objFileSuffix() + " \\"); - } - } - gd.println(); - gd.println(); - - { - // write each dependency - - for (Iterator iter = indivIncludes.iterator(); iter.hasNext(); ) { - - FileList anII = (FileList) iter.next(); - - String stemName = removeSuffixFrom(anII.getName()); - String inclFileName = - plat.getInclFileTemplate().copyStem(anII.getName()). - preStemSuff(); - - gd.println(stemName + plat.objFileSuffix() + " " + - stemName + plat.asmFileSuffix() + ": \\"); - - printDependentOn(gd, anII.getName()); - // this gets the include file that includes all that - // this file needs (first level) since nested includes - // are skipped to avoid cycles. - printDependentOn(gd, inclFileName); - - if ( plat.haveGrandInclude() ) { - printDependentOn(gd, - plat.getGIFileTemplate().preStemSuff()); - } - - for (Iterator iiIter = anII.iterator(); iiIter.hasNext(); ) { - FileList hfile = (FileList) iiIter.next(); - if (!hfileIsInGrandInclude(hfile, anII) || - plat.writeDependenciesOnHFilesFromGI()) { - printDependentOn(gd, hfile.getName()); - } - if (platformFiles.hasListForFile(hfile.getName())) { - FileList p = - platformFiles.listForFile(hfile.getName());; - for (Iterator hiIter = p.iterator(); - hiIter.hasNext(); ) { - FileList hi2 = (FileList) hiIter.next(); - if (!hfileIsInGrandInclude(hi2, p)) { - printDependentOn(gd, hi2.getName()); - } - } - } - } - - if (plat.includeGIDependencies() - && anII.getUseGrandInclude()) { - gd.println(" $(Precompiled_Files) \\"); - } - gd.println(); - gd.println(); - } - } - - gd.close(); - } - - public void putDiffs(Database previous) throws IOException { - System.out.println("\tupdating output files\n"); - - if (!indivIncludes.compareLists(previous.indivIncludes) - || !grandInclude.compareLists(previous.grandInclude)) { - System.out.println("The order of .c or .s has changed, or " + - "the grand include file has changed."); - put(); - return; - } - - Iterator curIter = indivIncludes.iterator(); - Iterator prevIter = previous.indivIncludes.iterator(); - - try { - while (curIter.hasNext()) { - FileList newCFileList = (FileList) curIter.next(); - FileList prevCFileList = (FileList) prevIter.next(); - if (!newCFileList.compareLists(prevCFileList)) { - System.out.println("\tupdating " + newCFileList.getName()); - newCFileList.putInclFile(this); - } - } - } - catch (Exception e) { - throw new InternalError("assertion failure: cur and prev " + - "database lists changed unexpectedly."); - } - - writeGrandUnixMakefile(); - } - - private void printDependentOn(PrintWriter gd, String name) { - gd.print(" "); - gd.print(plat.dependentPrefix() + name); - } - - private boolean isOuterFile(String s) { - int len = s.length(); - String[] suffixes = plat.outerSuffixes(); - for (int i = 0; i < suffixes.length; i++) { - String suffix = suffixes[i]; - int suffLen = suffix.length(); - if ((len >= suffLen) && - (plat.fileNameStringEquality(s.substring(len - suffLen), - suffix))) { - return true; - } - } - return false; - } - - private String removeSuffixFrom(String s) { - int idx = s.lastIndexOf('.'); - if (idx <= 0) - plat.abort(); - return s.substring(0, idx); - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/DirectoryTree.java --- a/src/share/tools/MakeDeps/DirectoryTree.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,257 +0,0 @@ -/* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -/** Encapsulates a notion of a directory tree. Designed to allow fast - querying of full paths for unique filenames in the hierarchy. */ - -import java.io.*; -import java.util.*; - -public class DirectoryTree { - - /** The root of the read directoryTree */ - private Node rootNode; - - /** Subdirs to ignore; Vector of Strings */ - private Vector subdirsToIgnore; - - /** This maps file names to Lists of nodes. */ - private Hashtable nameToNodeListTable; - - /** Output "."'s as directories are read. Defaults to false. */ - private boolean verbose; - - public DirectoryTree() { - subdirsToIgnore = new Vector(); - verbose = false; - } - - /** Takes an absolute path to the root directory of this - DirectoryTree. Throws IllegalArgumentException if the given - string represents a plain file or nonexistent directory. */ - - public DirectoryTree(String baseDirectory) { - this(); - readDirectory(baseDirectory); - } - - public void addSubdirToIgnore(String subdir) { - subdirsToIgnore.add(subdir); - } - - /** Output "."'s to System.out as directories are read. Defaults - to false. */ - public void setVerbose(boolean newValue) { - verbose = newValue; - } - - public boolean getVerbose() { - return verbose; - } - - public String getRootNodeName() { - return rootNode.getName(); - } - - /** Takes an absolute path to the root directory of this - DirectoryTree. Throws IllegalArgumentException if the given - string represents a plain file or nonexistent directory. */ - - public void readDirectory(String baseDirectory) - throws IllegalArgumentException { - File root = new File(baseDirectory); - if (!root.isDirectory()) { - throw new IllegalArgumentException("baseDirectory \"" + - baseDirectory + - "\" does not exist or " + - "is not a directory"); - } - try { - root = root.getCanonicalFile(); - } - catch (IOException e) { - throw new RuntimeException(e.toString()); - } - rootNode = new Node(root); - readDirectory(rootNode, root); - } - - /** Queries the DirectoryTree for a file or directory name. Takes - only the name of the file or directory itself (i.e., no parent - directory information should be in the passed name). Returns a - List of DirectoryTreeNodes specifying the full paths of all of - the files or directories of this name in the DirectoryTree. - Returns null if the directory tree has not been read from disk - yet or if the file was not found in the tree. */ - public List findFile(String name) { - if (rootNode == null) { - return null; - } - - if (nameToNodeListTable == null) { - nameToNodeListTable = new Hashtable(); - try { - buildNameToNodeListTable(rootNode); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - return (List) nameToNodeListTable.get(name); - } - - private void buildNameToNodeListTable(Node curNode) - throws IOException { - String fullName = curNode.getName(); - String parent = curNode.getParent(); - String separator = System.getProperty("file.separator"); - - if (parent != null) { - if (!fullName.startsWith(parent)) { - throw new RuntimeException( - "Internal error: parent of file name \"" + fullName + - "\" does not match file name \"" + parent + "\"" - ); - } - - int len = parent.length(); - if (!parent.endsWith(separator)) { - len += separator.length(); - } - - String fileName = fullName.substring(len); - - if (fileName == null) { - throw new RuntimeException( - "Internal error: file name was empty" - ); - } - - List nodeList = (List) nameToNodeListTable.get(fileName); - if (nodeList == null) { - nodeList = new Vector(); - nameToNodeListTable.put(fileName, nodeList); - } - - nodeList.add(curNode); - } else { - if (curNode != rootNode) { - throw new RuntimeException( - "Internal error: parent of file + \"" + fullName + "\"" + - " was null" - ); - } - } - - if (curNode.isDirectory()) { - Iterator iter = curNode.getChildren(); - if (iter != null) { - while (iter.hasNext()) { - buildNameToNodeListTable((Node) iter.next()); - } - } - } - } - - /** Reads all of the files in the given directory and adds them as - children of the directory tree node. Requires that the passed - node represents a directory. */ - - private void readDirectory(Node parentNode, File parentDir) { - File[] children = parentDir.listFiles(); - if (children == null) - return; - if (verbose) { - System.out.print("."); - System.out.flush(); - } - for (int i = 0; i < children.length; i++) { - File child = children[i]; - children[i] = null; - boolean isDir = child.isDirectory(); - boolean mustSkip = false; - if (isDir) { - for (Iterator iter = subdirsToIgnore.iterator(); - iter.hasNext(); ) { - if (child.getName().equals((String) iter.next())) { - mustSkip = true; - break; - } - } - } - if (!mustSkip) { - Node childNode = new Node(child); - parentNode.addChild(childNode); - if (isDir) { - readDirectory(childNode, child); - } - } - } - } - - private class Node implements DirectoryTreeNode { - private File file; - private Vector children; - - /** file must be a canonical file */ - Node(File file) { - this.file = file; - children = new Vector(); - } - - public boolean isFile() { - return file.isFile(); - } - - public boolean isDirectory() { - return file.isDirectory(); - } - - public String getName() { - return file.getPath(); - } - - public String getParent() { - return file.getParent(); - } - - public void addChild(Node n) { - children.add(n); - } - - public Iterator getChildren() throws IllegalArgumentException { - return children.iterator(); - } - - public int getNumChildren() throws IllegalArgumentException { - return children.size(); - } - - public DirectoryTreeNode getChild(int i) - throws IllegalArgumentException, ArrayIndexOutOfBoundsException { - return (DirectoryTreeNode) children.get(i); - } - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/DirectoryTreeNode.java --- a/src/share/tools/MakeDeps/DirectoryTreeNode.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. - * 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. - * - */ - -import java.util.*; - -public interface DirectoryTreeNode { - public boolean isFile(); - public boolean isDirectory(); - public String getName(); - public String getParent(); - public Iterator getChildren() throws IllegalArgumentException; - public int getNumChildren() throws IllegalArgumentException; - public DirectoryTreeNode getChild(int i) - throws IllegalArgumentException, ArrayIndexOutOfBoundsException; -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/FileFormatException.java --- a/src/share/tools/MakeDeps/FileFormatException.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. - * 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. - * - */ - -public class FileFormatException extends Exception { - public FileFormatException() { - super(); - } - - public FileFormatException(String s) { - super(s); - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/FileList.java --- a/src/share/tools/MakeDeps/FileList.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,263 +0,0 @@ -/* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. - * 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. - * - */ - -import java.io.*; -import java.util.*; - -/** This class implements the java.util.List interface as well as - providing functionality specific to keeping track of lists of - files. See the documentation for the Database class to see how - these are used. Each FileList must only contain other FileLists - (although that is not currently enforced in the mutators). */ - -public class FileList extends Vector { - private String name; // (also the file name) - private boolean beenHere; - private boolean mayBeCycle; - private boolean isCycle; - /** Put in list because a file can refuse to */ - private boolean useGrandInclude; - private String platformDependentInclude; - private int count; - private Platform plat; - - public FileList(String n, Platform plat) { - super(); - this.plat = plat; - beenHere = mayBeCycle = isCycle = false; - platformDependentInclude = null; - name = n; - count = 0; - useGrandInclude = plat.haveGrandInclude(); - } - - // Change definition of equality from AbstractList so remove() works properly - public boolean equals(Object o) { - return ((Object) this) == o; - } - - // Necessary accessors - public String getName() { - return name; - } - - public void setPlatformDependentInclude(String arg) { - platformDependentInclude = arg; - } - - public String getPlatformDependentInclude() { - return platformDependentInclude; - } - - public boolean getUseGrandInclude() { - return useGrandInclude; - } - - public void setUseGrandInclude(boolean arg) { - useGrandInclude = arg; - } - - public void incrementCount() { - count++; - } - - public int getCount() { - return count; - } - - public FileList listForFile(String fileName) { - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList fl = (FileList) iter.next(); - if (plat.fileNameStringEquality(fl.name, fileName)) { - plat.fileNamePortabilityCheck(fl.name, fileName); - return fl; - } - } - plat.fileNamePortabilityCheck(fileName); - FileList newList = new FileList(fileName, plat); - add(newList); - return newList; - } - - public boolean hasListForFile(String fileName) { - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList fl = (FileList) iter.next(); - if (plat.fileNameStringEquality(fl.name, fileName)) { - plat.fileNamePortabilityCheck(fl.name, fileName); - return true; - } - } - return false; - } - - public boolean compareLists(FileList s) { - Iterator myIter = iterator(); - Iterator hisIter = s.iterator(); - - while (myIter.hasNext() && - hisIter.hasNext()) { - // crude: order dependent - FileList myElement = (FileList) myIter.next(); - FileList hisElement = (FileList) hisIter.next(); - if (!plat.fileNameStringEquality(myElement.name, - hisElement.name)) { - return false; - } - } - - if (myIter.hasNext() != hisIter.hasNext()) { - // One ended earlier - return false; - } - - return true; - } - - public void addIfAbsent(FileList s) { - for (Iterator iter = iterator(); iter.hasNext(); ) { - if (iter.next() == s) { - return; - } - } - add(s); - } - - public void sortByName() { - Collections.sort(this, new Comparator() { - public int compare(Object o1, Object o2) { - FileList fl1 = (FileList) o1; - FileList fl2 = (FileList) o2; - return fl1.getName().compareTo(fl2.getName()); - } - }); - } - - public void setFirstFile(FileList s) { - // Remove the file list if it's already here - remove(s); - add(0, s); - } - - public void setLastFile(FileList s) { - // Remove the file list if it's already here - remove(s); - add(s); - } - - public boolean doFiles(FileList s) { - boolean result = true; - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList h = (FileList) iter.next(); - if (h.platformDependentInclude != null) { - System.err.println("Error: the source for " + - h.platformDependentInclude + - " is " + h.name + "."); - System.err.println("\tIt shouldn't be included directly by " + - name + "."); - h.platformDependentInclude = null; // report once per file - result = false; - } - h.doHFile(s); - } - return result; - } - - public void traceCycle(FileList s) { - if (isCycle) // already traced - return; - isCycle = true; - System.err.println("\ttracing cycle for " + name); - // FIXME: must return status in caller routine - // exitCode = 1; - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList q = (FileList) iter.next(); - if (q.mayBeCycle) { - if (s == q) { - plat.fatalError("\tend of cycle for " + s.getName()); - } else { - q.traceCycle(s); - } - } - } - } - - public void doHFile(FileList s) { - if (beenHere) { - if (mayBeCycle) { - traceCycle(this); - } - return; - } - beenHere = true; - mayBeCycle = true; - doFiles(s); - mayBeCycle = false; - s.add(this); - } - - public FileList doCFile() { - FileList s = new FileList(name, plat); - s.useGrandInclude = useGrandInclude; // propagate this - doFiles(s); - for (Iterator iter = s.iterator(); iter.hasNext(); ) { - FileList l = (FileList) iter.next(); - l.beenHere = false; - } - return s; - } - - /** if .h file is included thresh times, put it in the grand - include file */ - public void putInclFile(Database db) - throws IOException { - boolean needline = true; - FileName inclName = plat.getInclFileTemplate().copyStem(name); - PrintWriter inclFile = - new PrintWriter(new FileWriter(inclName.dirPreStemSuff())); - if (plat.haveGrandInclude() && plat.includeGIInEachIncl()) { - inclFile.println("# include \"" + - plat.getGIFileTemplate().dirPreStemAltSuff() + - "\""); - needline = false; - } - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList hfile = (FileList) iter.next(); - if (!db.hfileIsInGrandInclude(hfile, this)) { - inclFile.println("# include \"" + - plat.getInclFileTemplate().getInvDir() + - hfile.name + - "\""); - needline = false; - } - } - - // Solaris C++ in strict mode warns about empty files - - if(needline) { - inclFile.println(); - } - - inclFile.close(); - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/FileName.java --- a/src/share/tools/MakeDeps/FileName.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. - * 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. - * - */ - -public class FileName { - private String dir; - private String prefix; - private String stem; - private String suffix; - private String inverseDir; - private String altSuffix; - - private String dpss; - private String psa; - private String dpsa; - private String pss; - - private Platform plat; - - /** None of the passed strings may be null. */ - - public FileName(Platform plat, String dir, String prefix, - String stem, String suffix, - String inverseDir, String altSuffix) { - if ((dir == null) || - (prefix == null) || - (stem == null) || - (suffix == null) || - (inverseDir == null) || - (altSuffix == null)) { - throw new NullPointerException("All arguments must be non-null"); - } - - this.plat = plat; - - this.dir = dir; - this.prefix = prefix; - this.stem = stem; - this.suffix = suffix; - this.inverseDir = inverseDir; - this.altSuffix = altSuffix; - - pss = prefix + stem + suffix; - dpss = dir + prefix + stem + suffix; - psa = prefix + stem + altSuffix; - dpsa = dir + prefix + stem + altSuffix; - - checkLength(plat); - } - - public void checkLength(Platform p) { - int len; - String s; - int suffLen = suffix.length(); - int altSuffLen = altSuffix.length(); - if (suffLen >= altSuffLen) { - len = suffLen; - s = suffix; - } else { - len = altSuffLen; - s = altSuffix; - } - len += prefix.length() + stem.length(); - int lim = p.fileNameLengthLimit(); - if (len > lim) { - p.fatalError(prefix + stem + s + " is too long: " + - len + " >= " + lim); - } - } - - public String dirPreStemSuff() { - return dpss; - } - - public String preStemSuff() { - return pss; - } - - public String dirPreStemAltSuff() { - return dpsa; - } - - public String preStemAltSuff() { - return psa; - } - - public FileName copyStem(String newStem) { - return new FileName(plat, dir, prefix, newStem, - suffix, inverseDir, altSuffix); - } - - String nameOfList() { - return stem; - } - - String getInvDir() { - return inverseDir; - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/Macro.java --- a/src/share/tools/MakeDeps/Macro.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. - * 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. - * - */ - -public class Macro { - public String name; - public String contents; -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/MacroDefinitions.java --- a/src/share/tools/MakeDeps/MacroDefinitions.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. - * 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. - * - */ - -import java.io.*; -import java.util.*; - -public class MacroDefinitions { - private Vector macros; - - public MacroDefinitions() { - macros = new Vector(); - } - - private String lookup(String name) throws NoSuchElementException { - for (Iterator iter = macros.iterator(); iter.hasNext(); ) { - Macro macro = (Macro) iter.next(); - if (macro.name.equals(name)) { - return macro.contents; - } - } - throw new NoSuchElementException(name); - } - - public void addMacro(String name, String contents) { - Macro macro = new Macro(); - macro.name = name; - macro.contents = contents; - macros.add(macro); - } - - private boolean lineIsEmpty(String s) { - for (int i = 0; i < s.length(); i++) { - if (!Character.isWhitespace(s.charAt(i))) { - return false; - } - } - return true; - } - - public void readFrom(String fileName, boolean missingOk) - throws FileNotFoundException, FileFormatException, IOException { - BufferedReader reader = null; - try { - reader = new BufferedReader(new FileReader(fileName)); - } catch (FileNotFoundException e) { - if (missingOk) { - return; - } else { - throw(e); - } - } - String line; - do { - line = reader.readLine(); - if (line != null) { - // This had to be rewritten (compare to Database.java) - // because the Solaris platform file has been - // repurposed and now contains "macros" with spaces in - // them. - - if ((!line.startsWith("//")) && - (!lineIsEmpty(line))) { - int nameBegin = -1; - int nameEnd = -1; - boolean gotEquals = false; - int contentsBegin = -1; - int contentsEnd = -1; - - int i = 0; - // Scan forward for beginning of name - while (i < line.length()) { - if (!Character.isWhitespace(line.charAt(i))) { - break; - } - i++; - } - nameBegin = i; - - // Scan forward for end of name - while (i < line.length()) { - if (Character.isWhitespace(line.charAt(i))) { - break; - } - i++; - } - nameEnd = i; - - // Scan forward for equals sign - while (i < line.length()) { - if (line.charAt(i) == '=') { - gotEquals = true; - break; - } - i++; - } - - // Scan forward for start of contents - i++; - while (i < line.length()) { - if (!Character.isWhitespace(line.charAt(i))) { - break; - } - i++; - } - contentsBegin = i; - - // Scan *backward* for end of contents - i = line.length() - 1; - while (i >= 0) { - if (!Character.isWhitespace(line.charAt(i))) { - break; - } - } - contentsEnd = i+1; - - // Now do consistency check - if (!((nameBegin < nameEnd) && - (nameEnd < contentsBegin) && - (contentsBegin < contentsEnd) && - (gotEquals == true))) { - throw new FileFormatException( - "Expected \"macroname = value\", " + - "but found: " + line - ); - } - - String name = line.substring(nameBegin, nameEnd); - String contents = line.substring(contentsBegin, - contentsEnd); - addMacro(name, contents); - } - } - } while (line != null); - reader.close(); - } - - /** Throws IllegalArgumentException if passed token is illegally - formatted */ - public String expand(String token) - throws IllegalArgumentException { - // the token may contain one or more 's - - String out = ""; - - // emacs lingo - int mark = 0; - int point = 0; - - int len = token.length(); - - if (len == 0) - return out; - - do { - // Scan "point" forward until hitting either the end of - // the string or the beginning of a macro - if (token.charAt(point) == '<') { - // Append (point - mark) to out - if ((point - mark) != 0) { - out += token.substring(mark, point); - } - mark = point + 1; - // Scan forward from point for right bracket - point++; - while ((point < len) && - (token.charAt(point) != '>')) { - point++; - } - if (point == len) { - throw new IllegalArgumentException( - "Could not find right angle-bracket in token " + token - ); - } - String name = token.substring(mark, point); - if (name == null) { - throw new IllegalArgumentException( - "Empty macro in token " + token - ); - } - try { - String contents = lookup(name); - out += contents; - point++; - mark = point; - } catch (NoSuchElementException e) { - throw new IllegalArgumentException( - "Unknown macro " + name + " in token " + token - ); - } - } else { - point++; - } - } while (point != len); - - if (mark != point) { - out += token.substring(mark, point); - } - - return out; - } - - public MacroDefinitions copy() { - MacroDefinitions ret = new MacroDefinitions(); - for (Iterator iter = macros.iterator(); - iter.hasNext(); ) { - Macro orig = (Macro) iter.next(); - Macro macro = new Macro(); - macro.name = orig.name; - macro.contents = orig.contents; - ret.macros.add(macro); - } - return ret; - } - - public void setAllMacroBodiesTo(String s) { - for (Iterator iter = macros.iterator(); - iter.hasNext(); ) { - Macro macro = (Macro) iter.next(); - macro.contents = s; - } - } - - /** This returns an Iterator of Macros. You should not mutate the - returned Macro objects or use the Iterator to remove - macros. */ - public Iterator getMacros() { - return macros.iterator(); - } - - private void error(String text) throws FileFormatException { - throw new FileFormatException( - "Expected \"macroname = value\", but found: " + text - ); - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/MakeDeps.java --- a/src/share/tools/MakeDeps/MakeDeps.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -// This program reads an include file database. -// The database should cover each self .c and .h file, -// but not files in /usr/include -// The database consists of pairs of nonblank words, where the first word is -// the filename that needs to include the file named by the second word. -// For each .c file, this program generates a fooIncludes.h file that -// the .c file may include to include all the needed files in the right order. -// It also generates a foo.dep file to include in the makefile. -// Finally it detects cycles, and can work with two files, an old and a new one. -// To incrementally write out only needed files after a small change. -// -// Based on a suggestion by Roland Conybeare, algorithm suggested by Craig -// Chambers, written by David Ungar, 3/1/89. -// Added PREFIX, {DEP/INC}_DIR, smaller dep output 10/92 -Urs - -// Add something for precompiled headers - -// To handle different platforms, I am introducing a platform file. -// The platform file contains lines like: -// os = svr4 -// -// Then, when processing the includeDB file, a token such as -// gets replaced by svr4. -- dmu 3/25/97 - -// Modified to centralize Dependencies to speed up make -- dmu 5/97 - -public class MakeDeps { - - public static void usage() { - System.out.println("usage:"); - System.out.println("\tmakeDeps platform-name platform-file database-file [MakeDeps args] [platform args]"); - System.out.println("\tmakeDeps diffs platform-name old-platform-file old-database-file new-platform-file new-database-file [MakeDeps args] [platform args]"); - System.out.println("where platform-name is the name of a platform MakeDeps supports"); - System.out.println("(currently \"WinGammaPlatform\" or \"UnixPlatform\")"); - System.out.println("MakeDeps options:"); - System.out.println(" -firstFile [filename]: Specify the first file in link order (i.e.,"); - System.out.println(" to have a well-known function at the start of the output file)"); - System.out.println(" -lastFile [filename]: Specify the last file in link order (i.e.,"); - System.out.println(" to have a well-known function at the end of the output file)"); - System.err.println("WinGammaPlatform platform-specific options:"); - System.err.println(" -sourceBase "); - System.err.println(" -dspFileName "); - System.err.println(" -envVar "); - System.err.println(" -dllLoc "); - System.err.println(" If any of the above are specified, "+ - "they must all be."); - System.err.println(" Additional, optional arguments, which can be " + - "specified multiple times:"); - System.err.println(" -absoluteInclude "); - System.err.println(" -relativeInclude "); - System.err.println(" -define "); - System.err.println(" -perFileLine "); - System.err.println(" -conditionalPerFileLine "); - System.err.println(" (NOTE: To work around a bug in nmake, where " + - "you can't have a '#' character in a quoted " + - "string, all of the lines outputted have \"#\"" + - "prepended)"); - System.err.println(" -startAt "); - System.err.println(" -ignoreFile "); - System.err.println(" -additionalFile "); - System.err.println(" -additionalGeneratedFile " + - ""); - System.err.println(" -prelink :"); - System.err.println(" Generate a set of prelink commands for the given BUILD"); - System.err.println(" (\"Debug\" or \"Release\"). The prelink description and commands"); - System.err.println(" are both quoted strings."); - System.err.println(" Default includes: \".\""); - System.err.println(" Default defines: WIN32, _WINDOWS, \"HOTSPOT_BUILD_USER=$(USERNAME)\""); - } - - public static void main(String[] args) { - try { - if (args.length < 3) { - usage(); - System.exit(1); - } - - int argc = 0; - boolean diffMode = false; - if (args[argc].equals("diffs")) { - diffMode = true; - ++argc; - } - - String platformName = args[argc++]; - Class platformClass = Class.forName(platformName); - - String plat1 = null; - String db1 = null; - String plat2 = null; - String db2 = null; - - String firstFile = null; - String lastFile = null; - - int numOptionalArgs = - (diffMode ? (args.length - 6) : (args.length - 3)); - if (numOptionalArgs < 0) { - usage(); - System.exit(1); - } - - plat1 = args[argc++]; - db1 = args[argc++]; - - if (diffMode) { - plat2 = args[argc++]; - db2 = args[argc++]; - } - - // argc now points at start of optional arguments, if any - - try { - boolean gotOne = true; - while (gotOne && (argc < args.length - 1)) { - gotOne = false; - String arg = args[argc]; - if (arg.equals("-firstFile")) { - firstFile = args[argc + 1]; - argc += 2; - gotOne = true; - } else if (arg.equals("-lastFile")) { - lastFile = args[argc + 1]; - argc += 2; - gotOne = true; - } - } - } - catch (Exception e) { - e.printStackTrace(); - usage(); - System.exit(1); - } - - Platform platform = (Platform) platformClass.newInstance(); - platform.setupFileTemplates(); - long t = platform.defaultGrandIncludeThreshold(); - - String[] platformArgs = null; - int numPlatformArgs = args.length - argc; - if (numPlatformArgs > 0) { - platformArgs = new String[numPlatformArgs]; - int offset = argc; - while (argc < args.length) { - platformArgs[argc - offset] = args[argc]; - ++argc; - } - } - - // If you want to change the threshold, change the default - // "grand include" threshold in Platform.java, or override - // it in the platform-specific file like UnixPlatform.java - - Database previous = new Database(platform, t); - Database current = new Database(platform, t); - - previous.canBeMissing(); - - if (firstFile != null) { - previous.setFirstFile(firstFile); - current.setFirstFile(firstFile); - } - if (lastFile != null) { - previous.setLastFile(lastFile); - current.setLastFile(lastFile); - } - - if (diffMode) { - System.out.println("Old database:"); - previous.get(plat1, db1); - previous.compute(); - System.out.println("New database:"); - current.get(plat2, db2); - current.compute(); - System.out.println("Deltas:"); - current.putDiffs(previous); - } else { - System.out.println("New database:"); - current.get(plat1, db1); - current.compute(); - current.put(); - } - - if (platformArgs != null) { - // Allow the platform to write platform-specific files - platform.writePlatformSpecificFiles(previous, current, - platformArgs); - } - } - catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/MetroWerksMacPlatform.java --- a/src/share/tools/MakeDeps/MetroWerksMacPlatform.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. - * 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. - * - */ - -import java.io.*; - -public class MetroWerksMacPlatform extends Platform { - public void setupFileTemplates() { - inclFileTemplate = new FileName(this, - ":incls:", "_", "", ".incl", "", "" - ); - giFileTemplate = new FileName(this, - "", "", "precompiledHeader", ".pch", "", "" - ); - gdFileTemplate = dummyFileTemplate; - } - - private static String[] suffixes = { ".cpp", ".c", ".s" }; - - public String[] outerSuffixes() { - return suffixes; - } - - public boolean includeGIInEachIncl() { - return true; - } - - public int defaultGrandIncludeThreshold() { - return 150; - } - - public void writeGIPragma(PrintWriter out) { - out.println("#pragma precompile_target \"" + - giFileTemplate.preStemAltSuff() + - "\""); - out.println(); - } - - public String objFileSuffix() { - throw new RuntimeException("Unimplemented in original makeDeps"); - } - - public String asmFileSuffix() { - throw new RuntimeException("Unimplemented in original makeDeps"); - } - - public String dependentPrefix() { - throw new RuntimeException("Unimplemented in original makeDeps"); - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/Platform.java --- a/src/share/tools/MakeDeps/Platform.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -/** Defines what must be specified for each platform. This class must - have a no-arg constructor. */ - -import java.io.*; - -public abstract class Platform { - /** file name templates capture naming conventions */ - protected FileName dummyFileTemplate = - new FileName(this, "", "", "", "", "", ""); - - // The next three must be instantiated in subclasses' constructors - - /** An incl file is produced per .c file and contains all the - includes it needs */ - protected FileName inclFileTemplate; - - /** A GI (grand-include) file has any file used more than N times - for precompiled headers */ - protected FileName giFileTemplate; - - /** A GD (grand-dependencies) file that tells Unix make all the - .o's needed for linking and the include dependencies */ - protected FileName gdFileTemplate; - - // Accessors - public FileName getInclFileTemplate() { - return inclFileTemplate; - } - - public FileName getGIFileTemplate() { - return giFileTemplate; - } - - public FileName getGDFileTemplate() { - return gdFileTemplate; - } - - // an incl file is the file included by each.c file that includes - // all needed header files - - public abstract void setupFileTemplates(); - public abstract String[] outerSuffixes(); - - /** empty file name -> no grand include file */ - public boolean haveGrandInclude() { - return (giFileTemplate.nameOfList().length() > 0); - } - - public boolean writeDeps() { - return (gdFileTemplate.nameOfList().length() > 0); - } - - /**

A gi file is the grand-include file. It includes in one - file any file that is included more than a certain number of - times.

- -

It is used for precompiled header files.

- -

It has a source name, that is the file that this program - generates, and a compiled name; that is the file that is - included by other files.

- -

Some platforms have this program actually explictly - include the preprocessed gi file-- see includeGIInEachIncl(). -

- -

Also, some platforms need a pragma in the GI file.

*/ - public boolean includeGIInEachIncl() { - return false; - } - - /** For some platforms, e.g. Solaris, include the grand-include - dependencies in the makefile. For others, e.g. Windows, do - not. */ - public boolean includeGIDependencies() { - return false; - } - - /** Should C/C++ source file be dependent on a file included - into the grand-include file. */ - public boolean writeDependenciesOnHFilesFromGI() { - return false; - } - - /** Default implementation does nothing */ - public void writeGIPragma(PrintWriter out) { - } - - /** A line with a filename and the noGrandInclude string means - that this file cannot use the precompiled header. */ - public String noGrandInclude() { - return "no_precompiled_headers"; - } - - /** A line with a filename and the - generatePlatformDependentInclude means that an include file - for the header file must be generated. This file generated include - file is directly included by the non-platform dependent include file - (e.g os.hpp includes _os_pd.hpp.incl. So while we notice files that - are directly dependent on non-platform dependent files from the database - we must infer the dependence on platform specific files to generate correct - dependences on the platform specific files. */ - public String generatePlatformDependentInclude() { - return "generate_platform_dependent_include"; - } - - /** Prefix and suffix strings for emitting Makefile rules */ - public abstract String objFileSuffix(); - public abstract String asmFileSuffix(); - public abstract String dependentPrefix(); - - // Exit routines: - - /** Abort means an internal error */ - public void abort() { - throw new RuntimeException("Internal error"); - } - - /** fatalError is used by clients to stop the system */ - public void fatalError(String msg) { - System.err.println(msg); - System.exit(1); - } - - /** Default implementation performs case-sensitive comparison */ - public boolean fileNameStringEquality(String s1, String s2) { - return s1.equals(s2); - } - - public void fileNamePortabilityCheck(String name) { - if (Character.isUpperCase(name.charAt(0))) { - fatalError("Error: for the sake of portability we have chosen\n" + - "to avoid files starting with an uppercase letter.\n" + - "Please rename " + name + "."); - } - } - - public void fileNamePortabilityCheck(String name, String matchingName) { - if (!name.equals(matchingName)) { - fatalError("Error: file " + name + " also appears as " + - matchingName + ". Case must be consistent for " + - "portability."); - } - } - - /** max is 31 on mac, so warn */ - public int fileNameLengthLimit() { - return 45; - } - - public int defaultGrandIncludeThreshold() { - return 30; - } - - /** Not very general, but this is a way to get platform-specific - files to be written. Default implementation does nothing. */ - public void writePlatformSpecificFiles(Database previousDB, - Database currentDB, String[] args) - throws IllegalArgumentException, IOException { - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/UnixPlatform.java --- a/src/share/tools/MakeDeps/UnixPlatform.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -public class UnixPlatform extends Platform { - public void setupFileTemplates() { - inclFileTemplate = new FileName(this, - "incls/", "_", "", ".incl", "", "" - ); - giFileTemplate = new FileName(this, - "incls/", "", "_precompiled", ".incl", "", "" - ); - gdFileTemplate = new FileName(this, - "", "", "Dependencies", "", "", "" - ); - } - - private static String[] suffixes = { ".cpp", ".c", ".s" }; - - public String[] outerSuffixes() { - return suffixes; - } - - public String objFileSuffix() { - return ".o"; - } - - public String asmFileSuffix() { - return ".i"; - } - - public String dependentPrefix() { - return ""; - } - - /** Do not change this; unless you fix things so precompiled - header files get translated into make dependencies. - Ungar */ - public int defaultGrandIncludeThreshold() { - if (System.getProperty("USE_PRECOMPILED_HEADER") != null) - return 30; - else - return 1 << 30; - } - - /** For Unix make, include the dependencies for precompiled header - files. */ - public boolean includeGIDependencies() { - return false; - } - - /** Should C/C++ source file be dependent on a file included - into the grand-include file. - On Unix with precompiled headers we don't want each file to be - dependent on grand-include file. Instead each C/C++ source file - is depended on each own set of files, and recompiled only when - files from this set are changed. */ - public boolean writeDependenciesOnHFilesFromGI() { - return System.getProperty("USE_PRECOMPILED_HEADER") != null; - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/Util.java --- a/src/share/tools/MakeDeps/Util.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -import java.util.*; -import java.io.File; - -public class Util { - static String join(String padder, Vector v) { - return join(padder, v, false); - } - - static String join(String padder, Vector v, boolean quoted) { - StringBuffer sb = new StringBuffer(); - - for (Iterator iter = v.iterator(); iter.hasNext(); ) { - if (quoted) { - sb.append('"'); - } - sb.append((String)iter.next()); - if (quoted) { - sb.append('"'); - } - if (iter.hasNext()) sb.append(padder); - } - - return sb.toString(); - } - - static String join(String padder, String v[]) { - StringBuffer sb = new StringBuffer(); - - for (int i=0; i"); - System.err.println(" -projectFileName "); - System.err.println(" If any of the above are specified, "+ - "they must all be."); - System.err.println(" Additional, optional arguments, which can be " + - "specified multiple times:"); - System.err.println(" -absoluteInclude "); - System.err.println(" -relativeInclude "); - System.err.println(" -define "); - System.err.println(" -startAt "); - System.err.println(" -additionalFile "); - System.err.println(" -additionalGeneratedFile " + - ""); - throw new IllegalArgumentException(); - } - - - public void addPerFileLine(Hashtable table, - String fileName, - String line) { - Vector v = (Vector) table.get(fileName); - if (v != null) { - v.add(line); - } else { - v = new Vector(); - v.add(line); - table.put(fileName, v); - } - } - - protected static class PerFileCondData { - public String releaseString; - public String debugString; - } - - protected void addConditionalPerFileLine(Hashtable table, - String fileName, - String releaseLine, - String debugLine) { - PerFileCondData data = new PerFileCondData(); - data.releaseString = releaseLine; - data.debugString = debugLine; - Vector v = (Vector) table.get(fileName); - if (v != null) { - v.add(data); - } else { - v = new Vector(); - v.add(data); - table.put(fileName, v); - } - } - - protected static class PrelinkCommandData { - String description; - String commands; - } - - protected void addPrelinkCommand(Hashtable table, - String build, - String description, - String commands) { - PrelinkCommandData data = new PrelinkCommandData(); - data.description = description; - data.commands = commands; - table.put(build, data); - } - - public boolean findString(Vector v, String s) { - for (Iterator iter = v.iterator(); iter.hasNext(); ) { - if (((String) iter.next()).equals(s)) { - return true; - } - } - - return false; - } - - /* This returns a String containing the full path to the passed - file name, or null if an error occurred. If the file was not - found or was a duplicate and couldn't be resolved using the - preferred paths, the file name is added to the appropriate - Vector of Strings. */ - private String findFileInDirectory(String fileName, - DirectoryTree directory, - Vector preferredPaths, - Vector filesNotFound, - Vector filesDuplicate) { - List locationsInTree = directory.findFile(fileName); - int rootNameLength = directory.getRootNodeName().length(); - String name = null; - if ((locationsInTree == null) || - (locationsInTree.size() == 0)) { - filesNotFound.add(fileName); - } else if (locationsInTree.size() > 1) { - // We shouldn't have duplicate file names in our workspace. - System.err.println(); - System.err.println("There are multiple files named as: " + fileName); - System.exit(-1); - // The following code could be safely removed if we don't need duplicate - // file names. - - // Iterate through them, trying to find one with a - // preferred path - search: - { - for (Iterator locIter = locationsInTree.iterator(); - locIter.hasNext(); ) { - DirectoryTreeNode node = - (DirectoryTreeNode) locIter.next(); - String tmpName = node.getName(); - for (Iterator prefIter = preferredPaths.iterator(); - prefIter.hasNext(); ) { - // We need to make sure the preferred path is - // found from the file path not including the root node name. - if (tmpName.indexOf((String)prefIter.next(), - rootNameLength) != -1) { - name = tmpName; - break search; - } - } - } - } - - if (name == null) { - filesDuplicate.add(fileName); - } - } else { - name = ((DirectoryTreeNode) locationsInTree.get(0)).getName(); - } - - return name; - } - - protected boolean databaseAllFilesEqual(Database previousDB, - Database currentDB) { - Iterator i1 = previousDB.getAllFiles().iterator(); - Iterator i2 = currentDB.getAllFiles().iterator(); - - while (i1.hasNext() && i2.hasNext()) { - FileList fl1 = (FileList) i1.next(); - FileList fl2 = (FileList) i2.next(); - if (!fl1.getName().equals(fl2.getName())) { - return false; - } - } - - if (i1.hasNext() != i2.hasNext()) { - // Different lengths - return false; - } - - return true; - } - - protected String envVarPrefixedFileName(String fileName, - int sourceBaseLen, - DirectoryTree tree, - Vector preferredPaths, - Vector filesNotFound, - Vector filesDuplicate) { - String fullName = findFileInDirectory(fileName, - tree, - preferredPaths, - filesNotFound, - filesDuplicate); - return fullName; - } - - String getProjectName(String fullPath, String extension) - throws IllegalArgumentException, IOException { - File file = new File(fullPath).getCanonicalFile(); - fullPath = file.getCanonicalPath(); - String parent = file.getParent(); - - if (!fullPath.endsWith(extension)) { - throw new IllegalArgumentException("project file name \"" + - fullPath + - "\" does not end in "+extension); - } - - if ((parent != null) && - (!fullPath.startsWith(parent))) { - throw new RuntimeException( - "Internal error: parent of file name \"" + parent + - "\" does not match file name \"" + fullPath + "\"" - ); - } - - int len = parent.length(); - if (!parent.endsWith(Util.sep)) { - len += Util.sep.length(); - } - - int end = fullPath.length() - extension.length(); - - if (len == end) { - throw new RuntimeException( - "Internal error: file name was empty" - ); - } - - return fullPath.substring(len, end); - } - - protected abstract String getProjectExt(); - - public void writePlatformSpecificFiles(Database previousDB, - Database currentDB, String[] args) - throws IllegalArgumentException, IOException { - - parseArguments(args); - - String projectFileName = BuildConfig.getFieldString(null, "ProjectFileName"); - String ext = getProjectExt(); - - // Compare contents of allFiles of previousDB and includeDB. - // If these haven't changed, then skip writing the .vcproj file. - if (false && databaseAllFilesEqual(previousDB, currentDB) && - new File(projectFileName).exists()) { - System.out.println( - " Databases unchanged; skipping overwrite of "+ext+" file." - ); - return; - } - - String projectName = getProjectName(projectFileName, ext); - - writeProjectFile(projectFileName, projectName, createAllConfigs()); - } - - protected void writePrologue(String[] args) { - System.err.println("WinGammaPlatform platform-specific arguments:"); - for (int i = 0; i < args.length; i++) { - System.err.print(args[i] + " "); - } - System.err.println(); - } - - - void setInclFileTemplate(FileName val) { - this.inclFileTemplate = val; - } - - void setGIFileTemplate(FileName val) { - this.giFileTemplate = val; - } - - - void parseArguments(String[] args) { - new ArgsParser(args, - new ArgRule[] - { - new HsArgRule("-sourceBase", - "SourceBase", - " (Did you set the HotSpotWorkSpace environment variable?)", - HsArgHandler.STRING - ), - - new HsArgRule("-buildBase", - "BuildBase", - " (Did you set the HotSpotBuildSpace environment variable?)", - HsArgHandler.STRING - ), - - new HsArgRule("-projectFileName", - "ProjectFileName", - null, - HsArgHandler.STRING - ), - - new HsArgRule("-jdkTargetRoot", - "JdkTargetRoot", - " (Did you set the HotSpotJDKDist environment variable?)", - HsArgHandler.STRING - ), - - new HsArgRule("-compiler", - "CompilerVersion", - " (Did you set the VcVersion correctly?)", - HsArgHandler.STRING - ), - - new HsArgRule("-platform", - "Platform", - null, - HsArgHandler.STRING - ), - - new HsArgRule("-absoluteInclude", - "AbsoluteInclude", - null, - HsArgHandler.VECTOR - ), - - new HsArgRule("-relativeInclude", - "RelativeInclude", - null, - HsArgHandler.VECTOR - ), - - new HsArgRule("-define", - "Define", - null, - HsArgHandler.VECTOR - ), - - new HsArgRule("-useToGeneratePch", - "UseToGeneratePch", - null, - HsArgHandler.STRING - ), - - new ArgRuleSpecific("-perFileLine", - new HsArgHandler() { - public void handle(ArgIterator it) { - String cfg = getCfg(it.get()); - if (nextNotKey(it)) { - String fileName = it.get(); - if (nextNotKey(it)) { - String line = it.get(); - BuildConfig.putFieldHash(cfg, "PerFileLine", fileName, line); - it.next(); - return; - } - } - empty(null, "** Error: wrong number of args to -perFileLine"); - } - } - ), - - new ArgRuleSpecific("-conditionalPerFileLine", - new HsArgHandler() { - public void handle(ArgIterator it) { - String cfg = getCfg(it.get()); - if (nextNotKey(it)) { - String fileName = it.get(); - if (nextNotKey(it)) { - String productLine = it.get(); - if (nextNotKey(it)) { - String debugLine = it.get(); - BuildConfig.putFieldHash(cfg+"_debug", "CondPerFileLine", - fileName, debugLine); - BuildConfig.putFieldHash(cfg+"_product", "CondPerFileLine", - fileName, productLine); - it.next(); - return; - } - } - } - - empty(null, "** Error: wrong number of args to -conditionalPerFileLine"); - } - } - ), - - new HsArgRule("-disablePch", - "DisablePch", - null, - HsArgHandler.HASH - ), - - new ArgRule("-startAt", - new HsArgHandler() { - public void handle(ArgIterator it) { - if (BuildConfig.getField(null, "StartAt") != null) { - empty(null, "** Error: multiple -startAt"); - } - if (nextNotKey(it)) { - BuildConfig.putField(null, "StartAt", it.get()); - it.next(); - } else { - empty("-startAt", null); - } - } - } - ), - - new HsArgRule("-ignoreFile", - "IgnoreFile", - null, - HsArgHandler.HASH - ), - - new HsArgRule("-additionalFile", - "AdditionalFile", - null, - HsArgHandler.VECTOR - ), - - new ArgRuleSpecific("-additionalGeneratedFile", - new HsArgHandler() { - public void handle(ArgIterator it) { - String cfg = getCfg(it.get()); - if (nextNotKey(it)) { - String dir = it.get(); - if (nextNotKey(it)) { - String fileName = it.get(); - // we ignore files that we know are generated, so we coudn't - // find them in sources - BuildConfig.putFieldHash(cfg, "IgnoreFile", fileName, "1"); - BuildConfig.putFieldHash(cfg, "AdditionalGeneratedFile", - Util.normalize(dir + Util.sep + fileName), - fileName); - it.next(); - return; - } - } - empty(null, "** Error: wrong number of args to -additionalGeneratedFile"); - } - } - ), - - new HsArgRule("-includeDB", - "IncludeDB", - null, - HsArgHandler.STRING - ), - - new ArgRule("-prelink", - new HsArgHandler() { - public void handle(ArgIterator it) { - if (nextNotKey(it)) { - String build = it.get(); - if (nextNotKey(it)) { - String description = it.get(); - if (nextNotKey(it)) { - String command = it.get(); - BuildConfig.putField(null, "PrelinkDescription", description); - BuildConfig.putField(null, "PrelinkCommand", command); - it.next(); - return; - } - } - } - - empty(null, "** Error: wrong number of args to -prelink"); - } - } - ) - }, - new ArgHandler() { - public void handle(ArgIterator it) { - - throw new RuntimeException("Arg Parser: unrecognized option "+it.get()); - } - } - ); - if (BuildConfig.getField(null, "SourceBase") == null || - BuildConfig.getField(null, "BuildBase") == null || - BuildConfig.getField(null, "ProjectFileName") == null || - BuildConfig.getField(null, "CompilerVersion") == null) { - usage(); - } - - if (BuildConfig.getField(null, "UseToGeneratePch") == null) { - throw new RuntimeException("ERROR: need to specify one file to compute PCH, with -useToGeneratePch flag"); - } - - BuildConfig.putField(null, "PlatformObject", this); - } - - Vector createAllConfigs() { - Vector allConfigs = new Vector(); - - allConfigs.add(new C1DebugConfig()); - - boolean b = true; - if (b) { - allConfigs.add(new C1FastDebugConfig()); - allConfigs.add(new C1ProductConfig()); - - allConfigs.add(new C2DebugConfig()); - allConfigs.add(new C2FastDebugConfig()); - allConfigs.add(new C2ProductConfig()); - - allConfigs.add(new TieredDebugConfig()); - allConfigs.add(new TieredFastDebugConfig()); - allConfigs.add(new TieredProductConfig()); - - allConfigs.add(new CoreDebugConfig()); - allConfigs.add(new CoreFastDebugConfig()); - allConfigs.add(new CoreProductConfig()); - - allConfigs.add(new KernelDebugConfig()); - allConfigs.add(new KernelFastDebugConfig()); - allConfigs.add(new KernelProductConfig()); - } - - return allConfigs; - } - - class FileAttribute { - int numConfigs; - Vector configs; - String shortName; - boolean noPch, pchRoot; - - FileAttribute(String shortName, BuildConfig cfg, int numConfigs) { - this.shortName = shortName; - this.noPch = (cfg.lookupHashFieldInContext("DisablePch", shortName) != null); - this.pchRoot = shortName.equals(BuildConfig.getFieldString(null, "UseToGeneratePch")); - this.numConfigs = numConfigs; - - configs = new Vector(); - add(cfg.get("Name")); - } - - void add(String confName) { - configs.add(confName); - - // if presented in all configs - if (configs.size() == numConfigs) { - configs = null; - } - } - } - - class FileInfo implements Comparable { - String full; - FileAttribute attr; - - FileInfo(String full, FileAttribute attr) { - this.full = full; - this.attr = attr; - } - - public int compareTo(Object o) { - FileInfo oo = (FileInfo)o; - // Don't squelch identical short file names where the full - // paths are different - if (!attr.shortName.equals(oo.attr.shortName)) - return attr.shortName.compareTo(oo.attr.shortName); - return full.compareTo(oo.full); - } - - boolean isHeader() { - return attr.shortName.endsWith(".h") || attr.shortName.endsWith(".hpp"); - } - } - - - TreeSet sortFiles(Hashtable allFiles) { - TreeSet rv = new TreeSet(); - Enumeration e = allFiles.keys(); - while (e.hasMoreElements()) { - String fullPath = (String)e.nextElement(); - rv.add(new FileInfo(fullPath, (FileAttribute)allFiles.get(fullPath))); - } - return rv; - } - - Hashtable computeAttributedFiles(Vector allConfigs) { - Hashtable ht = new Hashtable(); - int numConfigs = allConfigs.size(); - - for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { - BuildConfig bc = (BuildConfig)i.next(); - Hashtable confFiles = (Hashtable)bc.getSpecificField("AllFilesHash"); - String confName = bc.get("Name"); - - for (Enumeration e=confFiles.keys(); e.hasMoreElements(); ) { - String filePath = (String)e.nextElement(); - FileAttribute fa = (FileAttribute)ht.get(filePath); - - if (fa == null) { - fa = new FileAttribute((String)confFiles.get(filePath), bc, numConfigs); - ht.put(filePath, fa); - } else { - fa.add(confName); - } - } - } - - return ht; - } - - Hashtable computeAttributedFiles(BuildConfig bc) { - Hashtable ht = new Hashtable(); - Hashtable confFiles = (Hashtable)bc.getSpecificField("AllFilesHash"); - - for (Enumeration e = confFiles.keys(); e.hasMoreElements(); ) { - String filePath = (String)e.nextElement(); - ht.put(filePath, new FileAttribute((String)confFiles.get(filePath), bc, 1)); - } - - return ht; - } - - PrintWriter printWriter; - - public void writeProjectFile(String projectFileName, String projectName, - Vector allConfigs) throws IOException { - throw new RuntimeException("use compiler version specific version"); - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/WinGammaPlatformVC6.java --- a/src/share/tools/MakeDeps/WinGammaPlatformVC6.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,291 +0,0 @@ -/* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -import java.io.*; -import java.util.*; - -public class WinGammaPlatformVC6 extends WinGammaPlatform { - public void writeProjectFile(String projectFileName, String projectName, - Vector allConfigs) throws IOException { - Vector allConfigNames = new Vector(); - - printWriter = new PrintWriter(new FileWriter(projectFileName)); - String cfg = ((BuildConfig)allConfigs.get(0)).get("Name"); - - printWriter.println("# Microsoft Developer Studio Project File - Name=\"" + projectName + "\" - Package Owner=<4>"); - printWriter.println("# Microsoft Developer Studio Generated Build File, Format Version 6.00"); - printWriter.println("# ** DO NOT EDIT **"); - printWriter.println(""); - printWriter.println("# TARGTYPE \"Win32 (x86) Dynamic-Link Library\" 0x0102"); - printWriter.println("CFG=" + cfg); - printWriter.println(""); - - printWriter.println("!MESSAGE This is not a valid makefile. To build this project using NMAKE,"); - printWriter.println("!MESSAGE use the Export Makefile command and run"); - printWriter.println("!MESSAGE "); - printWriter.println("!MESSAGE NMAKE /f \"" + projectName + ".mak\"."); - printWriter.println("!MESSAGE "); - printWriter.println("!MESSAGE You can specify a configuration when running NMAKE"); - printWriter.println("!MESSAGE by defining the macro CFG on the command line. For example:"); - printWriter.println("!MESSAGE "); - printWriter.println("!MESSAGE NMAKE /f \"" + projectName + ".mak\" CFG=\"" + cfg + "\""); - printWriter.println("!MESSAGE "); - printWriter.println("!MESSAGE Possible choices for configuration are:"); - printWriter.println("!MESSAGE "); - for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { - String name = ((BuildConfig)i.next()).get("Name"); - printWriter.println("!MESSAGE \""+ name + "\" (based on \"Win32 (x86) Dynamic-Link Library\")"); - allConfigNames.add(name); - } - printWriter.println("!MESSAGE "); - printWriter.println(""); - - printWriter.println("# Begin Project"); - printWriter.println("# PROP AllowPerConfigDependencies 0"); - printWriter.println("# PROP Scc_ProjName \"\""); - printWriter.println("# PROP Scc_LocalPath \"\""); - printWriter.println("CPP=cl.exe"); - printWriter.println("MTL=midl.exe"); - printWriter.println("RSC=rc.exe"); - - - String keyword = "!IF"; - for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { - BuildConfig bcfg = (BuildConfig)i.next(); - printWriter.println(keyword + " \"$(CFG)\" == \"" + bcfg.get("Name") + "\""); - writeConfigHeader(bcfg); - keyword = "!ELSEIF"; - if (!i.hasNext()) printWriter.println("!ENDIF"); - } - - - TreeSet sortedFiles = sortFiles(computeAttributedFiles(allConfigs)); - - printWriter.println("# Begin Target"); - - for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { - printWriter.println("# Name \"" + ((BuildConfig)i.next()).get("Name") + "\""); - } - printWriter.println("# Begin Group \"Header Files\""); - printWriter.println("# PROP Default_Filter \"h;hpp;hxx;hm;inl;fi;fd\""); - - Iterator i = sortedFiles.iterator(); - - while (i.hasNext()) { - FileInfo fi = (FileInfo)i.next(); - - // skip sources - if (!fi.isHeader()) { - continue; - } - - printFile(fi, allConfigNames); - } - printWriter.println("# End Group"); - printWriter.println(""); - - printWriter.println("# Begin Group \"Source Files\""); - printWriter.println("# PROP Default_Filter \"cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90\""); - - i = sortedFiles.iterator(); - while (i.hasNext()) { - FileInfo fi = (FileInfo)i.next(); - - // skip headers - if (fi.isHeader()) { - continue; - } - - printFile(fi, allConfigNames); - } - printWriter.println("# End Group"); - printWriter.println(""); - - - printWriter.println("# Begin Group \"Resource Files\""); - printWriter.println("# PROP Default_Filter \"ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe\""); - printWriter.println("# End Group"); - printWriter.println(""); - printWriter.println("# End Target"); - - printWriter.println("# End Project"); - - printWriter.close(); - } - - - void printFile(FileInfo fi, Vector allConfigNames) { - printWriter.println("# Begin Source File"); - printWriter.println(""); - printWriter.println("SOURCE=\"" + fi.full + "\""); - FileAttribute attr = fi.attr; - - if (attr.noPch) { - printWriter.println("# SUBTRACT CPP /YX /Yc /Yu"); - } - - if (attr.pchRoot) { - printWriter.println("# ADD CPP /Yc\"incls/_precompiled.incl\""); - } - if (attr.configs != null) { - String keyword = "!IF"; - for (Iterator j=allConfigNames.iterator(); j.hasNext();) { - String cfg = (String)j.next(); - if (!attr.configs.contains(cfg)) { - printWriter.println(keyword+" \"$(CFG)\" == \"" + cfg +"\""); - printWriter.println("# PROP BASE Exclude_From_Build 1"); - printWriter.println("# PROP Exclude_From_Build 1"); - keyword = "!ELSEIF"; - } - } - printWriter.println("!ENDIF"); - } - - printWriter.println("# End Source File"); - } - - void writeConfigHeader(BuildConfig cfg) { - printWriter.println("# Begin Special Build Tool"); - printWriter.println("SOURCE=\"$(InputPath)\""); - printWriter.println("PreLink_Desc=" + BuildConfig.getFieldString(null, "PrelinkDescription")); - printWriter.println("PreLink_Cmds=" + - cfg.expandFormat(BuildConfig.getFieldString(null, "PrelinkCommand"))); - printWriter.println("# End Special Build Tool"); - printWriter.println(""); - - for (Iterator i = cfg.getV("CompilerFlags").iterator(); i.hasNext(); ) { - printWriter.println("# "+(String)i.next()); - } - - - printWriter.println("LINK32=link.exe"); - - for (Iterator i = cfg.getV("LinkerFlags").iterator(); i.hasNext(); ) { - printWriter.println("# "+(String)i.next()); - } - - printWriter.println("ADD BASE MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32"); - printWriter.println("ADD MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32"); - printWriter.println("ADD BASE RSC /l 0x409 /d \"_DEBUG\""); - printWriter.println("ADD RSC /l 0x409 /d \"_DEBUG\""); - printWriter.println("BSC32=bscmake.exe"); - printWriter.println("ADD BASE BSC32 /nologo"); - printWriter.println("ADD BSC32 /nologo"); - printWriter.println(""); - } - - protected String getProjectExt() { - return ".dsp"; - } -} - - -class CompilerInterfaceVC6 extends CompilerInterface { - Vector getBaseCompilerFlags(Vector defines, Vector includes, String outDir) { - Vector rv = new Vector(); - - rv.add("PROP BASE Use_MFC 0"); - rv.add("PROP Use_MFC 0"); - rv.add("ADD CPP /nologo /MT /W3 /WX /GX /YX /Fr /FD /c"); - rv.add("PROP BASE Output_Dir \""+outDir+"\""); - rv.add("PROP Output_Dir \""+outDir+"\""); - rv.add("PROP BASE Intermediate_Dir \""+outDir+"\""); - rv.add("PROP Intermediate_Dir \""+outDir+"\""); - rv.add("PROP BASE Target_Dir \"\""); - rv.add("PROP Target_Dir \"\""); - rv.add("ADD BASE CPP "+Util.prefixed_join(" /I ", includes, true)); - rv.add("ADD CPP "+Util.prefixed_join(" /I ", includes, true)); - rv.add("ADD BASE CPP "+Util.prefixed_join(" /D ", defines, true)); - rv.add("ADD CPP "+Util.prefixed_join(" /D ", defines, true)); - rv.add("ADD CPP /Yu\"incls/_precompiled.incl\""); - - return rv; - } - - Vector getBaseLinkerFlags(String outDir, String outDll) { - Vector rv = new Vector(); - - rv.add("PROP Ignore_Export_Lib 0"); - rv.add("ADD BASE CPP /MD"); - rv.add("ADD CPP /MD"); - rv.add("ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib " + - " advapi32.lib shell32.lib ole32.lib oleaut32.lib winmm.lib"); - rv.add("ADD LINK32 /out:\""+outDll+"\" "+ - " /nologo /subsystem:windows /machine:I386" + - " /nologo /base:\"0x8000000\" /subsystem:windows /dll" + - " /export:JNI_GetDefaultJavaVMInitArgs /export:JNI_CreateJavaVM /export:JNI_GetCreatedJavaVMs "+ - " /export:jio_snprintf /export:jio_printf /export:jio_fprintf /export:jio_vfprintf "+ - " /export:jio_vsnprintf "); - rv.add("SUBTRACT LINK32 /pdb:none /map"); - - return rv; - } - - Vector getDebugCompilerFlags(String opt) { - Vector rv = new Vector(); - - rv.add("ADD BASE CPP /Gm /Zi /O"+opt); - - return rv; - } - - Vector getDebugLinkerFlags() { - Vector rv = new Vector(); - - rv.add("PROP BASE Use_Debug_Libraries 1"); - rv.add("PROP Use_Debug_Libraries 1"); - rv.add("ADD LINK32 /debug"); - - return rv; - } - - Vector getProductCompilerFlags() { - Vector rv = new Vector(); - - rv.add("ADD CPP /O"+getOptFlag()); - - return rv; - } - - Vector getProductLinkerFlags() { - Vector rv = new Vector(); - - rv.add("PROP BASE Use_Debug_Libraries 0"); - rv.add("PROP Use_Debug_Libraries 0"); - - return rv; - } - - String getOptFlag() { - return "2"; - } - - String getNoOptFlag() { - return "d"; - } - - String makeCfgName(String flavourBuild) { - return "vm - "+ Util.os + " " + flavourBuild; - } -} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/MakeDeps/WinGammaPlatformVC7.java --- a/src/share/tools/MakeDeps/WinGammaPlatformVC7.java Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,692 +0,0 @@ -/* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -import java.io.*; -import java.util.*; - -public class WinGammaPlatformVC7 extends WinGammaPlatform { - - String projectVersion() {return "7.10";}; - - public void writeProjectFile(String projectFileName, String projectName, - Vector allConfigs) throws IOException { - System.out.println(); - System.out.println(" Writing .vcproj file..."); - // If we got this far without an error, we're safe to actually - // write the .vcproj file - printWriter = new PrintWriter(new FileWriter(projectFileName)); - - printWriter.println(""); - startTag( - "VisualStudioProject", - new String[] { - "ProjectType", "Visual C++", - "Version", projectVersion(), - "Name", projectName, - "ProjectGUID", "{8822CB5C-1C41-41C2-8493-9F6E1994338B}", - "SccProjectName", "", - "SccLocalPath", "" - } - ); - - startTag("Platforms", null); - tag("Platform", new String[] {"Name", Util.os}); - endTag("Platforms"); - - startTag("Configurations", null); - - for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { - writeConfiguration((BuildConfig)i.next()); - } - - endTag("Configurations"); - - tag("References", null); - - writeFiles(allConfigs); - - tag("Globals", null); - - endTag("VisualStudioProject"); - printWriter.close(); - - System.out.println(" Done."); - } - - - abstract class NameFilter { - protected String fname; - - abstract boolean match(FileInfo fi); - - String filterString() { return ""; } - String name() { return this.fname;} - } - - class DirectoryFilter extends NameFilter { - String dir; - int baseLen, dirLen; - - DirectoryFilter(String dir, String sbase) { - this.dir = dir; - this.baseLen = sbase.length(); - this.dirLen = dir.length(); - this.fname = dir; - } - - DirectoryFilter(String fname, String dir, String sbase) { - this.dir = dir; - this.baseLen = sbase.length(); - this.dirLen = dir.length(); - this.fname = fname; - } - - - boolean match(FileInfo fi) { - return fi.full.regionMatches(true, baseLen, dir, 0, dirLen); - } - } - - class TypeFilter extends NameFilter { - String[] exts; - - TypeFilter(String fname, String[] exts) { - this.fname = fname; - this.exts = exts; - } - - boolean match(FileInfo fi) { - for (int i=0; i"); - } else { - //doIndent(); - printWriter.println(">"); - } - } - - void startTag(String name, String[] attrs) { - startTagPrim(name, attrs, false); - } - - void startTagV(String name, Vector attrs) { - String s[] = new String [attrs.size()]; - for (int i=0; i"); - } - - void tag(String name, String[] attrs) { - startTagPrim(name, attrs, true); - } - - void tagV(String name, Vector attrs) { - String s[] = new String [attrs.size()]; - for (int i=0; i 0; + } + public Object next() { + Node last = (Node)nodes.remove(nodes.size() - 1); + prune(); + return new File(last.getName()); + } + + public void remove() { + throw new RuntimeException(); + } + + private void prune() { + while (nodes.size() > 0) { + Node last = (Node)nodes.get(nodes.size() - 1); + + if (last.isDirectory()) { + nodes.remove(nodes.size() - 1); + nodes.addAll(last.children); + } else { + // Is at file + return; + } + } + } + } + + public Iterator getFileIterator() { + return new FileIterator(rootNode); + } + + /** Output "."'s to System.out as directories are read. Defaults + to false. */ + public void setVerbose(boolean newValue) { + verbose = newValue; + } + + public boolean getVerbose() { + return verbose; + } + + public String getRootNodeName() { + return rootNode.getName(); + } + + /** Takes an absolute path to the root directory of this + DirectoryTree. Throws IllegalArgumentException if the given + string represents a plain file or nonexistent directory. */ + + public void readDirectory(String baseDirectory) + throws IllegalArgumentException { + File root = new File(Util.normalize(baseDirectory)); + if (!root.isDirectory()) { + throw new IllegalArgumentException("baseDirectory \"" + + baseDirectory + + "\" does not exist or " + + "is not a directory"); + } + try { + root = root.getCanonicalFile(); + } + catch (IOException e) { + throw new RuntimeException(e.toString()); + } + rootNode = new Node(root); + readDirectory(rootNode, root); + } + + /** Queries the DirectoryTree for a file or directory name. Takes + only the name of the file or directory itself (i.e., no parent + directory information should be in the passed name). Returns a + List of DirectoryTreeNodes specifying the full paths of all of + the files or directories of this name in the DirectoryTree. + Returns null if the directory tree has not been read from disk + yet or if the file was not found in the tree. */ + public List findFile(String name) { + if (rootNode == null) { + return null; + } + + if (nameToNodeListTable == null) { + nameToNodeListTable = new Hashtable(); + try { + buildNameToNodeListTable(rootNode); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + return (List) nameToNodeListTable.get(name); + } + + private void buildNameToNodeListTable(Node curNode) + throws IOException { + String fullName = curNode.getName(); + String parent = curNode.getParent(); + String separator = System.getProperty("file.separator"); + + if (parent != null) { + if (!fullName.startsWith(parent)) { + throw new RuntimeException( + "Internal error: parent of file name \"" + fullName + + "\" does not match file name \"" + parent + "\"" + ); + } + + int len = parent.length(); + if (!parent.endsWith(separator)) { + len += separator.length(); + } + + String fileName = fullName.substring(len); + + if (fileName == null) { + throw new RuntimeException( + "Internal error: file name was empty" + ); + } + + List nodeList = (List) nameToNodeListTable.get(fileName); + if (nodeList == null) { + nodeList = new Vector(); + nameToNodeListTable.put(fileName, nodeList); + } + + nodeList.add(curNode); + } else { + if (curNode != rootNode) { + throw new RuntimeException( + "Internal error: parent of file + \"" + fullName + "\"" + + " was null" + ); + } + } + + if (curNode.isDirectory()) { + Iterator iter = curNode.getChildren(); + if (iter != null) { + while (iter.hasNext()) { + buildNameToNodeListTable((Node) iter.next()); + } + } + } + } + + /** Reads all of the files in the given directory and adds them as + children of the directory tree node. Requires that the passed + node represents a directory. */ + + private void readDirectory(Node parentNode, File parentDir) { + File[] children = parentDir.listFiles(); + if (children == null) + return; + if (verbose) { + System.out.print("."); + System.out.flush(); + } + for (int i = 0; i < children.length; i++) { + File child = children[i]; + children[i] = null; + boolean isDir = child.isDirectory(); + boolean mustSkip = false; + if (isDir) { + for (Iterator iter = subdirsToIgnore.iterator(); + iter.hasNext(); ) { + if (child.getName().equals((String) iter.next())) { + mustSkip = true; + break; + } + } + } + if (!mustSkip) { + Node childNode = new Node(child); + parentNode.addChild(childNode); + if (isDir) { + readDirectory(childNode, child); + } + } + } + } + + private class Node implements DirectoryTreeNode { + private File file; + private Vector children; + + /** file must be a canonical file */ + Node(File file) { + this.file = file; + children = new Vector(); + } + + public boolean isFile() { + return file.isFile(); + } + + public boolean isDirectory() { + return file.isDirectory(); + } + + public String getName() { + return file.getPath(); + } + + public String getParent() { + return file.getParent(); + } + + public void addChild(Node n) { + children.add(n); + } + + public Iterator getChildren() throws IllegalArgumentException { + return children.iterator(); + } + + public int getNumChildren() throws IllegalArgumentException { + return children.size(); + } + + public DirectoryTreeNode getChild(int i) + throws IllegalArgumentException, ArrayIndexOutOfBoundsException { + return (DirectoryTreeNode) children.get(i); + } + } +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/ProjectCreator/DirectoryTreeNode.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/tools/ProjectCreator/DirectoryTreeNode.java Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +import java.util.*; + +public interface DirectoryTreeNode { + public boolean isFile(); + public boolean isDirectory(); + public String getName(); + public String getParent(); + public Iterator getChildren() throws IllegalArgumentException; + public int getNumChildren() throws IllegalArgumentException; + public DirectoryTreeNode getChild(int i) + throws IllegalArgumentException, ArrayIndexOutOfBoundsException; +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/ProjectCreator/FileFormatException.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/tools/ProjectCreator/FileFormatException.java Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,33 @@ +/* + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +public class FileFormatException extends Exception { + public FileFormatException() { + super(); + } + + public FileFormatException(String s) { + super(s); + } +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/ProjectCreator/Macro.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/tools/ProjectCreator/Macro.java Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +public class Macro { + public String name; + public String contents; +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/ProjectCreator/MacroDefinitions.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/tools/ProjectCreator/MacroDefinitions.java Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,154 @@ +/* + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +import java.io.*; +import java.util.*; + +public class MacroDefinitions { + private Vector macros; + + public MacroDefinitions() { + macros = new Vector(); + } + + public void addMacro(String name, String contents) { + Macro macro = new Macro(); + macro.name = name; + macro.contents = contents; + macros.add(macro); + } + + private boolean lineIsEmpty(String s) { + for (int i = 0; i < s.length(); i++) { + if (!Character.isWhitespace(s.charAt(i))) { + return false; + } + } + return true; + } + + public void readFrom(String fileName, boolean missingOk) + throws FileNotFoundException, FileFormatException, IOException { + BufferedReader reader = null; + try { + reader = new BufferedReader(new FileReader(fileName)); + } catch (FileNotFoundException e) { + if (missingOk) { + return; + } else { + throw(e); + } + } + String line; + do { + line = reader.readLine(); + if (line != null) { + // This had to be rewritten (compare to Database.java) + // because the Solaris platform file has been + // repurposed and now contains "macros" with spaces in + // them. + + if ((!line.startsWith("//")) && + (!lineIsEmpty(line))) { + int nameBegin = -1; + int nameEnd = -1; + boolean gotEquals = false; + int contentsBegin = -1; + int contentsEnd = -1; + + int i = 0; + // Scan forward for beginning of name + while (i < line.length()) { + if (!Character.isWhitespace(line.charAt(i))) { + break; + } + i++; + } + nameBegin = i; + + // Scan forward for end of name + while (i < line.length()) { + if (Character.isWhitespace(line.charAt(i))) { + break; + } + i++; + } + nameEnd = i; + + // Scan forward for equals sign + while (i < line.length()) { + if (line.charAt(i) == '=') { + gotEquals = true; + break; + } + i++; + } + + // Scan forward for start of contents + i++; + while (i < line.length()) { + if (!Character.isWhitespace(line.charAt(i))) { + break; + } + i++; + } + contentsBegin = i; + + // Scan *backward* for end of contents + i = line.length() - 1; + while (i >= 0) { + if (!Character.isWhitespace(line.charAt(i))) { + break; + } + } + contentsEnd = i+1; + + // Now do consistency check + if (!((nameBegin < nameEnd) && + (nameEnd < contentsBegin) && + (contentsBegin < contentsEnd) && + (gotEquals == true))) { + throw new FileFormatException( + "Expected \"macroname = value\", " + + "but found: " + line + ); + } + + String name = line.substring(nameBegin, nameEnd); + String contents = line.substring(contentsBegin, + contentsEnd); + addMacro(name, contents); + } + } + } while (line != null); + reader.close(); + } + + /** This returns an Iterator of Macros. You should not mutate the + returned Macro objects or use the Iterator to remove + macros. */ + public Iterator getMacros() { + return macros.iterator(); + } +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/ProjectCreator/ProjectCreator.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/tools/ProjectCreator/ProjectCreator.java Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,98 @@ +/* + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +public class ProjectCreator { + + public static void usage() { + System.out.println("ProjectCreator options:"); + System.err.println("WinGammaPlatform platform-specific options:"); + System.err.println(" -sourceBase "); + System.err.println(" -dspFileName "); + System.err.println(" -envVar "); + System.err.println(" -dllLoc "); + System.err.println(" If any of the above are specified, "+ + "they must all be."); + System.err.println(" Additional, optional arguments, which can be " + + "specified multiple times:"); + System.err.println(" -absoluteInclude "); + System.err.println(" -relativeInclude "); + System.err.println(" -define "); + System.err.println(" -perFileLine "); + System.err.println(" -conditionalPerFileLine "); + System.err.println(" (NOTE: To work around a bug in nmake, where " + + "you can't have a '#' character in a quoted " + + "string, all of the lines outputted have \"#\"" + + "prepended)"); + System.err.println(" -startAt "); + System.err.println(" -ignoreFile "); + System.err.println(" -additionalFile "); + System.err.println(" -additionalGeneratedFile " + + ""); + System.err.println(" -prelink :"); + System.err.println(" Generate a set of prelink commands for the given BUILD"); + System.err.println(" (\"Debug\" or \"Release\"). The prelink description and commands"); + System.err.println(" are both quoted strings."); + System.err.println(" Default includes: \".\""); + System.err.println(" Default defines: WIN32, _WINDOWS, \"HOTSPOT_BUILD_USER=$(USERNAME)\""); + } + + public static void main(String[] args) { + try { + if (args.length < 3) { + usage(); + System.exit(1); + } + + String platformName = args[0]; + Class platformClass = Class.forName(platformName); + WinGammaPlatform platform = (WinGammaPlatform) platformClass.newInstance(); + + String[] platformArgs = new String[args.length - 1]; + System.arraycopy(args, 1, platformArgs, 0, platformArgs.length); + + // Allow the platform to write platform-specific files + platform.createVcproj(platformArgs); + } + catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + } +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/ProjectCreator/Util.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/tools/ProjectCreator/Util.java Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * 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. + * + */ + +import java.util.*; +import java.io.File; + +public class Util { + static String join(String padder, Vector v) { + return join(padder, v, false); + } + + static String join(String padder, Vector v, boolean quoted) { + StringBuffer sb = new StringBuffer(); + + for (Iterator iter = v.iterator(); iter.hasNext(); ) { + if (quoted) { + sb.append('"'); + } + sb.append((String)iter.next()); + if (quoted) { + sb.append('"'); + } + if (iter.hasNext()) sb.append(padder); + } + + return sb.toString(); + } + + static String join(String padder, String v[]) { + StringBuffer sb = new StringBuffer(); + + for (int i=0; i"); + System.err.println(" -projectFileName "); + System.err.println(" If any of the above are specified, "+ + "they must all be."); + System.err.println(" Additional, optional arguments, which can be " + + "specified multiple times:"); + System.err.println(" -absoluteInclude "); + System.err.println(" -relativeInclude "); + System.err.println(" -define "); + System.err.println(" -startAt "); + System.err.println(" -additionalFile "); + System.err.println(" -additionalGeneratedFile " + + ""); + throw new IllegalArgumentException(); + } + + + public void addPerFileLine(Hashtable table, + String fileName, + String line) { + Vector v = (Vector) table.get(fileName); + if (v != null) { + v.add(line); + } else { + v = new Vector(); + v.add(line); + table.put(fileName, v); + } + } + + protected static class PerFileCondData { + public String releaseString; + public String debugString; + } + + protected void addConditionalPerFileLine(Hashtable table, + String fileName, + String releaseLine, + String debugLine) { + PerFileCondData data = new PerFileCondData(); + data.releaseString = releaseLine; + data.debugString = debugLine; + Vector v = (Vector) table.get(fileName); + if (v != null) { + v.add(data); + } else { + v = new Vector(); + v.add(data); + table.put(fileName, v); + } + } + + protected static class PrelinkCommandData { + String description; + String commands; + } + + protected void addPrelinkCommand(Hashtable table, + String build, + String description, + String commands) { + PrelinkCommandData data = new PrelinkCommandData(); + data.description = description; + data.commands = commands; + table.put(build, data); + } + + public boolean findString(Vector v, String s) { + for (Iterator iter = v.iterator(); iter.hasNext(); ) { + if (((String) iter.next()).equals(s)) { + return true; + } + } + + return false; + } + + /* This returns a String containing the full path to the passed + file name, or null if an error occurred. If the file was not + found or was a duplicate and couldn't be resolved using the + preferred paths, the file name is added to the appropriate + Vector of Strings. */ + private String findFileInDirectory(String fileName, + DirectoryTree directory, + Vector preferredPaths, + Vector filesNotFound, + Vector filesDuplicate) { + List locationsInTree = directory.findFile(fileName); + int rootNameLength = directory.getRootNodeName().length(); + String name = null; + if ((locationsInTree == null) || + (locationsInTree.size() == 0)) { + filesNotFound.add(fileName); + } else if (locationsInTree.size() > 1) { + // We shouldn't have duplicate file names in our workspace. + System.err.println(); + System.err.println("There are multiple files named as: " + fileName); + System.exit(-1); + // The following code could be safely removed if we don't need duplicate + // file names. + + // Iterate through them, trying to find one with a + // preferred path + search: + { + for (Iterator locIter = locationsInTree.iterator(); + locIter.hasNext(); ) { + DirectoryTreeNode node = + (DirectoryTreeNode) locIter.next(); + String tmpName = node.getName(); + for (Iterator prefIter = preferredPaths.iterator(); + prefIter.hasNext(); ) { + // We need to make sure the preferred path is + // found from the file path not including the root node name. + if (tmpName.indexOf((String)prefIter.next(), + rootNameLength) != -1) { + name = tmpName; + break search; + } + } + } + } + + if (name == null) { + filesDuplicate.add(fileName); + } + } else { + name = ((DirectoryTreeNode) locationsInTree.get(0)).getName(); + } + + return name; + } + + protected String envVarPrefixedFileName(String fileName, + int sourceBaseLen, + DirectoryTree tree, + Vector preferredPaths, + Vector filesNotFound, + Vector filesDuplicate) { + String fullName = findFileInDirectory(fileName, + tree, + preferredPaths, + filesNotFound, + filesDuplicate); + return fullName; + } + + String getProjectName(String fullPath, String extension) + throws IllegalArgumentException, IOException { + File file = new File(fullPath).getCanonicalFile(); + fullPath = file.getCanonicalPath(); + String parent = file.getParent(); + + if (!fullPath.endsWith(extension)) { + throw new IllegalArgumentException("project file name \"" + + fullPath + + "\" does not end in "+extension); + } + + if ((parent != null) && + (!fullPath.startsWith(parent))) { + throw new RuntimeException( + "Internal error: parent of file name \"" + parent + + "\" does not match file name \"" + fullPath + "\"" + ); + } + + int len = parent.length(); + if (!parent.endsWith(Util.sep)) { + len += Util.sep.length(); + } + + int end = fullPath.length() - extension.length(); + + if (len == end) { + throw new RuntimeException( + "Internal error: file name was empty" + ); + } + + return fullPath.substring(len, end); + } + + protected abstract String getProjectExt(); + + public void createVcproj(String[] args) + throws IllegalArgumentException, IOException { + + parseArguments(args); + + String projectFileName = BuildConfig.getFieldString(null, "ProjectFileName"); + String ext = getProjectExt(); + + String projectName = getProjectName(projectFileName, ext); + + writeProjectFile(projectFileName, projectName, createAllConfigs()); + } + + protected void writePrologue(String[] args) { + System.err.println("WinGammaPlatform platform-specific arguments:"); + for (int i = 0; i < args.length; i++) { + System.err.print(args[i] + " "); + } + System.err.println(); + } + + + void parseArguments(String[] args) { + new ArgsParser(args, + new ArgRule[] + { + new HsArgRule("-sourceBase", + "SourceBase", + " (Did you set the HotSpotWorkSpace environment variable?)", + HsArgHandler.STRING + ), + + new HsArgRule("-buildBase", + "BuildBase", + " (Did you set the HotSpotBuildSpace environment variable?)", + HsArgHandler.STRING + ), + + new HsArgRule("-projectFileName", + "ProjectFileName", + null, + HsArgHandler.STRING + ), + + new HsArgRule("-jdkTargetRoot", + "JdkTargetRoot", + " (Did you set the HotSpotJDKDist environment variable?)", + HsArgHandler.STRING + ), + + new HsArgRule("-compiler", + "CompilerVersion", + " (Did you set the VcVersion correctly?)", + HsArgHandler.STRING + ), + + new HsArgRule("-platform", + "Platform", + null, + HsArgHandler.STRING + ), + + new HsArgRule("-absoluteInclude", + "AbsoluteInclude", + null, + HsArgHandler.VECTOR + ), + + new HsArgRule("-relativeInclude", + "RelativeInclude", + null, + HsArgHandler.VECTOR + ), + + new HsArgRule("-define", + "Define", + null, + HsArgHandler.VECTOR + ), + + new HsArgRule("-useToGeneratePch", + "UseToGeneratePch", + null, + HsArgHandler.STRING + ), + + new ArgRuleSpecific("-perFileLine", + new HsArgHandler() { + public void handle(ArgIterator it) { + String cfg = getCfg(it.get()); + if (nextNotKey(it)) { + String fileName = it.get(); + if (nextNotKey(it)) { + String line = it.get(); + BuildConfig.putFieldHash(cfg, "PerFileLine", fileName, line); + it.next(); + return; + } + } + empty(null, "** Error: wrong number of args to -perFileLine"); + } + } + ), + + new ArgRuleSpecific("-conditionalPerFileLine", + new HsArgHandler() { + public void handle(ArgIterator it) { + String cfg = getCfg(it.get()); + if (nextNotKey(it)) { + String fileName = it.get(); + if (nextNotKey(it)) { + String productLine = it.get(); + if (nextNotKey(it)) { + String debugLine = it.get(); + BuildConfig.putFieldHash(cfg+"_debug", "CondPerFileLine", + fileName, debugLine); + BuildConfig.putFieldHash(cfg+"_product", "CondPerFileLine", + fileName, productLine); + it.next(); + return; + } + } + } + + empty(null, "** Error: wrong number of args to -conditionalPerFileLine"); + } + } + ), + + new HsArgRule("-disablePch", + "DisablePch", + null, + HsArgHandler.HASH + ), + + new ArgRule("-startAt", + new HsArgHandler() { + public void handle(ArgIterator it) { + if (BuildConfig.getField(null, "StartAt") != null) { + empty(null, "** Error: multiple -startAt"); + } + if (nextNotKey(it)) { + BuildConfig.putField(null, "StartAt", it.get()); + it.next(); + } else { + empty("-startAt", null); + } + } + } + ), + + new HsArgRule("-ignoreFile", + "IgnoreFile", + null, + HsArgHandler.HASH + ), + + new HsArgRule("-ignorePath", + "IgnorePath", + null, + HsArgHandler.VECTOR + ), + + new HsArgRule("-additionalFile", + "AdditionalFile", + null, + HsArgHandler.VECTOR + ), + + new ArgRuleSpecific("-additionalGeneratedFile", + new HsArgHandler() { + public void handle(ArgIterator it) { + String cfg = getCfg(it.get()); + if (nextNotKey(it)) { + String dir = it.get(); + if (nextNotKey(it)) { + String fileName = it.get(); + BuildConfig.putFieldHash(cfg, "AdditionalGeneratedFile", + Util.normalize(dir + Util.sep + fileName), + fileName); + it.next(); + return; + } + } + empty(null, "** Error: wrong number of args to -additionalGeneratedFile"); + } + } + ), + + new ArgRule("-prelink", + new HsArgHandler() { + public void handle(ArgIterator it) { + if (nextNotKey(it)) { + String build = it.get(); + if (nextNotKey(it)) { + String description = it.get(); + if (nextNotKey(it)) { + String command = it.get(); + BuildConfig.putField(null, "PrelinkDescription", description); + BuildConfig.putField(null, "PrelinkCommand", command); + it.next(); + return; + } + } + } + + empty(null, "** Error: wrong number of args to -prelink"); + } + } + ) + }, + new ArgHandler() { + public void handle(ArgIterator it) { + + throw new RuntimeException("Arg Parser: unrecognized option "+it.get()); + } + } + ); + if (BuildConfig.getField(null, "SourceBase") == null || + BuildConfig.getField(null, "BuildBase") == null || + BuildConfig.getField(null, "ProjectFileName") == null || + BuildConfig.getField(null, "CompilerVersion") == null) { + usage(); + } + + if (BuildConfig.getField(null, "UseToGeneratePch") == null) { + throw new RuntimeException("ERROR: need to specify one file to compute PCH, with -useToGeneratePch flag"); + } + + BuildConfig.putField(null, "PlatformObject", this); + } + + Vector createAllConfigs() { + Vector allConfigs = new Vector(); + + allConfigs.add(new C1DebugConfig()); + + boolean b = true; + if (b) { + allConfigs.add(new C1FastDebugConfig()); + allConfigs.add(new C1ProductConfig()); + + allConfigs.add(new C2DebugConfig()); + allConfigs.add(new C2FastDebugConfig()); + allConfigs.add(new C2ProductConfig()); + + allConfigs.add(new TieredDebugConfig()); + allConfigs.add(new TieredFastDebugConfig()); + allConfigs.add(new TieredProductConfig()); + + allConfigs.add(new CoreDebugConfig()); + allConfigs.add(new CoreFastDebugConfig()); + allConfigs.add(new CoreProductConfig()); + + allConfigs.add(new KernelDebugConfig()); + allConfigs.add(new KernelFastDebugConfig()); + allConfigs.add(new KernelProductConfig()); + } + + return allConfigs; + } + + class FileAttribute { + int numConfigs; + Vector configs; + String shortName; + boolean noPch, pchRoot; + + FileAttribute(String shortName, BuildConfig cfg, int numConfigs) { + this.shortName = shortName; + this.noPch = (cfg.lookupHashFieldInContext("DisablePch", shortName) != null); + this.pchRoot = shortName.equals(BuildConfig.getFieldString(null, "UseToGeneratePch")); + this.numConfigs = numConfigs; + + configs = new Vector(); + add(cfg.get("Name")); + } + + void add(String confName) { + configs.add(confName); + + // if presented in all configs + if (configs.size() == numConfigs) { + configs = null; + } + } + } + + class FileInfo implements Comparable { + String full; + FileAttribute attr; + + FileInfo(String full, FileAttribute attr) { + this.full = full; + this.attr = attr; + } + + public int compareTo(Object o) { + FileInfo oo = (FileInfo)o; + // Don't squelch identical short file names where the full + // paths are different + if (!attr.shortName.equals(oo.attr.shortName)) + return attr.shortName.compareTo(oo.attr.shortName); + return full.compareTo(oo.full); + } + + boolean isHeader() { + return attr.shortName.endsWith(".h") || attr.shortName.endsWith(".hpp"); + } + } + + + TreeSet sortFiles(Hashtable allFiles) { + TreeSet rv = new TreeSet(); + Enumeration e = allFiles.keys(); + while (e.hasMoreElements()) { + String fullPath = (String)e.nextElement(); + rv.add(new FileInfo(fullPath, (FileAttribute)allFiles.get(fullPath))); + } + return rv; + } + + Hashtable computeAttributedFiles(Vector allConfigs) { + Hashtable ht = new Hashtable(); + int numConfigs = allConfigs.size(); + + for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { + BuildConfig bc = (BuildConfig)i.next(); + Hashtable confFiles = (Hashtable)bc.getSpecificField("AllFilesHash"); + String confName = bc.get("Name"); + + for (Enumeration e=confFiles.keys(); e.hasMoreElements(); ) { + String filePath = (String)e.nextElement(); + FileAttribute fa = (FileAttribute)ht.get(filePath); + + if (fa == null) { + fa = new FileAttribute((String)confFiles.get(filePath), bc, numConfigs); + ht.put(filePath, fa); + } else { + fa.add(confName); + } + } + } + + return ht; + } + + Hashtable computeAttributedFiles(BuildConfig bc) { + Hashtable ht = new Hashtable(); + Hashtable confFiles = (Hashtable)bc.getSpecificField("AllFilesHash"); + + for (Enumeration e = confFiles.keys(); e.hasMoreElements(); ) { + String filePath = (String)e.nextElement(); + ht.put(filePath, new FileAttribute((String)confFiles.get(filePath), bc, 1)); + } + + return ht; + } + + PrintWriter printWriter; + + public void writeProjectFile(String projectFileName, String projectName, + Vector allConfigs) throws IOException { + throw new RuntimeException("use compiler version specific version"); + } +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/ProjectCreator/WinGammaPlatformVC6.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/tools/ProjectCreator/WinGammaPlatformVC6.java Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,291 @@ +/* + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * 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. + * + */ + +import java.io.*; +import java.util.*; + +public class WinGammaPlatformVC6 extends WinGammaPlatform { + public void writeProjectFile(String projectFileName, String projectName, + Vector allConfigs) throws IOException { + Vector allConfigNames = new Vector(); + + printWriter = new PrintWriter(new FileWriter(projectFileName)); + String cfg = ((BuildConfig)allConfigs.get(0)).get("Name"); + + printWriter.println("# Microsoft Developer Studio Project File - Name=\"" + projectName + "\" - Package Owner=<4>"); + printWriter.println("# Microsoft Developer Studio Generated Build File, Format Version 6.00"); + printWriter.println("# ** DO NOT EDIT **"); + printWriter.println(""); + printWriter.println("# TARGTYPE \"Win32 (x86) Dynamic-Link Library\" 0x0102"); + printWriter.println("CFG=" + cfg); + printWriter.println(""); + + printWriter.println("!MESSAGE This is not a valid makefile. To build this project using NMAKE,"); + printWriter.println("!MESSAGE use the Export Makefile command and run"); + printWriter.println("!MESSAGE "); + printWriter.println("!MESSAGE NMAKE /f \"" + projectName + ".mak\"."); + printWriter.println("!MESSAGE "); + printWriter.println("!MESSAGE You can specify a configuration when running NMAKE"); + printWriter.println("!MESSAGE by defining the macro CFG on the command line. For example:"); + printWriter.println("!MESSAGE "); + printWriter.println("!MESSAGE NMAKE /f \"" + projectName + ".mak\" CFG=\"" + cfg + "\""); + printWriter.println("!MESSAGE "); + printWriter.println("!MESSAGE Possible choices for configuration are:"); + printWriter.println("!MESSAGE "); + for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { + String name = ((BuildConfig)i.next()).get("Name"); + printWriter.println("!MESSAGE \""+ name + "\" (based on \"Win32 (x86) Dynamic-Link Library\")"); + allConfigNames.add(name); + } + printWriter.println("!MESSAGE "); + printWriter.println(""); + + printWriter.println("# Begin Project"); + printWriter.println("# PROP AllowPerConfigDependencies 0"); + printWriter.println("# PROP Scc_ProjName \"\""); + printWriter.println("# PROP Scc_LocalPath \"\""); + printWriter.println("CPP=cl.exe"); + printWriter.println("MTL=midl.exe"); + printWriter.println("RSC=rc.exe"); + + + String keyword = "!IF"; + for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { + BuildConfig bcfg = (BuildConfig)i.next(); + printWriter.println(keyword + " \"$(CFG)\" == \"" + bcfg.get("Name") + "\""); + writeConfigHeader(bcfg); + keyword = "!ELSEIF"; + if (!i.hasNext()) printWriter.println("!ENDIF"); + } + + + TreeSet sortedFiles = sortFiles(computeAttributedFiles(allConfigs)); + + printWriter.println("# Begin Target"); + + for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { + printWriter.println("# Name \"" + ((BuildConfig)i.next()).get("Name") + "\""); + } + printWriter.println("# Begin Group \"Header Files\""); + printWriter.println("# PROP Default_Filter \"h;hpp;hxx;hm;inl;fi;fd\""); + + Iterator i = sortedFiles.iterator(); + + while (i.hasNext()) { + FileInfo fi = (FileInfo)i.next(); + + // skip sources + if (!fi.isHeader()) { + continue; + } + + printFile(fi, allConfigNames); + } + printWriter.println("# End Group"); + printWriter.println(""); + + printWriter.println("# Begin Group \"Source Files\""); + printWriter.println("# PROP Default_Filter \"cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90\""); + + i = sortedFiles.iterator(); + while (i.hasNext()) { + FileInfo fi = (FileInfo)i.next(); + + // skip headers + if (fi.isHeader()) { + continue; + } + + printFile(fi, allConfigNames); + } + printWriter.println("# End Group"); + printWriter.println(""); + + + printWriter.println("# Begin Group \"Resource Files\""); + printWriter.println("# PROP Default_Filter \"ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe\""); + printWriter.println("# End Group"); + printWriter.println(""); + printWriter.println("# End Target"); + + printWriter.println("# End Project"); + + printWriter.close(); + } + + + void printFile(FileInfo fi, Vector allConfigNames) { + printWriter.println("# Begin Source File"); + printWriter.println(""); + printWriter.println("SOURCE=\"" + fi.full + "\""); + FileAttribute attr = fi.attr; + + if (attr.noPch) { + printWriter.println("# SUBTRACT CPP /YX /Yc /Yu"); + } + + if (attr.pchRoot) { + printWriter.println("# ADD CPP /Yc\"incls/_precompiled.incl\""); + } + if (attr.configs != null) { + String keyword = "!IF"; + for (Iterator j=allConfigNames.iterator(); j.hasNext();) { + String cfg = (String)j.next(); + if (!attr.configs.contains(cfg)) { + printWriter.println(keyword+" \"$(CFG)\" == \"" + cfg +"\""); + printWriter.println("# PROP BASE Exclude_From_Build 1"); + printWriter.println("# PROP Exclude_From_Build 1"); + keyword = "!ELSEIF"; + } + } + printWriter.println("!ENDIF"); + } + + printWriter.println("# End Source File"); + } + + void writeConfigHeader(BuildConfig cfg) { + printWriter.println("# Begin Special Build Tool"); + printWriter.println("SOURCE=\"$(InputPath)\""); + printWriter.println("PreLink_Desc=" + BuildConfig.getFieldString(null, "PrelinkDescription")); + printWriter.println("PreLink_Cmds=" + + cfg.expandFormat(BuildConfig.getFieldString(null, "PrelinkCommand"))); + printWriter.println("# End Special Build Tool"); + printWriter.println(""); + + for (Iterator i = cfg.getV("CompilerFlags").iterator(); i.hasNext(); ) { + printWriter.println("# "+(String)i.next()); + } + + + printWriter.println("LINK32=link.exe"); + + for (Iterator i = cfg.getV("LinkerFlags").iterator(); i.hasNext(); ) { + printWriter.println("# "+(String)i.next()); + } + + printWriter.println("ADD BASE MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32"); + printWriter.println("ADD MTL /nologo /D \"_DEBUG\" /mktyplib203 /win32"); + printWriter.println("ADD BASE RSC /l 0x409 /d \"_DEBUG\""); + printWriter.println("ADD RSC /l 0x409 /d \"_DEBUG\""); + printWriter.println("BSC32=bscmake.exe"); + printWriter.println("ADD BASE BSC32 /nologo"); + printWriter.println("ADD BSC32 /nologo"); + printWriter.println(""); + } + + protected String getProjectExt() { + return ".dsp"; + } +} + + +class CompilerInterfaceVC6 extends CompilerInterface { + Vector getBaseCompilerFlags(Vector defines, Vector includes, String outDir) { + Vector rv = new Vector(); + + rv.add("PROP BASE Use_MFC 0"); + rv.add("PROP Use_MFC 0"); + rv.add("ADD CPP /nologo /MT /W3 /WX /GX /YX /Fr /FD /c"); + rv.add("PROP BASE Output_Dir \""+outDir+"\""); + rv.add("PROP Output_Dir \""+outDir+"\""); + rv.add("PROP BASE Intermediate_Dir \""+outDir+"\""); + rv.add("PROP Intermediate_Dir \""+outDir+"\""); + rv.add("PROP BASE Target_Dir \"\""); + rv.add("PROP Target_Dir \"\""); + rv.add("ADD BASE CPP "+Util.prefixed_join(" /I ", includes, true)); + rv.add("ADD CPP "+Util.prefixed_join(" /I ", includes, true)); + rv.add("ADD BASE CPP "+Util.prefixed_join(" /D ", defines, true)); + rv.add("ADD CPP "+Util.prefixed_join(" /D ", defines, true)); + rv.add("ADD CPP /Yu\"incls/_precompiled.incl\""); + + return rv; + } + + Vector getBaseLinkerFlags(String outDir, String outDll) { + Vector rv = new Vector(); + + rv.add("PROP Ignore_Export_Lib 0"); + rv.add("ADD BASE CPP /MD"); + rv.add("ADD CPP /MD"); + rv.add("ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib " + + " advapi32.lib shell32.lib ole32.lib oleaut32.lib winmm.lib"); + rv.add("ADD LINK32 /out:\""+outDll+"\" "+ + " /nologo /subsystem:windows /machine:I386" + + " /nologo /base:\"0x8000000\" /subsystem:windows /dll" + + " /export:JNI_GetDefaultJavaVMInitArgs /export:JNI_CreateJavaVM /export:JNI_GetCreatedJavaVMs "+ + " /export:jio_snprintf /export:jio_printf /export:jio_fprintf /export:jio_vfprintf "+ + " /export:jio_vsnprintf "); + rv.add("SUBTRACT LINK32 /pdb:none /map"); + + return rv; + } + + Vector getDebugCompilerFlags(String opt) { + Vector rv = new Vector(); + + rv.add("ADD BASE CPP /Gm /Zi /O"+opt); + + return rv; + } + + Vector getDebugLinkerFlags() { + Vector rv = new Vector(); + + rv.add("PROP BASE Use_Debug_Libraries 1"); + rv.add("PROP Use_Debug_Libraries 1"); + rv.add("ADD LINK32 /debug"); + + return rv; + } + + Vector getProductCompilerFlags() { + Vector rv = new Vector(); + + rv.add("ADD CPP /O"+getOptFlag()); + + return rv; + } + + Vector getProductLinkerFlags() { + Vector rv = new Vector(); + + rv.add("PROP BASE Use_Debug_Libraries 0"); + rv.add("PROP Use_Debug_Libraries 0"); + + return rv; + } + + String getOptFlag() { + return "2"; + } + + String getNoOptFlag() { + return "d"; + } + + String makeCfgName(String flavourBuild) { + return "vm - "+ Util.os + " " + flavourBuild; + } +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/tools/ProjectCreator/WinGammaPlatformVC7.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,730 @@ +/* + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * 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. + * + */ + +import java.io.*; +import java.util.*; + +public class WinGammaPlatformVC7 extends WinGammaPlatform { + + String projectVersion() {return "7.10";}; + + public void writeProjectFile(String projectFileName, String projectName, + Vector allConfigs) throws IOException { + System.out.println(); + System.out.println(" Writing .vcproj file..."); + // If we got this far without an error, we're safe to actually + // write the .vcproj file + printWriter = new PrintWriter(new FileWriter(projectFileName)); + + printWriter.println(""); + startTag( + "VisualStudioProject", + new String[] { + "ProjectType", "Visual C++", + "Version", projectVersion(), + "Name", projectName, + "ProjectGUID", "{8822CB5C-1C41-41C2-8493-9F6E1994338B}", + "SccProjectName", "", + "SccLocalPath", "" + } + ); + + startTag("Platforms", null); + tag("Platform", new String[] {"Name", Util.os}); + endTag("Platforms"); + + startTag("Configurations", null); + + for (Iterator i = allConfigs.iterator(); i.hasNext(); ) { + writeConfiguration((BuildConfig)i.next()); + } + + endTag("Configurations"); + + tag("References", null); + + writeFiles(allConfigs); + + tag("Globals", null); + + endTag("VisualStudioProject"); + printWriter.close(); + + System.out.println(" Done."); + } + + + abstract class NameFilter { + protected String fname; + + abstract boolean match(FileInfo fi); + + String filterString() { return ""; } + String name() { return this.fname;} + } + + class DirectoryFilter extends NameFilter { + String dir; + int baseLen, dirLen; + + DirectoryFilter(String dir, String sbase) { + this.dir = dir; + this.baseLen = sbase.length(); + this.dirLen = dir.length(); + this.fname = dir; + } + + DirectoryFilter(String fname, String dir, String sbase) { + this.dir = dir; + this.baseLen = sbase.length(); + this.dirLen = dir.length(); + this.fname = fname; + } + + + boolean match(FileInfo fi) { + return fi.full.regionMatches(true, baseLen, dir, 0, dirLen); + } + } + + class TypeFilter extends NameFilter { + String[] exts; + + TypeFilter(String fname, String[] exts) { + this.fname = fname; + this.exts = exts; + } + + boolean match(FileInfo fi) { + for (int i=0; i"); + } else { + //doIndent(); + printWriter.println(">"); + } + } + + void startTag(String name, String[] attrs) { + startTagPrim(name, attrs, false); + } + + void startTagV(String name, Vector attrs) { + String s[] = new String [attrs.size()]; + for (int i=0; i"); + } + + void tag(String name, String[] attrs) { + startTagPrim(name, attrs, true); + } + + void tagV(String name, Vector attrs) { + String s[] = new String [attrs.size()]; + for (int i=0; i(b)) ? (a) : (b)) -// VM components -#include "opcodes.hpp" - // ADLC components #include "arena.hpp" -#include "adlcVMDeps.hpp" +#include "opto/adlcVMDeps.hpp" #include "filebuff.hpp" #include "dict2.hpp" #include "forms.hpp" @@ -101,3 +105,5 @@ // could have a backpointer to the AD but it's too complicated to pass // it everywhere it needs to be available. extern ArchDesc* globalAD; + +#endif // SHARE_VM_ADLC_ADLC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/adlparse.cpp --- a/src/share/vm/adlc/adlparse.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/adlparse.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/adlparse.hpp --- a/src/share/vm/adlc/adlparse.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/adlparse.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_ADLPARSE_HPP +#define SHARE_VM_ADLC_ADLPARSE_HPP + // ADLPARSE.HPP - Definitions for Architecture Description Language Parser // Authors: Chris Vick and Mike Paleczny @@ -277,3 +280,5 @@ static bool equivalent_expressions(const char* str1, const char* str2); static void trim(char* &token); // trim leading & trailing spaces }; + +#endif // SHARE_VM_ADLC_ADLPARSE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/archDesc.cpp --- a/src/share/vm/adlc/archDesc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/archDesc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ // -// Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. +// Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it @@ -1038,22 +1038,38 @@ fprintf(fp,"\n"); } -//---------------------------machineDependentIncludes-------------------------- -// output #include declarations for machine specific files -void ArchDesc::machineDependentIncludes(ADLFILE &adlfile) { - const char *basename = adlfile._name; - const char *cp; - for (cp = basename; *cp; cp++) - if (*cp == '/') basename = cp+1; +//---------------------------addIncludeGuardStart-------------------------- +// output the start of an include guard. +void ArchDesc::addIncludeGuardStart(ADLFILE &adlfile, const char* guardString) { // Build #include lines fprintf(adlfile._fp, "\n"); - fprintf(adlfile._fp, "#include \"incls/_precompiled.incl\"\n"); - fprintf(adlfile._fp, "#include \"incls/_%s.incl\"\n",basename); + fprintf(adlfile._fp, "#ifndef %s\n", guardString); + fprintf(adlfile._fp, "#define %s\n", guardString); fprintf(adlfile._fp, "\n"); } +//---------------------------addIncludeGuardEnd-------------------------- +// output the end of an include guard. +void ArchDesc::addIncludeGuardEnd(ADLFILE &adlfile, const char* guardString) { + // Build #include lines + fprintf(adlfile._fp, "\n"); + fprintf(adlfile._fp, "#endif // %s\n", guardString); + +} + +//---------------------------addInclude-------------------------- +// output the #include line for this file. +void ArchDesc::addInclude(ADLFILE &adlfile, const char* fileName) { + fprintf(adlfile._fp, "#include \"%s\"\n", fileName); + +} + +void ArchDesc::addInclude(ADLFILE &adlfile, const char* includeDir, const char* fileName) { + fprintf(adlfile._fp, "#include \"%s/%s\"\n", includeDir, fileName); + +} //---------------------------addPreprocessorChecks----------------------------- // Output C preprocessor code to verify the backend compilation environment. diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/archDesc.hpp --- a/src/share/vm/adlc/archDesc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/archDesc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_ARCHDESC_HPP +#define SHARE_VM_ADLC_ARCHDESC_HPP + // Definitions for Error Flags #define WARN 0 #define SYNERR 1 @@ -274,8 +277,13 @@ // output SUN copyright info void addSunCopyright(char* legal, int size, FILE *fp); - // output #include declarations for machine specific files - void machineDependentIncludes(ADLFILE &adlfile); + // output the start of an include guard. + void addIncludeGuardStart(ADLFILE &adlfile, const char* guardString); + // output the end of an include guard. + void addIncludeGuardEnd(ADLFILE &adlfile, const char* guardString); + // output the #include line for this file. + void addInclude(ADLFILE &adlfile, const char* fileName); + void addInclude(ADLFILE &adlfile, const char* includeDir, const char* fileName); // Output C preprocessor code to verify the backend compilation environment. void addPreprocessorChecks(FILE *fp); // Output C source and header (source_hpp) blocks. @@ -387,3 +395,5 @@ // Allow derived class to output name and position specific info virtual void record_position(OutputMap::position place, int index) {} }; + +#endif // SHARE_VM_ADLC_ARCHDESC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/arena.cpp --- a/src/share/vm/adlc/arena.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/arena.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/arena.hpp --- a/src/share/vm/adlc/arena.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/arena.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_ARENA_HPP +#define SHARE_VM_ADLC_ARENA_HPP + // All classes in the virtual machine must be subclassed // by one of the following allocation classes: // @@ -155,3 +158,5 @@ size_t size_in_bytes() const { return _size_in_bytes; } void set_size_in_bytes(size_t size) { _size_in_bytes = size; } }; + +#endif // SHARE_VM_ADLC_ARENA_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/dfa.cpp --- a/src/share/vm/adlc/dfa.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/dfa.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/dict2.cpp --- a/src/share/vm/adlc/dict2.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/dict2.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/dict2.hpp --- a/src/share/vm/adlc/dict2.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/dict2.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#ifndef _DICT_ -#define _DICT_ +#ifndef SHARE_VM_ADLC_DICT2_HPP +#define SHARE_VM_ADLC_DICT2_HPP + // Dictionaries - An Abstract Data Type @@ -117,4 +118,4 @@ int test(void) { return _i<_d->_size;} // Test for end of iteration }; -#endif // _DICT_ +#endif // SHARE_VM_ADLC_DICT2_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/filebuff.cpp --- a/src/share/vm/adlc/filebuff.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/filebuff.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/filebuff.hpp --- a/src/share/vm/adlc/filebuff.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/filebuff.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_FILEBUFF_HPP +#define SHARE_VM_ADLC_FILEBUFF_HPP + // FILEBUFF.HPP - Definitions for parser file buffering routines #include @@ -99,3 +102,5 @@ void print(ostream&); friend ostream& operator<< (ostream&, FileBuffRegion&); }; + +#endif // SHARE_VM_ADLC_FILEBUFF_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/forms.cpp --- a/src/share/vm/adlc/forms.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/forms.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/forms.hpp --- a/src/share/vm/adlc/forms.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/forms.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_FORMS_HPP +#define SHARE_VM_ADLC_FORMS_HPP + // FORMS.HPP - ADL Parser Generic and Utility Forms Classes #define TRUE 1 @@ -588,3 +591,5 @@ void print_asserts(FILE *fp); void dump(); }; + +#endif // SHARE_VM_ADLC_FORMS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/formsopt.cpp --- a/src/share/vm/adlc/formsopt.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/formsopt.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/formsopt.hpp --- a/src/share/vm/adlc/formsopt.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/formsopt.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_FORMSOPT_HPP +#define SHARE_VM_ADLC_FORMSOPT_HPP + // FORMSOPT.HPP - ADL Parser Target Specific Optimization Forms Classes // Class List @@ -546,3 +549,5 @@ void dump(); void output(FILE *fp); }; + +#endif // SHARE_VM_ADLC_FORMSOPT_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/formssel.hpp --- a/src/share/vm/adlc/formssel.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/formssel.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_FORMSSEL_HPP +#define SHARE_VM_ADLC_FORMSSEL_HPP + // FORMSSEL.HPP - ADL Parser Instruction Selection Forms Classes // Class List @@ -1062,3 +1065,5 @@ void dump(); void output(FILE *fp); }; + +#endif // SHARE_VM_ADLC_FORMSSEL_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/adlc/main.cpp --- a/src/share/vm/adlc/main.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/adlc/main.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,17 @@ ArchDesc* globalAD = NULL; // global reference to Architecture Description object +const char* get_basename(const char* filename) { + const char *basename = filename; + const char *cp; + for (cp = basename; *cp; cp++) { + if (*cp == '/') { + basename = cp+1; + } + } + return basename; +} + //------------------------------main------------------------------------------- int main(int argc, char *argv[]) { @@ -193,16 +204,69 @@ AD.addSunCopyright(legal_text, legal_sz, AD._CPP_PIPELINE_file._fp); // .cpp AD.addSunCopyright(legal_text, legal_sz, AD._VM_file._fp); // .hpp AD.addSunCopyright(legal_text, legal_sz, AD._DFA_file._fp); // .cpp + // Add include guards for all .hpp files + AD.addIncludeGuardStart(AD._HPP_file, "GENERATED_ADFILES_AD_HPP"); // .hpp + AD.addIncludeGuardStart(AD._VM_file, "GENERATED_ADFILES_ADGLOBALS_HPP"); // .hpp + // Add includes + AD.addInclude(AD._CPP_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_file, "adfiles", get_basename(AD._VM_file._name)); + AD.addInclude(AD._CPP_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_file, "memory/allocation.inline.hpp"); + AD.addInclude(AD._CPP_file, "asm/assembler.hpp"); + AD.addInclude(AD._CPP_file, "code/vmreg.hpp"); + AD.addInclude(AD._CPP_file, "gc_interface/collectedHeap.inline.hpp"); + AD.addInclude(AD._CPP_file, "oops/compiledICHolderOop.hpp"); + AD.addInclude(AD._CPP_file, "oops/markOop.hpp"); + AD.addInclude(AD._CPP_file, "oops/methodOop.hpp"); + AD.addInclude(AD._CPP_file, "oops/oop.inline.hpp"); + AD.addInclude(AD._CPP_file, "oops/oop.inline2.hpp"); + AD.addInclude(AD._CPP_file, "opto/cfgnode.hpp"); + AD.addInclude(AD._CPP_file, "opto/locknode.hpp"); + AD.addInclude(AD._CPP_file, "opto/opcodes.hpp"); + AD.addInclude(AD._CPP_file, "opto/regalloc.hpp"); + AD.addInclude(AD._CPP_file, "opto/regmask.hpp"); + AD.addInclude(AD._CPP_file, "opto/runtime.hpp"); + AD.addInclude(AD._CPP_file, "runtime/biasedLocking.hpp"); + AD.addInclude(AD._CPP_file, "runtime/sharedRuntime.hpp"); + AD.addInclude(AD._CPP_file, "runtime/stubRoutines.hpp"); + AD.addInclude(AD._CPP_file, "utilities/growableArray.hpp"); +#ifdef TARGET_ARCH_x86 + AD.addInclude(AD._CPP_file, "assembler_x86.inline.hpp"); + AD.addInclude(AD._CPP_file, "nativeInst_x86.hpp"); + AD.addInclude(AD._CPP_file, "vmreg_x86.inline.hpp"); +#endif +#ifdef TARGET_ARCH_sparc + AD.addInclude(AD._CPP_file, "assembler_sparc.inline.hpp"); + AD.addInclude(AD._CPP_file, "nativeInst_sparc.hpp"); + AD.addInclude(AD._CPP_file, "vmreg_sparc.inline.hpp"); +#endif + AD.addInclude(AD._HPP_file, "memory/allocation.hpp"); + AD.addInclude(AD._HPP_file, "opto/machnode.hpp"); + AD.addInclude(AD._HPP_file, "opto/node.hpp"); + AD.addInclude(AD._HPP_file, "opto/regalloc.hpp"); + AD.addInclude(AD._HPP_file, "opto/subnode.hpp"); + AD.addInclude(AD._CPP_CLONE_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_CLONE_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_EXPAND_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_EXPAND_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_FORMAT_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_FORMAT_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_GEN_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_GEN_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_GEN_file, "opto/cfgnode.hpp"); + AD.addInclude(AD._CPP_GEN_file, "opto/locknode.hpp"); + AD.addInclude(AD._CPP_MISC_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_MISC_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_PEEPHOLE_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_PEEPHOLE_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_PIPELINE_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_PIPELINE_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._DFA_file, "precompiled.hpp"); + AD.addInclude(AD._DFA_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._DFA_file, "opto/matcher.hpp"); + AD.addInclude(AD._DFA_file, "opto/opcodes.hpp"); // Make sure each .cpp file starts with include lines: // files declaring and defining generators for Mach* Objects (hpp,cpp) - AD.machineDependentIncludes(AD._CPP_file); // .cpp - AD.machineDependentIncludes(AD._CPP_CLONE_file); // .cpp - AD.machineDependentIncludes(AD._CPP_EXPAND_file); // .cpp - AD.machineDependentIncludes(AD._CPP_FORMAT_file); // .cpp - AD.machineDependentIncludes(AD._CPP_GEN_file); // .cpp - AD.machineDependentIncludes(AD._CPP_MISC_file); // .cpp - AD.machineDependentIncludes(AD._CPP_PEEPHOLE_file); // .cpp - AD.machineDependentIncludes(AD._CPP_PIPELINE_file); // .cpp // Generate the result files: // enumerations, class definitions, object generators, and the DFA // file containing enumeration of machine operands & instructions (hpp) @@ -244,8 +308,10 @@ AD.addPreprocessorChecks(AD._CPP_PIPELINE_file._fp); // .cpp // define the finite automata that selects lowest cost production - AD.machineDependentIncludes(AD._DFA_file); // .cpp AD.buildDFA(AD._DFA_file._fp); + // Add include guards for all .hpp files + AD.addIncludeGuardEnd(AD._HPP_file, "GENERATED_ADFILES_AD_HPP"); // .hpp + AD.addIncludeGuardEnd(AD._VM_file, "GENERATED_ADFILES_ADGLOBALS_HPP"); // .hpp AD.close_files(0); // Close all input/output files diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/asm/assembler.cpp --- a/src/share/vm/asm/assembler.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/asm/assembler.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,21 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/assembler.inline.hpp" +#include "asm/codeBuffer.hpp" +#include "runtime/icache.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +#endif // Implementation of AbstractAssembler diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/asm/assembler.hpp --- a/src/share/vm/asm/assembler.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/asm/assembler.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,28 @@ * */ +#ifndef SHARE_VM_ASM_ASSEMBLER_HPP +#define SHARE_VM_ASM_ASSEMBLER_HPP + +#include "code/oopRecorder.hpp" +#include "code/relocInfo.hpp" +#include "memory/allocation.hpp" +#include "utilities/debug.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_ARCH_x86 +# include "register_x86.hpp" +# include "vm_version_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "register_sparc.hpp" +# include "vm_version_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "register_zero.hpp" +# include "vm_version_zero.hpp" +#endif + // This file contains platform-independent assembler declarations. class CodeBuffer; @@ -348,4 +370,15 @@ #endif // PRODUCT }; -#include "incls/_assembler_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.hpp" +#endif + + +#endif // SHARE_VM_ASM_ASSEMBLER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/asm/assembler.inline.hpp --- a/src/share/vm/asm/assembler.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/asm/assembler.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_ASM_ASSEMBLER_INLINE_HPP +#define SHARE_VM_ASM_ASSEMBLER_INLINE_HPP + +#include "asm/assembler.hpp" +#include "asm/codeBuffer.hpp" +#include "compiler/disassembler.hpp" +#include "runtime/threadLocalStorage.hpp" + inline void AbstractAssembler::sync() { CodeSection* cs = code_section(); guarantee(cs->start() == _code_begin, "must not shift code buffer"); @@ -133,3 +141,5 @@ } return ptr; } + +#endif // SHARE_VM_ASM_ASSEMBLER_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/asm/codeBuffer.cpp --- a/src/share/vm/asm/codeBuffer.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/asm/codeBuffer.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_codeBuffer.cpp.incl" +#include "precompiled.hpp" +#include "asm/codeBuffer.hpp" +#include "compiler/disassembler.hpp" +#include "utilities/copy.hpp" // The structure of a CodeSection: // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/asm/codeBuffer.hpp --- a/src/share/vm/asm/codeBuffer.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/asm/codeBuffer.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_ASM_CODEBUFFER_HPP +#define SHARE_VM_ASM_CODEBUFFER_HPP + +#include "asm/assembler.hpp" +#include "code/oopRecorder.hpp" +#include "code/relocInfo.hpp" + class CodeComments; class AbstractAssembler; class MacroAssembler; @@ -550,7 +557,16 @@ // The following header contains architecture-specific implementations - #include "incls/_codeBuffer_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "codeBuffer_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "codeBuffer_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "codeBuffer_zero.hpp" +#endif + }; @@ -562,3 +578,5 @@ if (remaining() < amount) { _outer->expand(this, amount); return true; } return false; } + +#endif // SHARE_VM_ASM_CODEBUFFER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/asm/register.cpp --- a/src/share/vm/asm/register.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/asm/register.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register.cpp.incl" +#include "precompiled.hpp" +#include "asm/register.hpp" // Intentionally left blank diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/asm/register.hpp --- a/src/share/vm/asm/register.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/asm/register.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_ASM_REGISTER_HPP +#define SHARE_VM_ASM_REGISTER_HPP + +#include "utilities/top.hpp" + // Use AbstractRegister as shortcut class AbstractRegisterImpl; typedef AbstractRegisterImpl* AbstractRegister; @@ -209,3 +214,5 @@ "registers must be different" ); } + +#endif // SHARE_VM_ASM_REGISTER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_CFGPrinter.cpp --- a/src/share/vm/c1/c1_CFGPrinter.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_CFGPrinter.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_CFGPrinter.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CFGPrinter.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_LinearScan.hpp" +#include "c1/c1_ValueStack.hpp" #ifndef PRODUCT diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_CFGPrinter.hpp --- a/src/share/vm/c1/c1_CFGPrinter.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_CFGPrinter.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_C1_C1_CFGPRINTER_HPP +#define SHARE_VM_C1_C1_CFGPRINTER_HPP + +#include "c1/c1_Compilation.hpp" +#include "c1/c1_Instruction.hpp" + #ifndef PRODUCT // This is a utility class used for recording the results of a @@ -44,3 +50,5 @@ }; #endif + +#endif // SHARE_VM_C1_C1_CFGPRINTER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Canonicalizer.cpp --- a/src/share/vm/c1/c1_Canonicalizer.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Canonicalizer.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Canonicalizer.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Canonicalizer.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArray.hpp" +#include "runtime/sharedRuntime.hpp" class PrintValueVisitor: public ValueVisitor { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Canonicalizer.hpp --- a/src/share/vm/c1/c1_Canonicalizer.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Canonicalizer.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_C1_C1_CANONICALIZER_HPP +#define SHARE_VM_C1_C1_CANONICALIZER_HPP + +#include "c1/c1_Instruction.hpp" + class Canonicalizer: InstructionVisitor { private: Compilation *_compilation; @@ -98,3 +103,5 @@ virtual void do_ProfileCall (ProfileCall* x); virtual void do_ProfileInvoke (ProfileInvoke* x); }; + +#endif // SHARE_VM_C1_C1_CANONICALIZER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_CodeStubs.hpp --- a/src/share/vm/c1/c1_CodeStubs.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_CodeStubs.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_C1_C1_CODESTUBS_HPP +#define SHARE_VM_C1_C1_CODESTUBS_HPP + +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_Runtime1.hpp" +#include "utilities/array.hpp" + class CodeEmitInfo; class LIR_Assembler; class LIR_OpVisitState; @@ -586,3 +596,5 @@ #endif // SERIALGC ////////////////////////////////////////////////////////////////////////////////////////// + +#endif // SHARE_VM_C1_C1_CODESTUBS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Compilation.cpp --- a/src/share/vm/c1/c1_Compilation.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Compilation.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Compilation.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CFGPrinter.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_LinearScan.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_ValueMap.hpp" +#include "c1/c1_ValueStack.hpp" +#include "code/debugInfoRec.hpp" typedef enum { @@ -471,7 +479,14 @@ _exception_info_list = new ExceptionInfoList(); _implicit_exception_table.set_size(0); compile_method(); - if (is_profiling() && _would_profile) { + if (bailed_out()) { + _env->record_method_not_compilable(bailout_msg(), !TieredCompilation); + if (is_profiling()) { + // Compilation failed, create MDO, which would signal the interpreter + // to start profiling on its own. + _method->build_method_data(); + } + } else if (is_profiling() && _would_profile) { ciMethodData *md = method->method_data(); assert (md != NULL, "Should have MDO"); md->set_would_profile(_would_profile); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Compilation.hpp --- a/src/share/vm/c1/c1_Compilation.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Compilation.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_COMPILATION_HPP +#define SHARE_VM_C1_C1_COMPILATION_HPP + +#include "ci/ciEnv.hpp" +#include "code/exceptionHandlerTable.hpp" +#include "memory/resourceArea.hpp" + class CompilationResourceObj; class XHandlers; class ExceptionInfo; @@ -178,15 +185,11 @@ return (int) NMethodSizeLimit; // default 256K or 512K #else // conditional branches on PPC are restricted to 16 bit signed - return MAX2((unsigned int)NMethodSizeLimit,32*K); + return MIN2((unsigned int)NMethodSizeLimit,32*K); #endif } static int desired_max_constant_size() { -#ifndef PPC - return (int) NMethodSizeLimit / 10; // about 25K -#else - return (MAX2((unsigned int)NMethodSizeLimit, 32*K)) / 10; -#endif + return desired_max_code_buffer_size() / 10; } static void setup_code_buffer(CodeBuffer* cb, int call_stub_estimate); @@ -289,3 +292,5 @@ int pco() { return _pco; } XHandlers* exception_handlers() { return _exception_handlers; } }; + +#endif // SHARE_VM_C1_C1_COMPILATION_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Compiler.cpp --- a/src/share/vm/c1/c1_Compiler.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Compiler.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,25 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Compiler.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_Compiler.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_GraphBuilder.hpp" +#include "c1/c1_LinearScan.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueType.hpp" +#include "compiler/compileBroker.hpp" +#include "compiler/compilerOracle.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/nativeLookup.hpp" +#include "runtime/arguments.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" volatile int Compiler::_runtimes = uninitialized; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Compiler.hpp --- a/src/share/vm/c1/c1_Compiler.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Compiler.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_C1_C1_COMPILER_HPP +#define SHARE_VM_C1_C1_COMPILER_HPP + +#include "compiler/abstractCompiler.hpp" + // There is one instance of the Compiler per CompilerThread. class Compiler: public AbstractCompiler { @@ -61,3 +66,5 @@ // Print compilation timers and statistics virtual void print_timers(); }; + +#endif // SHARE_VM_C1_C1_COMPILER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Defs.cpp --- a/src/share/vm/c1/c1_Defs.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Defs.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,6 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Defs.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Defs.hpp" + diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Defs.hpp --- a/src/share/vm/c1/c1_Defs.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Defs.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_C1_C1_DEFS_HPP +#define SHARE_VM_C1_C1_DEFS_HPP + +#include "utilities/globalDefinitions.hpp" +#ifdef TARGET_ARCH_x86 +# include "register_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "register_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "register_zero.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, // the frame size must be fixed) @@ -30,7 +44,13 @@ }; -# include "incls/_c1_Defs_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "c1_Defs_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_Defs_sparc.hpp" +#endif + // native word offsets from memory address enum { @@ -49,3 +69,5 @@ enum { float_saved_as_double = pd_float_saved_as_double }; + +#endif // SHARE_VM_C1_C1_DEFS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_FpuStackSim.hpp --- a/src/share/vm/c1/c1_FpuStackSim.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_FpuStackSim.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,22 @@ * */ +#ifndef SHARE_VM_C1_C1_FPUSTACKSIM_HPP +#define SHARE_VM_C1_C1_FPUSTACKSIM_HPP + +#include "c1/c1_FrameMap.hpp" +#include "memory/allocation.hpp" + // Provides location for forward declaration of this class, which is // only implemented on Intel class FpuStackSim; -# include "incls/_c1_FpuStackSim_pd.hpp.incl" // platform dependent declarations +#ifdef TARGET_ARCH_x86 +# include "c1_FpuStackSim_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_FpuStackSim_sparc.hpp" +#endif + + +#endif // SHARE_VM_C1_C1_FPUSTACKSIM_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_FrameMap.cpp --- a/src/share/vm/c1/c1_FrameMap.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_FrameMap.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_FrameMap.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIR.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_ARCH_x86 +# include "vmreg_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "vmreg_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "vmreg_zero.inline.hpp" +#endif diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_FrameMap.hpp --- a/src/share/vm/c1/c1_FrameMap.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_FrameMap.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_C1_C1_FRAMEMAP_HPP +#define SHARE_VM_C1_C1_FRAMEMAP_HPP + +#include "asm/assembler.hpp" +#include "c1/c1_Defs.hpp" +#include "c1/c1_LIR.hpp" +#include "code/vmreg.hpp" +#include "memory/allocation.hpp" +#include "runtime/frame.hpp" +#include "runtime/synchronizer.hpp" +#include "utilities/globalDefinitions.hpp" + class ciMethod; class CallingConvention; class BasicTypeArray; @@ -70,7 +82,13 @@ spill_slot_size_in_bytes = 4 }; -# include "incls/_c1_FrameMap_pd.hpp.incl" // platform dependent declarations +#ifdef TARGET_ARCH_x86 +# include "c1_FrameMap_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_FrameMap_sparc.hpp" +#endif + friend class LIR_OprDesc; @@ -266,3 +284,5 @@ } #endif // PRODUCT }; + +#endif // SHARE_VM_C1_C1_FRAMEMAP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_GraphBuilder.cpp --- a/src/share/vm/c1/c1_GraphBuilder.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_GraphBuilder.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_GraphBuilder.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CFGPrinter.hpp" +#include "c1/c1_Canonicalizer.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_GraphBuilder.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "ci/ciField.hpp" +#include "ci/ciKlass.hpp" +#include "interpreter/bytecode.hpp" +#include "runtime/sharedRuntime.hpp" +#include "utilities/bitMap.inline.hpp" class BlockListBuilder VALUE_OBJ_CLASS_SPEC { private: diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_GraphBuilder.hpp --- a/src/share/vm/c1/c1_GraphBuilder.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_GraphBuilder.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_C1_C1_GRAPHBUILDER_HPP +#define SHARE_VM_C1_C1_GRAPHBUILDER_HPP + +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_ValueMap.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciStreams.hpp" + class MemoryBuffer; class GraphBuilder VALUE_OBJ_CLASS_SPEC { @@ -378,3 +388,5 @@ BlockBegin* start() const { return _start; } }; + +#endif // SHARE_VM_C1_C1_GRAPHBUILDER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_IR.cpp --- a/src/share/vm/c1/c1_IR.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_IR.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_IR.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_GraphBuilder.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_Optimizer.hpp" +#include "utilities/bitMap.inline.hpp" // Implementation of XHandlers @@ -321,7 +327,7 @@ void visit(Value* n) { // Local instructions and Phis for expression stack values at the // start of basic blocks are not added to the instruction list - if (!(*n)->is_linked()&& (*n)->can_be_linked()) { + if (!(*n)->is_linked() && (*n)->can_be_linked()) { assert(false, "a node was not appended to the graph"); Compilation::current()->bailout("a node was not appended to the graph"); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_IR.hpp --- a/src/share/vm/c1/c1_IR.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_IR.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_C1_C1_IR_HPP +#define SHARE_VM_C1_C1_IR_HPP + +#include "c1/c1_Instruction.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciStreams.hpp" +#include "memory/allocation.hpp" + // An XHandler is a C1 internal description for an exception handler class XHandler: public CompilationResourceObj { @@ -337,3 +346,5 @@ virtual void block_do(BlockBegin* block); }; + +#endif // SHARE_VM_C1_C1_IR_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Instruction.cpp --- a/src/share/vm/c1/c1_Instruction.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Instruction.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Instruction.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciTypeArrayKlass.hpp" // Implementation of Instruction @@ -415,28 +420,26 @@ return false; } - -BlockBegin* Constant::compare(Instruction::Condition cond, Value right, - BlockBegin* true_sux, BlockBegin* false_sux) { +Constant::CompareResult Constant::compare(Instruction::Condition cond, Value right) const { Constant* rc = right->as_Constant(); // other is not a constant - if (rc == NULL) return NULL; + if (rc == NULL) return not_comparable; ValueType* lt = type(); ValueType* rt = rc->type(); // different types - if (lt->base() != rt->base()) return NULL; + if (lt->base() != rt->base()) return not_comparable; switch (lt->tag()) { case intTag: { int x = lt->as_IntConstant()->value(); int y = rt->as_IntConstant()->value(); switch (cond) { - case If::eql: return x == y ? true_sux : false_sux; - case If::neq: return x != y ? true_sux : false_sux; - case If::lss: return x < y ? true_sux : false_sux; - case If::leq: return x <= y ? true_sux : false_sux; - case If::gtr: return x > y ? true_sux : false_sux; - case If::geq: return x >= y ? true_sux : false_sux; + case If::eql: return x == y ? cond_true : cond_false; + case If::neq: return x != y ? cond_true : cond_false; + case If::lss: return x < y ? cond_true : cond_false; + case If::leq: return x <= y ? cond_true : cond_false; + case If::gtr: return x > y ? cond_true : cond_false; + case If::geq: return x >= y ? cond_true : cond_false; } break; } @@ -444,12 +447,12 @@ jlong x = lt->as_LongConstant()->value(); jlong y = rt->as_LongConstant()->value(); switch (cond) { - case If::eql: return x == y ? true_sux : false_sux; - case If::neq: return x != y ? true_sux : false_sux; - case If::lss: return x < y ? true_sux : false_sux; - case If::leq: return x <= y ? true_sux : false_sux; - case If::gtr: return x > y ? true_sux : false_sux; - case If::geq: return x >= y ? true_sux : false_sux; + case If::eql: return x == y ? cond_true : cond_false; + case If::neq: return x != y ? cond_true : cond_false; + case If::lss: return x < y ? cond_true : cond_false; + case If::leq: return x <= y ? cond_true : cond_false; + case If::gtr: return x > y ? cond_true : cond_false; + case If::geq: return x >= y ? cond_true : cond_false; } break; } @@ -459,14 +462,14 @@ assert(xvalue != NULL && yvalue != NULL, "not constants"); if (xvalue->is_loaded() && yvalue->is_loaded()) { switch (cond) { - case If::eql: return xvalue == yvalue ? true_sux : false_sux; - case If::neq: return xvalue != yvalue ? true_sux : false_sux; + case If::eql: return xvalue == yvalue ? cond_true : cond_false; + case If::neq: return xvalue != yvalue ? cond_true : cond_false; } } break; } } - return NULL; + return not_comparable; } diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Instruction.hpp --- a/src/share/vm/c1/c1_Instruction.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Instruction.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_C1_C1_INSTRUCTION_HPP +#define SHARE_VM_C1_C1_INSTRUCTION_HPP + +#include "c1/c1_Compilation.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_ValueType.hpp" +#include "ci/ciField.hpp" + // Predefined classes class ciField; class ValueStack; @@ -443,7 +451,7 @@ // generic virtual Instruction* as_Instruction() { return this; } // to satisfy HASHING1 macro - virtual Phi* as_Phi() { return NULL; } + virtual Phi* as_Phi() { return NULL; } virtual Local* as_Local() { return NULL; } virtual Constant* as_Constant() { return NULL; } virtual AccessField* as_AccessField() { return NULL; } @@ -650,8 +658,24 @@ virtual intx hash() const; virtual bool is_equal(Value v) const; - virtual BlockBegin* compare(Instruction::Condition condition, Value right, - BlockBegin* true_sux, BlockBegin* false_sux); + + enum CompareResult { not_comparable = -1, cond_false, cond_true }; + + virtual CompareResult compare(Instruction::Condition condition, Value right) const; + BlockBegin* compare(Instruction::Condition cond, Value right, + BlockBegin* true_sux, BlockBegin* false_sux) const { + switch (compare(cond, right)) { + case not_comparable: + return NULL; + case cond_false: + return false_sux; + case cond_true: + return true_sux; + default: + ShouldNotReachHere(); + return NULL; + } + } }; @@ -2287,3 +2311,5 @@ inline void BlockBegin::add_successor(BlockBegin* sux) { assert(_end == NULL, "Would create mismatch with successors of BlockEnd"); _successors.append(sux); } #undef ASSERT_VALUES + +#endif // SHARE_VM_C1_C1_INSTRUCTION_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_InstructionPrinter.cpp --- a/src/share/vm/c1/c1_InstructionPrinter.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_InstructionPrinter.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_InstructionPrinter.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciObject.hpp" #ifndef PRODUCT diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_InstructionPrinter.hpp --- a/src/share/vm/c1/c1_InstructionPrinter.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_InstructionPrinter.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP +#define SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP + +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_Runtime1.hpp" + #ifndef PRODUCT class InstructionPrinter: public InstructionVisitor { private: @@ -126,3 +133,5 @@ virtual void do_ProfileInvoke (ProfileInvoke* x); }; #endif // PRODUCT + +#endif // SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_LIR.cpp --- a/src/share/vm/c1/c1_LIR.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_LIR.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIR.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciInstance.hpp" +#include "runtime/sharedRuntime.hpp" Register LIR_OprDesc::as_register() const { return FrameMap::cpu_rnr2reg(cpu_regnr()); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_LIR.hpp --- a/src/share/vm/c1/c1_LIR.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_LIR.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_C1_C1_LIR_HPP +#define SHARE_VM_C1_C1_LIR_HPP + +#include "c1/c1_ValueType.hpp" + class BlockBegin; class BlockList; class LIR_Assembler; @@ -2282,3 +2287,5 @@ inline LIR_Opr LIR_OprDesc::illegalOpr() { return LIR_OprFact::illegalOpr; }; + +#endif // SHARE_VM_C1_C1_LIR_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_LIRAssembler.cpp --- a/src/share/vm/c1/c1_LIRAssembler.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_LIRAssembler.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,26 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRAssembler.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciInstance.hpp" +#ifdef TARGET_ARCH_x86 +# include "nativeInst_x86.hpp" +# include "vmreg_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "nativeInst_sparc.hpp" +# include "vmreg_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "nativeInst_zero.hpp" +# include "vmreg_zero.inline.hpp" +#endif void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_LIRAssembler.hpp --- a/src/share/vm/c1/c1_LIRAssembler.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_LIRAssembler.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_C1_C1_LIRASSEMBLER_HPP +#define SHARE_VM_C1_C1_LIRASSEMBLER_HPP + +#include "c1/c1_CodeStubs.hpp" +#include "ci/ciMethodData.hpp" +#include "oops/methodDataOop.hpp" +#include "utilities/top.hpp" + class Compilation; class ScopeValue; class BarrierSet; @@ -236,5 +244,13 @@ void verify_oop_map(CodeEmitInfo* info); - #include "incls/_c1_LIRAssembler_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "c1_LIRAssembler_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_LIRAssembler_sparc.hpp" +#endif + }; + +#endif // SHARE_VM_C1_C1_LIRASSEMBLER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_LIRGenerator.cpp --- a/src/share/vm/c1/c1_LIRGenerator.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,22 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRGenerator.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_LIRGenerator.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciCPCache.hpp" +#include "ci/ciInstance.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/bitMap.inline.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/heapRegion.hpp" +#endif #ifdef ASSERT #define __ gen()->lir(__FILE__, __LINE__)-> @@ -1350,7 +1364,6 @@ addr = ptr; } assert(addr->is_register(), "must be a register at this point"); - assert(addr->type() == T_OBJECT, "addr should point to an object"); LIR_Opr xor_res = new_pointer_register(); LIR_Opr xor_shift_res = new_pointer_register(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_LIRGenerator.hpp --- a/src/share/vm/c1/c1_LIRGenerator.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_LIRGenerator.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_C1_C1_LIRGENERATOR_HPP +#define SHARE_VM_C1_C1_LIRGENERATOR_HPP + +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIR.hpp" +#include "ci/ciMethodData.hpp" +#include "utilities/sizes.hpp" + // The classes responsible for code emission and register allocation @@ -596,3 +604,5 @@ jdouble get_jdouble_constant() const; jint get_address_constant() const; }; + +#endif // SHARE_VM_C1_C1_LIRGENERATOR_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_LinearScan.cpp --- a/src/share/vm/c1/c1_LinearScan.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_LinearScan.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,25 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_LinearScan.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CFGPrinter.hpp" +#include "c1/c1_CodeStubs.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_LIRGenerator.hpp" +#include "c1/c1_LinearScan.hpp" +#include "c1/c1_ValueStack.hpp" +#include "utilities/bitMap.inline.hpp" +#ifdef TARGET_ARCH_x86 +# include "vmreg_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "vmreg_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "vmreg_zero.inline.hpp" +#endif #ifndef PRODUCT diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_LinearScan.hpp --- a/src/share/vm/c1/c1_LinearScan.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_LinearScan.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_C1_C1_LINEARSCAN_HPP +#define SHARE_VM_C1_C1_LINEARSCAN_HPP + +#include "c1/c1_FpuStackSim.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_LIRGenerator.hpp" + class DebugInfoCache; class FpuStackAllocator; class IRScopeDebugInfo; @@ -955,4 +965,12 @@ // Pick up platform-dependent implementation details -# include "incls/_c1_LinearScan_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "c1_LinearScan_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_LinearScan_sparc.hpp" +#endif + + +#endif // SHARE_VM_C1_C1_LINEARSCAN_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_MacroAssembler.hpp --- a/src/share/vm/c1/c1_MacroAssembler.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_MacroAssembler.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_C1_C1_MACROASSEMBLER_HPP +#define SHARE_VM_C1_C1_MACROASSEMBLER_HPP + +#include "asm/assembler.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +#endif + class CodeEmitInfo; class C1_MacroAssembler: public MacroAssembler { @@ -41,7 +55,13 @@ void verify_stack_oop(int offset) PRODUCT_RETURN; void verify_not_null_oop(Register r) PRODUCT_RETURN; -#include "incls/_c1_MacroAssembler_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "c1_MacroAssembler_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_MacroAssembler_sparc.hpp" +#endif + }; @@ -80,3 +100,5 @@ int call_RT(Register oop_result1, Register oop_result2, address entry, Register arg1, Register arg2); int call_RT(Register oop_result1, Register oop_result2, address entry, Register arg1, Register arg2, Register arg3); }; + +#endif // SHARE_VM_C1_C1_MACROASSEMBLER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Optimizer.cpp --- a/src/share/vm/c1/c1_Optimizer.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Optimizer.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Optimizer.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Canonicalizer.hpp" +#include "c1/c1_Optimizer.hpp" +#include "c1/c1_ValueMap.hpp" +#include "c1/c1_ValueSet.hpp" +#include "c1/c1_ValueStack.hpp" +#include "utilities/bitMap.inline.hpp" define_array(ValueSetArray, ValueSet*); define_stack(ValueSetList, ValueSetArray); @@ -38,18 +43,20 @@ private: IR* _hir; int _cee_count; // the number of CEs successfully eliminated + int _ifop_count; // the number of IfOps successfully simplified int _has_substitution; public: - CE_Eliminator(IR* hir) : _cee_count(0), _hir(hir) { + CE_Eliminator(IR* hir) : _cee_count(0), _ifop_count(0), _hir(hir) { _has_substitution = false; _hir->iterate_preorder(this); if (_has_substitution) { - // substituted some phis so resolve the substitution + // substituted some ifops/phis, so resolve the substitution SubstitutionResolver sr(_hir); } } int cee_count() const { return _cee_count; } + int ifop_count() const { return _ifop_count; } void adjust_exception_edges(BlockBegin* block, BlockBegin* sux) { int e = sux->number_of_exception_handlers(); @@ -68,156 +75,214 @@ } } - virtual void block_do(BlockBegin* block) { - // 1) find conditional expression - // check if block ends with an If - If* if_ = block->end()->as_If(); - if (if_ == NULL) return; + virtual void block_do(BlockBegin* block); + + private: + Value make_ifop(Value x, Instruction::Condition cond, Value y, Value tval, Value fval); +}; - // check if If works on int or object types - // (we cannot handle If's working on long, float or doubles yet, - // since IfOp doesn't support them - these If's show up if cmp - // operations followed by If's are eliminated) - ValueType* if_type = if_->x()->type(); - if (!if_type->is_int() && !if_type->is_object()) return; +void CE_Eliminator::block_do(BlockBegin* block) { + // 1) find conditional expression + // check if block ends with an If + If* if_ = block->end()->as_If(); + if (if_ == NULL) return; - BlockBegin* t_block = if_->tsux(); - BlockBegin* f_block = if_->fsux(); - Instruction* t_cur = t_block->next(); - Instruction* f_cur = f_block->next(); + // check if If works on int or object types + // (we cannot handle If's working on long, float or doubles yet, + // since IfOp doesn't support them - these If's show up if cmp + // operations followed by If's are eliminated) + ValueType* if_type = if_->x()->type(); + if (!if_type->is_int() && !if_type->is_object()) return; - // one Constant may be present between BlockBegin and BlockEnd - Value t_const = NULL; - Value f_const = NULL; - if (t_cur->as_Constant() != NULL && !t_cur->can_trap()) { - t_const = t_cur; - t_cur = t_cur->next(); - } - if (f_cur->as_Constant() != NULL && !f_cur->can_trap()) { - f_const = f_cur; - f_cur = f_cur->next(); - } + BlockBegin* t_block = if_->tsux(); + BlockBegin* f_block = if_->fsux(); + Instruction* t_cur = t_block->next(); + Instruction* f_cur = f_block->next(); - // check if both branches end with a goto - Goto* t_goto = t_cur->as_Goto(); - if (t_goto == NULL) return; - Goto* f_goto = f_cur->as_Goto(); - if (f_goto == NULL) return; + // one Constant may be present between BlockBegin and BlockEnd + Value t_const = NULL; + Value f_const = NULL; + if (t_cur->as_Constant() != NULL && !t_cur->can_trap()) { + t_const = t_cur; + t_cur = t_cur->next(); + } + if (f_cur->as_Constant() != NULL && !f_cur->can_trap()) { + f_const = f_cur; + f_cur = f_cur->next(); + } - // check if both gotos merge into the same block - BlockBegin* sux = t_goto->default_sux(); - if (sux != f_goto->default_sux()) return; + // check if both branches end with a goto + Goto* t_goto = t_cur->as_Goto(); + if (t_goto == NULL) return; + Goto* f_goto = f_cur->as_Goto(); + if (f_goto == NULL) return; - // check if at least one word was pushed on sux_state - ValueStack* sux_state = sux->state(); - if (sux_state->stack_size() <= if_->state()->stack_size()) return; + // check if both gotos merge into the same block + BlockBegin* sux = t_goto->default_sux(); + if (sux != f_goto->default_sux()) return; - // check if phi function is present at end of successor stack and that - // only this phi was pushed on the stack - Value sux_phi = sux_state->stack_at(if_->state()->stack_size()); - if (sux_phi == NULL || sux_phi->as_Phi() == NULL || sux_phi->as_Phi()->block() != sux) return; - if (sux_phi->type()->size() != sux_state->stack_size() - if_->state()->stack_size()) return; - - // get the values that were pushed in the true- and false-branch - Value t_value = t_goto->state()->stack_at(if_->state()->stack_size()); - Value f_value = f_goto->state()->stack_at(if_->state()->stack_size()); + // check if at least one word was pushed on sux_state + ValueStack* sux_state = sux->state(); + if (sux_state->stack_size() <= if_->state()->stack_size()) return; - // backend does not support floats - assert(t_value->type()->base() == f_value->type()->base(), "incompatible types"); - if (t_value->type()->is_float_kind()) return; + // check if phi function is present at end of successor stack and that + // only this phi was pushed on the stack + Value sux_phi = sux_state->stack_at(if_->state()->stack_size()); + if (sux_phi == NULL || sux_phi->as_Phi() == NULL || sux_phi->as_Phi()->block() != sux) return; + if (sux_phi->type()->size() != sux_state->stack_size() - if_->state()->stack_size()) return; - // check that successor has no other phi functions but sux_phi - // this can happen when t_block or f_block contained additonal stores to local variables - // that are no longer represented by explicit instructions - for_each_phi_fun(sux, phi, - if (phi != sux_phi) return; - ); - // true and false blocks can't have phis - for_each_phi_fun(t_block, phi, return; ); - for_each_phi_fun(f_block, phi, return; ); + // get the values that were pushed in the true- and false-branch + Value t_value = t_goto->state()->stack_at(if_->state()->stack_size()); + Value f_value = f_goto->state()->stack_at(if_->state()->stack_size()); + + // backend does not support floats + assert(t_value->type()->base() == f_value->type()->base(), "incompatible types"); + if (t_value->type()->is_float_kind()) return; - // 2) substitute conditional expression - // with an IfOp followed by a Goto - // cut if_ away and get node before - Instruction* cur_end = if_->prev(block); + // check that successor has no other phi functions but sux_phi + // this can happen when t_block or f_block contained additonal stores to local variables + // that are no longer represented by explicit instructions + for_each_phi_fun(sux, phi, + if (phi != sux_phi) return; + ); + // true and false blocks can't have phis + for_each_phi_fun(t_block, phi, return; ); + for_each_phi_fun(f_block, phi, return; ); + + // 2) substitute conditional expression + // with an IfOp followed by a Goto + // cut if_ away and get node before + Instruction* cur_end = if_->prev(block); - // append constants of true- and false-block if necessary - // clone constants because original block must not be destroyed - assert((t_value != f_const && f_value != t_const) || t_const == f_const, "mismatch"); - if (t_value == t_const) { - t_value = new Constant(t_const->type()); - NOT_PRODUCT(t_value->set_printable_bci(if_->printable_bci())); - cur_end = cur_end->set_next(t_value); - } - if (f_value == f_const) { - f_value = new Constant(f_const->type()); - NOT_PRODUCT(f_value->set_printable_bci(if_->printable_bci())); - cur_end = cur_end->set_next(f_value); - } + // append constants of true- and false-block if necessary + // clone constants because original block must not be destroyed + assert((t_value != f_const && f_value != t_const) || t_const == f_const, "mismatch"); + if (t_value == t_const) { + t_value = new Constant(t_const->type()); + NOT_PRODUCT(t_value->set_printable_bci(if_->printable_bci())); + cur_end = cur_end->set_next(t_value); + } + if (f_value == f_const) { + f_value = new Constant(f_const->type()); + NOT_PRODUCT(f_value->set_printable_bci(if_->printable_bci())); + cur_end = cur_end->set_next(f_value); + } - // it is very unlikely that the condition can be statically decided - // (this was checked previously by the Canonicalizer), so always - // append IfOp - Value result = new IfOp(if_->x(), if_->cond(), if_->y(), t_value, f_value); + Value result = make_ifop(if_->x(), if_->cond(), if_->y(), t_value, f_value); + assert(result != NULL, "make_ifop must return a non-null instruction"); + if (!result->is_linked() && result->can_be_linked()) { NOT_PRODUCT(result->set_printable_bci(if_->printable_bci())); cur_end = cur_end->set_next(result); + } - // append Goto to successor - ValueStack* state_before = if_->is_safepoint() ? if_->state_before() : NULL; - Goto* goto_ = new Goto(sux, state_before, if_->is_safepoint() || t_goto->is_safepoint() || f_goto->is_safepoint()); + // append Goto to successor + ValueStack* state_before = if_->is_safepoint() ? if_->state_before() : NULL; + Goto* goto_ = new Goto(sux, state_before, if_->is_safepoint() || t_goto->is_safepoint() || f_goto->is_safepoint()); + + // prepare state for Goto + ValueStack* goto_state = if_->state(); + while (sux_state->scope() != goto_state->scope()) { + goto_state = goto_state->caller_state(); + assert(goto_state != NULL, "states do not match up"); + } + goto_state = goto_state->copy(ValueStack::StateAfter, goto_state->bci()); + goto_state->push(result->type(), result); + assert(goto_state->is_same(sux_state), "states must match now"); + goto_->set_state(goto_state); + + cur_end = cur_end->set_next(goto_, goto_state->bci()); + + // Adjust control flow graph + BlockBegin::disconnect_edge(block, t_block); + BlockBegin::disconnect_edge(block, f_block); + if (t_block->number_of_preds() == 0) { + BlockBegin::disconnect_edge(t_block, sux); + } + adjust_exception_edges(block, t_block); + if (f_block->number_of_preds() == 0) { + BlockBegin::disconnect_edge(f_block, sux); + } + adjust_exception_edges(block, f_block); + + // update block end + block->set_end(goto_); + + // substitute the phi if possible + if (sux_phi->as_Phi()->operand_count() == 1) { + assert(sux_phi->as_Phi()->operand_at(0) == result, "screwed up phi"); + sux_phi->set_subst(result); + _has_substitution = true; + } + + // 3) successfully eliminated a conditional expression + _cee_count++; + if (PrintCEE) { + tty->print_cr("%d. CEE in B%d (B%d B%d)", cee_count(), block->block_id(), t_block->block_id(), f_block->block_id()); + tty->print_cr("%d. IfOp in B%d", ifop_count(), block->block_id()); + } - // prepare state for Goto - ValueStack* goto_state = if_->state(); - while (sux_state->scope() != goto_state->scope()) { - goto_state = goto_state->caller_state(); - assert(goto_state != NULL, "states do not match up"); - } - goto_state = goto_state->copy(ValueStack::StateAfter, goto_state->bci()); - goto_state->push(result->type(), result); - assert(goto_state->is_same(sux_state), "states must match now"); - goto_->set_state(goto_state); + _hir->verify(); +} + +Value CE_Eliminator::make_ifop(Value x, Instruction::Condition cond, Value y, Value tval, Value fval) { + if (!OptimizeIfOps) { + return new IfOp(x, cond, y, tval, fval); + } + + tval = tval->subst(); + fval = fval->subst(); + if (tval == fval) { + _ifop_count++; + return tval; + } + + x = x->subst(); + y = y->subst(); + + Constant* y_const = y->as_Constant(); + if (y_const != NULL) { + IfOp* x_ifop = x->as_IfOp(); + if (x_ifop != NULL) { // x is an ifop, y is a constant + Constant* x_tval_const = x_ifop->tval()->subst()->as_Constant(); + Constant* x_fval_const = x_ifop->fval()->subst()->as_Constant(); - cur_end = cur_end->set_next(goto_, goto_state->bci()); + if (x_tval_const != NULL && x_fval_const != NULL) { + Instruction::Condition x_ifop_cond = x_ifop->cond(); + + Constant::CompareResult t_compare_res = x_tval_const->compare(cond, y_const); + Constant::CompareResult f_compare_res = x_fval_const->compare(cond, y_const); + + guarantee(t_compare_res != Constant::not_comparable && f_compare_res != Constant::not_comparable, "incomparable constants in IfOp"); + + Value new_tval = t_compare_res == Constant::cond_true ? tval : fval; + Value new_fval = f_compare_res == Constant::cond_true ? tval : fval; - // Adjust control flow graph - BlockBegin::disconnect_edge(block, t_block); - BlockBegin::disconnect_edge(block, f_block); - if (t_block->number_of_preds() == 0) { - BlockBegin::disconnect_edge(t_block, sux); + _ifop_count++; + if (new_tval == new_fval) { + return new_tval; + } else { + return new IfOp(x_ifop->x(), x_ifop_cond, x_ifop->y(), new_tval, new_fval); + } + } + } else { + Constant* x_const = x->as_Constant(); + if (x_const != NULL) { // x and y are constants + Constant::CompareResult x_compare_res = x_const->compare(cond, y_const); + guarantee(x_compare_res != Constant::not_comparable, "incomparable constants in IfOp"); + + _ifop_count++; + return x_compare_res == Constant::cond_true ? tval : fval; + } } - adjust_exception_edges(block, t_block); - if (f_block->number_of_preds() == 0) { - BlockBegin::disconnect_edge(f_block, sux); - } - adjust_exception_edges(block, f_block); - - // update block end - block->set_end(goto_); - - // substitute the phi if possible - if (sux_phi->as_Phi()->operand_count() == 1) { - assert(sux_phi->as_Phi()->operand_at(0) == result, "screwed up phi"); - sux_phi->set_subst(result); - _has_substitution = true; - } - - // 3) successfully eliminated a conditional expression - _cee_count++; - if (PrintCEE) { - tty->print_cr("%d. CEE in B%d (B%d B%d)", cee_count(), block->block_id(), t_block->block_id(), f_block->block_id()); - } - - _hir->verify(); } -}; - + return new IfOp(x, cond, y, tval, fval); +} void Optimizer::eliminate_conditional_expressions() { // find conditional expressions & replace them with IfOps CE_Eliminator ce(ir()); } - class BlockMerger: public BlockClosure { private: IR* _hir; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Optimizer.hpp --- a/src/share/vm/c1/c1_Optimizer.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Optimizer.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_OPTIMIZER_HPP +#define SHARE_VM_C1_C1_OPTIMIZER_HPP + +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "memory/allocation.hpp" + class Optimizer VALUE_OBJ_CLASS_SPEC { private: IR* _ir; @@ -35,3 +42,5 @@ void eliminate_blocks(); void eliminate_null_checks(); }; + +#endif // SHARE_VM_C1_C1_OPTIMIZER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Runtime1.cpp --- a/src/share/vm/c1/c1_Runtime1.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Runtime1.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,41 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Runtime1.cpp.incl" +#include "precompiled.hpp" +#include "asm/codeBuffer.hpp" +#include "c1/c1_CodeStubs.hpp" +#include "c1/c1_Defs.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/codeBlob.hpp" +#include "code/compiledIC.hpp" +#include "code/pcDesc.hpp" +#include "code/scopeDesc.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/disassembler.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "interpreter/bytecode.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/barrierSet.hpp" +#include "memory/oopFactory.hpp" +#include "memory/resourceArea.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/compilationPolicy.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/vframe.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/copy.hpp" +#include "utilities/events.hpp" // Implementation of StubAssembler @@ -107,7 +140,6 @@ RegisterMap reg_map(thread, false); frame runtime_frame = thread->last_frame(); frame caller_frame = runtime_frame.sender(®_map); - // bypass VM_DeoptimizeFrame and deoptimize the frame directly Deoptimization::deoptimize_frame(thread, caller_frame.id()); assert(caller_is_deopted(), "Must be deoptimized"); } @@ -368,8 +400,7 @@ if (osr_nm != NULL) { RegisterMap map(thread, false); frame fr = thread->last_frame().sender(&map); - VM_DeoptimizeFrame deopt(thread, fr.id()); - VMThread::execute(&deopt); + Deoptimization::deoptimize_frame(thread, fr.id()); } JRT_BLOCK_END return NULL; @@ -441,8 +472,8 @@ // We don't really want to deoptimize the nmethod itself since we // can actually continue in the exception handler ourselves but I // don't see an easy way to have the desired effect. - VM_DeoptimizeFrame deopt(thread, caller_frame.id()); - VMThread::execute(&deopt); + Deoptimization::deoptimize_frame(thread, caller_frame.id()); + assert(caller_is_deopted(), "Must be deoptimized"); return SharedRuntime::deopt_blob()->unpack_with_exception_in_tls(); } @@ -835,8 +866,7 @@ nm->make_not_entrant(); } - VM_DeoptimizeFrame deopt(thread, caller_frame.id()); - VMThread::execute(&deopt); + Deoptimization::deoptimize_frame(thread, caller_frame.id()); // Return to the now deoptimized frame. } diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_Runtime1.hpp --- a/src/share/vm/c1/c1_Runtime1.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_Runtime1.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_C1_C1_RUNTIME1_HPP +#define SHARE_VM_C1_C1_RUNTIME1_HPP + +#include "c1/c1_FrameMap.hpp" +#include "code/stubs.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.hpp" +#include "runtime/deoptimization.hpp" + class StubAssembler; // The Runtime1 holds all assembly stubs and VM @@ -174,3 +183,5 @@ static void print_statistics() PRODUCT_RETURN; }; + +#endif // SHARE_VM_C1_C1_RUNTIME1_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_ValueMap.cpp --- a/src/share/vm/c1/c1_ValueMap.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_ValueMap.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_ValueMap.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Canonicalizer.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_ValueMap.hpp" +#include "utilities/bitMap.inline.hpp" #ifndef PRODUCT diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_ValueMap.hpp --- a/src/share/vm/c1/c1_ValueMap.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_ValueMap.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_VALUEMAP_HPP +#define SHARE_VM_C1_C1_VALUEMAP_HPP + +#include "c1/c1_Instruction.hpp" +#include "c1/c1_ValueSet.hpp" +#include "memory/allocation.hpp" + class ValueMapEntry: public CompilationResourceObj { private: intx _hash; @@ -226,3 +233,5 @@ // main entry point that performs global value numbering GlobalValueNumbering(IR* ir); }; + +#endif // SHARE_VM_C1_C1_VALUEMAP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_ValueSet.cpp --- a/src/share/vm/c1/c1_ValueSet.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_ValueSet.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,6 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_ValueSet.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_ValueSet.hpp" + diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_ValueSet.hpp --- a/src/share/vm/c1/c1_ValueSet.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_ValueSet.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_VALUESET_HPP +#define SHARE_VM_C1_C1_VALUESET_HPP + +#include "c1/c1_Instruction.hpp" +#include "memory/allocation.hpp" +#include "utilities/bitMap.inline.hpp" + // A ValueSet is a simple abstraction on top of a BitMap representing // a set of Instructions. Currently it assumes that the number of // instructions is fixed during its lifetime; should make it @@ -93,3 +100,5 @@ inline bool ValueSet::equals(ValueSet* other) { return _map.is_same(other->_map); } + +#endif // SHARE_VM_C1_C1_VALUESET_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_ValueStack.cpp --- a/src/share/vm/c1/c1_ValueStack.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_ValueStack.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_ValueStack.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_ValueStack.hpp" // Implementation of ValueStack diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_ValueStack.hpp --- a/src/share/vm/c1/c1_ValueStack.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_ValueStack.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_C1_C1_VALUESTACK_HPP +#define SHARE_VM_C1_C1_VALUESTACK_HPP + +#include "c1/c1_Instruction.hpp" + class ValueStack: public CompilationResourceObj { public: enum Kind { @@ -322,3 +327,5 @@ } \ } \ } + +#endif // SHARE_VM_C1_C1_VALUESTACK_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_ValueType.cpp --- a/src/share/vm/c1/c1_ValueType.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_ValueType.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_ValueType.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_ValueType.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciNullObject.hpp" // predefined types diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_ValueType.hpp --- a/src/share/vm/c1/c1_ValueType.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_ValueType.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_C1_C1_VALUETYPE_HPP +#define SHARE_VM_C1_C1_VALUETYPE_HPP + +#include "c1/c1_Compilation.hpp" +#include "ci/ciConstant.hpp" + // type hierarchy class ValueType; class VoidType; @@ -419,3 +425,5 @@ BasicType as_BasicType(ValueType* type); inline ValueType* as_ValueType(ciType* type) { return as_ValueType(type->basic_type()); } + +#endif // SHARE_VM_C1_C1_VALUETYPE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_globals.cpp --- a/src/share/vm/c1/c1_globals.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_globals.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,7 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_globals.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_globals.hpp" C1_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, MATERIALIZE_NOTPRODUCT_FLAG) diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/c1/c1_globals.hpp --- a/src/share/vm/c1/c1_globals.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/c1/c1_globals.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,26 @@ * */ +#ifndef SHARE_VM_C1_C1_GLOBALS_HPP +#define SHARE_VM_C1_C1_GLOBALS_HPP + +#include "runtime/globals.hpp" +#ifdef TARGET_ARCH_x86 +# include "c1_globals_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_globals_sparc.hpp" +#endif +#ifdef TARGET_OS_FAMILY_linux +# include "c1_globals_linux.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "c1_globals_solaris.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "c1_globals_windows.hpp" +#endif + // // Defines all global flags used by the client compiler. // @@ -75,6 +95,9 @@ develop(bool, SelectivePhiFunctions, true, \ "create phi functions at loop headers only when necessary") \ \ + develop(bool, OptimizeIfOps, true, \ + "Optimize multiple IfOps") \ + \ develop(bool, DoCEE, true, \ "Do Conditional Expression Elimination to simplify CFG") \ \ @@ -300,6 +323,7 @@ // Read default values for c1 globals -// #include "incls/_c1_globals_pd.hpp.incl" C1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_NOTPRODUCT_FLAG) + +#endif // SHARE_VM_C1_C1_GLOBALS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/bcEscapeAnalyzer.cpp --- a/src/share/vm/ci/bcEscapeAnalyzer.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/bcEscapeAnalyzer.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,9 +22,15 @@ * */ +#include "precompiled.hpp" +#include "ci/bcEscapeAnalyzer.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciField.hpp" +#include "ci/ciMethodBlocks.hpp" +#include "ci/ciStreams.hpp" +#include "interpreter/bytecode.hpp" +#include "utilities/bitMap.inline.hpp" -#include "incls/_precompiled.incl" -#include "incls/_bcEscapeAnalyzer.cpp.incl" #ifndef PRODUCT diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/bcEscapeAnalyzer.hpp --- a/src/share/vm/ci/bcEscapeAnalyzer.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/bcEscapeAnalyzer.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_CI_BCESCAPEANALYZER_HPP +#define SHARE_VM_CI_BCESCAPEANALYZER_HPP + +#ifdef COMPILER2 +#include "ci/ciMethod.hpp" +#include "ci/ciMethodData.hpp" +#include "code/dependencies.hpp" +#include "libadt/vectset.hpp" +#include "memory/allocation.hpp" +#include "utilities/growableArray.hpp" +#endif + // This class implements a fast, conservative analysis of effect of methods // on the escape state of their arguments. The analysis is at the bytecode // level. @@ -147,3 +159,5 @@ void dump(); #endif }; + +#endif // SHARE_VM_CI_BCESCAPEANALYZER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciArray.cpp --- a/src/share/vm/ci/ciArray.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciArray.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciArray.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciUtilities.hpp" // ciArray // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciArray.hpp --- a/src/share/vm/ci/ciArray.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciArray.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CIARRAY_HPP +#define SHARE_VM_CI_CIARRAY_HPP + +#include "ci/ciObject.hpp" +#include "oops/arrayOop.hpp" +#include "oops/objArrayOop.hpp" +#include "oops/typeArrayOop.hpp" + // ciArray // // This class represents an arrayOop in the HotSpot virtual @@ -50,3 +58,5 @@ bool is_array() { return true; } bool is_java_object() { return true; } }; + +#endif // SHARE_VM_CI_CIARRAY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciArrayKlass.cpp --- a/src/share/vm/ci/ciArrayKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciArrayKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciArrayKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciUtilities.hpp" // ciArrayKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciArrayKlass.hpp --- a/src/share/vm/ci/ciArrayKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciArrayKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIARRAYKLASS_HPP +#define SHARE_VM_CI_CIARRAYKLASS_HPP + +#include "ci/ciKlass.hpp" + // ciArrayKlass // // This class, and its subclasses represent klassOops in the @@ -57,3 +62,5 @@ static ciArrayKlass* make(ciType* element_type); }; + +#endif // SHARE_VM_CI_CIARRAYKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciArrayKlassKlass.hpp --- a/src/share/vm/ci/ciArrayKlassKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciArrayKlassKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIARRAYKLASSKLASS_HPP +#define SHARE_VM_CI_CIARRAYKLASSKLASS_HPP + +#include "ci/ciKlassKlass.hpp" + // ciArrayKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -41,3 +46,5 @@ // What kind of ciObject is this? bool is_array_klass_klass() { return true; } }; + +#endif // SHARE_VM_CI_CIARRAYKLASSKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciCPCache.cpp --- a/src/share/vm/ci/ciCPCache.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciCPCache.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciCPCache.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCPCache.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/cpCacheOop.hpp" // ciCPCache diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciCPCache.hpp --- a/src/share/vm/ci/ciCPCache.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciCPCache.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CICPCACHE_HPP +#define SHARE_VM_CI_CICPCACHE_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciObject.hpp" +#include "oops/cpCacheOop.hpp" + // ciCPCache // // This class represents a constant pool cache. @@ -57,3 +64,5 @@ void print(); }; + +#endif // SHARE_VM_CI_CICPCACHE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciCallProfile.hpp --- a/src/share/vm/ci/ciCallProfile.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciCallProfile.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CICALLPROFILE_HPP +#define SHARE_VM_CI_CICALLPROFILE_HPP + +#include "ci/ciClassList.hpp" + // ciCallProfile // // This class is used to determine the frequently called method @@ -73,3 +78,5 @@ return _receiver[i]; } }; + +#endif // SHARE_VM_CI_CICALLPROFILE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciCallSite.cpp --- a/src/share/vm/ci/ciCallSite.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciCallSite.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciCallSite.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCallSite.hpp" +#include "ci/ciUtilities.hpp" // ciCallSite diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciCallSite.hpp --- a/src/share/vm/ci/ciCallSite.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciCallSite.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CICALLSITE_HPP +#define SHARE_VM_CI_CICALLSITE_HPP + +#include "ci/ciInstance.hpp" + // ciCallSite // // The class represents a java.dyn.CallSite object. @@ -37,3 +42,5 @@ void print(); }; + +#endif // SHARE_VM_CI_CICALLSITE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciClassList.hpp --- a/src/share/vm/ci/ciClassList.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciClassList.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_CI_CICLASSLIST_HPP +#define SHARE_VM_CI_CICLASSLIST_HPP + class ciEnv; class ciObjectFactory; class ciConstantPoolCache; @@ -118,3 +121,5 @@ friend class ciArrayKlassKlass; \ friend class ciObjArrayKlassKlass; \ friend class ciTypeArrayKlassKlass; + +#endif // SHARE_VM_CI_CICLASSLIST_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciConstant.cpp --- a/src/share/vm/ci/ciConstant.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciConstant.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciConstant.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" // ciConstant // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciConstant.hpp --- a/src/share/vm/ci/ciConstant.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciConstant.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CICONSTANT_HPP +#define SHARE_VM_CI_CICONSTANT_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciNullObject.hpp" + // ciConstant // // This class represents a constant value. @@ -110,3 +116,5 @@ // Debugging output void print(); }; + +#endif // SHARE_VM_CI_CICONSTANT_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciConstantPoolCache.cpp --- a/src/share/vm/ci/ciConstantPoolCache.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciConstantPoolCache.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciConstantPoolCache.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstantPoolCache.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" // ciConstantPoolCache // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciConstantPoolCache.hpp --- a/src/share/vm/ci/ciConstantPoolCache.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciConstantPoolCache.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP +#define SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP + +#include "memory/resourceArea.hpp" +#include "utilities/growableArray.hpp" + // ciConstantPoolCache // // The class caches indexed constant pool lookups. @@ -45,3 +51,5 @@ void print(); }; + +#endif // SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciEnv.cpp --- a/src/share/vm/ci/ciEnv.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciEnv.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,44 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciEnv.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciEnv.hpp" +#include "ci/ciField.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciNullObject.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciTypeArrayKlassKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/scopeDesc.hpp" +#include "compiler/compileBroker.hpp" +#include "compiler/compileLog.hpp" +#include "compiler/compilerOracle.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/oopFactory.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/init.hpp" +#include "runtime/reflection.hpp" +#include "runtime/sharedRuntime.hpp" +#include "utilities/dtrace.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // ciEnv // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciEnv.hpp --- a/src/share/vm/ci/ciEnv.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciEnv.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_CI_CIENV_HPP +#define SHARE_VM_CI_CIENV_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciObjectFactory.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/debugInfoRec.hpp" +#include "code/dependencies.hpp" +#include "code/exceptionHandlerTable.hpp" +#include "compiler/oopMap.hpp" +#include "runtime/thread.hpp" + class CompileTask; // ciEnv @@ -384,3 +396,5 @@ void record_method_not_compilable(const char* reason, bool all_tiers = true); void record_out_of_memory_failure(); }; + +#endif // SHARE_VM_CI_CIENV_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciExceptionHandler.cpp --- a/src/share/vm/ci/ciExceptionHandler.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciExceptionHandler.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciExceptionHandler.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciUtilities.hpp" // ciExceptionHandler // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciExceptionHandler.hpp --- a/src/share/vm/ci/ciExceptionHandler.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciExceptionHandler.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP +#define SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciInstanceKlass.hpp" + // ciExceptionHandler // // This class represents an exception handler for a method. @@ -73,3 +79,5 @@ void print(); }; + +#endif // SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciField.cpp --- a/src/share/vm/ci/ciField.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciField.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciField.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciField.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/universe.inline.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "runtime/fieldDescriptor.hpp" // ciField // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciField.hpp --- a/src/share/vm/ci/ciField.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciField.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CIFIELD_HPP +#define SHARE_VM_CI_CIFIELD_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciFlags.hpp" +#include "ci/ciInstance.hpp" + // ciField // // This class represents the result of a field lookup in the VM. @@ -174,3 +182,5 @@ void print(); void print_name_on(outputStream* st); }; + +#endif // SHARE_VM_CI_CIFIELD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciFlags.cpp --- a/src/share/vm/ci/ciFlags.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciFlags.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciFlags.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciFlags.hpp" // ciFlags // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciFlags.hpp --- a/src/share/vm/ci/ciFlags.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciFlags.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CIFLAGS_HPP +#define SHARE_VM_CI_CIFLAGS_HPP + +#include "ci/ciClassList.hpp" +#include "memory/allocation.hpp" +#include "prims/jvm.h" +#include "utilities/accessFlags.hpp" + // ciFlags // // This class represents klass or method flags. @@ -59,3 +67,5 @@ void print_member_flags(outputStream* st = tty); void print(outputStream* st = tty); }; + +#endif // SHARE_VM_CI_CIFLAGS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciInstance.cpp --- a/src/share/vm/ci/ciInstance.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciInstance.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciInstance.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciField.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "oops/oop.inline.hpp" // ciInstance // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciInstance.hpp --- a/src/share/vm/ci/ciInstance.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciInstance.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIINSTANCE_HPP +#define SHARE_VM_CI_CIINSTANCE_HPP + +#include "ci/ciObject.hpp" +#include "oops/instanceOop.hpp" + // ciInstance // // This class represents an instanceOop in the HotSpot virtual @@ -59,3 +65,5 @@ // Constant value of a field at the specified offset. ciConstant field_value_by_offset(int field_offset); }; + +#endif // SHARE_VM_CI_CIINSTANCE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciInstanceKlass.cpp --- a/src/share/vm/ci/ciInstanceKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciInstanceKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciInstanceKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciField.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/fieldDescriptor.hpp" // ciInstanceKlass // @@ -564,7 +572,7 @@ // This is OK, since any dependencies we decide to assert // will be checked later under the Compile_lock. ciInstanceKlass* ciInstanceKlass::implementor(int n) { - if (n > implementors_limit) { + if (n >= implementors_limit) { return NULL; } ciInstanceKlass* impl = _implementors[n]; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciInstanceKlass.hpp --- a/src/share/vm/ci/ciInstanceKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciInstanceKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_CI_CIINSTANCEKLASS_HPP +#define SHARE_VM_CI_CIINSTANCEKLASS_HPP + +#include "ci/ciConstantPoolCache.hpp" +#include "ci/ciFlags.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" + // ciInstanceKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -215,3 +224,5 @@ bool is_instance_klass() { return true; } bool is_java_klass() { return true; } }; + +#endif // SHARE_VM_CI_CIINSTANCEKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciInstanceKlassKlass.cpp --- a/src/share/vm/ci/ciInstanceKlassKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciInstanceKlassKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciInstanceKlassKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciUtilities.hpp" // ciInstanceKlassKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciInstanceKlassKlass.hpp --- a/src/share/vm/ci/ciInstanceKlassKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciInstanceKlassKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIINSTANCEKLASSKLASS_HPP +#define SHARE_VM_CI_CIINSTANCEKLASSKLASS_HPP + +#include "ci/ciKlassKlass.hpp" + // ciInstanceKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -48,3 +53,5 @@ // Return the distinguished ciInstanceKlassKlass instance. static ciInstanceKlassKlass* make(); }; + +#endif // SHARE_VM_CI_CIINSTANCEKLASSKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciKlass.cpp --- a/src/share/vm/ci/ciKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/oop.inline.hpp" // ciKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciKlass.hpp --- a/src/share/vm/ci/ciKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIKLASS_HPP +#define SHARE_VM_CI_CIKLASS_HPP + +#include "ci/ciType.hpp" +#include "oops/klassOop.hpp" + // ciKlass // // This class and its subclasses represent klassOops in the @@ -117,3 +123,5 @@ void print_name_on(outputStream* st); }; + +#endif // SHARE_VM_CI_CIKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciKlassKlass.cpp --- a/src/share/vm/ci/ciKlassKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciKlassKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciKlassKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciKlassKlass.hpp" +#include "ci/ciUtilities.hpp" // ciKlassKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciKlassKlass.hpp --- a/src/share/vm/ci/ciKlassKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciKlassKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIKLASSKLASS_HPP +#define SHARE_VM_CI_CIKLASSKLASS_HPP + +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" + // ciKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -49,3 +55,5 @@ // Return the distinguished ciKlassKlass instance. static ciKlassKlass* make(); }; + +#endif // SHARE_VM_CI_CIKLASSKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethod.cpp --- a/src/share/vm/ci/ciMethod.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethod.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,41 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethod.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCallProfile.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodBlocks.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciMethodKlass.hpp" +#include "ci/ciStreams.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "compiler/abstractCompiler.hpp" +#include "compiler/compilerOracle.hpp" +#include "compiler/methodLiveness.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/linkResolver.hpp" +#include "interpreter/oopMapCache.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/generateOopMap.hpp" +#include "oops/oop.inline.hpp" +#include "prims/nativeLookup.hpp" +#include "runtime/deoptimization.hpp" +#include "utilities/bitMap.inline.hpp" +#include "utilities/xmlstream.hpp" +#ifdef COMPILER2 +#include "ci/bcEscapeAnalyzer.hpp" +#include "ci/ciTypeFlow.hpp" +#include "oops/methodOop.hpp" +#endif +#ifdef SHARK +#include "ci/ciTypeFlow.hpp" +#include "oops/methodOop.hpp" +#endif // ciMethod // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethod.hpp --- a/src/share/vm/ci/ciMethod.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethod.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_CI_CIMETHOD_HPP +#define SHARE_VM_CI_CIMETHOD_HPP + +#include "ci/ciFlags.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciSignature.hpp" +#include "compiler/methodLiveness.hpp" +#include "prims/methodHandles.hpp" +#include "utilities/bitMap.hpp" + class ciMethodBlocks; class MethodLiveness; class BitMap; @@ -269,3 +280,5 @@ return MethodHandles::decode_method(get_oop(), receiver_limit_oop, flags); } }; + +#endif // SHARE_VM_CI_CIMETHOD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethodBlocks.cpp --- a/src/share/vm/ci/ciMethodBlocks.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethodBlocks.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethodBlocks.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciMethodBlocks.hpp" +#include "ci/ciStreams.hpp" +#include "interpreter/bytecode.hpp" +#include "utilities/copy.hpp" // ciMethodBlocks diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethodBlocks.hpp --- a/src/share/vm/ci/ciMethodBlocks.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethodBlocks.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CIMETHODBLOCKS_HPP +#define SHARE_VM_CI_CIMETHODBLOCKS_HPP + +#include "ci/ciMethod.hpp" +#include "memory/resourceArea.hpp" +#include "utilities/growableArray.hpp" + class ciBlock; @@ -121,3 +128,5 @@ void print_on(outputStream* st) const PRODUCT_RETURN; #endif }; + +#endif // SHARE_VM_CI_CIMETHODBLOCKS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethodData.cpp --- a/src/share/vm/ci/ciMethodData.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethodData.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethodData.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/deoptimization.hpp" +#include "utilities/copy.hpp" // ciMethodData diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethodData.hpp --- a/src/share/vm/ci/ciMethodData.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethodData.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CI_CIMETHODDATA_HPP +#define SHARE_VM_CI_CIMETHODDATA_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/oop.inline.hpp" + class ciBitData; class ciCounterData; class ciJumpData; @@ -311,3 +321,5 @@ void print_data_on(outputStream* st); #endif }; + +#endif // SHARE_VM_CI_CIMETHODDATA_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethodHandle.cpp --- a/src/share/vm/ci/ciMethodHandle.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethodHandle.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethodHandle.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciClassList.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciMethodHandle.hpp" +#include "ci/ciUtilities.hpp" +#include "prims/methodHandleWalk.hpp" +#include "prims/methodHandles.hpp" // ciMethodHandle diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethodHandle.hpp --- a/src/share/vm/ci/ciMethodHandle.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethodHandle.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIMETHODHANDLE_HPP +#define SHARE_VM_CI_CIMETHODHANDLE_HPP + +#include "prims/methodHandles.hpp" + // ciMethodHandle // // The class represents a java.dyn.MethodHandle object. @@ -54,3 +59,5 @@ return get_adapter(true); } }; + +#endif // SHARE_VM_CI_CIMETHODHANDLE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethodKlass.cpp --- a/src/share/vm/ci/ciMethodKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethodKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethodKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciMethodKlass.hpp" +#include "ci/ciUtilities.hpp" // ciMethodKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciMethodKlass.hpp --- a/src/share/vm/ci/ciMethodKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciMethodKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIMETHODKLASS_HPP +#define SHARE_VM_CI_CIMETHODKLASS_HPP + +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" + // ciMethodKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -46,3 +52,5 @@ // Return the distinguished ciMethodKlass instance. static ciMethodKlass* make(); }; + +#endif // SHARE_VM_CI_CIMETHODKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciNullObject.cpp --- a/src/share/vm/ci/ciNullObject.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciNullObject.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciNullObject.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciNullObject.hpp" // ciNullObject // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciNullObject.hpp --- a/src/share/vm/ci/ciNullObject.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciNullObject.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CINULLOBJECT_HPP +#define SHARE_VM_CI_CINULLOBJECT_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciUtilities.hpp" + // ciNullObject // // This class represents a null reference in the VM. @@ -47,3 +54,5 @@ // Get the distinguished instance of this klass. static ciNullObject* make(); }; + +#endif // SHARE_VM_CI_CINULLOBJECT_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObjArray.cpp --- a/src/share/vm/ci/ciObjArray.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObjArray.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObjArray.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciNullObject.hpp" +#include "ci/ciObjArray.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/objArrayOop.hpp" // ciObjArray // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObjArray.hpp --- a/src/share/vm/ci/ciObjArray.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObjArray.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CIOBJARRAY_HPP +#define SHARE_VM_CI_CIOBJARRAY_HPP + +#include "ci/ciArray.hpp" +#include "ci/ciClassList.hpp" +#include "oops/objArrayOop.hpp" + // ciObjArray // // This class represents a ObjArrayOop in the HotSpot virtual @@ -46,3 +53,5 @@ ciObject* obj_at(int index); }; + +#endif // SHARE_VM_CI_CIOBJARRAY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObjArrayKlass.cpp --- a/src/share/vm/ci/ciObjArrayKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObjArrayKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObjArrayKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/objArrayKlass.hpp" // ciObjArrayKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObjArrayKlass.hpp --- a/src/share/vm/ci/ciObjArrayKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObjArrayKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIOBJARRAYKLASS_HPP +#define SHARE_VM_CI_CIOBJARRAYKLASS_HPP + +#include "ci/ciArrayKlass.hpp" + // ciObjArrayKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -69,3 +74,5 @@ static ciObjArrayKlass* make(ciKlass* element_klass); }; + +#endif // SHARE_VM_CI_CIOBJARRAYKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObjArrayKlassKlass.cpp --- a/src/share/vm/ci/ciObjArrayKlassKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObjArrayKlassKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObjArrayKlassKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciUtilities.hpp" // ciObjArrayKlassKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObjArrayKlassKlass.hpp --- a/src/share/vm/ci/ciObjArrayKlassKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObjArrayKlassKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIOBJARRAYKLASSKLASS_HPP +#define SHARE_VM_CI_CIOBJARRAYKLASSKLASS_HPP + +#include "ci/ciArrayKlassKlass.hpp" + // ciObjArrayKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -48,3 +53,5 @@ // Return the distinguished ciObjArrayKlassKlass instance. static ciObjArrayKlassKlass* make(); }; + +#endif // SHARE_VM_CI_CIOBJARRAYKLASSKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObject.cpp --- a/src/share/vm/ci/ciObject.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObject.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObject.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciUtilities.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "oops/oop.inline2.hpp" // ciObject // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObject.hpp --- a/src/share/vm/ci/ciObject.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObject.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CIOBJECT_HPP +#define SHARE_VM_CI_CIOBJECT_HPP + +#include "ci/ciClassList.hpp" +#include "memory/allocation.hpp" +#include "runtime/handles.hpp" +#include "runtime/jniHandles.hpp" + // ciObject // // This class represents an oop in the HotSpot virtual machine. @@ -291,3 +299,5 @@ // Print debugging output about the oop this ciObject represents. void print_oop(outputStream* st = tty); }; + +#endif // SHARE_VM_CI_CIOBJECT_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObjectFactory.cpp --- a/src/share/vm/ci/ciObjectFactory.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObjectFactory.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,33 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObjectFactory.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCPCache.hpp" +#include "ci/ciCallSite.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciMethodHandle.hpp" +#include "ci/ciMethodKlass.hpp" +#include "ci/ciNullObject.hpp" +#include "ci/ciObjArray.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciObjectFactory.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciSymbolKlass.hpp" +#include "ci/ciTypeArray.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciTypeArrayKlassKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "runtime/fieldType.hpp" // ciObjectFactory // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciObjectFactory.hpp --- a/src/share/vm/ci/ciObjectFactory.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciObjectFactory.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CIOBJECTFACTORY_HPP +#define SHARE_VM_CI_CIOBJECTFACTORY_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciObject.hpp" +#include "utilities/growableArray.hpp" + // ciObjectFactory // // This class handles requests for the creation of new instances @@ -123,3 +130,5 @@ void print_contents(); void print(); }; + +#endif // SHARE_VM_CI_CIOBJECTFACTORY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciSignature.cpp --- a/src/share/vm/ci/ciSignature.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciSignature.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciSignature.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciSignature.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/signature.hpp" // ciSignature // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciSignature.hpp --- a/src/share/vm/ci/ciSignature.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciSignature.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CISIGNATURE_HPP +#define SHARE_VM_CI_CISIGNATURE_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciSymbol.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/growableArray.hpp" + // ciSignature // // This class represents the signature of a method. @@ -54,3 +62,5 @@ void print_signature(); void print(); }; + +#endif // SHARE_VM_CI_CISIGNATURE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciStreams.cpp --- a/src/share/vm/ci/ciStreams.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciStreams.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciStreams.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCPCache.hpp" +#include "ci/ciCallSite.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciField.hpp" +#include "ci/ciStreams.hpp" +#include "ci/ciUtilities.hpp" // ciExceptionHandlerStream // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciStreams.hpp --- a/src/share/vm/ci/ciStreams.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciStreams.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_CI_CISTREAMS_HPP +#define SHARE_VM_CI_CISTREAMS_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciMethod.hpp" +#include "interpreter/bytecode.hpp" + // ciBytecodeStream // // The class is used to iterate over the bytecodes of a method. @@ -397,3 +406,5 @@ return _method->_exception_handlers[_pos]; } }; + +#endif // SHARE_VM_CI_CISTREAMS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciSymbol.cpp --- a/src/share/vm/ci/ciSymbol.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciSymbol.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciSymbol.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/oopFactory.hpp" // ------------------------------------------------------------------ // ciSymbol::ciSymbol diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciSymbol.hpp --- a/src/share/vm/ci/ciSymbol.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciSymbol.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CISYMBOL_HPP +#define SHARE_VM_CI_CISYMBOL_HPP + +#include "ci/ciObject.hpp" +#include "ci/ciObjectFactory.hpp" +#include "classfile/vmSymbols.hpp" +#include "oops/symbolOop.hpp" + // ciSymbol // // This class represents a symbolOop in the HotSpot virtual @@ -89,3 +97,5 @@ VM_SYMBOLS_DO(CI_SYMBOL_DECLARE, CI_SYMBOL_DECLARE) #undef CI_SYMBOL_DECLARE }; + +#endif // SHARE_VM_CI_CISYMBOL_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciSymbolKlass.cpp --- a/src/share/vm/ci/ciSymbolKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciSymbolKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciSymbolKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciSymbolKlass.hpp" +#include "ci/ciUtilities.hpp" // ciSymbolKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciSymbolKlass.hpp --- a/src/share/vm/ci/ciSymbolKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciSymbolKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CISYMBOLKLASS_HPP +#define SHARE_VM_CI_CISYMBOLKLASS_HPP + +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" + // ciSymbolKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -50,3 +56,5 @@ // Return the distinguished ciSymbolKlass instance. static ciSymbolKlass* make(); }; + +#endif // SHARE_VM_CI_CISYMBOLKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciType.cpp --- a/src/share/vm/ci/ciType.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciType.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciType.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciType.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "oops/oop.inline.hpp" ciType* ciType::_basic_types[T_CONFLICT+1]; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciType.hpp --- a/src/share/vm/ci/ciType.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciType.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CITYPE_HPP +#define SHARE_VM_CI_CITYPE_HPP + +#include "ci/ciObject.hpp" +#include "oops/klassOop.hpp" + // ciType // // This class represents either a class (T_OBJECT), array (T_ARRAY), @@ -106,3 +112,5 @@ static ciReturnAddress* make(int bci); }; + +#endif // SHARE_VM_CI_CITYPE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciTypeArray.cpp --- a/src/share/vm/ci/ciTypeArray.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciTypeArray.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciTypeArray.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciTypeArray.hpp" +#include "ci/ciUtilities.hpp" // ciTypeArray // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciTypeArray.hpp --- a/src/share/vm/ci/ciTypeArray.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciTypeArray.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CITYPEARRAY_HPP +#define SHARE_VM_CI_CITYPEARRAY_HPP + +#include "ci/ciArray.hpp" +#include "ci/ciClassList.hpp" +#include "oops/typeArrayOop.hpp" + // ciTypeArray // // This class represents a typeArrayOop in the HotSpot virtual @@ -50,3 +57,5 @@ jchar char_at(int index); }; + +#endif // SHARE_VM_CI_CITYPEARRAY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciTypeArrayKlass.cpp --- a/src/share/vm/ci/ciTypeArrayKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciTypeArrayKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciTypeArrayKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciUtilities.hpp" // ciTypeArrayKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciTypeArrayKlass.hpp --- a/src/share/vm/ci/ciTypeArrayKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciTypeArrayKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CITYPEARRAYKLASS_HPP +#define SHARE_VM_CI_CITYPEARRAYKLASS_HPP + +#include "ci/ciArrayKlass.hpp" + // ciTypeArrayKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -53,3 +58,5 @@ // Make an array klass corresponding to the specified primitive type. static ciTypeArrayKlass* make(BasicType type); }; + +#endif // SHARE_VM_CI_CITYPEARRAYKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciTypeArrayKlassKlass.cpp --- a/src/share/vm/ci/ciTypeArrayKlassKlass.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciTypeArrayKlassKlass.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciTypeArrayKlassKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciTypeArrayKlassKlass.hpp" +#include "ci/ciUtilities.hpp" // ciTypeArrayKlassKlass // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciTypeArrayKlassKlass.hpp --- a/src/share/vm/ci/ciTypeArrayKlassKlass.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciTypeArrayKlassKlass.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CITYPEARRAYKLASSKLASS_HPP +#define SHARE_VM_CI_CITYPEARRAYKLASSKLASS_HPP + +#include "ci/ciArrayKlassKlass.hpp" + // ciTypeArrayKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -49,3 +54,5 @@ // Return the distinguished ciTypeArrayKlassKlass instance. static ciTypeArrayKlassKlass* make(); }; + +#endif // SHARE_VM_CI_CITYPEARRAYKLASSKLASS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciTypeFlow.cpp --- a/src/share/vm/ci/ciTypeFlow.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciTypeFlow.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,21 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciTypeFlow.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciField.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciStreams.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciTypeFlow.hpp" +#include "compiler/compileLog.hpp" +#include "interpreter/bytecode.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.inline.hpp" +#include "runtime/deoptimization.hpp" +#include "utilities/growableArray.hpp" // ciTypeFlow::JsrSet // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciTypeFlow.hpp --- a/src/share/vm/ci/ciTypeFlow.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciTypeFlow.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_CI_CITYPEFLOW_HPP +#define SHARE_VM_CI_CITYPEFLOW_HPP + +#ifdef COMPILER2 +#include "ci/ciEnv.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciMethodBlocks.hpp" +#endif +#ifdef SHARK +#include "ci/ciEnv.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciMethodBlocks.hpp" +#endif + class ciTypeFlow : public ResourceObj { private: @@ -924,3 +938,5 @@ void rpo_print_on(outputStream* st) const PRODUCT_RETURN; }; + +#endif // SHARE_VM_CI_CITYPEFLOW_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciUtilities.cpp --- a/src/share/vm/ci/ciUtilities.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciUtilities.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciUtilities.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciUtilities.hpp" // ciUtilities // diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/ciUtilities.hpp --- a/src/share/vm/ci/ciUtilities.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/ciUtilities.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIUTILITIES_HPP +#define SHARE_VM_CI_CIUTILITIES_HPP + +#include "ci/ciEnv.hpp" +#include "runtime/interfaceSupport.hpp" + // The following routines and definitions are used internally in the // compiler interface. @@ -104,3 +110,5 @@ const char* basictype_to_str(BasicType t); const char basictype_to_char(BasicType t); + +#endif // SHARE_VM_CI_CIUTILITIES_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/ci/compilerInterface.hpp --- a/src/share/vm/ci/compilerInterface.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/ci/compilerInterface.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,39 @@ * */ +#ifndef SHARE_VM_CI_COMPILERINTERFACE_HPP +#define SHARE_VM_CI_COMPILERINTERFACE_HPP + +#include "ci/ciArray.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciArrayKlassKlass.hpp" +#include "ci/ciCallProfile.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciEnv.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciField.hpp" +#include "ci/ciFlags.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciKlassKlass.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodKlass.hpp" +#include "ci/ciNullObject.hpp" +#include "ci/ciObjArray.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciSignature.hpp" +#include "ci/ciStreams.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciSymbolKlass.hpp" +#include "ci/ciTypeArray.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciTypeArrayKlassKlass.hpp" + // This is a dummy file used for including the complete // compiler interface. + +#endif // SHARE_VM_CI_COMPILERINTERFACE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/classFileError.cpp --- a/src/share/vm/classfile/classFileError.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/classFileError.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_classFileError.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileParser.hpp" +#include "classfile/stackMapTable.hpp" +#include "classfile/verifier.hpp" // Keep these in a separate file to prevent inlining diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/classFileParser.cpp --- a/src/share/vm/classfile/classFileParser.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/classFileParser.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,34 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_classFileParser.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileParser.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/verificationType.hpp" +#include "classfile/verifier.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.hpp" +#include "memory/gcLocker.hpp" +#include "memory/oopFactory.hpp" +#include "memory/universe.inline.hpp" +#include "oops/constantPoolOop.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klass.inline.hpp" +#include "oops/klassOop.hpp" +#include "oops/klassVtable.hpp" +#include "oops/methodOop.hpp" +#include "oops/symbolOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/perfData.hpp" +#include "runtime/reflection.hpp" +#include "runtime/signature.hpp" +#include "runtime/timer.hpp" +#include "services/classLoadingService.hpp" +#include "services/threadService.hpp" // We generally try to create the oops directly when parsing, rather than // allocating temporary data structures and copying the bytes twice. A @@ -73,6 +99,12 @@ unsigned int hashValues[SymbolTable::symbol_alloc_batch_size]; int names_count = 0; + // Side buffer for operands of variable-sized (InvokeDynamic) entries. + GrowableArray* operands = NULL; +#ifdef ASSERT + GrowableArray* indy_instructions = new GrowableArray(THREAD, 10); +#endif + // parsing Index 0 is unused for (int index = 1; index < length; index++) { // Each of the following case guarantees one more byte in the stream @@ -141,6 +173,7 @@ ShouldNotReachHere(); } break; + case JVM_CONSTANT_InvokeDynamicTrans : // this tag appears only in old classfiles case JVM_CONSTANT_InvokeDynamic : { if (!EnableInvokeDynamic || @@ -151,10 +184,36 @@ "Class file version does not support constant tag %u in class file %s"), tag, CHECK); } - cfs->guarantee_more(5, CHECK); // bsm_index, name_and_type_index, tag/access_flags + if (!AllowTransitionalJSR292 && tag == JVM_CONSTANT_InvokeDynamicTrans) { + classfile_parse_error( + "This JVM does not support transitional InvokeDynamic tag %u in class file %s", + tag, CHECK); + } + bool trans_no_argc = AllowTransitionalJSR292 && (tag == JVM_CONSTANT_InvokeDynamicTrans); + cfs->guarantee_more(7, CHECK); // bsm_index, nt, argc, ..., tag/access_flags u2 bootstrap_method_index = cfs->get_u2_fast(); u2 name_and_type_index = cfs->get_u2_fast(); - cp->invoke_dynamic_at_put(index, bootstrap_method_index, name_and_type_index); + int argument_count = trans_no_argc ? 0 : cfs->get_u2_fast(); + cfs->guarantee_more(2*argument_count + 1, CHECK); // argv[argc]..., tag/access_flags + int argv_offset = constantPoolOopDesc::_indy_argv_offset; + int op_count = argv_offset + argument_count; // bsm, nt, argc, argv[]... + int op_base = start_operand_group(operands, op_count, CHECK); + assert(argv_offset == 3, "else adjust next 3 assignments"); + operands->at_put(op_base + constantPoolOopDesc::_indy_bsm_offset, bootstrap_method_index); + operands->at_put(op_base + constantPoolOopDesc::_indy_nt_offset, name_and_type_index); + operands->at_put(op_base + constantPoolOopDesc::_indy_argc_offset, argument_count); + for (int arg_i = 0; arg_i < argument_count; arg_i++) { + int arg = cfs->get_u2_fast(); + operands->at_put(op_base + constantPoolOopDesc::_indy_argv_offset + arg_i, arg); + } + cp->invoke_dynamic_at_put(index, op_base, op_count); +#ifdef ASSERT + // Record the steps just taken for later checking. + indy_instructions->append(index); + indy_instructions->append(bootstrap_method_index); + indy_instructions->append(name_and_type_index); + indy_instructions->append(argument_count); +#endif //ASSERT } break; case JVM_CONSTANT_Integer : @@ -257,6 +316,23 @@ oopFactory::new_symbols(cp, names_count, names, lengths, indices, hashValues, CHECK); } + if (operands != NULL && operands->length() > 0) { + store_operand_array(operands, cp, CHECK); + } +#ifdef ASSERT + // Re-assert the indy structures, now that assertion checking can work. + for (int indy_i = 0; indy_i < indy_instructions->length(); ) { + int index = indy_instructions->at(indy_i++); + int bootstrap_method_index = indy_instructions->at(indy_i++); + int name_and_type_index = indy_instructions->at(indy_i++); + int argument_count = indy_instructions->at(indy_i++); + assert(cp->check_invoke_dynamic_at(index, + bootstrap_method_index, name_and_type_index, + argument_count), + "indy structure is OK"); + } +#endif //ASSERT + // Copy _current pointer of local copy back to stream(). #ifdef ASSERT assert(cfs0->current() == old_current, "non-exclusive use of stream()"); @@ -264,6 +340,41 @@ cfs0->set_current(cfs1.current()); } +int ClassFileParser::start_operand_group(GrowableArray* &operands, int op_count, TRAPS) { + if (operands == NULL) { + operands = new GrowableArray(THREAD, 100); + int fillp_offset = constantPoolOopDesc::_multi_operand_buffer_fill_pointer_offset; + while (operands->length() <= fillp_offset) + operands->append(0); // force op_base > 0, for an error check + DEBUG_ONLY(operands->at_put(fillp_offset, (int)badHeapWordVal)); + } + int cnt_pos = operands->append(op_count); + int arg_pos = operands->length(); + operands->at_grow(arg_pos + op_count - 1); // grow to include the operands + assert(operands->length() == arg_pos + op_count, ""); + int op_base = cnt_pos - constantPoolOopDesc::_multi_operand_count_offset; + return op_base; +} + +void ClassFileParser::store_operand_array(GrowableArray* operands, constantPoolHandle cp, TRAPS) { + // Collect the buffer of operands from variable-sized entries into a permanent array. + int arraylen = operands->length(); + int fillp_offset = constantPoolOopDesc::_multi_operand_buffer_fill_pointer_offset; + assert(operands->at(fillp_offset) == (int)badHeapWordVal, "value unused so far"); + operands->at_put(fillp_offset, arraylen); + cp->multi_operand_buffer_grow(arraylen, CHECK); + typeArrayOop operands_oop = cp->operands(); + assert(operands_oop->length() == arraylen, ""); + for (int i = 0; i < arraylen; i++) { + operands_oop->int_at_put(i, operands->at(i)); + } + cp->set_operands(operands_oop); + // The fill_pointer is used only by constantPoolOop::copy_entry_to and friends, + // when constant pools need to be merged. Make sure it is sane now. + assert(cp->multi_operand_buffer_fill_pointer() == arraylen, ""); +} + + bool inline valid_cp_range(int index, int length) { return (index > 0 && index < length); } constantPoolHandle ClassFileParser::parse_constant_pool(TRAPS) { @@ -431,6 +542,8 @@ ref_index, CHECK_(nullHandle)); } break; + case JVM_CONSTANT_InvokeDynamicTrans : + ShouldNotReachHere(); // this tag does not appear in the heap case JVM_CONSTANT_InvokeDynamic : { int bootstrap_method_ref_index = cp->invoke_dynamic_bootstrap_method_ref_index_at(index); @@ -438,7 +551,7 @@ check_property((bootstrap_method_ref_index == 0 && AllowTransitionalJSR292) || (valid_cp_range(bootstrap_method_ref_index, length) && - cp->tag_at(bootstrap_method_ref_index).is_method_handle()), + (cp->tag_at(bootstrap_method_ref_index).is_method_handle())), "Invalid constant pool index %u in class file %s", bootstrap_method_ref_index, CHECK_(nullHandle)); @@ -447,6 +560,18 @@ "Invalid constant pool index %u in class file %s", name_and_type_ref_index, CHECK_(nullHandle)); + int argc = cp->invoke_dynamic_argument_count_at(index); + for (int arg_i = 0; arg_i < argc; arg_i++) { + int arg = cp->invoke_dynamic_argument_index_at(index, arg_i); + check_property(valid_cp_range(arg, length) && + cp->tag_at(arg).is_loadable_constant() || + // temporary early forms of string and class: + cp->tag_at(arg).is_klass_index() || + cp->tag_at(arg).is_string_index(), + "Invalid constant pool index %u in class file %s", + arg, + CHECK_(nullHandle)); + } break; } default: @@ -2516,18 +2641,6 @@ // field. If it is not present, artifically create a field for it. // This allows this VM to run on early JDK where the field is not // present. - - // - // Increment fac.nonstatic_oop_count so that the start of the - // next type of non-static oops leaves room for the fake oop. - // Do not increment next_nonstatic_oop_offset so that the - // fake oop is place after the java.lang.ref.Reference oop - // fields. - // - // Check the fields in java.lang.ref.Reference for the "discovered" - // field. If it is not present, artifically create a field for it. - // This allows this VM to run on early JDK where the field is not - // present. int reference_sig_index = 0; int reference_name_index = 0; int reference_index = 0; @@ -2663,7 +2776,7 @@ // Force MethodHandle.vmentry to be an unmanaged pointer. // There is no way for a classfile to express this, so we must help it. void ClassFileParser::java_dyn_MethodHandle_fix_pre(constantPoolHandle cp, - typeArrayHandle* fields_ptr, + typeArrayHandle fields, FieldAllocationCount *fac_ptr, TRAPS) { // Add fake fields for java.dyn.MethodHandle instances @@ -2687,41 +2800,45 @@ THROW_MSG(vmSymbols::java_lang_VirtualMachineError(), "missing I or J signature (for vmentry) in java.dyn.MethodHandle"); + // Find vmentry field and change the signature. bool found_vmentry = false; - - const int n = (*fields_ptr)()->length(); - for (int i = 0; i < n; i += instanceKlass::next_offset) { - int name_index = (*fields_ptr)->ushort_at(i + instanceKlass::name_index_offset); - int sig_index = (*fields_ptr)->ushort_at(i + instanceKlass::signature_index_offset); - int acc_flags = (*fields_ptr)->ushort_at(i + instanceKlass::access_flags_offset); + for (int i = 0; i < fields->length(); i += instanceKlass::next_offset) { + int name_index = fields->ushort_at(i + instanceKlass::name_index_offset); + int sig_index = fields->ushort_at(i + instanceKlass::signature_index_offset); + int acc_flags = fields->ushort_at(i + instanceKlass::access_flags_offset); symbolOop f_name = cp->symbol_at(name_index); symbolOop f_sig = cp->symbol_at(sig_index); - if (f_sig == vmSymbols::byte_signature() && - f_name == vmSymbols::vmentry_name() && - (acc_flags & JVM_ACC_STATIC) == 0) { - // Adjust the field type from byte to an unmanaged pointer. - assert(fac_ptr->nonstatic_byte_count > 0, ""); - fac_ptr->nonstatic_byte_count -= 1; - - (*fields_ptr)->ushort_at_put(i + instanceKlass::signature_index_offset, word_sig_index); - assert(wordSize == longSize || wordSize == jintSize, "ILP32 or LP64"); - if (wordSize == longSize) fac_ptr->nonstatic_double_count += 1; - else fac_ptr->nonstatic_word_count += 1; - - FieldAllocationType atype = (FieldAllocationType) (*fields_ptr)->ushort_at(i + instanceKlass::low_offset); - assert(atype == NONSTATIC_BYTE, ""); - FieldAllocationType new_atype = (wordSize == longSize) ? NONSTATIC_DOUBLE : NONSTATIC_WORD; - (*fields_ptr)->ushort_at_put(i + instanceKlass::low_offset, new_atype); - - found_vmentry = true; - break; + + if (f_name == vmSymbols::vmentry_name() && (acc_flags & JVM_ACC_STATIC) == 0) { + if (f_sig == vmSymbols::machine_word_signature()) { + // If the signature of vmentry is already changed, we're done. + found_vmentry = true; + break; + } + else if (f_sig == vmSymbols::byte_signature()) { + // Adjust the field type from byte to an unmanaged pointer. + assert(fac_ptr->nonstatic_byte_count > 0, ""); + fac_ptr->nonstatic_byte_count -= 1; + + fields->ushort_at_put(i + instanceKlass::signature_index_offset, word_sig_index); + assert(wordSize == longSize || wordSize == jintSize, "ILP32 or LP64"); + if (wordSize == longSize) fac_ptr->nonstatic_double_count += 1; + else fac_ptr->nonstatic_word_count += 1; + + FieldAllocationType atype = (FieldAllocationType) fields->ushort_at(i + instanceKlass::low_offset); + assert(atype == NONSTATIC_BYTE, ""); + FieldAllocationType new_atype = (wordSize == longSize) ? NONSTATIC_DOUBLE : NONSTATIC_WORD; + fields->ushort_at_put(i + instanceKlass::low_offset, new_atype); + + found_vmentry = true; + break; + } } } if (!found_vmentry) THROW_MSG(vmSymbols::java_lang_VirtualMachineError(), "missing vmentry byte field in java.dyn.MethodHandle"); - } @@ -3082,7 +3199,7 @@ // adjust the vmentry field declaration in java.dyn.MethodHandle if (EnableMethodHandles && class_name() == vmSymbols::sun_dyn_MethodHandleImpl() && class_loader.is_null()) { - java_dyn_MethodHandle_fix_pre(cp, &fields, &fac, CHECK_(nullHandle)); + java_dyn_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); } // Add a fake "discovered" field if it is not present @@ -4309,20 +4426,21 @@ } -// Unqualified names may not contain the characters '.', ';', or '/'. -// Method names also may not contain the characters '<' or '>', unless or . -// Note that method names may not be or in this method. -// Because these names have been checked as special cases before calling this method -// in verify_legal_method_name. -bool ClassFileParser::verify_unqualified_name(char* name, unsigned int length, int type) { +// Unqualified names may not contain the characters '.', ';', '[', or '/'. +// Method names also may not contain the characters '<' or '>', unless +// or . Note that method names may not be or in this +// method. Because these names have been checked as special cases before +// calling this method in verify_legal_method_name. +bool ClassFileParser::verify_unqualified_name( + char* name, unsigned int length, int type) { jchar ch; for (char* p = name; p != name + length; ) { ch = *p; if (ch < 128) { p++; - if (ch == '.' || ch == ';') { - return false; // do not permit '.' or ';' + if (ch == '.' || ch == ';' || ch == '[' ) { + return false; // do not permit '.', ';', or '[' } if (type != LegalClass && ch == '/') { return false; // do not permit '/' unless it's class name diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/classFileParser.hpp --- a/src/share/vm/classfile/classFileParser.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/classFileParser.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP +#define SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP + +#include "classfile/classFileStream.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "oops/typeArrayOop.hpp" +#include "runtime/handles.inline.hpp" +#include "utilities/accessFlags.hpp" + // Parser for for .class files // // The bytes describing the class file structure is read from a Stream object @@ -56,6 +66,9 @@ constantPoolHandle parse_constant_pool(TRAPS); + static int start_operand_group(GrowableArray* &operands, int op_count, TRAPS); + static void store_operand_array(GrowableArray* operands, constantPoolHandle cp, TRAPS); + // Interface parsing objArrayHandle parse_interfaces(constantPoolHandle cp, int length, @@ -151,7 +164,7 @@ // Adjust the field allocation counts for java.dyn.MethodHandle to add // a fake address (void*) field. void java_dyn_MethodHandle_fix_pre(constantPoolHandle cp, - typeArrayHandle* fields_ptr, + typeArrayHandle fields, FieldAllocationCount *fac_ptr, TRAPS); // Format checker methods @@ -283,3 +296,5 @@ static void check_final_method_override(instanceKlassHandle this_klass, TRAPS); static void check_illegal_static_method(instanceKlassHandle this_klass, TRAPS); }; + +#endif // SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/classFileStream.cpp --- a/src/share/vm/classfile/classFileStream.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/classFileStream.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_classFileStream.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileStream.hpp" +#include "classfile/vmSymbols.hpp" void ClassFileStream::truncated_file_error(TRAPS) { THROW_MSG(vmSymbols::java_lang_ClassFormatError(), "Truncated class file"); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/classFileStream.hpp --- a/src/share/vm/classfile/classFileStream.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/classFileStream.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP +#define SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP + +#include "utilities/top.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif + // Input stream for reading .class file // // The entire input stream is present in a buffer allocated by the caller. @@ -116,3 +130,5 @@ // Tells whether eos is reached bool at_eos() const { return _current == _buffer_end; } }; + +#endif // SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/classLoader.cpp --- a/src/share/vm/classfile/classLoader.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/classLoader.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,56 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_classLoader.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileParser.hpp" +#include "classfile/classFileStream.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "compiler/compileBroker.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/bytecodeStream.hpp" +#include "interpreter/oopMapCache.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/generation.hpp" +#include "memory/oopFactory.hpp" +#include "memory/universe.inline.hpp" +#include "oops/constantPoolKlass.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/compilationPolicy.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/handles.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/timer.hpp" +#include "services/management.hpp" +#include "services/threadService.hpp" +#include "utilities/events.hpp" +#include "utilities/hashtable.hpp" +#include "utilities/hashtable.inline.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "hpi_linux.hpp" +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "hpi_solaris.hpp" +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "hpi_windows.hpp" +# include "os_windows.inline.hpp" +#endif // Entry points in zip.dll for loading zip/jar file entries diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/classLoader.hpp --- a/src/share/vm/classfile/classLoader.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/classLoader.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CLASSFILE_CLASSLOADER_HPP +#define SHARE_VM_CLASSFILE_CLASSLOADER_HPP + +#include "classfile/classFileParser.hpp" +#include "runtime/perfData.hpp" + // The VM class loader. #include @@ -456,3 +462,5 @@ } }; + +#endif // SHARE_VM_CLASSFILE_CLASSLOADER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/dictionary.cpp --- a/src/share/vm/classfile/dictionary.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/dictionary.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dictionary.cpp.incl" +#include "precompiled.hpp" +#include "classfile/dictionary.hpp" +#include "classfile/systemDictionary.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "services/classLoadingService.hpp" +#include "utilities/hashtable.inline.hpp" DictionaryEntry* Dictionary::_current_class_entry = NULL; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/dictionary.hpp --- a/src/share/vm/classfile/dictionary.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/dictionary.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CLASSFILE_DICTIONARY_HPP +#define SHARE_VM_CLASSFILE_DICTIONARY_HPP + +#include "classfile/systemDictionary.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/oop.hpp" +#include "utilities/hashtable.hpp" + class DictionaryEntry; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -336,3 +344,5 @@ void verify(); }; + +#endif // SHARE_VM_CLASSFILE_DICTIONARY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/javaAssertions.cpp --- a/src/share/vm/classfile/javaAssertions.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/javaAssertions.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,15 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_javaAssertions.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaAssertions.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/oopFactory.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" bool JavaAssertions::_userDefault = false; bool JavaAssertions::_sysDefault = false; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/javaAssertions.hpp --- a/src/share/vm/classfile/javaAssertions.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/javaAssertions.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP +#define SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP + +#include "oops/objArrayOop.hpp" +#include "oops/typeArrayOop.hpp" +#include "utilities/exceptions.hpp" +#include "utilities/ostream.hpp" + class JavaAssertions: AllStatic { public: static inline bool userClassDefault(); @@ -95,3 +103,5 @@ tty->print_cr("JavaAssertions::setSystemClassDefault(%d)", enabled); _sysDefault = enabled; } + +#endif // SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/javaClasses.cpp --- a/src/share/vm/classfile/javaClasses.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/javaClasses.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,39 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_javaClasses.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/debugInfo.hpp" +#include "code/pcDesc.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/oopFactory.hpp" +#include "memory/resourceArea.hpp" +#include "memory/universe.inline.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klass.hpp" +#include "oops/klassOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/symbolOop.hpp" +#include "oops/typeArrayOop.hpp" +#include "runtime/fieldDescriptor.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vframe.hpp" +#include "utilities/preserveException.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif static bool find_field(instanceKlass* ik, symbolOop name_symbol, symbolOop signature_symbol, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/javaClasses.hpp --- a/src/share/vm/classfile/javaClasses.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/javaClasses.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_CLASSFILE_JAVACLASSES_HPP +#define SHARE_VM_CLASSFILE_JAVACLASSES_HPP + +#include "classfile/systemDictionary.hpp" +#include "jvmtifiles/jvmti.h" +#include "oops/oop.hpp" +#include "runtime/os.hpp" +#include "utilities/utf8.hpp" + // Interface for manipulating the basic Java classes. // // All dependencies on layout of actual Java classes should be kept here. @@ -1271,3 +1280,5 @@ static void compute_offsets(); static void check_offsets() PRODUCT_RETURN; }; + +#endif // SHARE_VM_CLASSFILE_JAVACLASSES_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/loaderConstraints.cpp --- a/src/share/vm/classfile/loaderConstraints.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/loaderConstraints.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_loaderConstraints.cpp.incl" +#include "precompiled.hpp" +#include "classfile/loaderConstraints.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/safepoint.hpp" +#include "utilities/hashtable.inline.hpp" LoaderConstraintTable::LoaderConstraintTable(int nof_buckets) : Hashtable(nof_buckets, sizeof(LoaderConstraintEntry)) {}; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/loaderConstraints.hpp --- a/src/share/vm/classfile/loaderConstraints.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/loaderConstraints.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP +#define SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP + +#include "classfile/dictionary.hpp" +#include "classfile/placeholders.hpp" +#include "utilities/hashtable.hpp" + class LoaderConstraintEntry; class LoaderConstraintTable : public Hashtable { @@ -130,3 +137,5 @@ void set_loader(int i, oop p) { _loaders[i] = p; } }; + +#endif // SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/placeholders.cpp --- a/src/share/vm/classfile/placeholders.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/placeholders.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_placeholders.cpp.incl" +#include "precompiled.hpp" +#include "classfile/placeholders.hpp" +#include "classfile/systemDictionary.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/fieldType.hpp" +#include "utilities/hashtable.inline.hpp" // Placeholder methods diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/placeholders.hpp --- a/src/share/vm/classfile/placeholders.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/placeholders.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP +#define SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP + +#include "utilities/hashtable.hpp" + class PlaceholderEntry; // Placeholder objects. These represent classes currently @@ -329,3 +334,5 @@ void print() const PRODUCT_RETURN; void verify() const; }; + +#endif // SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/resolutionErrors.cpp --- a/src/share/vm/classfile/resolutionErrors.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/resolutionErrors.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_resolutionErrors.cpp.incl" +#include "precompiled.hpp" +#include "classfile/resolutionErrors.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/safepoint.hpp" +#include "utilities/hashtable.inline.hpp" // add new entry to the table void ResolutionErrorTable::add_entry(int index, unsigned int hash, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/resolutionErrors.hpp --- a/src/share/vm/classfile/resolutionErrors.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/resolutionErrors.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP +#define SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP + +#include "oops/constantPoolOop.hpp" +#include "utilities/hashtable.hpp" + class ResolutionErrorEntry; // ResolutionError objects are used to record errors encountered during @@ -97,3 +103,5 @@ // GC support void oops_do(OopClosure* blk); }; + +#endif // SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/stackMapFrame.cpp --- a/src/share/vm/classfile/stackMapFrame.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/stackMapFrame.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_stackMapFrame.cpp.incl" +#include "precompiled.hpp" +#include "classfile/stackMapFrame.hpp" +#include "classfile/verifier.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/handles.inline.hpp" +#include "utilities/globalDefinitions.hpp" StackMapFrame::StackMapFrame(u2 max_locals, u2 max_stack, ClassVerifier* v) : _offset(0), _locals_size(0), _stack_size(0), _flags(0), diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/stackMapFrame.hpp --- a/src/share/vm/classfile/stackMapFrame.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/stackMapFrame.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP +#define SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP + +#include "classfile/verificationType.hpp" +#include "classfile/verifier.hpp" +#include "oops/methodOop.hpp" +#include "runtime/handles.hpp" +#include "runtime/signature.hpp" +#include "utilities/exceptions.hpp" + // A StackMapFrame represents one frame in the stack map attribute. enum { @@ -224,3 +234,5 @@ // Debugging void print() const PRODUCT_RETURN; }; + +#endif // SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/stackMapTable.cpp --- a/src/share/vm/classfile/stackMapTable.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/stackMapTable.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_stackMapTable.cpp.incl" +#include "precompiled.hpp" +#include "classfile/stackMapTable.hpp" +#include "classfile/verifier.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/fieldType.hpp" +#include "runtime/handles.inline.hpp" StackMapTable::StackMapTable(StackMapReader* reader, StackMapFrame* init_frame, u2 max_locals, u2 max_stack, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/stackMapTable.hpp --- a/src/share/vm/classfile/stackMapTable.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/stackMapTable.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,24 @@ * */ +#ifndef SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP +#define SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP + +#include "classfile/stackMapFrame.hpp" +#include "memory/allocation.hpp" +#include "oops/constantPoolOop.hpp" +#include "oops/methodOop.hpp" +#include "utilities/globalDefinitions.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif + class StackMapReader; // StackMapTable class is the StackMap table used by type checker @@ -159,3 +177,5 @@ } } }; + +#endif // SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/stackMapTableFormat.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/vm/classfile/stackMapTableFormat.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -0,0 +1,923 @@ +/* + * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP +#define SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP + +#include "classfile/verificationType.hpp" + +// These classes represent the stack-map substructures described in the JVMS +// (hence the non-conforming naming scheme). + +// These classes work with the types in their compressed form in-place (as they +// would appear in the classfile). No virtual methods or fields allowed. + +class verification_type_info { + private: + // u1 tag + // u2 cpool_index || u2 bci (for ITEM_Object & ITEM_Uninitailized only) + + address tag_addr() const { return (address)this; } + address cpool_index_addr() const { return tag_addr() + sizeof(u1); } + address bci_addr() const { return cpool_index_addr(); } + + protected: + // No constructors - should be 'private', but GCC issues a warning if it is + verification_type_info() {} + verification_type_info(const verification_type_info&) {} + + public: + + static verification_type_info* at(address addr) { + return (verification_type_info*)addr; + } + + static verification_type_info* create_at(address addr, u1 tag) { + verification_type_info* vti = (verification_type_info*)addr; + vti->set_tag(tag); + return vti; + } + + static verification_type_info* create_object_at(address addr, u2 cp_idx) { + verification_type_info* vti = (verification_type_info*)addr; + vti->set_tag(ITEM_Object); + vti->set_cpool_index(cp_idx); + return vti; + } + + static verification_type_info* create_uninit_at(address addr, u2 bci) { + verification_type_info* vti = (verification_type_info*)addr; + vti->set_tag(ITEM_Uninitialized); + vti->set_bci(bci); + return vti; + } + + static size_t calculate_size(u1 tag) { + if (tag == ITEM_Object || tag == ITEM_Uninitialized) { + return sizeof(u1) + sizeof(u2); + } else { + return sizeof(u1); + } + } + + static size_t max_size() { return sizeof(u1) + sizeof(u2); } + + u1 tag() const { return *(u1*)tag_addr(); } + void set_tag(u1 tag) { *((u1*)tag_addr()) = tag; } + + bool is_object() const { return tag() == ITEM_Object; } + bool is_uninitialized() const { return tag() == ITEM_Uninitialized; } + + u2 cpool_index() const { + assert(is_object(), "This type has no cp_index"); + return Bytes::get_Java_u2(cpool_index_addr()); + } + void set_cpool_index(u2 idx) { + assert(is_object(), "This type has no cp_index"); + Bytes::put_Java_u2(cpool_index_addr(), idx); + } + + u2 bci() const { + assert(is_uninitialized(), "This type has no bci"); + return Bytes::get_Java_u2(bci_addr()); + } + + void set_bci(u2 bci) { + assert(is_uninitialized(), "This type has no bci"); + Bytes::put_Java_u2(bci_addr(), bci); + } + + void copy_from(verification_type_info* from) { + set_tag(from->tag()); + if (from->is_object()) { + set_cpool_index(from->cpool_index()); + } else if (from->is_uninitialized()) { + set_bci(from->bci()); + } + } + + size_t size() const { + return calculate_size(tag()); + } + + verification_type_info* next() { + return (verification_type_info*)((address)this + size()); + } + + // This method is used when reading unverified data in order to ensure + // that we don't read past a particular memory limit. It returns false + // if any part of the data structure is outside the specified memory bounds. + bool verify(address start, address end) { + return ((address)this >= start && + (address)this < end && + (bci_addr() + sizeof(u2) <= end || + !is_object() && !is_uninitialized())); + } + +#ifdef ASSERT + void print_on(outputStream* st) { + switch (tag()) { + case ITEM_Top: st->print("Top"); break; + case ITEM_Integer: st->print("Integer"); break; + case ITEM_Float: st->print("Float"); break; + case ITEM_Double: st->print("Double"); break; + case ITEM_Long: st->print("Long"); break; + case ITEM_Null: st->print("Null"); break; + case ITEM_UninitializedThis: + st->print("UninitializedThis"); break; + case ITEM_Uninitialized: + st->print("Uninitialized[#%d]", bci()); break; + case ITEM_Object: + st->print("Object[#%d]", cpool_index()); break; + default: + assert(false, "Bad verification_type_info"); + } + } +#endif +}; + +#define FOR_EACH_STACKMAP_FRAME_TYPE(macro, arg1, arg2) \ + macro(same_frame, arg1, arg2) \ + macro(same_frame_extended, arg1, arg2) \ + macro(same_frame_1_stack_item_frame, arg1, arg2) \ + macro(same_frame_1_stack_item_extended, arg1, arg2) \ + macro(chop_frame, arg1, arg2) \ + macro(append_frame, arg1, arg2) \ + macro(full_frame, arg1, arg2) + +#define SM_FORWARD_DECL(type, arg1, arg2) class type; +FOR_EACH_STACKMAP_FRAME_TYPE(SM_FORWARD_DECL, x, x) +#undef SM_FORWARD_DECL + +class stack_map_frame { + protected: + address frame_type_addr() const { return (address)this; } + + // No constructors - should be 'private', but GCC issues a warning if it is + stack_map_frame() {} + stack_map_frame(const stack_map_frame&) {} + + public: + + static stack_map_frame* at(address addr) { + return (stack_map_frame*)addr; + } + + stack_map_frame* next() const { + return at((address)this + size()); + } + + u1 frame_type() const { return *(u1*)frame_type_addr(); } + void set_frame_type(u1 type) { *((u1*)frame_type_addr()) = type; } + + // pseudo-virtual methods + inline size_t size() const; + inline int offset_delta() const; + inline void set_offset_delta(int offset_delta); + inline int number_of_types() const; // number of types contained in the frame + inline verification_type_info* types() const; // pointer to first type + inline bool is_valid_offset(int offset_delta) const; + + // This method must be used when reading unverified data in order to ensure + // that we don't read past a particular memory limit. It returns false + // if any part of the data structure is outside the specified memory bounds. + inline bool verify(address start, address end) const; +#ifdef ASSERT + inline void print_on(outputStream* st) const; +#endif + + // Create as_xxx and is_xxx methods for the subtypes +#define FRAME_TYPE_DECL(stackmap_frame_type, arg1, arg2) \ + inline stackmap_frame_type* as_##stackmap_frame_type() const; \ + bool is_##stackmap_frame_type() { \ + return as_##stackmap_frame_type() != NULL; \ + } + + FOR_EACH_STACKMAP_FRAME_TYPE(FRAME_TYPE_DECL, x, x) +#undef FRAME_TYPE_DECL +}; + +class same_frame : public stack_map_frame { + private: + static int frame_type_to_offset_delta(u1 frame_type) { + return frame_type + 1; } + static u1 offset_delta_to_frame_type(int offset_delta) { + return (u1)(offset_delta - 1); } + + public: + + static bool is_frame_type(u1 tag) { + return tag < 64; + } + + static same_frame* at(address addr) { + assert(is_frame_type(*addr), "Wrong frame id"); + return (same_frame*)addr; + } + + static same_frame* create_at(address addr, int offset_delta) { + same_frame* sm = (same_frame*)addr; + sm->set_offset_delta(offset_delta); + return sm; + } + + static size_t calculate_size() { return sizeof(u1); } + + size_t size() const { return calculate_size(); } + int offset_delta() const { return frame_type_to_offset_delta(frame_type()); } + + void set_offset_delta(int offset_delta) { + assert(offset_delta <= 64, "Offset too large for same_frame"); + set_frame_type(offset_delta_to_frame_type(offset_delta)); + } + + int number_of_types() const { return 0; } + verification_type_info* types() const { return NULL; } + + bool is_valid_offset(int offset_delta) const { + return is_frame_type(offset_delta_to_frame_type(offset_delta)); + } + + bool verify_subtype(address start, address end) const { + return true; + } + +#ifdef ASSERT + void print_on(outputStream* st) const { + st->print("same_frame(%d)", offset_delta()); + } +#endif +}; + +class same_frame_extended : public stack_map_frame { + private: + enum { _frame_id = 251 }; + address offset_delta_addr() const { return frame_type_addr() + sizeof(u1); } + + public: + static bool is_frame_type(u1 tag) { + return tag == _frame_id; + } + + static same_frame_extended* at(address addr) { + assert(is_frame_type(*addr), "Wrong frame type"); + return (same_frame_extended*)addr; + } + + static same_frame_extended* create_at(address addr, u2 offset_delta) { + same_frame_extended* sm = (same_frame_extended*)addr; + sm->set_frame_type(_frame_id); + sm->set_offset_delta(offset_delta); + return sm; + } + + static size_t calculate_size() { return sizeof(u1) + sizeof(u2); } + + size_t size() const { return calculate_size(); } + int offset_delta() const { + return Bytes::get_Java_u2(offset_delta_addr()) + 1; + } + + void set_offset_delta(int offset_delta) { + Bytes::put_Java_u2(offset_delta_addr(), offset_delta - 1); + } + + int number_of_types() const { return 0; } + verification_type_info* types() const { return NULL; } + bool is_valid_offset(int offset) const { return true; } + + bool verify_subtype(address start, address end) const { + return frame_type_addr() + size() <= end; + } + +#ifdef ASSERT + void print_on(outputStream* st) const { + st->print("same_frame_extended(%d)", offset_delta()); + } +#endif +}; + +class same_frame_1_stack_item_frame : public stack_map_frame { + private: + address type_addr() const { return frame_type_addr() + sizeof(u1); } + + static int frame_type_to_offset_delta(u1 frame_type) { + return frame_type - 63; } + static u1 offset_delta_to_frame_type(int offset_delta) { + return (u1)(offset_delta + 63); } + + public: + static bool is_frame_type(u1 tag) { + return tag >= 64 && tag < 128; + } + + static same_frame_1_stack_item_frame* at(address addr) { + assert(is_frame_type(*addr), "Wrong frame id"); + return (same_frame_1_stack_item_frame*)addr; + } + + static same_frame_1_stack_item_frame* create_at( + address addr, int offset_delta, verification_type_info* vti) { + same_frame_1_stack_item_frame* sm = (same_frame_1_stack_item_frame*)addr; + sm->set_offset_delta(offset_delta); + if (vti != NULL) { + sm->set_type(vti); + } + return sm; + } + + static size_t calculate_size(verification_type_info* vti) { + return sizeof(u1) + vti->size(); + } + + static size_t max_size() { + return sizeof(u1) + verification_type_info::max_size(); + } + + size_t size() const { return calculate_size(types()); } + int offset_delta() const { return frame_type_to_offset_delta(frame_type()); } + + void set_offset_delta(int offset_delta) { + assert(offset_delta > 0 && offset_delta <= 64, + "Offset too large for this frame type"); + set_frame_type(offset_delta_to_frame_type(offset_delta)); + } + + void set_type(verification_type_info* vti) { + verification_type_info* cur = types(); + cur->copy_from(vti); + } + + int number_of_types() const { return 1; } + verification_type_info* types() const { + return verification_type_info::at(type_addr()); + } + + bool is_valid_offset(int offset_delta) const { + return is_frame_type(offset_delta_to_frame_type(offset_delta)); + } + + bool verify_subtype(address start, address end) const { + return types()->verify(start, end); + } + +#ifdef ASSERT + void print_on(outputStream* st) const { + st->print("same_frame_1_stack_item_frame(%d,", offset_delta()); + types()->print_on(st); + st->print(")"); + } +#endif +}; + +class same_frame_1_stack_item_extended : public stack_map_frame { + private: + address offset_delta_addr() const { return frame_type_addr() + sizeof(u1); } + address type_addr() const { return offset_delta_addr() + sizeof(u2); } + + enum { _frame_id = 247 }; + + public: + static bool is_frame_type(u1 tag) { + return tag == _frame_id; + } + + static same_frame_1_stack_item_extended* at(address addr) { + assert(is_frame_type(*addr), "Wrong frame id"); + return (same_frame_1_stack_item_extended*)addr; + } + + static same_frame_1_stack_item_extended* create_at( + address addr, int offset_delta, verification_type_info* vti) { + same_frame_1_stack_item_extended* sm = + (same_frame_1_stack_item_extended*)addr; + sm->set_frame_type(_frame_id); + sm->set_offset_delta(offset_delta); + if (vti != NULL) { + sm->set_type(vti); + } + return sm; + } + + static size_t calculate_size(verification_type_info* vti) { + return sizeof(u1) + sizeof(u2) + vti->size(); + } + + size_t size() const { return calculate_size(types()); } + int offset_delta() const { + return Bytes::get_Java_u2(offset_delta_addr()) + 1; + } + + void set_offset_delta(int offset_delta) { + Bytes::put_Java_u2(offset_delta_addr(), offset_delta - 1); + } + + void set_type(verification_type_info* vti) { + verification_type_info* cur = types(); + cur->copy_from(vti); + } + + int number_of_types() const { return 1; } + verification_type_info* types() const { + return verification_type_info::at(type_addr()); + } + bool is_valid_offset(int offset) { return true; } + + bool verify_subtype(address start, address end) const { + return type_addr() < end && types()->verify(start, end); + } + +#ifdef ASSERT + void print_on(outputStream* st) const { + st->print("same_frame_1_stack_item_extended(%d,", offset_delta()); + types()->print_on(st); + st->print(")"); + } +#endif +}; + +class chop_frame : public stack_map_frame { + private: + address offset_delta_addr() const { return frame_type_addr() + sizeof(u1); } + + static int frame_type_to_chops(u1 frame_type) { + int chop = 251 - frame_type; + return chop; + } + + static u1 chops_to_frame_type(int chop) { + return 251 - chop; + } + + public: + static bool is_frame_type(u1 tag) { + return frame_type_to_chops(tag) > 0 && frame_type_to_chops(tag) < 4; + } + + static chop_frame* at(address addr) { + assert(is_frame_type(*addr), "Wrong frame id"); + return (chop_frame*)addr; + } + + static chop_frame* create_at(address addr, int offset_delta, int chops) { + chop_frame* sm = (chop_frame*)addr; + sm->set_chops(chops); + sm->set_offset_delta(offset_delta); + return sm; + } + + static size_t calculate_size() { + return sizeof(u1) + sizeof(u2); + } + + size_t size() const { return calculate_size(); } + int offset_delta() const { + return Bytes::get_Java_u2(offset_delta_addr()) + 1; + } + void set_offset_delta(int offset_delta) { + Bytes::put_Java_u2(offset_delta_addr(), offset_delta - 1); + } + + int chops() const { + int chops = frame_type_to_chops(frame_type()); + assert(chops > 0 && chops < 4, "Invalid number of chops in frame"); + return chops; + } + void set_chops(int chops) { + assert(chops > 0 && chops <= 3, "Bad number of chops"); + set_frame_type(chops_to_frame_type(chops)); + } + + int number_of_types() const { return 0; } + verification_type_info* types() const { return NULL; } + bool is_valid_offset(int offset) { return true; } + + bool verify_subtype(address start, address end) const { + return frame_type_addr() + size() <= end; + } + +#ifdef ASSERT + void print_on(outputStream* st) const { + st->print("chop_frame(%d,%d)", offset_delta(), chops()); + } +#endif +}; + +class append_frame : public stack_map_frame { + private: + address offset_delta_addr() const { return frame_type_addr() + sizeof(u1); } + address types_addr() const { return offset_delta_addr() + sizeof(u2); } + + static int frame_type_to_appends(u1 frame_type) { + int append = frame_type - 251; + return append; + } + + static u1 appends_to_frame_type(int appends) { + assert(appends > 0 && appends < 4, "Invalid append amount"); + return 251 + appends; + } + + public: + static bool is_frame_type(u1 tag) { + return frame_type_to_appends(tag) > 0 && frame_type_to_appends(tag) < 4; + } + + static append_frame* at(address addr) { + assert(is_frame_type(*addr), "Wrong frame id"); + return (append_frame*)addr; + } + + static append_frame* create_at( + address addr, int offset_delta, int appends, + verification_type_info* types) { + append_frame* sm = (append_frame*)addr; + sm->set_appends(appends); + sm->set_offset_delta(offset_delta); + if (types != NULL) { + verification_type_info* cur = sm->types(); + for (int i = 0; i < appends; ++i) { + cur->copy_from(types); + cur = cur->next(); + types = types->next(); + } + } + return sm; + } + + static size_t calculate_size(int appends, verification_type_info* types) { + size_t sz = sizeof(u1) + sizeof(u2); + for (int i = 0; i < appends; ++i) { + sz += types->size(); + types = types->next(); + } + return sz; + } + + static size_t max_size() { + return sizeof(u1) + sizeof(u2) + 3 * verification_type_info::max_size(); + } + + size_t size() const { return calculate_size(number_of_types(), types()); } + int offset_delta() const { + return Bytes::get_Java_u2(offset_delta_addr()) + 1; + } + + void set_offset_delta(int offset_delta) { + Bytes::put_Java_u2(offset_delta_addr(), offset_delta - 1); + } + + void set_appends(int appends) { + assert(appends > 0 && appends < 4, "Bad number of appends"); + set_frame_type(appends_to_frame_type(appends)); + } + + int number_of_types() const { + int appends = frame_type_to_appends(frame_type()); + assert(appends > 0 && appends < 4, "Invalid number of appends in frame"); + return appends; + } + verification_type_info* types() const { + return verification_type_info::at(types_addr()); + } + bool is_valid_offset(int offset) const { return true; } + + bool verify_subtype(address start, address end) const { + verification_type_info* vti = types(); + if ((address)vti < end && vti->verify(start, end)) { + int nof = number_of_types(); + vti = vti->next(); + if (nof < 2 || vti->verify(start, end)) { + vti = vti->next(); + if (nof < 3 || vti->verify(start, end)) { + return true; + } + } + } + return false; + } + +#ifdef ASSERT + void print_on(outputStream* st) const { + st->print("append_frame(%d,", offset_delta()); + verification_type_info* vti = types(); + for (int i = 0; i < number_of_types(); ++i) { + vti->print_on(st); + if (i != number_of_types() - 1) { + st->print(","); + } + vti = vti->next(); + } + st->print(")"); + } +#endif +}; + +class full_frame : public stack_map_frame { + private: + address offset_delta_addr() const { return frame_type_addr() + sizeof(u1); } + address num_locals_addr() const { return offset_delta_addr() + sizeof(u2); } + address locals_addr() const { return num_locals_addr() + sizeof(u2); } + address stack_slots_addr(address end_of_locals) const { + return end_of_locals; } + address stack_addr(address end_of_locals) const { + return stack_slots_addr(end_of_locals) + sizeof(u2); } + + enum { _frame_id = 255 }; + + public: + static bool is_frame_type(u1 tag) { + return tag == _frame_id; + } + + static full_frame* at(address addr) { + assert(is_frame_type(*addr), "Wrong frame id"); + return (full_frame*)addr; + } + + static full_frame* create_at( + address addr, int offset_delta, int num_locals, + verification_type_info* locals, + int stack_slots, verification_type_info* stack) { + full_frame* sm = (full_frame*)addr; + sm->set_frame_type(_frame_id); + sm->set_offset_delta(offset_delta); + sm->set_num_locals(num_locals); + if (locals != NULL) { + verification_type_info* cur = sm->locals(); + for (int i = 0; i < num_locals; ++i) { + cur->copy_from(locals); + cur = cur->next(); + locals = locals->next(); + } + address end_of_locals = (address)cur; + sm->set_stack_slots(end_of_locals, stack_slots); + cur = sm->stack(end_of_locals); + for (int i = 0; i < stack_slots; ++i) { + cur->copy_from(stack); + cur = cur->next(); + stack = stack->next(); + } + } + return sm; + } + + static size_t calculate_size( + int num_locals, verification_type_info* locals, + int stack_slots, verification_type_info* stack) { + size_t sz = sizeof(u1) + sizeof(u2) + sizeof(u2) + sizeof(u2); + verification_type_info* vti = locals; + for (int i = 0; i < num_locals; ++i) { + sz += vti->size(); + vti = vti->next(); + } + vti = stack; + for (int i = 0; i < stack_slots; ++i) { + sz += vti->size(); + vti = vti->next(); + } + return sz; + } + + static size_t max_size(int locals, int stack) { + return sizeof(u1) + 3 * sizeof(u2) + + (locals + stack) * verification_type_info::max_size(); + } + + size_t size() const { + address eol = end_of_locals(); + return calculate_size(num_locals(), locals(), stack_slots(eol), stack(eol)); + } + + int offset_delta() const { + return Bytes::get_Java_u2(offset_delta_addr()) + 1; + } + int num_locals() const { return Bytes::get_Java_u2(num_locals_addr()); } + verification_type_info* locals() const { + return verification_type_info::at(locals_addr()); + } + address end_of_locals() const { + verification_type_info* vti = locals(); + for (int i = 0; i < num_locals(); ++i) { + vti = vti->next(); + } + return (address)vti; + } + int stack_slots(address end_of_locals) const { + return Bytes::get_Java_u2(stack_slots_addr(end_of_locals)); + } + verification_type_info* stack(address end_of_locals) const { + return verification_type_info::at(stack_addr(end_of_locals)); + } + + void set_offset_delta(int offset_delta) { + Bytes::put_Java_u2(offset_delta_addr(), offset_delta - 1); + } + void set_num_locals(int num_locals) { + Bytes::put_Java_u2(num_locals_addr(), num_locals); + } + void set_stack_slots(address end_of_locals, int stack_slots) { + Bytes::put_Java_u2(stack_slots_addr(end_of_locals), stack_slots); + } + + // These return only the locals. Extra processing is required for stack + // types of full frames. + int number_of_types() const { return num_locals(); } + verification_type_info* types() const { return locals(); } + bool is_valid_offset(int offset) { return true; } + + bool verify_subtype(address start, address end) const { + verification_type_info* vti = types(); + if ((address)vti >= end) { + return false; + } + int count = number_of_types(); + for (int i = 0; i < count; ++i) { + if (!vti->verify(start, end)) { + return false; + } + vti = vti->next(); + } + address eol = (address)vti; + if (eol + sizeof(u2) > end) { + return false; + } + count = stack_slots(eol); + vti = stack(eol); + for (int i = 0; i < stack_slots(eol); ++i) { + if (!vti->verify(start, end)) { + return false; + } + vti = vti->next(); + } + return true; + } + +#ifdef ASSERT + void print_on(outputStream* st) const { + st->print("full_frame(%d,{", offset_delta()); + verification_type_info* vti = locals(); + for (int i = 0; i < num_locals(); ++i) { + vti->print_on(st); + if (i != num_locals() - 1) { + st->print(","); + } + vti = vti->next(); + } + st->print("},{"); + address end_of_locals = (address)vti; + vti = stack(end_of_locals); + int ss = stack_slots(end_of_locals); + for (int i = 0; i < ss; ++i) { + vti->print_on(st); + if (i != ss - 1) { + st->print(","); + } + vti = vti->next(); + } + st->print("})"); + } +#endif +}; + +#define VIRTUAL_DISPATCH(stack_frame_type, func_name, args) \ + stack_frame_type* item_##stack_frame_type = as_##stack_frame_type(); \ + if (item_##stack_frame_type != NULL) { \ + return item_##stack_frame_type->func_name args; \ + } + +#define VOID_VIRTUAL_DISPATCH(stack_frame_type, func_name, args) \ + stack_frame_type* item_##stack_frame_type = as_##stack_frame_type(); \ + if (item_##stack_frame_type != NULL) { \ + item_##stack_frame_type->func_name args; \ + return; \ + } + +size_t stack_map_frame::size() const { + FOR_EACH_STACKMAP_FRAME_TYPE(VIRTUAL_DISPATCH, size, ()); + return 0; +} + +int stack_map_frame::offset_delta() const { + FOR_EACH_STACKMAP_FRAME_TYPE(VIRTUAL_DISPATCH, offset_delta, ()); + return 0; +} + +void stack_map_frame::set_offset_delta(int offset_delta) { + FOR_EACH_STACKMAP_FRAME_TYPE( + VOID_VIRTUAL_DISPATCH, set_offset_delta, (offset_delta)); +} + +int stack_map_frame::number_of_types() const { + FOR_EACH_STACKMAP_FRAME_TYPE(VIRTUAL_DISPATCH, number_of_types, ()); + return 0; +} + +verification_type_info* stack_map_frame::types() const { + FOR_EACH_STACKMAP_FRAME_TYPE(VIRTUAL_DISPATCH, types, ()); + return NULL; +} + +bool stack_map_frame::is_valid_offset(int offset) const { + FOR_EACH_STACKMAP_FRAME_TYPE(VIRTUAL_DISPATCH, is_valid_offset, (offset)); + return true; +} + +bool stack_map_frame::verify(address start, address end) const { + if (frame_type_addr() >= start && frame_type_addr() < end) { + FOR_EACH_STACKMAP_FRAME_TYPE( + VIRTUAL_DISPATCH, verify_subtype, (start, end)); + } + return false; +} + +#ifdef ASSERT +void stack_map_frame::print_on(outputStream* st) const { + FOR_EACH_STACKMAP_FRAME_TYPE(VOID_VIRTUAL_DISPATCH, print_on, (st)); +} +#endif + +#undef VIRTUAL_DISPATCH +#undef VOID_VIRTUAL_DISPATCH + +#define AS_SUBTYPE_DEF(stack_frame_type, arg1, arg2) \ +stack_frame_type* stack_map_frame::as_##stack_frame_type() const { \ + if (stack_frame_type::is_frame_type(frame_type())) { \ + return (stack_frame_type*)this; \ + } else { \ + return NULL; \ + } \ +} + +FOR_EACH_STACKMAP_FRAME_TYPE(AS_SUBTYPE_DEF, x, x) +#undef AS_SUBTYPE_DEF + +class stack_map_table_attribute { + private: + address name_index_addr() const { + return (address)this; } + address attribute_length_addr() const { + return name_index_addr() + sizeof(u2); } + address number_of_entries_addr() const { + return attribute_length_addr() + sizeof(u4); } + address entries_addr() const { + return number_of_entries_addr() + sizeof(u2); } + + protected: + // No constructors - should be 'private', but GCC issues a warning if it is + stack_map_table_attribute() {} + stack_map_table_attribute(const stack_map_table_attribute&) {} + + public: + + static stack_map_table_attribute* at(address addr) { + return (stack_map_table_attribute*)addr; + } + + u2 name_index() const { + return Bytes::get_Java_u2(name_index_addr()); } + u4 attribute_length() const { + return Bytes::get_Java_u4(attribute_length_addr()); } + u2 number_of_entries() const { + return Bytes::get_Java_u2(number_of_entries_addr()); } + stack_map_frame* entries() const { + return stack_map_frame::at(entries_addr()); + } + + static size_t header_size() { + return sizeof(u2) + sizeof(u4); + } + + void set_name_index(u2 idx) { + Bytes::put_Java_u2(name_index_addr(), idx); + } + void set_attribute_length(u4 len) { + Bytes::put_Java_u4(attribute_length_addr(), len); + } + void set_number_of_entries(u2 num) { + Bytes::put_Java_u2(number_of_entries_addr(), num); + } +}; + +#endif // SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/symbolTable.cpp --- a/src/share/vm/classfile/symbolTable.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/symbolTable.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,18 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_symbolTable.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "memory/filemap.hpp" +#include "memory/gcLocker.inline.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "oops/symbolKlass.hpp" +#include "runtime/mutexLocker.hpp" +#include "utilities/hashtable.inline.hpp" // -------------------------------------------------------------------------- diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/symbolTable.hpp --- a/src/share/vm/classfile/symbolTable.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/symbolTable.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP +#define SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP + +#include "memory/allocation.inline.hpp" +#include "oops/symbolOop.hpp" +#include "utilities/hashtable.hpp" + // The symbol table holds all symbolOops and corresponding interned strings. // symbolOops and literal strings should be canonicalized. // @@ -222,3 +229,5 @@ ((BasicHashtable*)the_table())->reverse(); } }; + +#endif // SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/systemDictionary.cpp --- a/src/share/vm/classfile/systemDictionary.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/systemDictionary.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,16 +22,45 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_systemDictionary.cpp.incl" - - -Dictionary* SystemDictionary::_dictionary = NULL; -PlaceholderTable* SystemDictionary::_placeholders = NULL; -Dictionary* SystemDictionary::_shared_dictionary = NULL; -LoaderConstraintTable* SystemDictionary::_loader_constraints = NULL; -ResolutionErrorTable* SystemDictionary::_resolution_errors = NULL; -SymbolPropertyTable* SystemDictionary::_invoke_method_table = NULL; +#include "precompiled.hpp" +#include "classfile/dictionary.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/loaderConstraints.hpp" +#include "classfile/placeholders.hpp" +#include "classfile/resolutionErrors.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "interpreter/bytecodeStream.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/gcLocker.hpp" +#include "memory/oopFactory.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/klass.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "oops/typeArrayKlass.hpp" +#include "prims/jvmtiEnvBase.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/fieldType.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/signature.hpp" +#include "services/classLoadingService.hpp" +#include "services/threadService.hpp" + + +Dictionary* SystemDictionary::_dictionary = NULL; +PlaceholderTable* SystemDictionary::_placeholders = NULL; +Dictionary* SystemDictionary::_shared_dictionary = NULL; +LoaderConstraintTable* SystemDictionary::_loader_constraints = NULL; +ResolutionErrorTable* SystemDictionary::_resolution_errors = NULL; +SymbolPropertyTable* SystemDictionary::_invoke_method_table = NULL; int SystemDictionary::_number_of_modifications = 0; @@ -1727,8 +1756,7 @@ placeholders_do(blk); // Visit extra methods - if (invoke_method_table() != NULL) - invoke_method_table()->oops_do(blk); + invoke_method_table()->oops_do(blk); // Loader constraints. We must keep the symbolOop used in the name alive. constraints()->always_strong_classes_do(blk); @@ -1766,8 +1794,7 @@ dictionary()->oops_do(f); // Visit extra methods - if (invoke_method_table() != NULL) - invoke_method_table()->oops_do(f); + invoke_method_table()->oops_do(f); // Partially loaded classes placeholders()->oops_do(f); @@ -1841,8 +1868,7 @@ void SystemDictionary::methods_do(void f(methodOop)) { dictionary()->methods_do(f); - if (invoke_method_table() != NULL) - invoke_method_table()->methods_do(f); + invoke_method_table()->methods_do(f); } // ---------------------------------------------------------------------------- @@ -1870,12 +1896,12 @@ // Allocate arrays assert(dictionary() == NULL, "SystemDictionary should only be initialized once"); - _dictionary = new Dictionary(_nof_buckets); - _placeholders = new PlaceholderTable(_nof_buckets); + _dictionary = new Dictionary(_nof_buckets); + _placeholders = new PlaceholderTable(_nof_buckets); _number_of_modifications = 0; - _loader_constraints = new LoaderConstraintTable(_loader_constraint_size); - _resolution_errors = new ResolutionErrorTable(_resolution_error_size); - // _invoke_method_table is allocated lazily in find_method_handle_invoke() + _loader_constraints = new LoaderConstraintTable(_loader_constraint_size); + _resolution_errors = new ResolutionErrorTable(_resolution_error_size); + _invoke_method_table = new SymbolPropertyTable(_invoke_method_size); // Allocate private object used as system class loader lock _system_loader_lock_obj = oopFactory::new_system_objArray(0, CHECK); @@ -2346,10 +2372,6 @@ KlassHandle accessing_klass, TRAPS) { if (!EnableMethodHandles) return NULL; - if (invoke_method_table() == NULL) { - // create this side table lazily - _invoke_method_table = new SymbolPropertyTable(_invoke_method_size); - } vmSymbols::SID name_id = vmSymbols::find_sid(name()); assert(name_id != vmSymbols::NO_SID, "must be a known name"); unsigned int hash = invoke_method_table()->compute_hash(signature, name_id); @@ -2562,7 +2584,9 @@ } Handle SystemDictionary::find_bootstrap_method(methodHandle caller_method, int caller_bci, - int cache_index, TRAPS) { + int cache_index, + Handle& argument_info_result, + TRAPS) { Handle empty; constantPoolHandle pool; @@ -2576,7 +2600,7 @@ constantTag tag = pool->tag_at(constant_pool_index); if (tag.is_invoke_dynamic()) { - // JVM_CONSTANT_InvokeDynamic is an ordered pair of [bootm, name&type] + // JVM_CONSTANT_InvokeDynamic is an ordered pair of [bootm, name&type], plus optional arguments // The bootm, being a JVM_CONSTANT_MethodHandle, has its own cache entry. int bsm_index = pool->invoke_dynamic_bootstrap_method_ref_index_at(constant_pool_index); if (bsm_index != 0) { @@ -2592,9 +2616,38 @@ tty->print_cr("bootstrap method for "PTR_FORMAT" at %d retrieved as "PTR_FORMAT":", (intptr_t) caller_method(), caller_bci, (intptr_t) bsm_oop); } - assert(bsm_oop->is_oop() - && java_dyn_MethodHandle::is_instance(bsm_oop), "must be sane"); - return Handle(THREAD, bsm_oop); + assert(bsm_oop->is_oop(), "must be sane"); + // caller must verify that it is of type MethodHandle + Handle bsm(THREAD, bsm_oop); + bsm_oop = NULL; // safety + + // Extract the optional static arguments. + Handle argument_info; // either null, or one arg, or Object[]{arg...} + int argc = pool->invoke_dynamic_argument_count_at(constant_pool_index); + if (TraceInvokeDynamic) { + tty->print_cr("find_bootstrap_method: [%d/%d] CONSTANT_InvokeDynamic: %d[%d]", + constant_pool_index, cache_index, bsm_index, argc); + } + if (argc > 0) { + objArrayHandle arg_array; + if (argc > 1) { + objArrayOop arg_array_oop = oopFactory::new_objArray(SystemDictionary::Object_klass(), argc, CHECK_(empty)); + arg_array = objArrayHandle(THREAD, arg_array_oop); + argument_info = arg_array; + } + for (int arg_i = 0; arg_i < argc; arg_i++) { + int arg_index = pool->invoke_dynamic_argument_index_at(constant_pool_index, arg_i); + oop arg_oop = pool->resolve_possibly_cached_constant_at(arg_index, CHECK_(empty)); + if (arg_array.is_null()) { + argument_info = Handle(THREAD, arg_oop); + } else { + arg_array->obj_at_put(arg_i, arg_oop); + } + } + } + + argument_info_result = argument_info; // return argument_info to caller + return bsm; } // else null BSM; fall through } else if (tag.is_name_and_type()) { @@ -2607,14 +2660,14 @@ // Fall through to pick up the per-class bootstrap method. // This mechanism may go away in the PFD. assert(AllowTransitionalJSR292, "else the verifier should have stopped us already"); + argument_info_result = empty; // return no argument_info to caller oop bsm_oop = instanceKlass::cast(caller_method->method_holder())->bootstrap_method(); if (bsm_oop != NULL) { if (TraceMethodHandles) { tty->print_cr("bootstrap method for "PTR_FORMAT" registered as "PTR_FORMAT":", (intptr_t) caller_method(), (intptr_t) bsm_oop); } - assert(bsm_oop->is_oop() - && java_dyn_MethodHandle::is_instance(bsm_oop), "must be sane"); + assert(bsm_oop->is_oop(), "must be sane"); return Handle(THREAD, bsm_oop); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/systemDictionary.hpp --- a/src/share/vm/classfile/systemDictionary.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/systemDictionary.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP +#define SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP + +#include "classfile/classFileStream.hpp" +#include "classfile/classLoader.hpp" +#include "oops/objArrayOop.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/java.hpp" +#include "runtime/reflectionUtils.hpp" +#include "utilities/hashtable.hpp" + // The system dictionary stores all loaded classes and maps: // // [class name,class loader] -> class i.e. [symbolOop,oop] -> klassOop @@ -496,6 +507,7 @@ static Handle find_bootstrap_method(methodHandle caller_method, int caller_bci, // N.B. must be an invokedynamic int cache_index, // must be corresponding main_entry + Handle &argument_info_result, // static BSM arguments, if any TRAPS); // Utility for printing loader "name" as part of tracing constraints @@ -671,3 +683,5 @@ static KlassHandle box_klass(BasicType t); }; + +#endif // SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/verificationType.cpp --- a/src/share/vm/classfile/verificationType.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/verificationType.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_verificationType.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/verificationType.hpp" VerificationType VerificationType::from_tag(u1 tag) { switch (tag) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/verificationType.hpp --- a/src/share/vm/classfile/verificationType.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/verificationType.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP +#define SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP + +#include "classfile/systemDictionary.hpp" +#include "memory/allocation.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/handles.hpp" +#include "runtime/signature.hpp" + enum { // As specifed in the JVM spec ITEM_Top = 0, @@ -303,3 +314,5 @@ bool is_reference_assignable_from( const VerificationType&, instanceKlassHandle, TRAPS) const; }; + +#endif // SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/verifier.cpp --- a/src/share/vm/classfile/verifier.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/verifier.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,36 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_verifier.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileStream.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/stackMapTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/verifier.hpp" +#include "classfile/vmSymbols.hpp" +#include "interpreter/bytecodeStream.hpp" +#include "memory/oopFactory.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/typeArrayOop.hpp" +#include "prims/jvm.h" +#include "runtime/fieldDescriptor.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/orderAccess.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif #define NOFAILOVER_MAJOR_VERSION 51 @@ -247,6 +275,10 @@ ClassVerifier::~ClassVerifier() { } +VerificationType ClassVerifier::object_type() const { + return VerificationType::reference_type(vmSymbols::java_lang_Object()); +} + void ClassVerifier::verify_class(TRAPS) { if (_verify_verbose) { tty->print_cr("Verifying class %s with new format", @@ -726,8 +758,7 @@ } no_control_flow = false; break; case Bytecodes::_aastore : - type = current_frame.pop_stack( - VerificationType::reference_check(), CHECK_VERIFY(this)); + type = current_frame.pop_stack(object_type(), CHECK_VERIFY(this)); type2 = current_frame.pop_stack( VerificationType::integer_type(), CHECK_VERIFY(this)); atype = current_frame.pop_stack( @@ -1232,8 +1263,7 @@ { index = bcs.get_index_u2(); verify_cp_class_type(index, cp, CHECK_VERIFY(this)); - current_frame.pop_stack( - VerificationType::reference_check(), CHECK_VERIFY(this)); + current_frame.pop_stack(object_type(), CHECK_VERIFY(this)); VerificationType klass_type = cp_index_to_type( index, cp, CHECK_VERIFY(this)); current_frame.push_stack(klass_type, CHECK_VERIFY(this)); @@ -1242,8 +1272,7 @@ case Bytecodes::_instanceof : { index = bcs.get_index_u2(); verify_cp_class_type(index, cp, CHECK_VERIFY(this)); - current_frame.pop_stack( - VerificationType::reference_check(), CHECK_VERIFY(this)); + current_frame.pop_stack(object_type(), CHECK_VERIFY(this)); current_frame.push_stack( VerificationType::integer_type(), CHECK_VERIFY(this)); no_control_flow = false; break; @@ -1610,9 +1639,7 @@ verify_cp_type(index, cp, types, CHECK_VERIFY(this)); } if (tag.is_string() && cp->is_pseudo_string_at(index)) { - current_frame->push_stack( - VerificationType::reference_type( - vmSymbols::java_lang_Object()), CHECK_VERIFY(this)); + current_frame->push_stack(object_type(), CHECK_VERIFY(this)); } else if (tag.is_string() || tag.is_unresolved_string()) { current_frame->push_stack( VerificationType::reference_type( @@ -1909,7 +1936,7 @@ unsigned int types = (opcode == Bytecodes::_invokeinterface ? 1 << JVM_CONSTANT_InterfaceMethodref : opcode == Bytecodes::_invokedynamic - ? (1 << JVM_CONSTANT_NameAndType + ? ((AllowTransitionalJSR292 ? 1 << JVM_CONSTANT_NameAndType : 0) |1 << JVM_CONSTANT_InvokeDynamic) : 1 << JVM_CONSTANT_Methodref); verify_cp_type(index, cp, types, CHECK_VERIFY(this)); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/verifier.hpp --- a/src/share/vm/classfile/verifier.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/verifier.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CLASSFILE_VERIFIER_HPP +#define SHARE_VM_CLASSFILE_VERIFIER_HPP + +#include "classfile/verificationType.hpp" +#include "memory/gcLocker.hpp" +#include "oops/klass.hpp" +#include "oops/methodOop.hpp" +#include "runtime/handles.hpp" +#include "utilities/exceptions.hpp" + // The verifier class class Verifier : AllStatic { public: @@ -157,6 +167,8 @@ bool name_in_supers(symbolOop ref_name, instanceKlassHandle current); + VerificationType object_type() const; + instanceKlassHandle _klass; // the class being verified methodHandle _method; // current method being verified VerificationType _this_type; // the verification type of the current class @@ -252,3 +264,5 @@ return 1; } } + +#endif // SHARE_VM_CLASSFILE_VERIFIER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/vmSymbols.cpp --- a/src/share/vm/classfile/vmSymbols.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/vmSymbols.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmSymbols.cpp.incl" +#include "precompiled.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/oopFactory.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "utilities/xmlstream.hpp" symbolOop vmSymbols::_symbols[vmSymbols::SID_LIMIT]; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/classfile/vmSymbols.hpp --- a/src/share/vm/classfile/vmSymbols.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/classfile/vmSymbols.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CLASSFILE_VMSYMBOLS_HPP +#define SHARE_VM_CLASSFILE_VMSYMBOLS_HPP + +#include "oops/symbolOop.hpp" + // The classes vmSymbols and vmSymbolHandles are a name spaces for fast lookup of // symbols commonly used in the VM. The first class return a symbolOop, while the // second class returns a SymbolHandle. The underlying data structure is shared @@ -1112,3 +1117,5 @@ // Raw conversion: static ID for_raw_conversion(BasicType src, BasicType dest); }; + +#endif // SHARE_VM_CLASSFILE_VMSYMBOLS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/codeBlob.cpp --- a/src/share/vm/code/codeBlob.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/codeBlob.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,35 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_codeBlob.cpp.incl" +#include "precompiled.hpp" +#include "code/codeBlob.hpp" +#include "code/codeCache.hpp" +#include "code/relocInfo.hpp" +#include "compiler/disassembler.hpp" +#include "interpreter/bytecode.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/heap.hpp" +#include "oops/oop.inline.hpp" +#include "prims/forte.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframe.hpp" +#include "services/memoryService.hpp" +#ifdef TARGET_ARCH_x86 +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "nativeInst_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "nativeInst_zero.hpp" +#endif +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif unsigned int align_code_offset(int offset) { // align the size to CodeEntryAlignment diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/codeBlob.hpp --- a/src/share/vm/code/codeBlob.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/codeBlob.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CODE_CODEBLOB_HPP +#define SHARE_VM_CODE_CODEBLOB_HPP + +#include "asm/codeBuffer.hpp" +#include "compiler/oopMap.hpp" +#include "runtime/frame.hpp" +#include "runtime/handles.hpp" + // CodeBlob - superclass for all entries in the CodeCache. // // Suptypes are: @@ -499,3 +507,5 @@ // Typing bool is_safepoint_stub() const { return true; } }; + +#endif // SHARE_VM_CODE_CODEBLOB_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/codeCache.cpp --- a/src/share/vm/code/codeCache.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/codeCache.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,26 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_codeCache.cpp.incl" +#include "precompiled.hpp" +#include "code/codeBlob.hpp" +#include "code/codeCache.hpp" +#include "code/dependencies.hpp" +#include "code/nmethod.hpp" +#include "code/pcDesc.hpp" +#include "gc_implementation/shared/markSweep.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/gcLocker.hpp" +#include "memory/iterator.hpp" +#include "memory/resourceArea.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/java.hpp" +#include "runtime/mutexLocker.hpp" +#include "services/memoryService.hpp" +#include "utilities/xmlstream.hpp" // Helper class for printing in CodeCache @@ -914,3 +932,14 @@ } #endif // PRODUCT + +void CodeCache::print_bounds(outputStream* st) { + st->print_cr("Code Cache [" INTPTR_FORMAT ", " INTPTR_FORMAT ", " INTPTR_FORMAT ")", + _heap->low_boundary(), + _heap->high(), + _heap->high_boundary()); + st->print_cr(" total_blobs=" UINT32_FORMAT " nmethods=" UINT32_FORMAT + " adapters=" UINT32_FORMAT " free_code_cache=" SIZE_FORMAT, + CodeCache::nof_blobs(), CodeCache::nof_nmethods(), + CodeCache::nof_adapters(), CodeCache::unallocated_capacity()); +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/codeCache.hpp --- a/src/share/vm/code/codeCache.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/codeCache.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_CODE_CODECACHE_HPP +#define SHARE_VM_CODE_CODECACHE_HPP + +#include "code/codeBlob.hpp" +#include "memory/allocation.hpp" +#include "memory/heap.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/oopsHierarchy.hpp" + // The CodeCache implements the code cache for various pieces of generated // code, e.g., compiled java methods, runtime stubs, transition frames, etc. // The entries in the CodeCache are all CodeBlob's. @@ -137,6 +146,7 @@ static void print_internals(); static void verify(); // verifies the code cache static void print_trace(const char* event, CodeBlob* cb, int size = 0) PRODUCT_RETURN; + static void print_bounds(outputStream* st); // Prints a summary of the bounds of the code cache // The full limits of the codeCache static address low_bound() { return (address) _heap->low_boundary(); } @@ -172,3 +182,5 @@ // tells how many nmethods have dependencies static int number_of_nmethods_with_dependencies(); }; + +#endif // SHARE_VM_CODE_CODECACHE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/compiledIC.cpp --- a/src/share/vm/code/compiledIC.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/compiledIC.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,23 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compiledIC.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "code/compiledIC.hpp" +#include "code/icBuffer.hpp" +#include "code/nmethod.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/oopFactory.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/icache.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/events.hpp" // Every time a compiled IC is changed or its type is being accessed, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/compiledIC.hpp --- a/src/share/vm/code/compiledIC.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/compiledIC.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,23 @@ * */ +#ifndef SHARE_VM_CODE_COMPILEDIC_HPP +#define SHARE_VM_CODE_COMPILEDIC_HPP + +#include "interpreter/linkResolver.hpp" +#include "oops/compiledICHolderKlass.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "oops/klassOop.hpp" +#ifdef TARGET_ARCH_x86 +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "nativeInst_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "nativeInst_zero.hpp" +#endif + //----------------------------------------------------------------------------- // The CompiledIC represents a compiled inline cache. // @@ -239,3 +256,5 @@ inline CompiledStaticCall* compiledStaticCall_at(Relocation* call_site) { return compiledStaticCall_at(call_site->addr()); } + +#endif // SHARE_VM_CODE_COMPILEDIC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/compressedStream.cpp --- a/src/share/vm/code/compressedStream.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/compressedStream.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compressedStream.cpp.incl" +#include "precompiled.hpp" +#include "code/compressedStream.hpp" +#include "utilities/ostream.hpp" // 32-bit one-to-one sign encoding taken from Pack200 // converts leading sign bits into leading zeroes with trailing sign bit diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/compressedStream.hpp --- a/src/share/vm/code/compressedStream.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/compressedStream.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CODE_COMPRESSEDSTREAM_HPP +#define SHARE_VM_CODE_COMPRESSEDSTREAM_HPP + +#include "memory/allocation.hpp" + // Simple interface for filing out and filing in basic types // Used for writing out and reading in debugging information. @@ -118,3 +123,5 @@ void write_double(jdouble value); // write_int(reverse_int()) void write_long(jlong value); // write_signed_int() }; + +#endif // SHARE_VM_CODE_COMPRESSEDSTREAM_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/debugInfo.cpp --- a/src/share/vm/code/debugInfo.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/debugInfo.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_debugInfo.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfo.hpp" +#include "code/debugInfoRec.hpp" +#include "code/nmethod.hpp" +#include "runtime/handles.inline.hpp" // Comstructors diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/debugInfo.hpp --- a/src/share/vm/code/debugInfo.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/debugInfo.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CODE_DEBUGINFO_HPP +#define SHARE_VM_CODE_DEBUGINFO_HPP + +#include "code/compressedStream.hpp" +#include "code/location.hpp" +#include "code/nmethod.hpp" +#include "code/oopRecorder.hpp" +#include "runtime/stackValue.hpp" +#include "utilities/growableArray.hpp" + // Classes used for serializing debugging information. // These abstractions are introducted to provide symmetric // read and write operations. @@ -270,3 +280,5 @@ void write_handle(jobject h); void write_bci(int bci) { write_int(bci - InvocationEntryBci); } }; + +#endif // SHARE_VM_CODE_DEBUGINFO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/debugInfoRec.cpp --- a/src/share/vm/code/debugInfoRec.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/debugInfoRec.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_debugInfoRec.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfoRec.hpp" +#include "code/scopeDesc.hpp" +#include "prims/jvmtiExport.hpp" // Private definition. // There is one DIR_Chunk for each scope and values array. diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/debugInfoRec.hpp --- a/src/share/vm/code/debugInfoRec.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/debugInfoRec.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,19 @@ * */ +#ifndef SHARE_VM_CODE_DEBUGINFOREC_HPP +#define SHARE_VM_CODE_DEBUGINFOREC_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciMethod.hpp" +#include "code/debugInfo.hpp" +#include "code/location.hpp" +#include "code/pcDesc.hpp" +#include "compiler/oopMap.hpp" +#include "oops/oop.hpp" +#include "utilities/growableArray.hpp" + //** The DebugInformationRecorder collects debugging information // for a compiled method. // Debugging information is used for: @@ -183,3 +196,5 @@ public: enum { serialized_null = 0 }; }; + +#endif // SHARE_VM_CODE_DEBUGINFOREC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/dependencies.cpp --- a/src/share/vm/code/dependencies.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/dependencies.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dependencies.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciEnv.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciMethod.hpp" +#include "code/dependencies.hpp" +#include "compiler/compileLog.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "utilities/copy.hpp" #ifdef ASSERT diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/dependencies.hpp --- a/src/share/vm/code/dependencies.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/dependencies.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CODE_DEPENDENCIES_HPP +#define SHARE_VM_CODE_DEPENDENCIES_HPP + +#include "ci/ciKlass.hpp" +#include "code/compressedStream.hpp" +#include "code/nmethod.hpp" +#include "utilities/growableArray.hpp" + //** Dependencies represent assertions (approximate invariants) within // the class hierarchy. An example is an assertion that a given // method is not overridden; another example is that a type has only @@ -550,3 +558,5 @@ void print(); }; + +#endif // SHARE_VM_CODE_DEPENDENCIES_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/exceptionHandlerTable.cpp --- a/src/share/vm/code/exceptionHandlerTable.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/exceptionHandlerTable.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_exceptionHandlerTable.cpp.incl" +#include "precompiled.hpp" +#include "code/exceptionHandlerTable.hpp" +#include "code/nmethod.hpp" +#include "memory/allocation.inline.hpp" void ExceptionHandlerTable::add_entry(HandlerTableEntry entry) { _nesting.check(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/exceptionHandlerTable.hpp --- a/src/share/vm/code/exceptionHandlerTable.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/exceptionHandlerTable.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP +#define SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP + +#include "memory/allocation.hpp" +#include "oops/methodOop.hpp" + // A HandlerTableEntry describes an individual entry of a subtable // of ExceptionHandlerTable. An entry consists of a pair(bci, pco), // where bci is the exception handler bci, and pco is the pc offset @@ -154,3 +160,5 @@ void print(address base) const; void verify(nmethod *nm) const; }; + +#endif // SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/icBuffer.cpp --- a/src/share/vm/code/icBuffer.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/icBuffer.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,30 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icBuffer.cpp.incl" +#include "precompiled.hpp" +#include "code/compiledIC.hpp" +#include "code/icBuffer.hpp" +#include "code/nmethod.hpp" +#include "code/scopeDesc.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/resourceArea.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +#endif DEF_STUB_INTERFACE(ICStub); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/icBuffer.hpp --- a/src/share/vm/code/icBuffer.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/icBuffer.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CODE_ICBUFFER_HPP +#define SHARE_VM_CODE_ICBUFFER_HPP + +#include "code/stubs.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.hpp" + // // For CompiledIC's: // @@ -126,3 +133,5 @@ static address ic_destination_for(CompiledIC *ic); static oop cached_oop_for(CompiledIC *ic); }; + +#endif // SHARE_VM_CODE_ICBUFFER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/location.cpp --- a/src/share/vm/code/location.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/location.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_location.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfo.hpp" +#include "code/location.hpp" void Location::print_on(outputStream* st) const { if(type() == invalid) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/location.hpp --- a/src/share/vm/code/location.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/location.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CODE_LOCATION_HPP +#define SHARE_VM_CODE_LOCATION_HPP + +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" +#include "memory/allocation.hpp" + // A Location describes a concrete machine variable location // (such as integer or floating point register or a stack-held // variable). Used when generating debug-information for nmethods. @@ -113,3 +120,5 @@ // check static bool legal_offset_in_bytes(int offset_in_bytes); }; + +#endif // SHARE_VM_CODE_LOCATION_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/nmethod.cpp --- a/src/share/vm/code/nmethod.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/nmethod.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,26 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_nmethod.cpp.incl" +#include "precompiled.hpp" +#include "code/codeCache.hpp" +#include "code/compiledIC.hpp" +#include "code/nmethod.hpp" +#include "code/scopeDesc.hpp" +#include "compiler/abstractCompiler.hpp" +#include "compiler/compileLog.hpp" +#include "compiler/compilerOracle.hpp" +#include "compiler/disassembler.hpp" +#include "interpreter/bytecode.hpp" +#include "oops/methodDataOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/sweeper.hpp" +#include "utilities/dtrace.hpp" +#include "utilities/events.hpp" +#include "utilities/xmlstream.hpp" +#ifdef SHARK +#include "shark/sharkCompiler.hpp" +#endif #ifdef DTRACE_ENABLED diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/nmethod.hpp --- a/src/share/vm/code/nmethod.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/nmethod.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CODE_NMETHOD_HPP +#define SHARE_VM_CODE_NMETHOD_HPP + +#include "code/codeBlob.hpp" +#include "code/pcDesc.hpp" + // This class is used internally by nmethods, to cache // exception/pc/handler information. @@ -704,3 +710,5 @@ lock_nmethod(_nm); } }; + +#endif // SHARE_VM_CODE_NMETHOD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/oopRecorder.cpp --- a/src/share/vm/code/oopRecorder.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/oopRecorder.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_oopRecorder.cpp.incl" +#include "precompiled.hpp" +#include "code/oopRecorder.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" #ifdef ASSERT int OopRecorder::_find_index_calls = 0; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/oopRecorder.hpp --- a/src/share/vm/code/oopRecorder.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/oopRecorder.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CODE_OOPRECORDER_HPP +#define SHARE_VM_CODE_OOPRECORDER_HPP + +#include "runtime/handles.hpp" +#include "utilities/growableArray.hpp" + // Recording and retrieval of oop relocations in compiled code. class CodeBlob; @@ -134,3 +140,5 @@ static int _find_index_calls, _hit_indexes, _missed_indexes; #endif }; + +#endif // SHARE_VM_CODE_OOPRECORDER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/pcDesc.cpp --- a/src/share/vm/code/pcDesc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/pcDesc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_pcDesc.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfoRec.hpp" +#include "code/nmethod.hpp" +#include "code/pcDesc.hpp" +#include "code/scopeDesc.hpp" +#include "memory/resourceArea.hpp" PcDesc::PcDesc(int pc_offset, int scope_decode_offset, int obj_decode_offset) { assert(sizeof(PcDescFlags) <= 4, "occupies more than a word"); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/pcDesc.hpp --- a/src/share/vm/code/pcDesc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/pcDesc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CODE_PCDESC_HPP +#define SHARE_VM_CODE_PCDESC_HPP + +#include "memory/allocation.hpp" + // PcDescs map a physical PC (given as offset from start of nmethod) to // the corresponding source scope and byte code index. @@ -86,3 +91,5 @@ void print(nmethod* code); bool verify(nmethod* code); }; + +#endif // SHARE_VM_CODE_PCDESC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/relocInfo.cpp --- a/src/share/vm/code/relocInfo.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/relocInfo.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,25 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_relocInfo.cpp.incl" +#include "precompiled.hpp" +#include "code/compiledIC.hpp" +#include "code/nmethod.hpp" +#include "code/relocInfo.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "utilities/copy.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +# include "nativeInst_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +# include "nativeInst_zero.hpp" +#endif const RelocationHolder RelocationHolder::none; // its type is relocInfo::none diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/relocInfo.hpp --- a/src/share/vm/code/relocInfo.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/relocInfo.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CODE_RELOCINFO_HPP +#define SHARE_VM_CODE_RELOCINFO_HPP + +#include "memory/allocation.hpp" +#include "utilities/top.hpp" + // Types in this file: // relocInfo // One element of an array of halfwords encoding compressed relocations. @@ -415,7 +421,16 @@ static void remove_reloc_info_for_address(RelocIterator *itr, address pc, relocType old_type); // Machine dependent stuff - #include "incls/_relocInfo_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "relocInfo_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "relocInfo_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "relocInfo_zero.hpp" +#endif + protected: // Derived constant, based on format_width which is PD: @@ -1325,3 +1340,5 @@ ~PatchingRelocIterator() { postpass(); } }; + +#endif // SHARE_VM_CODE_RELOCINFO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/scopeDesc.cpp --- a/src/share/vm/code/scopeDesc.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/scopeDesc.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_scopeDesc.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfoRec.hpp" +#include "code/pcDesc.hpp" +#include "code/scopeDesc.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute, bool return_oop) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/scopeDesc.hpp --- a/src/share/vm/code/scopeDesc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/scopeDesc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CODE_SCOPEDESC_HPP +#define SHARE_VM_CODE_SCOPEDESC_HPP + +#include "code/debugInfo.hpp" +#include "code/pcDesc.hpp" +#include "oops/methodOop.hpp" +#include "utilities/growableArray.hpp" + // SimpleScopeDesc is used when all you need to extract from // a given pc,nmethod pair is a methodOop and a bci. This is // quite a bit faster than allocating a full ScopeDesc, but @@ -125,3 +133,5 @@ void print_value_on(outputStream* st) const; #endif }; + +#endif // SHARE_VM_CODE_SCOPEDESC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/stubs.cpp --- a/src/share/vm/code/stubs.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/stubs.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubs.cpp.incl" +#include "precompiled.hpp" +#include "code/codeBlob.hpp" +#include "code/stubs.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/mutexLocker.hpp" // Implementation of StubQueue diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/stubs.hpp --- a/src/share/vm/code/stubs.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/stubs.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_CODE_STUBS_HPP +#define SHARE_VM_CODE_STUBS_HPP + +#include "memory/allocation.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif + // The classes in this file provide a simple framework for the // management of little pieces of machine code - or stubs - // created on the fly and frequently discarded. In this frame- @@ -206,3 +220,5 @@ void verify(); // verifies the stub queue void print(); // prints information about the stub queue }; + +#endif // SHARE_VM_CODE_STUBS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/vmreg.cpp --- a/src/share/vm/code/vmreg.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/vmreg.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vmreg.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" // First VMReg value that could refer to a stack slot VMReg VMRegImpl::stack0 = (VMReg)(intptr_t)((ConcreteRegisterImpl::number_of_registers + 1) & ~1); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/vmreg.hpp --- a/src/share/vm/code/vmreg.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/vmreg.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,37 @@ * */ +#ifndef SHARE_VM_CODE_VMREG_HPP +#define SHARE_VM_CODE_VMREG_HPP + +#include "memory/allocation.hpp" +#include "utilities/globalDefinitions.hpp" +#ifdef TARGET_ARCH_x86 +# include "register_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "register_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "register_zero.hpp" +#endif +#ifdef COMPILER2 +#include "opto/adlcVMDeps.hpp" +#include "utilities/ostream.hpp" +#ifdef TARGET_ARCH_MODEL_x86_32 +# include "adfiles/adGlobals_x86_32.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_x86_64 +# include "adfiles/adGlobals_x86_64.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_sparc +# include "adfiles/adGlobals_sparc.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_zero +# include "adfiles/adGlobals_zero.hpp" +#endif +#endif + //------------------------------VMReg------------------------------------------ // The VM uses 'unwarped' stack slots; the compiler uses 'warped' stack slots. // Register numbers below VMRegImpl::stack0 are the same for both. Register @@ -124,7 +155,16 @@ static void set_regName(); -#include "incls/_vmreg_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "vmreg_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "vmreg_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "vmreg_zero.hpp" +#endif + }; @@ -181,3 +221,5 @@ VMRegPair(VMReg f) { _second = VMRegImpl::Bad(); _first = f; } VMRegPair() { _second = VMRegImpl::Bad(); _first = VMRegImpl::Bad(); } }; + +#endif // SHARE_VM_CODE_VMREG_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/vtableStubs.cpp --- a/src/share/vm/code/vtableStubs.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/vtableStubs.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,22 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs.cpp.incl" +#include "precompiled.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/disassembler.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "oops/oop.inline.hpp" +#include "prims/forte.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef COMPILER2 +#include "opto/matcher.hpp" +#endif // ----------------------------------------------------------------------------------------- // Implementation of VtableStub diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/code/vtableStubs.hpp --- a/src/share/vm/code/vtableStubs.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/code/vtableStubs.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CODE_VTABLESTUBS_HPP +#define SHARE_VM_CODE_VTABLESTUBS_HPP + +#include "memory/allocation.hpp" + // A VtableStub holds an individual code stub for a pair (vtable index, #args) for either itables or vtables // There's a one-to-one relationship between a VtableStub and such a pair. @@ -121,3 +126,5 @@ static int number_of_vtable_stubs() { return _number_of_vtable_stubs; } static void initialize(); }; + +#endif // SHARE_VM_CODE_VTABLESTUBS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/abstractCompiler.cpp --- a/src/share/vm/compiler/abstractCompiler.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/abstractCompiler.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ // -// Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. +// Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it @@ -21,9 +21,10 @@ // questions. // -#include "incls/_precompiled.incl" -#include "incls/_abstractCompiler.cpp.incl" +#include "precompiled.hpp" +#include "compiler/abstractCompiler.hpp" +#include "runtime/mutexLocker.hpp" void AbstractCompiler::initialize_runtimes(initializer f, volatile int* state) { if (*state != initialized) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/abstractCompiler.hpp --- a/src/share/vm/compiler/abstractCompiler.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/abstractCompiler.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP +#define SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP + +#include "ci/compilerInterface.hpp" + typedef void (*initializer)(void); class AbstractCompiler : public CHeapObj { @@ -88,3 +93,5 @@ ShouldNotReachHere(); } }; + +#endif // SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/compileBroker.cpp --- a/src/share/vm/compiler/compileBroker.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/compileBroker.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,37 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compileBroker.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/codeCache.hpp" +#include "compiler/compileBroker.hpp" +#include "compiler/compileLog.hpp" +#include "compiler/compilerOracle.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/nativeLookup.hpp" +#include "runtime/arguments.hpp" +#include "runtime/compilationPolicy.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/os.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/sweeper.hpp" +#include "utilities/dtrace.hpp" +#ifdef COMPILER1 +#include "c1/c1_Compiler.hpp" +#endif +#ifdef COMPILER2 +#include "opto/c2compiler.hpp" +#endif +#ifdef SHARK +#include "shark/sharkCompiler.hpp" +#endif #ifdef DTRACE_ENABLED @@ -522,6 +551,7 @@ void CompileBroker::compilation_init() { _last_method_compiled[0] = '\0'; +#ifndef SHARK // Set the interface to the current compiler(s). int c1_count = CompilationPolicy::policy()->compiler_count(CompLevel_simple); int c2_count = CompilationPolicy::policy()->compiler_count(CompLevel_full_optimization); @@ -537,13 +567,12 @@ } #endif // COMPILER2 -#ifdef SHARK -#if defined(COMPILER1) || defined(COMPILER2) -#error "Can't use COMPILER1 or COMPILER2 with shark" -#endif - _compilers[0] = new SharkCompiler(); - _compilers[1] = _compilers[0]; -#endif +#else // SHARK + int c1_count = 0; + int c2_count = 1; + + _compilers[1] = new SharkCompiler(); +#endif // SHARK // Initialize the CompileTask free list _task_free_list = NULL; @@ -1535,7 +1564,7 @@ //assert(false, "compiler should always document failure"); // The compiler elected, without comment, not to register a result. // Do not attempt further compilations of this method. - ci_env.record_method_not_compilable("compile failed"); + ci_env.record_method_not_compilable("compile failed", !TieredCompilation); } if (ci_env.failing()) { @@ -1544,15 +1573,8 @@ if (PrintCompilation) { const char* reason = ci_env.failure_reason(); if (compilable == ciEnv::MethodCompilable_not_at_tier) { - if (is_highest_tier_compile(ci_env.comp_level())) { - // Already at highest tier, promote to not compilable. - compilable = ciEnv::MethodCompilable_never; - } else { tty->print_cr("%3d COMPILE SKIPPED: %s (retry at different tier)", compile_id, reason); - } - } - - if (compilable == ciEnv::MethodCompilable_never) { + } else if (compilable == ciEnv::MethodCompilable_never) { tty->print_cr("%3d COMPILE SKIPPED: %s (not retryable)", compile_id, reason); } else if (compilable == ciEnv::MethodCompilable) { tty->print_cr("%3d COMPILE SKIPPED: %s", compile_id, reason); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/compileBroker.hpp --- a/src/share/vm/compiler/compileBroker.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/compileBroker.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_COMPILER_COMPILEBROKER_HPP +#define SHARE_VM_COMPILER_COMPILEBROKER_HPP + +#include "ci/compilerInterface.hpp" +#include "compiler/abstractCompiler.hpp" +#include "runtime/perfData.hpp" + class nmethod; class nmethodLocker; @@ -380,3 +387,5 @@ static void print_compiler_threads_on(outputStream* st); }; + +#endif // SHARE_VM_COMPILER_COMPILEBROKER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/compileLog.cpp --- a/src/share/vm/compiler/compileLog.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/compileLog.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compileLog.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciMethod.hpp" +#include "compiler/compileLog.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/methodOop.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" CompileLog* CompileLog::_first = NULL; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/compileLog.hpp --- a/src/share/vm/compiler/compileLog.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/compileLog.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_COMPILER_COMPILELOG_HPP +#define SHARE_VM_COMPILER_COMPILELOG_HPP + +#include "utilities/xmlstream.hpp" + class ciObject; class ciSymbol; @@ -75,3 +80,5 @@ static void finish_log(outputStream* out); static void finish_log_on_error(outputStream* out, char *buf, int buflen); }; + +#endif // SHARE_VM_COMPILER_COMPILELOG_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/compilerOracle.cpp --- a/src/share/vm/compiler/compilerOracle.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/compilerOracle.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compilerOracle.cpp.incl" +#include "precompiled.hpp" +#include "compiler/compilerOracle.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/oopFactory.hpp" +#include "memory/resourceArea.hpp" +#include "oops/klass.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/jniHandles.hpp" class MethodMatcher : public CHeapObj { public: diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/compilerOracle.hpp --- a/src/share/vm/compiler/compilerOracle.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/compilerOracle.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_COMPILER_COMPILERORACLE_HPP +#define SHARE_VM_COMPILER_COMPILERORACLE_HPP + +#include "memory/allocation.hpp" +#include "oops/oopsHierarchy.hpp" + // CompilerOracle is an interface for turning on and off compilation // for some methods @@ -66,3 +72,5 @@ static void append_comment_to_file(const char* message); static void append_exclude_to_file(methodHandle method); }; + +#endif // SHARE_VM_COMPILER_COMPILERORACLE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/disassembler.cpp --- a/src/share/vm/compiler/disassembler.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/disassembler.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,29 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_disassembler.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "code/codeCache.hpp" +#include "compiler/disassembler.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_ARCH_x86 +# include "depChecker_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "depChecker_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "depChecker_zero.hpp" +#endif +#ifdef SHARK +#include "shark/sharkEntry.hpp" +#endif void* Disassembler::_library = NULL; bool Disassembler::_tried_to_load_library = false; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/disassembler.hpp --- a/src/share/vm/compiler/disassembler.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/disassembler.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_COMPILER_DISASSEMBLER_HPP +#define SHARE_VM_COMPILER_DISASSEMBLER_HPP + +#include "runtime/globals.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif + class decode_env; // The disassembler prints out assembly code annotated @@ -47,7 +61,16 @@ static bool load_library(); // Machine dependent stuff - #include "incls/_disassembler_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "disassembler_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "disassembler_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "disassembler_zero.hpp" +#endif + public: static bool can_decode() { @@ -57,3 +80,5 @@ static void decode(nmethod* nm, outputStream* st = NULL); static void decode(address begin, address end, outputStream* st = NULL); }; + +#endif // SHARE_VM_COMPILER_DISASSEMBLER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/methodLiveness.cpp --- a/src/share/vm/compiler/methodLiveness.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/methodLiveness.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#include "precompiled.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodBlocks.hpp" +#include "ci/ciStreams.hpp" +#include "compiler/methodLiveness.hpp" +#include "interpreter/bytecode.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.inline.hpp" +#include "utilities/bitMap.inline.hpp" + // The MethodLiveness class performs a simple liveness analysis on a method // in order to decide which locals are live (that is, will be used again) at // a particular bytecode index (bci). @@ -60,9 +70,6 @@ // analysis. -# include "incls/_precompiled.incl" -# include "incls/_methodLiveness.cpp.incl" - //-------------------------------------------------------------------------- // The BitCounter class is used for counting the number of bits set in // some BitMap. It is only used when collecting liveness statistics. diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/methodLiveness.hpp --- a/src/share/vm/compiler/methodLiveness.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/methodLiveness.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_COMPILER_METHODLIVENESS_HPP +#define SHARE_VM_COMPILER_METHODLIVENESS_HPP + +#include "utilities/bitMap.hpp" +#include "utilities/growableArray.hpp" + class ciMethod; class MethodLivenessResult : public BitMap { @@ -269,3 +275,5 @@ static void print_times() PRODUCT_RETURN; }; + +#endif // SHARE_VM_COMPILER_METHODLIVENESS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/oopMap.cpp --- a/src/share/vm/compiler/oopMap.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/oopMap.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_oopMap.cpp.incl" +#include "precompiled.hpp" +#include "code/codeBlob.hpp" +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#include "code/scopeDesc.hpp" +#include "compiler/oopMap.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/signature.hpp" +#ifdef COMPILER1 +#include "c1/c1_Defs.hpp" +#endif // OopMapStream diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/compiler/oopMap.hpp --- a/src/share/vm/compiler/oopMap.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/compiler/oopMap.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_COMPILER_OOPMAP_HPP +#define SHARE_VM_COMPILER_OOPMAP_HPP + +#include "code/compressedStream.hpp" +#include "code/vmreg.hpp" +#include "memory/allocation.hpp" +#include "utilities/growableArray.hpp" + // Interface for generating the frame map for compiled code. A frame map // describes for a specific pc whether each register and frame stack slot is: // Oop - A GC root for current frame @@ -315,3 +323,5 @@ } }; #endif // COMPILER2 + +#endif // SHARE_VM_COMPILER_OOPMAP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_binaryTreeDictionary.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp" +#include "gc_implementation/shared/allocationStats.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/space.inline.hpp" +#include "runtime/globals.hpp" +#include "utilities/ostream.hpp" //////////////////////////////////////////////////////////////////////////////// // A binary tree based search structure for free blocks. diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_BINARYTREEDICTIONARY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_BINARYTREEDICTIONARY_HPP + +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#include "gc_implementation/concurrentMarkSweep/freeList.hpp" + /* * A binary tree based search structure for free blocks. * This is currently used in the Concurrent Mark&Sweep implementation. @@ -286,3 +292,5 @@ void verify() const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_BINARYTREEDICTIONARY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,9 +21,22 @@ * questions. * */ -#include "incls/_precompiled.incl" -#include "incls/_cmsAdaptiveSizePolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "memory/defNewGeneration.hpp" +#include "memory/genCollectedHeap.hpp" +#include "runtime/thread.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif elapsedTimer CMSAdaptiveSizePolicy::_concurrent_timer; elapsedTimer CMSAdaptiveSizePolicy::_STW_timer; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSADAPTIVESIZEPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSADAPTIVESIZEPOLICY_HPP + +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "runtime/timer.hpp" + // This class keeps statistical information and computes the // size of the heap for the concurrent mark sweep collector. // @@ -467,3 +473,5 @@ // Printing support virtual bool print_adaptive_size_policy_on(outputStream* st) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSADAPTIVESIZEPOLICY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,34 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cmsCollectorPolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "memory/cardTableRS.hpp" +#include "memory/collectorPolicy.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/generationSpec.hpp" +#include "memory/space.hpp" +#include "memory/universe.hpp" +#include "runtime/arguments.hpp" +#include "runtime/globals_extension.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/vmThread.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // // ConcurrentMarkSweepPolicy methods diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSCOLLECTORPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSCOLLECTORPOLICY_HPP + +#include "memory/collectorPolicy.hpp" + class ConcurrentMarkSweepPolicy : public TwoGenerationCollectorPolicy { protected: void initialize_generations(); @@ -55,3 +60,5 @@ return CollectorPolicy::ASConcurrentMarkSweepPolicyKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSCOLLECTORPOLICY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cmsGCAdaptivePolicyCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp" +#include "memory/resourceArea.hpp" CMSGCAdaptivePolicyCounters::CMSGCAdaptivePolicyCounters(const char* name_arg, int collectors, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSGCADAPTIVEPOLICYCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSGCADAPTIVEPOLICYCOUNTERS_HPP + +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcAdaptivePolicyCounters.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "runtime/perfData.hpp" + // CMSGCAdaptivePolicyCounters is a holder class for performance counters // that track the data and decisions for the ergonomics policy for the // concurrent mark sweep collector @@ -298,3 +306,5 @@ return GCPolicyCounters::CMSGCAdaptivePolicyCountersKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSGCADAPTIVEPOLICYCOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cmsLockVerifier.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "runtime/vmThread.hpp" ///////////// Locking verification specific to CMS ////////////// // Much like "assert_lock_strong()", except that it relaxes the diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSLOCKVERIFIER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSLOCKVERIFIER_HPP + +#include "runtime/mutex.hpp" + ///////////// Locking verification specific to CMS ////////////// // Much like "assert_lock_strong()", except // that it relaxes the assertion somewhat for the parallel GC case, where @@ -38,3 +43,5 @@ assert_locked(lock, NULL); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSLOCKVERIFIER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_HPP + +#include "memory/genOopClosures.hpp" + ///////////////////////////////////////////////////////////////// // Closures used by ConcurrentMarkSweepGeneration's collector ///////////////////////////////////////////////////////////////// @@ -427,3 +432,5 @@ inline void do_oop_nv(oop* p) { CMSParKeepAliveClosure::do_oop_work(p); } inline void do_oop_nv(narrowOop* p) { CMSParKeepAliveClosure::do_oop_work(p); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_INLINE_HPP + +#include "gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" + // Trim our work_queue so its length is below max at return inline void Par_MarkRefsIntoAndScanClosure::trim_queue(uint max) { while (_work_queue->size() > max) { @@ -74,3 +80,5 @@ inline void Par_PushOrMarkClosure::do_yield_check() { _parent->do_yield_check(); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cmsPermGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsPermGen.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/shared/cSpaceCounters.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "memory/blockOffsetTable.inline.hpp" +#include "memory/compactPermGen.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/generation.inline.hpp" +#include "memory/permGen.hpp" +#include "memory/universe.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" CMSPermGen::CMSPermGen(ReservedSpace rs, size_t initial_byte_size, CardTableRS* ct, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSPERMGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSPERMGEN_HPP + +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "memory/permGen.hpp" + class CardTableRS; // fwd decl class ConcurrentMarkSweepGeneration; @@ -75,3 +81,5 @@ bool must_be_youngest() const { return false; } bool must_be_oldest() const { return false; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSPERMGEN_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,25 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_compactibleFreeListSpace.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp" +#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "gc_implementation/shared/liveRange.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/blockOffsetTable.inline.hpp" +#include "memory/resourceArea.hpp" +#include "memory/universe.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/globals.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/init.hpp" +#include "runtime/java.hpp" +#include "runtime/vmThread.hpp" +#include "utilities/copy.hpp" ///////////////////////////////////////////////////////////////////////// //// CompactibleFreeListSpace @@ -1093,7 +1110,9 @@ // perm_gen_verify_bit_map where we store the "deadness" information if // we did not sweep the perm gen in the most recent previous GC cycle. bool CompactibleFreeListSpace::obj_is_alive(const HeapWord* p) const { - assert (block_is_obj(p), "The address should point to an object"); + assert(SafepointSynchronize::is_at_safepoint() || !is_init_completed(), + "Else races are possible"); + assert(block_is_obj(p), "The address should point to an object"); // If we're sweeping, we use object liveness information from the main bit map // for both perm gen and old gen. @@ -1102,9 +1121,14 @@ // main marking bit map (live_map below) is locked, // OR we're in other phases and perm_gen_verify_bit_map (dead_map below) // is stable, because it's mutated only in the sweeping phase. + // NOTE: This method is also used by jmap where, if class unloading is + // off, the results can return "false" for legitimate perm objects, + // when we are not in the midst of a sweeping phase, which can result + // in jmap not reporting certain perm gen objects. This will be moot + // if/when the perm gen goes away in the future. if (_collector->abstract_state() == CMSCollector::Sweeping) { CMSBitMap* live_map = _collector->markBitMap(); - return live_map->isMarked((HeapWord*) p); + return live_map->par_isMarked((HeapWord*) p); } else { // If we're not currently sweeping and we haven't swept the perm gen in // the previous concurrent cycle then we may have dead but unswept objects @@ -2266,7 +2290,7 @@ } void CompactibleFreeListSpace::print() const { - Space::print_on(tty); + print_on(tty); } void CompactibleFreeListSpace::prepare_for_verify() { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_COMPACTIBLEFREELISTSPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_COMPACTIBLEFREELISTSPACE_HPP + +#include "gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp" +#include "gc_implementation/concurrentMarkSweep/freeList.hpp" +#include "gc_implementation/concurrentMarkSweep/promotionInfo.hpp" +#include "memory/blockOffsetTable.inline.hpp" +#include "memory/space.hpp" + // Classes in support of keeping track of promotions into a non-Contiguous // space, in this case a CompactibleFreeListSpace. @@ -646,3 +655,5 @@ * CMSSpoolBlockSize); return CompactibleFreeListSpace::adjustObjectSize(sz); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_COMPACTIBLEFREELISTSPACE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,39 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_concurrentMarkSweepGeneration.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp" +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/shared/collectorCounters.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "memory/cardTableRS.hpp" +#include "memory/collectorPolicy.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/genMarkSweep.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/iterator.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/globals_extension.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/vmThread.hpp" +#include "services/memoryService.hpp" +#include "services/runtimeService.hpp" // statics CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL; @@ -354,12 +385,8 @@ double CMSStats::time_until_cms_gen_full() const { size_t cms_free = _cms_gen->cmsSpace()->free(); GenCollectedHeap* gch = GenCollectedHeap::heap(); - size_t expected_promotion = gch->get_gen(0)->capacity(); - if (HandlePromotionFailure) { - expected_promotion = MIN2( - (size_t) _cms_gen->gc_stats()->avg_promoted()->padded_average(), - expected_promotion); - } + size_t expected_promotion = MIN2(gch->get_gen(0)->capacity(), + (size_t) _cms_gen->gc_stats()->avg_promoted()->padded_average()); if (cms_free > expected_promotion) { // Start a cms collection if there isn't enough space to promote // for the next minor collection. Use the padded average as @@ -865,57 +892,18 @@ return free() + _virtual_space.uncommitted_size(); } -bool ConcurrentMarkSweepGeneration::promotion_attempt_is_safe( - size_t max_promotion_in_bytes, - bool younger_handles_promotion_failure) const { - - // This is the most conservative test. Full promotion is - // guaranteed if this is used. The multiplicative factor is to - // account for the worst case "dilatation". - double adjusted_max_promo_bytes = _dilatation_factor * max_promotion_in_bytes; - if (adjusted_max_promo_bytes > (double)max_uintx) { // larger than size_t - adjusted_max_promo_bytes = (double)max_uintx; - } - bool result = (max_contiguous_available() >= (size_t)adjusted_max_promo_bytes); - - if (younger_handles_promotion_failure && !result) { - // Full promotion is not guaranteed because fragmentation - // of the cms generation can prevent the full promotion. - result = (max_available() >= (size_t)adjusted_max_promo_bytes); - - if (!result) { - // With promotion failure handling the test for the ability - // to support the promotion does not have to be guaranteed. - // Use an average of the amount promoted. - result = max_available() >= (size_t) - gc_stats()->avg_promoted()->padded_average(); - if (PrintGC && Verbose && result) { - gclog_or_tty->print_cr( - "\nConcurrentMarkSweepGeneration::promotion_attempt_is_safe" - " max_available: " SIZE_FORMAT - " avg_promoted: " SIZE_FORMAT, - max_available(), (size_t) - gc_stats()->avg_promoted()->padded_average()); - } - } else { - if (PrintGC && Verbose) { - gclog_or_tty->print_cr( - "\nConcurrentMarkSweepGeneration::promotion_attempt_is_safe" - " max_available: " SIZE_FORMAT - " adj_max_promo_bytes: " SIZE_FORMAT, - max_available(), (size_t)adjusted_max_promo_bytes); - } - } - } else { - if (PrintGC && Verbose) { - gclog_or_tty->print_cr( - "\nConcurrentMarkSweepGeneration::promotion_attempt_is_safe" - " contiguous_available: " SIZE_FORMAT - " adj_max_promo_bytes: " SIZE_FORMAT, - max_contiguous_available(), (size_t)adjusted_max_promo_bytes); - } - } - return result; +bool ConcurrentMarkSweepGeneration::promotion_attempt_is_safe(size_t max_promotion_in_bytes) const { + size_t available = max_available(); + size_t av_promo = (size_t)gc_stats()->avg_promoted()->padded_average(); + bool res = (available >= av_promo) || (available >= max_promotion_in_bytes); + if (PrintGC && Verbose) { + gclog_or_tty->print_cr( + "CMS: promo attempt is%s safe: available("SIZE_FORMAT") %s av_promo("SIZE_FORMAT")," + "max_promo("SIZE_FORMAT")", + res? "":" not", available, res? ">=":"<", + av_promo, max_promotion_in_bytes); + } + return res; } // At a promotion failure dump information on block layout in heap @@ -6091,23 +6079,14 @@ assert(_collectorState == Resizing, "Change of collector state to" " Resizing must be done under the freelistLocks (plural)"); - // Now that sweeping has been completed, if the GCH's - // incremental_collection_will_fail flag is set, clear it, + // Now that sweeping has been completed, we clear + // the incremental_collection_failed flag, // thus inviting a younger gen collection to promote into // this generation. If such a promotion may still fail, // the flag will be set again when a young collection is // attempted. - // I think the incremental_collection_will_fail flag's use - // is specific to a 2 generation collection policy, so i'll - // assert that that's the configuration we are operating within. - // The use of the flag can and should be generalized appropriately - // in the future to deal with a general n-generation system. - GenCollectedHeap* gch = GenCollectedHeap::heap(); - assert(gch->collector_policy()->is_two_generation_policy(), - "Resetting of incremental_collection_will_fail flag" - " may be incorrect otherwise"); - gch->clear_incremental_collection_will_fail(); + gch->clear_incremental_collection_failed(); // Worth retrying as fresh space may have been freed up gch->update_full_collections_completed(_collection_count_start); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,22 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_HPP + +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#include "gc_implementation/shared/gSpaceCounters.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "memory/generation.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/virtualspace.hpp" +#include "services/memoryService.hpp" +#include "utilities/bitMap.inline.hpp" +#include "utilities/stack.inline.hpp" +#include "utilities/taskqueue.hpp" +#include "utilities/yieldingWorkgroup.hpp" + // ConcurrentMarkSweepGeneration is in support of a concurrent // mark-sweep old generation in the Detlefs-Printezis--Boehm-Demers-Schenker // style. We assume, for now, that this generation is always the @@ -1185,8 +1201,7 @@ virtual void par_promote_alloc_done(int thread_num); virtual void par_oop_since_save_marks_iterate_done(int thread_num); - virtual bool promotion_attempt_is_safe(size_t promotion_in_bytes, - bool younger_handles_promotion_failure) const; + virtual bool promotion_attempt_is_safe(size_t promotion_in_bytes) const; // Inform this (non-young) generation that a promotion failure was // encountered during a collection of a younger generation that @@ -1883,3 +1898,5 @@ TraceCMSMemoryManagerStats(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP + +#include "gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp" +#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "memory/defNewGeneration.hpp" + inline void CMSBitMap::clear_all() { assert_locked(); // CMS bitmaps are usually cover large memory regions @@ -505,3 +515,5 @@ CardTableModRefBS::card_size /* bytes */)); _t->par_mark_range(mr2); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_concurrentMarkSweepThread.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "memory/genCollectedHeap.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" +#include "runtime/vmThread.hpp" // ======= Concurrent Mark Sweep Thread ======== @@ -272,12 +284,16 @@ } } -// Wait until the next synchronous GC or a timeout, whichever is earlier. -void ConcurrentMarkSweepThread::wait_on_cms_lock(long t) { +// Wait until the next synchronous GC, a concurrent full gc request, +// or a timeout, whichever is earlier. +void ConcurrentMarkSweepThread::wait_on_cms_lock(long t_millis) { MutexLockerEx x(CGC_lock, Mutex::_no_safepoint_check_flag); + if (_should_terminate || _collector->_full_gc_requested) { + return; + } set_CMS_flag(CMS_cms_wants_token); // to provoke notifies - CGC_lock->wait(Mutex::_no_safepoint_check_flag, t); + CGC_lock->wait(Mutex::_no_safepoint_check_flag, t_millis); clear_CMS_flag(CMS_cms_wants_token); assert(!CMS_flag_is_set(CMS_cms_has_token | CMS_cms_wants_token), "Should not be set"); @@ -289,7 +305,8 @@ icms_wait(); return; } else { - // Wait until the next synchronous GC or a timeout, whichever is earlier + // Wait until the next synchronous GC, a concurrent full gc + // request or a timeout, whichever is earlier. wait_on_cms_lock(CMSWaitDuration); } // Check if we should start a CMS collection cycle diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,21 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPTHREAD_HPP + +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "gc_implementation/shared/concurrentGCThread.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif + class ConcurrentMarkSweepGeneration; class CMSCollector; @@ -120,8 +135,10 @@ } // Wait on CMS lock until the next synchronous GC - // or given timeout, whichever is earlier. - void wait_on_cms_lock(long t); // milliseconds + // or given timeout, whichever is earlier. A timeout value + // of 0 indicates that there is no upper bound on the wait time. + // A concurrent full gc request terminates the wait. + void wait_on_cms_lock(long t_millis); // The CMS thread will yield during the work portion of its cycle // only when requested to. Both synchronous and asychronous requests @@ -249,3 +266,5 @@ } } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPTHREAD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,17 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_freeBlockDictionary.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif #ifndef PRODUCT Mutex* FreeBlockDictionary::par_lock() const { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREEBLOCKDICTIONARY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREEBLOCKDICTIONARY_HPP + +#include "gc_implementation/concurrentMarkSweep/freeChunk.hpp" +#include "memory/allocation.hpp" +#include "memory/memRegion.hpp" +#include "runtime/mutex.hpp" +#include "utilities/debug.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/ostream.hpp" + // A FreeBlockDictionary is an abstract superclass that will allow // a number of alternative implementations in the future. class FreeBlockDictionary: public CHeapObj { @@ -88,3 +99,5 @@ void set_par_lock(Mutex* lock) PRODUCT_RETURN; void verify_par_locked() const PRODUCT_RETURN; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREEBLOCKDICTIONARY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_freeChunk.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#include "utilities/copy.hpp" #ifndef PRODUCT diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREECHUNK_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREECHUNK_HPP + +#include "memory/allocation.hpp" +#include "memory/memRegion.hpp" +#include "oops/markOop.hpp" +#include "runtime/mutex.hpp" +#include "utilities/debug.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/ostream.hpp" + // // Free block maintenance for Concurrent Mark Sweep Generation // @@ -141,3 +152,5 @@ extern size_t MinChunkSize; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREECHUNK_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_freeList.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#include "gc_implementation/concurrentMarkSweep/freeList.hpp" +#include "memory/sharedHeap.hpp" +#include "runtime/globals.hpp" +#include "runtime/mutex.hpp" +#include "runtime/vmThread.hpp" // Free list. A FreeList is used to access a linked list of chunks // of space in the heap. The head and tail are maintained so that diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREELIST_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREELIST_HPP + +#include "gc_implementation/shared/allocationStats.hpp" + class CompactibleFreeListSpace; // A class for maintaining a free list of FreeChunk's. The FreeList @@ -326,3 +331,5 @@ static void print_labels_on(outputStream* st, const char* c); void print_on(outputStream* st, const char* c = NULL) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREELIST_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_promotionInfo.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" +#include "gc_implementation/concurrentMarkSweep/promotionInfo.hpp" +#include "oops/markOop.inline.hpp" +#include "oops/oop.inline.hpp" ///////////////////////////////////////////////////////////////////////// //// PromotionInfo diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_PROMOTIONINFO_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_PROMOTIONINFO_HPP + +#include "gc_implementation/concurrentMarkSweep/freeChunk.hpp" +#include "memory/allocation.hpp" + // Forward declarations class CompactibleFreeListSpace; @@ -204,3 +210,5 @@ void print_statistics(uint worker_id) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_PROMOTIONINFO_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,9 +21,15 @@ * questions. * */ -# include "incls/_precompiled.incl" -# include "incls/_vmCMSOperations.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "memory/gcLocker.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "utilities/dtrace.hpp" HS_DTRACE_PROBE_DECL(hs_private, cms__initmark__begin); HS_DTRACE_PROBE_DECL(hs_private, cms__initmark__end); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMCMSOPERATIONS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMCMSOPERATIONS_HPP + +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "gc_interface/gcCause.hpp" +#include "runtime/vm_operations.hpp" + // The VM_CMS_Operation is slightly different from // a VM_GC_Operation -- and would not have subclassed easily // to VM_GC_Operation without several changes to VM_GC_Operation. @@ -136,3 +144,5 @@ virtual bool is_cheap_allocated() const { return false; } virtual bool evaluate_at_safepoint() const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMCMSOPERATIONS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP + #define VM_STRUCTS_CMS(nonstatic_field, \ volatile_nonstatic_field, \ static_field) \ @@ -78,3 +81,5 @@ #define VM_INT_CONSTANTS_CMS(declare_constant) \ declare_constant(Generation::ConcurrentMarkSweep) \ declare_constant(PermGen::ConcurrentMarkSweep) + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp --- a/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_BUFFERINGOOPCLOSURE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_BUFFERINGOOPCLOSURE_HPP + +#include "memory/genOopClosures.hpp" +#include "memory/generation.hpp" +#include "runtime/os.hpp" +#include "utilities/taskqueue.hpp" + // A BufferingOops closure tries to separate out the cost of finding roots // from the cost of applying closures to them. It maintains an array of // ref-containing locations. Until the array is full, applying the closure @@ -201,3 +209,5 @@ _hr_curr(_hr_buffer), _closure_app_seconds(0.0) { } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_BUFFERINGOOPCLOSURE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/collectionSetChooser.cpp --- a/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_collectionSetChooser.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/collectionSetChooser.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "memory/space.inline.hpp" CSetChooserCache::CSetChooserCache() { for (int i = 0; i < CacheLength; ++i) diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/collectionSetChooser.hpp --- a/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_COLLECTIONSETCHOOSER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_COLLECTIONSETCHOOSER_HPP + +#include "gc_implementation/g1/heapRegion.hpp" +#include "utilities/growableArray.hpp" + // We need to sort heap regions by collection desirability. class CSetChooserCache VALUE_OBJ_CLASS_SPEC { @@ -136,3 +142,5 @@ #endif }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_COLLECTIONSETCHOOSER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp --- a/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentG1Refine.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentG1RefineThread.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1RemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/space.inline.hpp" +#include "runtime/atomic.hpp" +#include "utilities/copy.hpp" // Possible sizes for the card counts cache: odd primes that roughly double in size. // (See jvmtiTagMap.cpp). diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp --- a/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINE_HPP + +#include "memory/allocation.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "runtime/thread.hpp" +#include "utilities/globalDefinitions.hpp" + // Forward decl class ConcurrentG1RefineThread; class G1RemSet; @@ -223,3 +231,5 @@ int thread_threshold_step() const { return _thread_threshold_step; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp --- a/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentG1RefineThread.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentG1RefineThread.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" ConcurrentG1RefineThread:: ConcurrentG1RefineThread(ConcurrentG1Refine* cg1r, ConcurrentG1RefineThread *next, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp --- a/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP + +#include "gc_implementation/shared/concurrentGCThread.hpp" + // Forward Decl. class ConcurrentG1Refine; @@ -84,3 +89,5 @@ // shutdown void stop(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentMark.cpp --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,21 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentMark.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/concurrentMarkThread.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1RemSet.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" // // CMS Bit Map Wrapper @@ -2418,6 +2431,8 @@ for (int i = 0; i < (int)_max_task_num; ++i) { OopTaskQueue* queue = _task_queues->queue(i); queue->set_empty(); + // Clear any partial regions from the CMTasks + _tasks[i]->clear_aborted_region(); } } @@ -2706,7 +2721,6 @@ clear_marking_state(); for (int i = 0; i < (int)_max_task_num; ++i) { _tasks[i]->clear_region_fields(); - _tasks[i]->clear_aborted_region(); } _has_aborted = true; @@ -2985,7 +2999,7 @@ _nextMarkBitMap = nextMarkBitMap; clear_region_fields(); - clear_aborted_region(); + assert(_aborted_region.is_empty(), "should have been cleared"); _calls = 0; _elapsed_time_ms = 0.0; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentMark.hpp --- a/src/share/vm/gc_implementation/g1/concurrentMark.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP + +#include "gc_implementation/g1/heapRegion.hpp" +#include "utilities/taskqueue.hpp" + class G1CollectedHeap; class CMTask; typedef GenericTaskQueue CMTaskQueue; @@ -1120,3 +1126,5 @@ void increase_objs_found_on_bitmap() { ++_objs_found_on_bitmap; } #endif // _MARKING_STATS_ }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp --- a/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentMarkThread.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentMarkThread.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1MMUTracker.hpp" +#include "gc_implementation/g1/vm_operations_g1.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/vmThread.hpp" // ======= Concurrent Mark Thread ======== diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp --- a/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_HPP + +#include "gc_implementation/shared/concurrentGCThread.hpp" + // The Concurrent Mark GC Thread (could be several in the future). // This is copied from the Concurrent Mark Sweep GC Thread // Still under construction. @@ -93,3 +98,5 @@ // shutdown void stop(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentMarkThread.inline.hpp --- a/src/share/vm/gc_implementation/g1/concurrentMarkThread.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentMarkThread.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_INLINE_HPP + +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/concurrentMarkThread.hpp" + // Total virtual time so far. inline double ConcurrentMarkThread::vtime_accum() { return _vtime_accum + _cm->all_task_accum_vtime(); @@ -31,3 +37,5 @@ inline double ConcurrentMarkThread::vtime_mark_accum() { return _vtime_mark_accum + _cm->all_task_accum_vtime(); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentZFThread.cpp --- a/src/share/vm/gc_implementation/g1/concurrentZFThread.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentZFThread.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentZFThread.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentZFThread.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "memory/space.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "utilities/copy.hpp" // ======= Concurrent Zero-Fill Thread ======== diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/concurrentZFThread.hpp --- a/src/share/vm/gc_implementation/g1/concurrentZFThread.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentZFThread.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTZFTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTZFTHREAD_HPP + +#include "gc_implementation/shared/concurrentGCThread.hpp" + // The Concurrent ZF Thread. Performs concurrent zero-filling. class ConcurrentZFThread: public ConcurrentGCThread { @@ -82,3 +87,5 @@ static void print_summary_info(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTZFTHREAD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp --- a/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,23 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dirtyCardQueue.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/dirtyCardQueue.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "runtime/atomic.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/thread.hpp" +#include "utilities/workgroup.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif bool DirtyCardQueue::apply_closure(CardTableEntryClosure* cl, bool consume, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp --- a/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP + +#include "gc_implementation/g1/ptrQueue.hpp" +#include "memory/allocation.hpp" + class FreeIdSet; // A closure class for processing card table entries. Note that we don't @@ -168,3 +174,5 @@ } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp --- a/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1BlockOffsetTable.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "memory/space.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" ////////////////////////////////////////////////////////////////////// // G1BlockOffsetSharedArray @@ -175,7 +178,7 @@ } assert(start_card > _array->index_for(_bottom), "Cannot be first card"); assert(_array->offset_array(start_card-1) <= N_words, - "Offset card has an unexpected value"); + "Offset card has an unexpected value"); size_t start_card_for_region = start_card; u_char offset = max_jubyte; for (int i = 0; i < BlockOffsetArray::N_powers; i++) { @@ -577,6 +580,16 @@ #endif } +void +G1BlockOffsetArray::set_for_starts_humongous(HeapWord* new_end) { + assert(_end == new_end, "_end should have already been updated"); + + // The first BOT entry should have offset 0. + _array->set_offset_array(_array->index_for(_bottom), 0); + // The rest should point to the first one. + set_remainder_to_point_to_start(_bottom + N_words, new_end); +} + ////////////////////////////////////////////////////////////////////// // G1BlockOffsetArrayContigSpace ////////////////////////////////////////////////////////////////////// @@ -626,3 +639,12 @@ "Precondition of call"); _array->set_offset_array(bottom_index, 0); } + +void +G1BlockOffsetArrayContigSpace::set_for_starts_humongous(HeapWord* new_end) { + G1BlockOffsetArray::set_for_starts_humongous(new_end); + + // Make sure _next_offset_threshold and _next_offset_index point to new_end. + _next_offset_threshold = new_end; + _next_offset_index = _array->index_for(new_end); +} diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp --- a/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_HPP + +#include "memory/memRegion.hpp" +#include "runtime/virtualspace.hpp" +#include "utilities/globalDefinitions.hpp" + // The CollectedHeap type requires subtypes to implement a method // "block_start". For some subtypes, notably generational // systems using card-table-based write barriers, the efficiency of this @@ -436,6 +443,8 @@ } void check_all_cards(size_t left_card, size_t right_card) const; + + virtual void set_for_starts_humongous(HeapWord* new_end); }; // A subtype of BlockOffsetArray that takes advantage of the fact @@ -484,4 +493,8 @@ HeapWord* block_start_unsafe(const void* addr); HeapWord* block_start_unsafe_const(const void* addr) const; + + virtual void set_for_starts_humongous(HeapWord* new_end); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp --- a/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_INLINE_HPP + +#include "gc_implementation/g1/g1BlockOffsetTable.hpp" +#include "memory/space.hpp" + inline HeapWord* G1BlockOffsetTable::block_start(const void* addr) { if (addr >= _bottom && addr < _end) { return block_start_unsafe(addr); @@ -151,3 +157,5 @@ inline void G1BlockOffsetArray::freed(HeapWord* blk, size_t size) { freed(blk, blk + size); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,29 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1CollectedHeap.cpp.incl" +#include "precompiled.hpp" +#include "code/icBuffer.hpp" +#include "gc_implementation/g1/bufferingOopClosure.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentG1RefineThread.hpp" +#include "gc_implementation/g1/concurrentMarkThread.inline.hpp" +#include "gc_implementation/g1/concurrentZFThread.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1MarkSweep.hpp" +#include "gc_implementation/g1/g1OopClosures.inline.hpp" +#include "gc_implementation/g1/g1RemSet.inline.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "gc_implementation/g1/vm_operations_g1.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/generationSpec.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "runtime/aprofiler.hpp" +#include "runtime/vmThread.hpp" size_t G1CollectedHeap::_humongous_object_threshold_in_words = 0; @@ -791,10 +812,11 @@ int _worker_i; public: RebuildRSOutOfRegionClosure(G1CollectedHeap* g1, int worker_i = 0) : - _cl(g1->g1_rem_set()->as_HRInto_G1RemSet(), worker_i), + _cl(g1->g1_rem_set(), worker_i), _worker_i(worker_i), _g1h(g1) { } + bool doHeapRegion(HeapRegion* r) { if (!r->continuesHumongous()) { _cl.set_from(r); @@ -890,7 +912,7 @@ abandon_cur_alloc_region(); abandon_gc_alloc_regions(); assert(_cur_alloc_region == NULL, "Invariant."); - g1_rem_set()->as_HRInto_G1RemSet()->cleanupHRRS(); + g1_rem_set()->cleanupHRRS(); tear_down_region_lists(); set_used_regions_to_need_zero_fill(); @@ -1506,15 +1528,11 @@ } // Also create a G1 rem set. - if (G1UseHRIntoRS) { - if (mr_bs()->is_a(BarrierSet::CardTableModRef)) { - _g1_rem_set = new HRInto_G1RemSet(this, (CardTableModRefBS*)mr_bs()); - } else { - vm_exit_during_initialization("G1 requires a cardtable mod ref bs."); - return JNI_ENOMEM; - } + if (mr_bs()->is_a(BarrierSet::CardTableModRef)) { + _g1_rem_set = new G1RemSet(this, (CardTableModRefBS*)mr_bs()); } else { - _g1_rem_set = new StupidG1RemSet(this); + vm_exit_during_initialization("G1 requires a cardtable mod ref bs."); + return JNI_ENOMEM; } // Carve out the G1 part of the heap. @@ -2706,8 +2724,7 @@ } size_t G1CollectedHeap::cards_scanned() { - HRInto_G1RemSet* g1_rset = (HRInto_G1RemSet*) g1_rem_set(); - return g1_rset->cardsScanned(); + return g1_rem_set()->cardsScanned(); } void @@ -3850,6 +3867,54 @@ undo_waste() * HeapWordSize / K); } +#ifdef ASSERT +bool G1ParScanThreadState::verify_ref(narrowOop* ref) const { + assert(ref != NULL, "invariant"); + assert(UseCompressedOops, "sanity"); + assert(!has_partial_array_mask(ref), err_msg("ref=" PTR_FORMAT, ref)); + oop p = oopDesc::load_decode_heap_oop(ref); + assert(_g1h->is_in_g1_reserved(p), + err_msg("ref=" PTR_FORMAT " p=" PTR_FORMAT, ref, intptr_t(p))); + return true; +} + +bool G1ParScanThreadState::verify_ref(oop* ref) const { + assert(ref != NULL, "invariant"); + if (has_partial_array_mask(ref)) { + // Must be in the collection set--it's already been copied. + oop p = clear_partial_array_mask(ref); + assert(_g1h->obj_in_cs(p), + err_msg("ref=" PTR_FORMAT " p=" PTR_FORMAT, ref, intptr_t(p))); + } else { + oop p = oopDesc::load_decode_heap_oop(ref); + assert(_g1h->is_in_g1_reserved(p), + err_msg("ref=" PTR_FORMAT " p=" PTR_FORMAT, ref, intptr_t(p))); + } + return true; +} + +bool G1ParScanThreadState::verify_task(StarTask ref) const { + if (ref.is_narrow()) { + return verify_ref((narrowOop*) ref); + } else { + return verify_ref((oop*) ref); + } +} +#endif // ASSERT + +void G1ParScanThreadState::trim_queue() { + StarTask ref; + do { + // Drain the overflow stack first, so other threads can steal. + while (refs()->pop_overflow(ref)) { + deal_with_reference(ref); + } + while (refs()->pop_local(ref)) { + deal_with_reference(ref); + } + } while (!refs()->is_empty()); +} + G1ParClosureSuper::G1ParClosureSuper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state) : _g1(g1), _g1_rem(_g1->g1_rem_set()), _cm(_g1->concurrent_mark()), _par_scan_state(par_scan_state) { } @@ -4052,38 +4117,43 @@ : _g1h(g1h), _par_scan_state(par_scan_state), _queues(queues), _terminator(terminator) {} - void do_void() { - G1ParScanThreadState* pss = par_scan_state(); - while (true) { + void do_void(); + +private: + inline bool offer_termination(); +}; + +bool G1ParEvacuateFollowersClosure::offer_termination() { + G1ParScanThreadState* const pss = par_scan_state(); + pss->start_term_time(); + const bool res = terminator()->offer_termination(); + pss->end_term_time(); + return res; +} + +void G1ParEvacuateFollowersClosure::do_void() { + StarTask stolen_task; + G1ParScanThreadState* const pss = par_scan_state(); + pss->trim_queue(); + + do { + while (queues()->steal(pss->queue_num(), pss->hash_seed(), stolen_task)) { + assert(pss->verify_task(stolen_task), "sanity"); + if (stolen_task.is_narrow()) { + pss->deal_with_reference((narrowOop*) stolen_task); + } else { + pss->deal_with_reference((oop*) stolen_task); + } + + // We've just processed a reference and we might have made + // available new entries on the queues. So we have to make sure + // we drain the queues as necessary. pss->trim_queue(); - - StarTask stolen_task; - if (queues()->steal(pss->queue_num(), pss->hash_seed(), stolen_task)) { - // slightly paranoid tests; I'm trying to catch potential - // problems before we go into push_on_queue to know where the - // problem is coming from - assert((oop*)stolen_task != NULL, "Error"); - if (stolen_task.is_narrow()) { - assert(UseCompressedOops, "Error"); - narrowOop* p = (narrowOop*) stolen_task; - assert(has_partial_array_mask(p) || - _g1h->is_in_g1_reserved(oopDesc::load_decode_heap_oop(p)), "Error"); - pss->push_on_queue(p); - } else { - oop* p = (oop*) stolen_task; - assert(has_partial_array_mask(p) || _g1h->is_in_g1_reserved(*p), "Error"); - pss->push_on_queue(p); - } - continue; - } - pss->start_term_time(); - if (terminator()->offer_termination()) break; - pss->end_term_time(); } - pss->end_term_time(); - pss->retire_alloc_buffers(); - } -}; + } while (!offer_termination()); + + pss->retire_alloc_buffers(); +} class G1ParTask : public AbstractGangTask { protected: @@ -4182,8 +4252,7 @@ pss.print_termination_stats(i); } - assert(pss.refs_to_scan() == 0, "Task queue should be empty"); - assert(pss.overflowed_refs_to_scan() == 0, "Overflow queue should be empty"); + assert(pss.refs()->is_empty(), "should be empty"); double end_time_ms = os::elapsedTime() * 1000.0; _g1h->g1_policy()->record_gc_worker_end_time(i, end_time_ms); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_HPP + +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/g1RemSet.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "gc_implementation/parNew/parGCAllocBuffer.hpp" +#include "memory/barrierSet.hpp" +#include "memory/memRegion.hpp" +#include "memory/sharedHeap.hpp" + // A "G1CollectedHeap" is an implementation of a java heap for HotSpot. // It uses the "Garbage First" heap organization and algorithm, which // may combine concurrent marking with parallel, incremental compaction of @@ -1651,49 +1662,17 @@ size_t alloc_buffer_waste() const { return _alloc_buffer_waste; } size_t undo_waste() const { return _undo_waste; } +#ifdef ASSERT + bool verify_ref(narrowOop* ref) const; + bool verify_ref(oop* ref) const; + bool verify_task(StarTask ref) const; +#endif // ASSERT + template void push_on_queue(T* ref) { - assert(ref != NULL, "invariant"); - assert(has_partial_array_mask(ref) || - _g1h->is_in_g1_reserved(oopDesc::load_decode_heap_oop(ref)), "invariant"); -#ifdef ASSERT - if (has_partial_array_mask(ref)) { - oop p = clear_partial_array_mask(ref); - // Verify that we point into the CS - assert(_g1h->obj_in_cs(p), "Should be in CS"); - } -#endif + assert(verify_ref(ref), "sanity"); refs()->push(ref); } - void pop_from_queue(StarTask& ref) { - if (refs()->pop_local(ref)) { - assert((oop*)ref != NULL, "pop_local() returned true"); - assert(UseCompressedOops || !ref.is_narrow(), "Error"); - assert(has_partial_array_mask((oop*)ref) || - _g1h->is_in_g1_reserved(ref.is_narrow() ? oopDesc::load_decode_heap_oop((narrowOop*)ref) - : oopDesc::load_decode_heap_oop((oop*)ref)), - "invariant"); - } else { - StarTask null_task; - ref = null_task; - } - } - - void pop_from_overflow_queue(StarTask& ref) { - StarTask new_ref; - refs()->pop_overflow(new_ref); - assert((oop*)new_ref != NULL, "pop() from a local non-empty stack"); - assert(UseCompressedOops || !new_ref.is_narrow(), "Error"); - assert(has_partial_array_mask((oop*)new_ref) || - _g1h->is_in_g1_reserved(new_ref.is_narrow() ? oopDesc::load_decode_heap_oop((narrowOop*)new_ref) - : oopDesc::load_decode_heap_oop((oop*)new_ref)), - "invariant"); - ref = new_ref; - } - - int refs_to_scan() { return (int)refs()->size(); } - int overflowed_refs_to_scan() { return (int)refs()->overflow_stack()->size(); } - template void update_rs(HeapRegion* from, T* p, int tid) { if (G1DeferredRSUpdate) { deferred_rs_update(from, p, tid); @@ -1804,7 +1783,6 @@ } } -private: template void deal_with_reference(T* ref_to_scan) { if (has_partial_array_mask(ref_to_scan)) { _partial_scan_cl->do_oop_nv(ref_to_scan); @@ -1818,59 +1796,17 @@ } } -public: - void trim_queue() { - // I've replicated the loop twice, first to drain the overflow - // queue, second to drain the task queue. This is better than - // having a single loop, which checks both conditions and, inside - // it, either pops the overflow queue or the task queue, as each - // loop is tighter. Also, the decision to drain the overflow queue - // first is not arbitrary, as the overflow queue is not visible - // to the other workers, whereas the task queue is. So, we want to - // drain the "invisible" entries first, while allowing the other - // workers to potentially steal the "visible" entries. - - while (refs_to_scan() > 0 || overflowed_refs_to_scan() > 0) { - while (overflowed_refs_to_scan() > 0) { - StarTask ref_to_scan; - assert((oop*)ref_to_scan == NULL, "Constructed above"); - pop_from_overflow_queue(ref_to_scan); - // We shouldn't have pushed it on the queue if it was not - // pointing into the CSet. - assert((oop*)ref_to_scan != NULL, "Follows from inner loop invariant"); - if (ref_to_scan.is_narrow()) { - assert(UseCompressedOops, "Error"); - narrowOop* p = (narrowOop*)ref_to_scan; - assert(!has_partial_array_mask(p) && - _g1h->is_in_g1_reserved(oopDesc::load_decode_heap_oop(p)), "sanity"); - deal_with_reference(p); - } else { - oop* p = (oop*)ref_to_scan; - assert((has_partial_array_mask(p) && _g1h->is_in_g1_reserved(clear_partial_array_mask(p))) || - _g1h->is_in_g1_reserved(oopDesc::load_decode_heap_oop(p)), "sanity"); - deal_with_reference(p); - } - } - - while (refs_to_scan() > 0) { - StarTask ref_to_scan; - assert((oop*)ref_to_scan == NULL, "Constructed above"); - pop_from_queue(ref_to_scan); - if ((oop*)ref_to_scan != NULL) { - if (ref_to_scan.is_narrow()) { - assert(UseCompressedOops, "Error"); - narrowOop* p = (narrowOop*)ref_to_scan; - assert(!has_partial_array_mask(p) && - _g1h->is_in_g1_reserved(oopDesc::load_decode_heap_oop(p)), "sanity"); - deal_with_reference(p); - } else { - oop* p = (oop*)ref_to_scan; - assert((has_partial_array_mask(p) && _g1h->obj_in_cs(clear_partial_array_mask(p))) || - _g1h->is_in_g1_reserved(oopDesc::load_decode_heap_oop(p)), "sanity"); - deal_with_reference(p); - } - } - } + void deal_with_reference(StarTask ref) { + assert(verify_task(ref), "sanity"); + if (ref.is_narrow()) { + deal_with_reference((narrowOop*)ref); + } else { + deal_with_reference((oop*)ref); } } + +public: + void trim_queue(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_INLINE_HPP + +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/g1CollectedHeap.hpp" +#include "gc_implementation/g1/heapRegionSeq.hpp" +#include "utilities/taskqueue.hpp" + // Inline functions for G1CollectedHeap inline HeapRegion* @@ -94,3 +102,5 @@ inline bool G1CollectedHeap::isMarkedNext(oop obj) const { return _cm->nextMarkBitMap()->isMarked((HeapWord *)obj); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1CollectorPolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/concurrentMarkThread.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "runtime/arguments.hpp" +#include "runtime/java.hpp" +#include "runtime/mutexLocker.hpp" +#include "utilities/debug.hpp" #define PREDICTIONS_VERBOSE 0 diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTORPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTORPOLICY_HPP + +#include "gc_implementation/g1/collectionSetChooser.hpp" +#include "gc_implementation/g1/g1MMUTracker.hpp" +#include "memory/collectorPolicy.hpp" + // A G1CollectorPolicy makes policy decisions that determine the // characteristics of the collector. Examples include: // * choice of collection set. @@ -1287,3 +1294,5 @@ // Local Variables: *** // c-indentation-style: gnu *** // End: *** + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTORPOLICY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1MMUTracker.cpp --- a/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1MMUTracker.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1MMUTracker.hpp" +#include "runtime/mutexLocker.hpp" +#include "utilities/ostream.hpp" #define _DISABLE_MMU 0 diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1MMUTracker.hpp --- a/src/share/vm/gc_implementation/g1/g1MMUTracker.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1MMUTracker.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1MMUTRACKER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1MMUTRACKER_HPP + +#include "memory/allocation.hpp" +#include "utilities/debug.hpp" + // Keeps track of the GC work and decides when it is OK to do GC work // and for how long so that the MMU invariants are maintained. @@ -127,3 +133,5 @@ virtual double longest_pause(double current_time); virtual double when_sec(double current_time, double pause_time); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1MMUTRACKER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1MarkSweep.cpp --- a/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,30 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1MarkSweep.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/codeCache.hpp" +#include "code/icBuffer.hpp" +#include "gc_implementation/g1/g1MarkSweep.hpp" +#include "memory/gcLocker.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/modRefBarrierSet.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/space.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/aprofiler.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/thread.hpp" +#include "runtime/vmThread.hpp" +#include "utilities/copy.hpp" +#include "utilities/events.hpp" class HeapRegion; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1MarkSweep.hpp --- a/src/share/vm/gc_implementation/g1/g1MarkSweep.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1MarkSweep.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,19 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1MARKSWEEP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1MARKSWEEP_HPP + +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "memory/genMarkSweep.hpp" +#include "memory/generation.hpp" +#include "memory/universe.hpp" +#include "oops/markOop.hpp" +#include "oops/oop.hpp" +#include "runtime/timer.hpp" +#include "utilities/growableArray.hpp" + class ReferenceProcessor; // G1MarkSweep takes care of global mark-compact garbage collection for a @@ -55,3 +68,5 @@ static void allocate_stacks(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1MARKSWEEP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1OopClosures.hpp --- a/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,11 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP + class HeapRegion; class G1CollectedHeap; class G1RemSet; -class HRInto_G1RemSet; -class G1RemSet; class ConcurrentMark; class DirtyCardToOopClosure; class CMBitMap; @@ -212,3 +213,5 @@ bool do_header() { return false; } int out_of_region() { return _out_of_region; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp --- a/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_INLINE_HPP + +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/g1CollectedHeap.hpp" +#include "gc_implementation/g1/g1OopClosures.hpp" +#include "gc_implementation/g1/g1RemSet.hpp" + /* * This really ought to be an inline function, but apparently the C++ * compiler sometimes sees fit to ignore inline declarations. Sigh. @@ -121,3 +129,5 @@ } } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1RemSet.cpp --- a/src/share/vm/gc_implementation/g1/g1RemSet.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1RemSet.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1RemSet.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/bufferingOopClosure.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentG1RefineThread.hpp" +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1OopClosures.inline.hpp" +#include "gc_implementation/g1/g1RemSet.inline.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/iterator.hpp" +#include "oops/oop.inline.hpp" +#include "utilities/intHisto.hpp" #define CARD_REPEAT_HISTO 0 @@ -97,13 +108,6 @@ } }; -void -StupidG1RemSet::oops_into_collection_set_do(OopsInHeapRegionClosure* oc, - int worker_i) { - IntoCSRegionClosure rc(_g1, oc); - _g1->heap_region_iterate(&rc); -} - class VerifyRSCleanCardOopClosure: public OopClosure { G1CollectedHeap* _g1; public: @@ -119,10 +123,10 @@ } }; -HRInto_G1RemSet::HRInto_G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs) - : G1RemSet(g1), _ct_bs(ct_bs), _g1p(_g1->g1_policy()), +G1RemSet::G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs) + : _g1(g1), _conc_refine_cards(0), + _ct_bs(ct_bs), _g1p(_g1->g1_policy()), _cg1r(g1->concurrent_g1_refine()), - _traversal_in_progress(false), _cset_rs_update_cl(NULL), _cards_scanned(NULL), _total_cards_scanned(0) { @@ -134,7 +138,7 @@ } } -HRInto_G1RemSet::~HRInto_G1RemSet() { +G1RemSet::~G1RemSet() { delete _seq_task; for (uint i = 0; i < n_workers(); i++) { assert(_cset_rs_update_cl[i] == NULL, "it should be"); @@ -277,7 +281,7 @@ // p threads // Then thread t will start at region t * floor (n/p) -HeapRegion* HRInto_G1RemSet::calculateStartRegion(int worker_i) { +HeapRegion* G1RemSet::calculateStartRegion(int worker_i) { HeapRegion* result = _g1p->collection_set(); if (ParallelGCThreads > 0) { size_t cs_size = _g1p->collection_set_size(); @@ -290,7 +294,7 @@ return result; } -void HRInto_G1RemSet::scanRS(OopsInHeapRegionClosure* oc, int worker_i) { +void G1RemSet::scanRS(OopsInHeapRegionClosure* oc, int worker_i) { double rs_time_start = os::elapsedTime(); HeapRegion *startRegion = calculateStartRegion(worker_i); @@ -340,7 +344,7 @@ } }; -void HRInto_G1RemSet::updateRS(DirtyCardQueue* into_cset_dcq, int worker_i) { +void G1RemSet::updateRS(DirtyCardQueue* into_cset_dcq, int worker_i) { double start = os::elapsedTime(); // Apply the given closure to all remaining log entries. RefineRecordRefsIntoCSCardTableEntryClosure into_cset_update_rs_cl(_g1, into_cset_dcq); @@ -439,12 +443,11 @@ } }; -void HRInto_G1RemSet::cleanupHRRS() { +void G1RemSet::cleanupHRRS() { HeapRegionRemSet::cleanup(); } -void -HRInto_G1RemSet::oops_into_collection_set_do(OopsInHeapRegionClosure* oc, +void G1RemSet::oops_into_collection_set_do(OopsInHeapRegionClosure* oc, int worker_i) { #if CARD_REPEAT_HISTO ct_freq_update_histo_and_reset(); @@ -508,8 +511,7 @@ _cset_rs_update_cl[worker_i] = NULL; } -void HRInto_G1RemSet:: -prepare_for_oops_into_collection_set_do() { +void G1RemSet::prepare_for_oops_into_collection_set_do() { #if G1_REM_SET_LOGGING PrintRSClosure cl; _g1->collection_set_iterate(&cl); @@ -520,8 +522,6 @@ DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); dcqs.concatenate_logs(); - assert(!_traversal_in_progress, "Invariant between iterations."); - set_traversal(true); if (ParallelGCThreads > 0) { _seq_task->set_n_threads((int)n_workers()); } @@ -547,9 +547,6 @@ // through the oops which coincide with that card. It scans the reference // fields in each oop; when it finds an oop that points into the collection // set, the RSet for the region containing the referenced object is updated. -// Note: _par_traversal_in_progress in the G1RemSet must be FALSE; otherwise -// the UpdateRSetImmediate closure will cause cards to be enqueued on to -// the DCQS that we're iterating over, causing an infinite loop. class UpdateRSetCardTableEntryIntoCSetClosure: public CardTableEntryClosure { G1CollectedHeap* _g1; CardTableModRefBS* _ct_bs; @@ -581,7 +578,7 @@ // RSet updating, // * the post-write barrier shouldn't be logging updates to young // regions (but there is a situation where this can happen - see - // the comment in HRInto_G1RemSet::concurrentRefineOneCard below - + // the comment in G1RemSet::concurrentRefineOneCard below - // that should not be applicable here), and // * during actual RSet updating, the filtering of cards in young // regions in HeapRegion::oops_on_card_seq_iterate_careful is @@ -601,7 +598,7 @@ } }; -void HRInto_G1RemSet::cleanup_after_oops_into_collection_set_do() { +void G1RemSet::cleanup_after_oops_into_collection_set_do() { guarantee( _cards_scanned != NULL, "invariant" ); _total_cards_scanned = 0; for (uint i = 0; i < n_workers(); ++i) @@ -619,8 +616,6 @@ // Set all cards back to clean. _g1->cleanUpCardTable(); - set_traversal(false); - DirtyCardQueueSet& into_cset_dcqs = _g1->into_cset_dirty_card_queue_set(); int into_cset_n_buffers = into_cset_dcqs.completed_buffers_num(); @@ -653,21 +648,8 @@ assert(_g1->into_cset_dirty_card_queue_set().completed_buffers_num() == 0, "all buffers should be freed"); _g1->into_cset_dirty_card_queue_set().clear_n_completed_buffers(); - - assert(!_traversal_in_progress, "Invariant between iterations."); } -class UpdateRSObjectClosure: public ObjectClosure { - UpdateRSOopClosure* _update_rs_oop_cl; -public: - UpdateRSObjectClosure(UpdateRSOopClosure* update_rs_oop_cl) : - _update_rs_oop_cl(update_rs_oop_cl) {} - void do_object(oop obj) { - obj->oop_iterate(_update_rs_oop_cl); - } - -}; - class ScrubRSClosure: public HeapRegionClosure { G1CollectedHeap* _g1h; BitMap* _region_bm; @@ -692,12 +674,12 @@ } }; -void HRInto_G1RemSet::scrub(BitMap* region_bm, BitMap* card_bm) { +void G1RemSet::scrub(BitMap* region_bm, BitMap* card_bm) { ScrubRSClosure scrub_cl(region_bm, card_bm); _g1->heap_region_iterate(&scrub_cl); } -void HRInto_G1RemSet::scrub_par(BitMap* region_bm, BitMap* card_bm, +void G1RemSet::scrub_par(BitMap* region_bm, BitMap* card_bm, int worker_num, int claim_val) { ScrubRSClosure scrub_cl(region_bm, card_bm); _g1->heap_region_par_iterate_chunked(&scrub_cl, worker_num, claim_val); @@ -741,7 +723,7 @@ virtual void do_oop(narrowOop* p) { do_oop_nv(p); } }; -bool HRInto_G1RemSet::concurrentRefineOneCard_impl(jbyte* card_ptr, int worker_i, +bool G1RemSet::concurrentRefineOneCard_impl(jbyte* card_ptr, int worker_i, bool check_for_refs_into_cset) { // Construct the region representing the card. HeapWord* start = _ct_bs->addr_for(card_ptr); @@ -757,7 +739,12 @@ ct_freq_note_card(_ct_bs->index_for(start)); #endif - UpdateRSOopClosure update_rs_oop_cl(this, worker_i); + assert(!check_for_refs_into_cset || _cset_rs_update_cl[worker_i] != NULL, "sanity"); + UpdateRSOrPushRefOopClosure update_rs_oop_cl(_g1, + _g1->g1_rem_set(), + _cset_rs_update_cl[worker_i], + check_for_refs_into_cset, + worker_i); update_rs_oop_cl.set_from(r); TriggerClosure trigger_cl; @@ -820,7 +807,7 @@ return trigger_cl.value(); } -bool HRInto_G1RemSet::concurrentRefineOneCard(jbyte* card_ptr, int worker_i, +bool G1RemSet::concurrentRefineOneCard(jbyte* card_ptr, int worker_i, bool check_for_refs_into_cset) { // If the card is no longer dirty, nothing to do. if (*card_ptr != CardTableModRefBS::dirty_card_val()) { @@ -995,7 +982,7 @@ } }; -void HRInto_G1RemSet::print_summary_info() { +void G1RemSet::print_summary_info() { G1CollectedHeap* g1 = G1CollectedHeap::heap(); #if CARD_REPEAT_HISTO @@ -1029,30 +1016,26 @@ g1->concurrent_g1_refine()->threads_do(&p); gclog_or_tty->print_cr(""); - if (G1UseHRIntoRS) { - HRRSStatsIter blk; - g1->heap_region_iterate(&blk); - gclog_or_tty->print_cr(" Total heap region rem set sizes = " SIZE_FORMAT "K." - " Max = " SIZE_FORMAT "K.", - blk.total_mem_sz()/K, blk.max_mem_sz()/K); - gclog_or_tty->print_cr(" Static structures = " SIZE_FORMAT "K," - " free_lists = " SIZE_FORMAT "K.", - HeapRegionRemSet::static_mem_size()/K, - HeapRegionRemSet::fl_mem_size()/K); - gclog_or_tty->print_cr(" %d occupied cards represented.", - blk.occupied()); - gclog_or_tty->print_cr(" Max sz region = [" PTR_FORMAT ", " PTR_FORMAT " )" - ", cap = " SIZE_FORMAT "K, occ = " SIZE_FORMAT "K.", - blk.max_mem_sz_region()->bottom(), blk.max_mem_sz_region()->end(), - (blk.max_mem_sz_region()->rem_set()->mem_size() + K - 1)/K, - (blk.max_mem_sz_region()->rem_set()->occupied() + K - 1)/K); - gclog_or_tty->print_cr(" Did %d coarsenings.", - HeapRegionRemSet::n_coarsenings()); - - } + HRRSStatsIter blk; + g1->heap_region_iterate(&blk); + gclog_or_tty->print_cr(" Total heap region rem set sizes = " SIZE_FORMAT "K." + " Max = " SIZE_FORMAT "K.", + blk.total_mem_sz()/K, blk.max_mem_sz()/K); + gclog_or_tty->print_cr(" Static structures = " SIZE_FORMAT "K," + " free_lists = " SIZE_FORMAT "K.", + HeapRegionRemSet::static_mem_size()/K, + HeapRegionRemSet::fl_mem_size()/K); + gclog_or_tty->print_cr(" %d occupied cards represented.", + blk.occupied()); + gclog_or_tty->print_cr(" Max sz region = [" PTR_FORMAT ", " PTR_FORMAT " )" + ", cap = " SIZE_FORMAT "K, occ = " SIZE_FORMAT "K.", + blk.max_mem_sz_region()->bottom(), blk.max_mem_sz_region()->end(), + (blk.max_mem_sz_region()->rem_set()->mem_size() + K - 1)/K, + (blk.max_mem_sz_region()->rem_set()->occupied() + K - 1)/K); + gclog_or_tty->print_cr(" Did %d coarsenings.", HeapRegionRemSet::n_coarsenings()); } -void HRInto_G1RemSet::prepare_for_verify() { +void G1RemSet::prepare_for_verify() { if (G1HRRSFlushLogBuffersOnVerify && (VerifyBeforeGC || VerifyAfterGC) && !_g1->full_collection()) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1RemSet.hpp --- a/src/share/vm/gc_implementation/g1/g1RemSet.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1RemSet.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,112 +22,26 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP + // A G1RemSet provides ways of iterating over pointers into a selected // collection set. class G1CollectedHeap; class CardTableModRefBarrierSet; -class HRInto_G1RemSet; class ConcurrentG1Refine; +// A G1RemSet in which each heap region has a rem set that records the +// external heap references into it. Uses a mod ref bs to track updates, +// so that they can be used to update the individual region remsets. + class G1RemSet: public CHeapObj { protected: G1CollectedHeap* _g1; unsigned _conc_refine_cards; size_t n_workers(); -public: - G1RemSet(G1CollectedHeap* g1) : - _g1(g1), _conc_refine_cards(0) - {} - - // Invoke "blk->do_oop" on all pointers into the CS in object in regions - // outside the CS (having invoked "blk->set_region" to set the "from" - // region correctly beforehand.) The "worker_i" param is for the - // parallel case where the number of the worker thread calling this - // function can be helpful in partitioning the work to be done. It - // should be the same as the "i" passed to the calling thread's - // work(i) function. In the sequential case this param will be ingored. - virtual void oops_into_collection_set_do(OopsInHeapRegionClosure* blk, - int worker_i) = 0; - - // Prepare for and cleanup after an oops_into_collection_set_do - // call. Must call each of these once before and after (in sequential - // code) any threads call oops into collection set do. (This offers an - // opportunity to sequential setup and teardown of structures needed by a - // parallel iteration over the CS's RS.) - virtual void prepare_for_oops_into_collection_set_do() = 0; - virtual void cleanup_after_oops_into_collection_set_do() = 0; - - // If "this" is of the given subtype, return "this", else "NULL". - virtual HRInto_G1RemSet* as_HRInto_G1RemSet() { return NULL; } - - // Record, if necessary, the fact that *p (where "p" is in region "from", - // and is, a fortiori, required to be non-NULL) has changed to its new value. - virtual void write_ref(HeapRegion* from, oop* p) = 0; - virtual void write_ref(HeapRegion* from, narrowOop* p) = 0; - virtual void par_write_ref(HeapRegion* from, oop* p, int tid) = 0; - virtual void par_write_ref(HeapRegion* from, narrowOop* p, int tid) = 0; - - // Requires "region_bm" and "card_bm" to be bitmaps with 1 bit per region - // or card, respectively, such that a region or card with a corresponding - // 0 bit contains no part of any live object. Eliminates any remembered - // set entries that correspond to dead heap ranges. - virtual void scrub(BitMap* region_bm, BitMap* card_bm) = 0; - // Like the above, but assumes is called in parallel: "worker_num" is the - // parallel thread id of the current thread, and "claim_val" is the - // value that should be used to claim heap regions. - virtual void scrub_par(BitMap* region_bm, BitMap* card_bm, - int worker_num, int claim_val) = 0; - - // Refine the card corresponding to "card_ptr". If "sts" is non-NULL, - // join and leave around parts that must be atomic wrt GC. (NULL means - // being done at a safepoint.) - // With some implementations of this routine, when check_for_refs_into_cset - // is true, a true result may be returned if the given card contains oops - // that have references into the current collection set. - virtual bool concurrentRefineOneCard(jbyte* card_ptr, int worker_i, - bool check_for_refs_into_cset) { - return false; - } - - // Print any relevant summary info. - virtual void print_summary_info() {} - - // Prepare remebered set for verification. - virtual void prepare_for_verify() {}; -}; - - -// The simplest possible G1RemSet: iterates over all objects in non-CS -// regions, searching for pointers into the CS. -class StupidG1RemSet: public G1RemSet { -public: - StupidG1RemSet(G1CollectedHeap* g1) : G1RemSet(g1) {} - - void oops_into_collection_set_do(OopsInHeapRegionClosure* blk, - int worker_i); - - void prepare_for_oops_into_collection_set_do() {} - void cleanup_after_oops_into_collection_set_do() {} - - // Nothing is necessary in the version below. - void write_ref(HeapRegion* from, oop* p) {} - void write_ref(HeapRegion* from, narrowOop* p) {} - void par_write_ref(HeapRegion* from, oop* p, int tid) {} - void par_write_ref(HeapRegion* from, narrowOop* p, int tid) {} - - void scrub(BitMap* region_bm, BitMap* card_bm) {} - void scrub_par(BitMap* region_bm, BitMap* card_bm, - int worker_num, int claim_val) {} - -}; - -// A G1RemSet in which each heap region has a rem set that records the -// external heap references into it. Uses a mod ref bs to track updates, -// so that they can be used to update the individual region remsets. - -class HRInto_G1RemSet: public G1RemSet { protected: enum SomePrivateConstants { UpdateRStoMergeSync = 0, @@ -148,11 +62,6 @@ size_t* _cards_scanned; size_t _total_cards_scanned; - // _traversal_in_progress is "true" iff a traversal is in progress. - - bool _traversal_in_progress; - void set_traversal(bool b) { _traversal_in_progress = b; } - // Used for caching the closure that is responsible for scanning // references into the collection set. OopsInHeapRegionClosure** _cset_rs_update_cl; @@ -165,71 +74,71 @@ bool concurrentRefineOneCard_impl(jbyte* card_ptr, int worker_i, bool check_for_refs_into_cset); -protected: - template void write_ref_nv(HeapRegion* from, T* p); - template void par_write_ref_nv(HeapRegion* from, T* p, int tid); - public: // This is called to reset dual hash tables after the gc pause // is finished and the initial hash table is no longer being // scanned. void cleanupHRRS(); - HRInto_G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs); - ~HRInto_G1RemSet(); + G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs); + ~G1RemSet(); + // Invoke "blk->do_oop" on all pointers into the CS in objects in regions + // outside the CS (having invoked "blk->set_region" to set the "from" + // region correctly beforehand.) The "worker_i" param is for the + // parallel case where the number of the worker thread calling this + // function can be helpful in partitioning the work to be done. It + // should be the same as the "i" passed to the calling thread's + // work(i) function. In the sequential case this param will be ingored. void oops_into_collection_set_do(OopsInHeapRegionClosure* blk, int worker_i); + // Prepare for and cleanup after an oops_into_collection_set_do + // call. Must call each of these once before and after (in sequential + // code) any threads call oops_into_collection_set_do. (This offers an + // opportunity to sequential setup and teardown of structures needed by a + // parallel iteration over the CS's RS.) void prepare_for_oops_into_collection_set_do(); void cleanup_after_oops_into_collection_set_do(); + void scanRS(OopsInHeapRegionClosure* oc, int worker_i); - template void scanNewRefsRS_work(OopsInHeapRegionClosure* oc, int worker_i); - void scanNewRefsRS(OopsInHeapRegionClosure* oc, int worker_i) { - if (UseCompressedOops) { - scanNewRefsRS_work(oc, worker_i); - } else { - scanNewRefsRS_work(oc, worker_i); - } - } void updateRS(DirtyCardQueue* into_cset_dcq, int worker_i); + HeapRegion* calculateStartRegion(int i); - HRInto_G1RemSet* as_HRInto_G1RemSet() { return this; } - CardTableModRefBS* ct_bs() { return _ct_bs; } size_t cardsScanned() { return _total_cards_scanned; } // Record, if necessary, the fact that *p (where "p" is in region "from", // which is required to be non-NULL) has changed to a new non-NULL value. - // [Below the virtual version calls a non-virtual protected - // workhorse that is templatified for narrow vs wide oop.] - inline void write_ref(HeapRegion* from, oop* p) { - write_ref_nv(from, p); - } - inline void write_ref(HeapRegion* from, narrowOop* p) { - write_ref_nv(from, p); - } - inline void par_write_ref(HeapRegion* from, oop* p, int tid) { - par_write_ref_nv(from, p, tid); - } - inline void par_write_ref(HeapRegion* from, narrowOop* p, int tid) { - par_write_ref_nv(from, p, tid); - } + template void write_ref(HeapRegion* from, T* p); + template void par_write_ref(HeapRegion* from, T* p, int tid); - bool self_forwarded(oop obj); + // Requires "region_bm" and "card_bm" to be bitmaps with 1 bit per region + // or card, respectively, such that a region or card with a corresponding + // 0 bit contains no part of any live object. Eliminates any remembered + // set entries that correspond to dead heap ranges. + void scrub(BitMap* region_bm, BitMap* card_bm); - void scrub(BitMap* region_bm, BitMap* card_bm); + // Like the above, but assumes is called in parallel: "worker_num" is the + // parallel thread id of the current thread, and "claim_val" is the + // value that should be used to claim heap regions. void scrub_par(BitMap* region_bm, BitMap* card_bm, int worker_num, int claim_val); - // If check_for_refs_into_cset is true then a true result is returned - // if the card contains oops that have references into the current - // collection set. + // Refine the card corresponding to "card_ptr". If "sts" is non-NULL, + // join and leave around parts that must be atomic wrt GC. (NULL means + // being done at a safepoint.) + // If check_for_refs_into_cset is true, a true result is returned + // if the given card contains oops that have references into the + // current collection set. virtual bool concurrentRefineOneCard(jbyte* card_ptr, int worker_i, bool check_for_refs_into_cset); + // Print any relevant summary info. virtual void print_summary_info(); + + // Prepare remembered set for verification. virtual void prepare_for_verify(); }; @@ -250,16 +159,15 @@ class UpdateRSOopClosure: public OopClosure { HeapRegion* _from; - HRInto_G1RemSet* _rs; + G1RemSet* _rs; int _worker_i; template void do_oop_work(T* p); public: - UpdateRSOopClosure(HRInto_G1RemSet* rs, int worker_i = 0) : - _from(NULL), _rs(rs), _worker_i(worker_i) { - guarantee(_rs != NULL, "Requires an HRIntoG1RemSet"); - } + UpdateRSOopClosure(G1RemSet* rs, int worker_i = 0) : + _from(NULL), _rs(rs), _worker_i(worker_i) + {} void set_from(HeapRegion* from) { assert(from != NULL, "from region must be non-NULL"); @@ -286,3 +194,45 @@ virtual void do_oop(narrowOop* p) { do_oop_work(p); } virtual void do_oop( oop* p) { do_oop_work(p); } }; + +class UpdateRSOrPushRefOopClosure: public OopClosure { + G1CollectedHeap* _g1; + G1RemSet* _g1_rem_set; + HeapRegion* _from; + OopsInHeapRegionClosure* _push_ref_cl; + bool _record_refs_into_cset; + int _worker_i; + + template void do_oop_work(T* p); + +public: + UpdateRSOrPushRefOopClosure(G1CollectedHeap* g1h, + G1RemSet* rs, + OopsInHeapRegionClosure* push_ref_cl, + bool record_refs_into_cset, + int worker_i = 0) : + _g1(g1h), + _g1_rem_set(rs), + _from(NULL), + _record_refs_into_cset(record_refs_into_cset), + _push_ref_cl(push_ref_cl), + _worker_i(worker_i) { } + + void set_from(HeapRegion* from) { + assert(from != NULL, "from region must be non-NULL"); + _from = from; + } + + bool self_forwarded(oop obj) { + bool result = (obj->is_forwarded() && (obj->forwardee()== obj)); + return result; + } + + virtual void do_oop(narrowOop* p) { do_oop_work(p); } + virtual void do_oop(oop* p) { do_oop_work(p); } + + bool apply_to_weak_ref_discovered_field() { return true; } +}; + + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp --- a/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_INLINE_HPP + +#include "gc_implementation/g1/g1RemSet.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "oops/oop.inline.hpp" + inline size_t G1RemSet::n_workers() { if (_g1->workers() != NULL) { return _g1->workers()->total_workers(); @@ -30,16 +37,13 @@ } } -template inline void HRInto_G1RemSet::write_ref_nv(HeapRegion* from, T* p) { - par_write_ref_nv(from, p, 0); +template +inline void G1RemSet::write_ref(HeapRegion* from, T* p) { + par_write_ref(from, p, 0); } -inline bool HRInto_G1RemSet::self_forwarded(oop obj) { - bool result = (obj->is_forwarded() && (obj->forwardee()== obj)); - return result; -} - -template inline void HRInto_G1RemSet::par_write_ref_nv(HeapRegion* from, T* p, int tid) { +template +inline void G1RemSet::par_write_ref(HeapRegion* from, T* p, int tid) { oop obj = oopDesc::load_decode_heap_oop(p); #ifdef ASSERT // can't do because of races @@ -60,43 +64,26 @@ assert(from == NULL || from->is_in_reserved(p), "p is not in from"); HeapRegion* to = _g1->heap_region_containing(obj); - // The test below could be optimized by applying a bit op to to and from. - if (to != NULL && from != NULL && from != to) { - // The _traversal_in_progress flag is true during the collection pause, - // false during the evacuation failure handling. This should avoid a - // potential loop if we were to add the card containing 'p' to the DCQS - // that's used to regenerate the remembered sets for the collection set, - // in the event of an evacuation failure, here. The UpdateRSImmediate - // closure will eventally call this routine. - if (_traversal_in_progress && - to->in_collection_set() && !self_forwarded(obj)) { - - assert(_cset_rs_update_cl[tid] != NULL, "should have been set already"); - _cset_rs_update_cl[tid]->do_oop(p); - - // Deferred updates to the CSet are either discarded (in the normal case), - // or processed (if an evacuation failure occurs) at the end - // of the collection. - // See HRInto_G1RemSet::cleanup_after_oops_into_collection_set_do(). - } else { + if (to != NULL && from != to) { #if G1_REM_SET_LOGGING - gclog_or_tty->print_cr("Adding " PTR_FORMAT " (" PTR_FORMAT ") to RS" - " for region [" PTR_FORMAT ", " PTR_FORMAT ")", - p, obj, - to->bottom(), to->end()); + gclog_or_tty->print_cr("Adding " PTR_FORMAT " (" PTR_FORMAT ") to RS" + " for region [" PTR_FORMAT ", " PTR_FORMAT ")", + p, obj, + to->bottom(), to->end()); #endif - assert(to->rem_set() != NULL, "Need per-region 'into' remsets."); - to->rem_set()->add_reference(p, tid); - } + assert(to->rem_set() != NULL, "Need per-region 'into' remsets."); + to->rem_set()->add_reference(p, tid); } } -template inline void UpdateRSOopClosure::do_oop_work(T* p) { +template +inline void UpdateRSOopClosure::do_oop_work(T* p) { assert(_from != NULL, "from region must be non-NULL"); _rs->par_write_ref(_from, p, _worker_i); } -template inline void UpdateRSetImmediate::do_oop_work(T* p) { +template +inline void UpdateRSetImmediate::do_oop_work(T* p) { assert(_from->is_in_reserved(p), "paranoia"); T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop) && !_from->is_survivor()) { @@ -104,3 +91,66 @@ } } +template +inline void UpdateRSOrPushRefOopClosure::do_oop_work(T* p) { + oop obj = oopDesc::load_decode_heap_oop(p); +#ifdef ASSERT + // can't do because of races + // assert(obj == NULL || obj->is_oop(), "expected an oop"); + + // Do the safe subset of is_oop + if (obj != NULL) { +#ifdef CHECK_UNHANDLED_OOPS + oopDesc* o = obj.obj(); +#else + oopDesc* o = obj; +#endif // CHECK_UNHANDLED_OOPS + assert((intptr_t)o % MinObjAlignmentInBytes == 0, "not oop aligned"); + assert(Universe::heap()->is_in_reserved(obj), "must be in heap"); + } +#endif // ASSERT + + assert(_from != NULL, "from region must be non-NULL"); + + HeapRegion* to = _g1->heap_region_containing(obj); + if (to != NULL && _from != to) { + // The _record_refs_into_cset flag is true during the RSet + // updating part of an evacuation pause. It is false at all + // other times: + // * rebuilding the rembered sets after a full GC + // * during concurrent refinement. + // * updating the remembered sets of regions in the collection + // set in the event of an evacuation failure (when deferred + // updates are enabled). + + if (_record_refs_into_cset && to->in_collection_set()) { + // We are recording references that point into the collection + // set and this particular reference does exactly that... + // If the referenced object has already been forwarded + // to itself, we are handling an evacuation failure and + // we have already visited/tried to copy this object + // there is no need to retry. + if (!self_forwarded(obj)) { + assert(_push_ref_cl != NULL, "should not be null"); + // Push the reference in the refs queue of the G1ParScanThreadState + // instance for this worker thread. + _push_ref_cl->do_oop(p); + } + + // Deferred updates to the CSet are either discarded (in the normal case), + // or processed (if an evacuation failure occurs) at the end + // of the collection. + // See G1RemSet::cleanup_after_oops_into_collection_set_do(). + } else { + // We either don't care about pushing references that point into the + // collection set (i.e. we're not during an evacuation pause) _or_ + // the reference doesn't point into the collection set. Either way + // we add the reference directly to the RSet of the region containing + // the referenced object. + _g1_rem_set->par_write_ref(_from, p, _worker_i); + } + } +} + + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp --- a/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,21 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1SATBCardTableModRefBS.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "gc_implementation/g1/satbQueue.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/thread.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif G1SATBCardTableModRefBS::G1SATBCardTableModRefBS(MemRegion whole_heap, int max_covered_regions) : diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp --- a/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP + +#include "memory/cardTableModRefBS.hpp" +#include "memory/memRegion.hpp" +#include "oops/oop.inline.hpp" + #ifndef SERIALGC class DirtyCardQueueSet; @@ -115,3 +122,5 @@ #endif // SERIALGC + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1_globals.cpp --- a/src/share/vm/gc_implementation/g1/g1_globals.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1_globals.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1_globals.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1_globals.hpp" G1_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, \ MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, \ diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1_globals.hpp --- a/src/share/vm/gc_implementation/g1/g1_globals.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1_globals.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1_GLOBALS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1_GLOBALS_HPP + +#include "runtime/globals.hpp" + // // Defines all globals flags used by the garbage-first compiler. // @@ -40,9 +45,6 @@ develop(intx, G1PolicyVerbose, 0, \ "The verbosity level on G1 policy decisions") \ \ - develop(bool, G1UseHRIntoRS, true, \ - "Determines whether the 'advanced' HR Into rem set is used.") \ - \ develop(intx, G1MarkingVerboseLevel, 0, \ "Level (0-4) of verboseness of the marking code") \ \ @@ -285,3 +287,5 @@ " controls whether G1 allows the RICM optimization") G1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG) + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1_GLOBALS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp --- a/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP + // The following OopClosure types get specialized versions of // "oop_oop_iterate" that invoke the closures' do_oop methods // non-virtually, using a mechanism defined in this file. Extend these @@ -63,3 +66,5 @@ #endif #define FURTHER_SPECIALIZED_SINCE_SAVE_MARKS_CLOSURES(f) + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/heapRegion.cpp --- a/src/share/vm/gc_implementation/g1/heapRegion.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/heapRegion.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_heapRegion.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentZFThread.hpp" +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1OopClosures.inline.hpp" +#include "gc_implementation/g1/heapRegion.inline.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/iterator.hpp" +#include "oops/oop.inline.hpp" int HeapRegion::LogOfHRGrainBytes = 0; int HeapRegion::LogOfHRGrainWords = 0; @@ -377,10 +386,26 @@ } // -void HeapRegion::set_startsHumongous() { +void HeapRegion::set_startsHumongous(HeapWord* new_end) { + assert(end() == _orig_end, + "Should be normal before the humongous object allocation"); + assert(top() == bottom(), "should be empty"); + _humongous_type = StartsHumongous; _humongous_start_region = this; - assert(end() == _orig_end, "Should be normal before alloc."); + + set_end(new_end); + _offsets.set_for_starts_humongous(new_end); +} + +void HeapRegion::set_continuesHumongous(HeapRegion* start) { + assert(end() == _orig_end, + "Should be normal before the humongous object allocation"); + assert(top() == bottom(), "should be empty"); + assert(start->startsHumongous(), "pre-condition"); + + _humongous_type = ContinuesHumongous; + _humongous_start_region = start; } bool HeapRegion::claimHeapRegion(jint claimValue) { @@ -500,23 +525,6 @@ return blk.result(); } -void HeapRegion::set_continuesHumongous(HeapRegion* start) { - // The order is important here. - start->add_continuingHumongousRegion(this); - _humongous_type = ContinuesHumongous; - _humongous_start_region = start; -} - -void HeapRegion::add_continuingHumongousRegion(HeapRegion* cont) { - // Must join the blocks of the current H region seq with the block of the - // added region. - offsets()->join_blocks(bottom(), cont->bottom()); - arrayOop obj = (arrayOop)(bottom()); - obj->set_length((int) (obj->length() + cont->capacity()/jintSize)); - set_end(cont->end()); - set_top(cont->end()); -} - void HeapRegion::save_marks() { set_saved_mark(); } diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/heapRegion.hpp --- a/src/share/vm/gc_implementation/g1/heapRegion.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/heapRegion.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_HPP + +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "gc_implementation/g1/g1_specialized_oop_closures.hpp" +#include "gc_implementation/g1/survRateGroup.hpp" +#include "gc_implementation/shared/ageTable.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/space.inline.hpp" +#include "memory/watermark.hpp" + #ifndef SERIALGC // A HeapRegion is the smallest piece of a G1CollectedHeap that @@ -395,14 +406,12 @@ // Causes the current region to represent a humongous object spanning "n" // regions. - virtual void set_startsHumongous(); + void set_startsHumongous(HeapWord* new_end); // The regions that continue a humongous sequence should be added using // this method, in increasing address order. void set_continuesHumongous(HeapRegion* start); - void add_continuingHumongousRegion(HeapRegion* cont); - // If the region has a remembered set, return a pointer to it. HeapRegionRemSet* rem_set() const { return _rem_set; @@ -733,13 +742,6 @@ FilterOutOfRegionClosure* cl, bool filter_young); - // The region "mr" is entirely in "this", and starts and ends at block - // boundaries. The caller declares that all the contained blocks are - // coalesced into one. - void declare_filled_region_to_BOT(MemRegion mr) { - _offsets.single_block(mr.start(), mr.end()); - } - // A version of block start that is guaranteed to find *some* block // boundary at or before "p", but does not object iteration, and may // therefore be used safely when the heap is unparseable. @@ -954,3 +956,5 @@ // End: *** #endif // SERIALGC + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/heapRegion.inline.hpp --- a/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_INLINE_HPP + inline HeapWord* G1OffsetTableContigSpace::allocate(size_t size) { HeapWord* res = ContiguousSpace::allocate(size); if (res != NULL) { @@ -58,3 +61,5 @@ G1OffsetTableContigSpace::block_start_const(const void* p) const { return _offsets.block_start_const(p); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp --- a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_heapRegionRemSet.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/allocation.hpp" +#include "memory/space.inline.hpp" +#include "utilities/bitMap.inline.hpp" +#include "utilities/globalDefinitions.hpp" #define HRRS_VERBOSE 0 @@ -1159,9 +1167,7 @@ _hrrs(NULL), _g1h(G1CollectedHeap::heap()), _bosa(NULL), - _sparse_iter(size_t(G1CollectedHeap::heap()->reserved_region().start()) - >> CardTableModRefBS::card_shift) -{} + _sparse_iter() { } void HeapRegionRemSetIterator::initialize(const HeapRegionRemSet* hrrs) { _hrrs = hrrs; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp --- a/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONREMSET_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONREMSET_HPP + +#include "gc_implementation/g1/sparsePRT.hpp" + // Remembered set for a heap region. Represent a set of "cards" that // contain pointers into the owner heap region. Cards are defined somewhat // abstractly, in terms of what the "BlockOffsetTable" in use can parse. @@ -426,3 +431,5 @@ }; #endif + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONREMSET_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/heapRegionSeq.cpp --- a/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_heapRegionSeq.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegionSeq.hpp" +#include "memory/allocation.hpp" // Local to this file. @@ -91,34 +93,118 @@ } if (sumSizes >= word_size) { _alloc_search_start = cur; - // Mark the allocated regions as allocated. + + // We need to initialize the region(s) we just discovered. This is + // a bit tricky given that it can happen concurrently with + // refinement threads refining cards on these regions and + // potentially wanting to refine the BOT as they are scanning + // those cards (this can happen shortly after a cleanup; see CR + // 6991377). So we have to set up the region(s) carefully and in + // a specific order. + + // Currently, allocs_are_zero_filled() returns false. The zero + // filling infrastructure will be going away soon (see CR 6977804). + // So no need to do anything else here. bool zf = G1CollectedHeap::heap()->allocs_are_zero_filled(); + assert(!zf, "not supported"); + + // This will be the "starts humongous" region. HeapRegion* first_hr = _regions.at(first); - for (int i = first; i < cur; i++) { - HeapRegion* hr = _regions.at(i); - if (zf) - hr->ensure_zero_filled(); + { + MutexLockerEx x(ZF_mon, Mutex::_no_safepoint_check_flag); + first_hr->set_zero_fill_allocated(); + } + // The header of the new object will be placed at the bottom of + // the first region. + HeapWord* new_obj = first_hr->bottom(); + // This will be the new end of the first region in the series that + // should also match the end of the last region in the seriers. + // (Note: sumSizes = "region size" x "number of regions we found"). + HeapWord* new_end = new_obj + sumSizes; + // This will be the new top of the first region that will reflect + // this allocation. + HeapWord* new_top = new_obj + word_size; + + // First, we need to zero the header of the space that we will be + // allocating. When we update top further down, some refinement + // threads might try to scan the region. By zeroing the header we + // ensure that any thread that will try to scan the region will + // come across the zero klass word and bail out. + // + // NOTE: It would not have been correct to have used + // CollectedHeap::fill_with_object() and make the space look like + // an int array. The thread that is doing the allocation will + // later update the object header to a potentially different array + // type and, for a very short period of time, the klass and length + // fields will be inconsistent. This could cause a refinement + // thread to calculate the object size incorrectly. + Copy::fill_to_words(new_obj, oopDesc::header_size(), 0); + + // We will set up the first region as "starts humongous". This + // will also update the BOT covering all the regions to reflect + // that there is a single object that starts at the bottom of the + // first region. + first_hr->set_startsHumongous(new_end); + + // Then, if there are any, we will set up the "continues + // humongous" regions. + HeapRegion* hr = NULL; + for (int i = first + 1; i < cur; ++i) { + hr = _regions.at(i); { MutexLockerEx x(ZF_mon, Mutex::_no_safepoint_check_flag); hr->set_zero_fill_allocated(); } - size_t sz = hr->capacity() / HeapWordSize; - HeapWord* tmp = hr->allocate(sz); - assert(tmp != NULL, "Humongous allocation failure"); - MemRegion mr = MemRegion(tmp, sz); - CollectedHeap::fill_with_object(mr); - hr->declare_filled_region_to_BOT(mr); - if (i == first) { - first_hr->set_startsHumongous(); + hr->set_continuesHumongous(first_hr); + } + // If we have "continues humongous" regions (hr != NULL), then the + // end of the last one should match new_end. + assert(hr == NULL || hr->end() == new_end, "sanity"); + + // Up to this point no concurrent thread would have been able to + // do any scanning on any region in this series. All the top + // fields still point to bottom, so the intersection between + // [bottom,top] and [card_start,card_end] will be empty. Before we + // update the top fields, we'll do a storestore to make sure that + // no thread sees the update to top before the zeroing of the + // object header and the BOT initialization. + OrderAccess::storestore(); + + // Now that the BOT and the object header have been initialized, + // we can update top of the "starts humongous" region. + assert(first_hr->bottom() < new_top && new_top <= first_hr->end(), + "new_top should be in this region"); + first_hr->set_top(new_top); + + // Now, we will update the top fields of the "continues humongous" + // regions. The reason we need to do this is that, otherwise, + // these regions would look empty and this will confuse parts of + // G1. For example, the code that looks for a consecutive number + // of empty regions will consider them empty and try to + // re-allocate them. We can extend is_empty() to also include + // !continuesHumongous(), but it is easier to just update the top + // fields here. + hr = NULL; + for (int i = first + 1; i < cur; ++i) { + hr = _regions.at(i); + if ((i + 1) == cur) { + // last continues humongous region + assert(hr->bottom() < new_top && new_top <= hr->end(), + "new_top should fall on this region"); + hr->set_top(new_top); } else { - assert(i > first, "sanity"); - hr->set_continuesHumongous(first_hr); + // not last one + assert(new_top > hr->end(), "new_top should be above this region"); + hr->set_top(hr->end()); } } - HeapWord* first_hr_bot = first_hr->bottom(); - HeapWord* obj_end = first_hr_bot + word_size; - first_hr->set_top(obj_end); - return first_hr_bot; + // If we have continues humongous regions (hr != NULL), then the + // end of the last one should match new_end and its top should + // match new_top. + assert(hr == NULL || + (hr->end() == new_end && hr->top() == new_top), "sanity"); + + return new_obj; } else { // If we started from the beginning, we want to know why we can't alloc. return NULL; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/heapRegionSeq.hpp --- a/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_HPP + +#include "gc_implementation/g1/heapRegion.hpp" +#include "utilities/growableArray.hpp" + class HeapRegion; class HeapRegionClosure; @@ -108,3 +114,5 @@ void print_empty_runs(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp --- a/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_INLINE_HPP + +#include "gc_implementation/g1/heapRegionSeq.hpp" + inline HeapRegion* HeapRegionSeq::addr_to_region(const void* addr) { assert(_seq_bottom != NULL, "bad _seq_bottom in addr_to_region"); if ((char*) addr >= _seq_bottom) { @@ -38,3 +43,5 @@ } return NULL; } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/ptrQueue.cpp --- a/src/share/vm/gc_implementation/g1/ptrQueue.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/ptrQueue.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,21 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_ptrQueue.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/ptrQueue.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "runtime/mutex.hpp" +#include "runtime/mutexLocker.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif PtrQueue::PtrQueue(PtrQueueSet* qset_, bool perm, bool active) : _qset(qset_), _buf(NULL), _index(0), _active(active), diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/ptrQueue.hpp --- a/src/share/vm/gc_implementation/g1/ptrQueue.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/ptrQueue.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP + +#include "memory/allocation.hpp" +#include "utilities/sizes.hpp" + // There are various techniques that require threads to be able to log // addresses. For example, a generational write barrier might log // the addresses of modified old-generation objects. This type supports @@ -293,3 +299,5 @@ // Notify the consumer if the number of buffers crossed the threshold void notify_if_necessary(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/satbQueue.cpp --- a/src/share/vm/gc_implementation/g1/satbQueue.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/satbQueue.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_satbQueue.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/satbQueue.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/sharedHeap.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/thread.hpp" void ObjPtrQueue::apply_closure(ObjectClosure* cl) { if (_buf != NULL) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/satbQueue.hpp --- a/src/share/vm/gc_implementation/g1/satbQueue.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/satbQueue.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_SATBQUEUE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_SATBQUEUE_HPP + +#include "gc_implementation/g1/ptrQueue.hpp" + class ObjectClosure; class JavaThread; @@ -113,3 +118,5 @@ void abandon_partial_marking(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_SATBQUEUE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/sparsePRT.cpp --- a/src/share/vm/gc_implementation/g1/sparsePRT.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/sparsePRT.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sparsePRT.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/sparsePRT.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/space.inline.hpp" +#include "runtime/mutexLocker.hpp" #define SPARSE_PRT_VERBOSE 0 @@ -308,7 +314,7 @@ assert(e2->num_valid_cards() > 0, "Postcondition."); } -CardIdx_t /* RSHashTable:: */ RSHashTableIter::find_first_card_in_list() { +CardIdx_t RSHashTableIter::find_first_card_in_list() { CardIdx_t res; while (_bl_ind != RSHashTable::NullEntry) { res = _rsht->entry(_bl_ind)->card(0); @@ -322,14 +328,11 @@ return SparsePRTEntry::NullEntry; } -size_t /* RSHashTable:: */ RSHashTableIter::compute_card_ind(CardIdx_t ci) { - return - _heap_bot_card_ind - + (_rsht->entry(_bl_ind)->r_ind() * HeapRegion::CardsPerRegion) - + ci; +size_t RSHashTableIter::compute_card_ind(CardIdx_t ci) { + return (_rsht->entry(_bl_ind)->r_ind() * HeapRegion::CardsPerRegion) + ci; } -bool /* RSHashTable:: */ RSHashTableIter::has_next(size_t& card_index) { +bool RSHashTableIter::has_next(size_t& card_index) { _card_ind++; CardIdx_t ci; if (_card_ind < SparsePRTEntry::cards_num() && diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/sparsePRT.hpp --- a/src/share/vm/gc_implementation/g1/sparsePRT.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/sparsePRT.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_SPARSEPRT_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_SPARSEPRT_HPP + +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "memory/allocation.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "runtime/mutex.hpp" +#include "utilities/globalDefinitions.hpp" + // Sparse remembered set for a heap region (the "owning" region). Maps // indices of other regions to short sequences of cards in the other region // that might contain pointers into the owner region. @@ -169,7 +179,6 @@ int _bl_ind; // [-1, 0.._rsht->_capacity) short _card_ind; // [0..SparsePRTEntry::cards_num()) RSHashTable* _rsht; - size_t _heap_bot_card_ind; // If the bucket list pointed to by _bl_ind contains a card, sets // _bl_ind to the index of that entry, and returns the card. @@ -183,13 +192,11 @@ size_t compute_card_ind(CardIdx_t ci); public: - RSHashTableIter(size_t heap_bot_card_ind) : + RSHashTableIter() : _tbl_ind(RSHashTable::NullEntry), _bl_ind(RSHashTable::NullEntry), _card_ind((SparsePRTEntry::cards_num() - 1)), - _rsht(NULL), - _heap_bot_card_ind(heap_bot_card_ind) - {} + _rsht(NULL) {} void init(RSHashTable* rsht) { _rsht = rsht; @@ -280,20 +287,11 @@ bool contains_card(RegionIdx_t region_id, CardIdx_t card_index) const { return _next->contains_card(region_id, card_index); } - -#if 0 - void verify_is_cleared(); - void print(); -#endif }; -class SparsePRTIter: public /* RSHashTable:: */RSHashTableIter { +class SparsePRTIter: public RSHashTableIter { public: - SparsePRTIter(size_t heap_bot_card_ind) : - /* RSHashTable:: */RSHashTableIter(heap_bot_card_ind) - {} - void init(const SparsePRT* sprt) { RSHashTableIter::init(sprt->cur()); } @@ -301,3 +299,5 @@ return RSHashTableIter::has_next(card_index); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_SPARSEPRT_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/survRateGroup.cpp --- a/src/share/vm/gc_implementation/g1/survRateGroup.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/survRateGroup.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_survRateGroup.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "gc_implementation/g1/survRateGroup.hpp" +#include "memory/allocation.hpp" SurvRateGroup::SurvRateGroup(G1CollectorPolicy* g1p, const char* name, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/survRateGroup.hpp --- a/src/share/vm/gc_implementation/g1/survRateGroup.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/survRateGroup.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_SURVRATEGROUP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_SURVRATEGROUP_HPP + +#include "utilities/numberSeq.hpp" + class G1CollectorPolicy; class SurvRateGroup : public CHeapObj { @@ -92,3 +97,5 @@ void print_surv_rate_summary(); #endif // PRODUCT }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_SURVRATEGROUP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/vm_operations_g1.cpp --- a/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vm_operations_g1.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/vm_operations_g1.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "runtime/interfaceSupport.hpp" void VM_G1CollectForAllocation::doit() { JvmtiGCForAllocationMarker jgcm; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/g1/vm_operations_g1.hpp --- a/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_VM_OPERATIONS_G1_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_VM_OPERATIONS_G1_HPP + +#include "gc_implementation/shared/vmGCOperations.hpp" + // VM_operations for the G1 collector. // VM_GC_Operation: // - VM_CGC_Operation @@ -114,3 +119,5 @@ return "concurrent gc"; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_VM_OPERATIONS_G1_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep --- a/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -// -// Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// 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. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -binaryTreeDictionary.cpp allocationStats.hpp -binaryTreeDictionary.cpp binaryTreeDictionary.hpp -binaryTreeDictionary.cpp globals.hpp -binaryTreeDictionary.cpp ostream.hpp -binaryTreeDictionary.cpp space.inline.hpp -binaryTreeDictionary.cpp spaceDecorator.hpp - -binaryTreeDictionary.hpp freeBlockDictionary.hpp -binaryTreeDictionary.hpp freeList.hpp - -blockOffsetTable.inline.hpp concurrentMarkSweepGeneration.hpp - -cmsAdaptiveSizePolicy.cpp cmsAdaptiveSizePolicy.hpp -cmsAdaptiveSizePolicy.cpp defNewGeneration.hpp -cmsAdaptiveSizePolicy.cpp gcStats.hpp -cmsAdaptiveSizePolicy.cpp genCollectedHeap.hpp -cmsAdaptiveSizePolicy.cpp thread.hpp -cmsAdaptiveSizePolicy.cpp os_.inline.hpp - -cmsAdaptiveSizePolicy.hpp adaptiveSizePolicy.hpp -cmsAdaptiveSizePolicy.hpp timer.hpp - -cmsCollectorPolicy.cpp arguments.hpp -cmsCollectorPolicy.cpp cardTableRS.hpp -cmsCollectorPolicy.cpp cmsAdaptiveSizePolicy.hpp -cmsCollectorPolicy.cpp cmsGCAdaptivePolicyCounters.hpp -cmsCollectorPolicy.cpp cmsCollectorPolicy.hpp -cmsCollectorPolicy.cpp collectorPolicy.hpp -cmsCollectorPolicy.cpp gcLocker.inline.hpp -cmsCollectorPolicy.cpp genCollectedHeap.hpp -cmsCollectorPolicy.cpp gcPolicyCounters.hpp -cmsCollectorPolicy.cpp generationSpec.hpp -cmsCollectorPolicy.cpp globals_extension.hpp -cmsCollectorPolicy.cpp handles.inline.hpp -cmsCollectorPolicy.cpp java.hpp -cmsCollectorPolicy.cpp parNewGeneration.hpp -cmsCollectorPolicy.cpp space.hpp -cmsCollectorPolicy.cpp thread_.inline.hpp -cmsCollectorPolicy.cpp universe.hpp -cmsCollectorPolicy.cpp vmGCOperations.hpp -cmsCollectorPolicy.cpp vmThread.hpp - -cmsCollectorPolicy.hpp collectorPolicy.hpp - -cmsGCAdaptivePolicyCounters.cpp cmsGCAdaptivePolicyCounters.hpp -cmsGCAdaptivePolicyCounters.cpp resourceArea.hpp - -cmsGCAdaptivePolicyCounters.hpp cmsAdaptiveSizePolicy.hpp -cmsGCAdaptivePolicyCounters.hpp gcAdaptivePolicyCounters.hpp -cmsGCAdaptivePolicyCounters.hpp gcStats.hpp -cmsGCAdaptivePolicyCounters.hpp perfData.hpp - -cmsLockVerifier.cpp cmsLockVerifier.hpp -cmsLockVerifier.cpp concurrentMarkSweepThread.hpp -cmsLockVerifier.cpp vmThread.hpp - -cmsLockVerifier.hpp mutex.hpp - -cmsOopClosures.hpp genOopClosures.hpp - -cmsOopClosures.inline.hpp cmsOopClosures.hpp -cmsOopClosures.inline.hpp concurrentMarkSweepGeneration.hpp - -cmsPermGen.cpp blockOffsetTable.inline.hpp -cmsPermGen.cpp cSpaceCounters.hpp -cmsPermGen.cpp cmsPermGen.hpp -cmsPermGen.cpp collectedHeap.inline.hpp -cmsPermGen.cpp compactPermGen.hpp -cmsPermGen.cpp concurrentMarkSweepGeneration.inline.hpp -cmsPermGen.cpp genCollectedHeap.hpp -cmsPermGen.cpp generation.inline.hpp -cmsPermGen.cpp java.hpp -cmsPermGen.cpp oop.inline.hpp -cmsPermGen.cpp permGen.hpp -cmsPermGen.cpp universe.hpp - -cmsPermGen.hpp concurrentMarkSweepGeneration.hpp -cmsPermGen.hpp permGen.hpp - -compactibleFreeListSpace.cpp allocation.inline.hpp -compactibleFreeListSpace.cpp blockOffsetTable.inline.hpp -compactibleFreeListSpace.cpp cmsLockVerifier.hpp -compactibleFreeListSpace.cpp collectedHeap.hpp -compactibleFreeListSpace.cpp compactibleFreeListSpace.hpp -compactibleFreeListSpace.cpp concurrentMarkSweepGeneration.inline.hpp -compactibleFreeListSpace.cpp concurrentMarkSweepThread.hpp -compactibleFreeListSpace.cpp copy.hpp -compactibleFreeListSpace.cpp globals.hpp -compactibleFreeListSpace.cpp handles.inline.hpp -compactibleFreeListSpace.cpp init.hpp -compactibleFreeListSpace.cpp java.hpp -compactibleFreeListSpace.cpp liveRange.hpp -compactibleFreeListSpace.cpp oop.inline.hpp -compactibleFreeListSpace.cpp resourceArea.hpp -compactibleFreeListSpace.cpp spaceDecorator.hpp -compactibleFreeListSpace.cpp universe.inline.hpp -compactibleFreeListSpace.cpp vmThread.hpp - -compactibleFreeListSpace.hpp binaryTreeDictionary.hpp -compactibleFreeListSpace.hpp blockOffsetTable.inline.hpp -compactibleFreeListSpace.hpp freeList.hpp -compactibleFreeListSpace.hpp promotionInfo.hpp -compactibleFreeListSpace.hpp space.hpp - -compactingPermGenGen.cpp concurrentMarkSweepGeneration.inline.hpp - -concurrentMarkSweepGeneration.cpp cardTableRS.hpp -concurrentMarkSweepGeneration.cpp cmsAdaptiveSizePolicy.hpp -concurrentMarkSweepGeneration.cpp cmsCollectorPolicy.hpp -concurrentMarkSweepGeneration.cpp cmsGCAdaptivePolicyCounters.hpp -concurrentMarkSweepGeneration.cpp cmsOopClosures.inline.hpp -concurrentMarkSweepGeneration.cpp codeCache.hpp -concurrentMarkSweepGeneration.cpp collectedHeap.inline.hpp -concurrentMarkSweepGeneration.cpp collectorCounters.hpp -concurrentMarkSweepGeneration.cpp collectorPolicy.hpp -concurrentMarkSweepGeneration.cpp compactibleFreeListSpace.hpp -concurrentMarkSweepGeneration.cpp concurrentMarkSweepGeneration.inline.hpp -concurrentMarkSweepGeneration.cpp concurrentMarkSweepThread.hpp -concurrentMarkSweepGeneration.cpp gcLocker.inline.hpp -concurrentMarkSweepGeneration.cpp genCollectedHeap.hpp -concurrentMarkSweepGeneration.cpp genMarkSweep.hpp -concurrentMarkSweepGeneration.cpp genOopClosures.inline.hpp -concurrentMarkSweepGeneration.cpp globals_extension.hpp -concurrentMarkSweepGeneration.cpp handles.inline.hpp -concurrentMarkSweepGeneration.cpp isGCActiveMark.hpp -concurrentMarkSweepGeneration.cpp iterator.hpp -concurrentMarkSweepGeneration.cpp java.hpp -concurrentMarkSweepGeneration.cpp jvmtiExport.hpp -concurrentMarkSweepGeneration.cpp memoryService.hpp -concurrentMarkSweepGeneration.cpp oop.inline.hpp -concurrentMarkSweepGeneration.cpp parNewGeneration.hpp -concurrentMarkSweepGeneration.cpp referencePolicy.hpp -concurrentMarkSweepGeneration.cpp resourceArea.hpp -concurrentMarkSweepGeneration.cpp runtimeService.hpp -concurrentMarkSweepGeneration.cpp symbolTable.hpp -concurrentMarkSweepGeneration.cpp systemDictionary.hpp -concurrentMarkSweepGeneration.cpp vmCMSOperations.hpp -concurrentMarkSweepGeneration.cpp vmThread.hpp - -concurrentMarkSweepGeneration.hpp bitMap.inline.hpp -concurrentMarkSweepGeneration.hpp freeBlockDictionary.hpp -concurrentMarkSweepGeneration.hpp gSpaceCounters.hpp -concurrentMarkSweepGeneration.hpp gcStats.hpp -concurrentMarkSweepGeneration.hpp generation.hpp -concurrentMarkSweepGeneration.hpp generationCounters.hpp -concurrentMarkSweepGeneration.hpp memoryService.hpp -concurrentMarkSweepGeneration.hpp mutexLocker.hpp -concurrentMarkSweepGeneration.hpp stack.inline.hpp -concurrentMarkSweepGeneration.hpp taskqueue.hpp -concurrentMarkSweepGeneration.hpp virtualspace.hpp -concurrentMarkSweepGeneration.hpp yieldingWorkgroup.hpp - -concurrentMarkSweepGeneration.inline.hpp cmsLockVerifier.hpp -concurrentMarkSweepGeneration.inline.hpp compactibleFreeListSpace.hpp -concurrentMarkSweepGeneration.inline.hpp concurrentMarkSweepGeneration.hpp -concurrentMarkSweepGeneration.inline.hpp concurrentMarkSweepThread.hpp -concurrentMarkSweepGeneration.inline.hpp defNewGeneration.hpp -concurrentMarkSweepGeneration.inline.hpp gcUtil.hpp - -concurrentMarkSweepThread.cpp concurrentMarkSweepGeneration.inline.hpp -concurrentMarkSweepThread.cpp concurrentMarkSweepThread.hpp -concurrentMarkSweepThread.cpp genCollectedHeap.hpp -concurrentMarkSweepThread.cpp init.hpp -concurrentMarkSweepThread.cpp instanceRefKlass.hpp -concurrentMarkSweepThread.cpp interfaceSupport.hpp -concurrentMarkSweepThread.cpp java.hpp -concurrentMarkSweepThread.cpp javaCalls.hpp -concurrentMarkSweepThread.cpp mutexLocker.hpp -concurrentMarkSweepThread.cpp oop.inline.hpp -concurrentMarkSweepThread.cpp os.hpp -concurrentMarkSweepThread.cpp systemDictionary.hpp -concurrentMarkSweepThread.cpp vmThread.hpp - -concurrentMarkSweepThread.hpp concurrentGCThread.hpp -concurrentMarkSweepThread.hpp concurrentMarkSweepGeneration.hpp -concurrentMarkSweepThread.hpp thread_.inline.hpp - -freeBlockDictionary.cpp freeBlockDictionary.hpp -freeBlockDictionary.cpp thread_.inline.hpp - -freeBlockDictionary.hpp allocation.hpp -freeBlockDictionary.hpp debug.hpp -freeBlockDictionary.hpp freeChunk.hpp -freeBlockDictionary.hpp globalDefinitions.hpp -freeBlockDictionary.hpp memRegion.hpp -freeBlockDictionary.hpp mutex.hpp -freeBlockDictionary.hpp ostream.hpp - -freeChunk.cpp copy.hpp -freeChunk.cpp freeBlockDictionary.hpp - -freeChunk.hpp allocation.hpp -freeChunk.hpp debug.hpp -freeChunk.hpp globalDefinitions.hpp -freeChunk.hpp markOop.hpp -freeChunk.hpp memRegion.hpp -freeChunk.hpp mutex.hpp -freeChunk.hpp ostream.hpp - -freeList.cpp freeBlockDictionary.hpp -freeList.cpp freeList.hpp -freeList.cpp globals.hpp -freeList.cpp mutex.hpp -freeList.cpp sharedHeap.hpp -freeList.cpp vmThread.hpp - -freeList.hpp allocationStats.hpp - -promotionInfo.cpp compactibleFreeListSpace.hpp -promotionInfo.cpp markOop.inline.hpp -promotionInfo.cpp oop.inline.hpp -promotionInfo.cpp promotionInfo.hpp - -promotionInfo.hpp allocation.hpp -promotionInfo.hpp freeChunk.hpp - -vmCMSOperations.cpp concurrentMarkSweepGeneration.inline.hpp -vmCMSOperations.cpp concurrentMarkSweepThread.hpp -vmCMSOperations.cpp dtrace.hpp -vmCMSOperations.cpp gcLocker.inline.hpp -vmCMSOperations.cpp isGCActiveMark.hpp -vmCMSOperations.cpp interfaceSupport.hpp -vmCMSOperations.cpp vmCMSOperations.hpp - -vmCMSOperations.hpp concurrentMarkSweepGeneration.hpp -vmCMSOperations.hpp gcCause.hpp -vmCMSOperations.hpp vm_operations.hpp -vmCMSOperations.hpp vmGCOperations.hpp - -yieldingWorkgroup.cpp yieldingWorkgroup.hpp - -yieldingWorkgroup.hpp workgroup.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/includeDB_gc_g1 --- a/src/share/vm/gc_implementation/includeDB_gc_g1 Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,373 +0,0 @@ -// -// Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// 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. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -bufferingOopClosure.hpp genOopClosures.hpp -bufferingOopClosure.hpp generation.hpp -bufferingOopClosure.hpp os.hpp -bufferingOopClosure.hpp taskqueue.hpp - -cardTableRS.cpp concurrentMark.hpp -cardTableRS.cpp g1SATBCardTableModRefBS.hpp - -collectionSetChooser.cpp g1CollectedHeap.inline.hpp -collectionSetChooser.cpp g1CollectorPolicy.hpp -collectionSetChooser.cpp collectionSetChooser.hpp -collectionSetChooser.cpp space.inline.hpp - -collectionSetChooser.hpp heapRegion.hpp -collectionSetChooser.hpp growableArray.hpp - -concurrentG1Refine.cpp atomic.hpp -concurrentG1Refine.cpp concurrentG1Refine.hpp -concurrentG1Refine.cpp concurrentG1RefineThread.hpp -concurrentG1Refine.cpp copy.hpp -concurrentG1Refine.cpp g1CollectedHeap.inline.hpp -concurrentG1Refine.cpp g1CollectorPolicy.hpp -concurrentG1Refine.cpp g1RemSet.hpp -concurrentG1Refine.cpp space.inline.hpp -concurrentG1Refine.cpp heapRegionSeq.inline.hpp - -concurrentG1Refine.hpp globalDefinitions.hpp -concurrentG1Refine.hpp allocation.hpp -concurrentG1Refine.hpp cardTableModRefBS.hpp -concurrentG1Refine.hpp thread.hpp - -concurrentG1RefineThread.cpp concurrentG1Refine.hpp -concurrentG1RefineThread.cpp concurrentG1RefineThread.hpp -concurrentG1RefineThread.cpp g1CollectedHeap.inline.hpp -concurrentG1RefineThread.cpp g1CollectorPolicy.hpp -concurrentG1RefineThread.cpp handles.inline.hpp -concurrentG1RefineThread.cpp mutexLocker.hpp -concurrentG1RefineThread.cpp resourceArea.hpp - -concurrentG1RefineThread.hpp concurrentGCThread.hpp - -concurrentMark.cpp concurrentMark.hpp -concurrentMark.cpp concurrentMarkThread.inline.hpp -concurrentMark.cpp g1CollectedHeap.inline.hpp -concurrentMark.cpp g1CollectorPolicy.hpp -concurrentMark.cpp g1RemSet.hpp -concurrentMark.cpp genOopClosures.inline.hpp -concurrentMark.cpp heapRegionRemSet.hpp -concurrentMark.cpp heapRegionSeq.inline.hpp -concurrentMark.cpp handles.inline.hpp -concurrentMark.cpp java.hpp -concurrentMark.cpp oop.inline.hpp -concurrentMark.cpp referencePolicy.hpp -concurrentMark.cpp resourceArea.hpp -concurrentMark.cpp symbolTable.hpp - -concurrentMark.hpp heapRegion.hpp -concurrentMark.hpp taskqueue.hpp - -concurrentMarkThread.cpp concurrentMarkThread.inline.hpp -concurrentMarkThread.cpp g1CollectedHeap.inline.hpp -concurrentMarkThread.cpp g1CollectorPolicy.hpp -concurrentMarkThread.cpp g1MMUTracker.hpp -concurrentMarkThread.cpp resourceArea.hpp -concurrentMarkThread.cpp vm_operations_g1.hpp -concurrentMarkThread.cpp vmThread.hpp - -concurrentMarkThread.hpp concurrentGCThread.hpp - -concurrentMarkThread.inline.hpp concurrentMark.hpp -concurrentMarkThread.inline.hpp concurrentMarkThread.hpp - -concurrentZFThread.cpp concurrentZFThread.hpp -concurrentZFThread.cpp heapRegion.hpp -concurrentZFThread.cpp g1CollectedHeap.inline.hpp -concurrentZFThread.cpp copy.hpp -concurrentZFThread.cpp mutexLocker.hpp -concurrentZFThread.cpp space.inline.hpp - -concurrentZFThread.hpp concurrentGCThread.hpp - -dirtyCardQueue.cpp atomic.hpp -dirtyCardQueue.cpp dirtyCardQueue.hpp -dirtyCardQueue.cpp heapRegionRemSet.hpp -dirtyCardQueue.cpp mutexLocker.hpp -dirtyCardQueue.cpp safepoint.hpp -dirtyCardQueue.cpp thread.hpp -dirtyCardQueue.cpp thread_.inline.hpp -dirtyCardQueue.cpp workgroup.hpp - -dirtyCardQueue.hpp allocation.hpp -dirtyCardQueue.hpp ptrQueue.hpp - -g1BlockOffsetTable.cpp g1BlockOffsetTable.inline.hpp -g1BlockOffsetTable.cpp java.hpp -g1BlockOffsetTable.cpp oop.inline.hpp -g1BlockOffsetTable.cpp space.hpp - -g1BlockOffsetTable.hpp globalDefinitions.hpp -g1BlockOffsetTable.hpp memRegion.hpp -g1BlockOffsetTable.hpp virtualspace.hpp - -g1BlockOffsetTable.inline.hpp g1BlockOffsetTable.hpp -g1BlockOffsetTable.inline.hpp space.hpp - -g1CollectedHeap.cpp aprofiler.hpp -g1CollectedHeap.cpp bufferingOopClosure.hpp -g1CollectedHeap.cpp concurrentG1Refine.hpp -g1CollectedHeap.cpp concurrentG1RefineThread.hpp -g1CollectedHeap.cpp concurrentMarkThread.inline.hpp -g1CollectedHeap.cpp concurrentZFThread.hpp -g1CollectedHeap.cpp g1CollectedHeap.inline.hpp -g1CollectedHeap.cpp g1CollectorPolicy.hpp -g1CollectedHeap.cpp g1MarkSweep.hpp -g1CollectedHeap.cpp g1RemSet.inline.hpp -g1CollectedHeap.cpp g1OopClosures.inline.hpp -g1CollectedHeap.cpp genOopClosures.inline.hpp -g1CollectedHeap.cpp gcLocker.inline.hpp -g1CollectedHeap.cpp generationSpec.hpp -g1CollectedHeap.cpp heapRegionRemSet.hpp -g1CollectedHeap.cpp heapRegionSeq.inline.hpp -g1CollectedHeap.cpp icBuffer.hpp -g1CollectedHeap.cpp isGCActiveMark.hpp -g1CollectedHeap.cpp oop.inline.hpp -g1CollectedHeap.cpp oop.pcgc.inline.hpp -g1CollectedHeap.cpp vm_operations_g1.hpp -g1CollectedHeap.cpp vmThread.hpp - -g1CollectedHeap.hpp barrierSet.hpp -g1CollectedHeap.hpp g1RemSet.hpp -g1CollectedHeap.hpp heapRegion.hpp -g1CollectedHeap.hpp memRegion.hpp -g1CollectedHeap.hpp parGCAllocBuffer.hpp -g1CollectedHeap.hpp sharedHeap.hpp - -g1CollectedHeap.inline.hpp concurrentMark.hpp -g1CollectedHeap.inline.hpp g1CollectedHeap.hpp -g1CollectedHeap.inline.hpp heapRegionSeq.hpp -g1CollectedHeap.inline.hpp taskqueue.hpp - -g1CollectorPolicy.cpp arguments.hpp -g1CollectorPolicy.cpp concurrentG1Refine.hpp -g1CollectorPolicy.cpp concurrentMark.hpp -g1CollectorPolicy.cpp concurrentMarkThread.inline.hpp -g1CollectorPolicy.cpp debug.hpp -g1CollectorPolicy.cpp java.hpp -g1CollectorPolicy.cpp g1CollectedHeap.inline.hpp -g1CollectorPolicy.cpp g1CollectorPolicy.hpp -g1CollectorPolicy.cpp heapRegionRemSet.hpp -g1CollectorPolicy.cpp mutexLocker.hpp -g1CollectorPolicy.cpp gcPolicyCounters.hpp - -g1CollectorPolicy.hpp collectorPolicy.hpp -g1CollectorPolicy.hpp collectionSetChooser.hpp -g1CollectorPolicy.hpp g1MMUTracker.hpp - -g1_globals.cpp g1_globals.hpp - -g1_globals.hpp globals.hpp - -globals.cpp g1_globals.hpp -top.hpp g1_globals.hpp - -g1MarkSweep.cpp aprofiler.hpp -g1MarkSweep.cpp biasedLocking.hpp -g1MarkSweep.cpp codeCache.hpp -g1MarkSweep.cpp events.hpp -g1MarkSweep.cpp fprofiler.hpp -g1MarkSweep.hpp g1CollectedHeap.inline.hpp -g1MarkSweep.cpp g1MarkSweep.hpp -g1MarkSweep.cpp gcLocker.hpp -g1MarkSweep.cpp genCollectedHeap.hpp -g1MarkSweep.hpp heapRegion.hpp -g1MarkSweep.cpp icBuffer.hpp -g1MarkSweep.cpp instanceRefKlass.hpp -g1MarkSweep.cpp javaClasses.hpp -g1MarkSweep.cpp jvmtiExport.hpp -g1MarkSweep.cpp copy.hpp -g1MarkSweep.cpp modRefBarrierSet.hpp -g1MarkSweep.cpp oop.inline.hpp -g1MarkSweep.cpp referencePolicy.hpp -g1MarkSweep.cpp space.hpp -g1MarkSweep.cpp symbolTable.hpp -g1MarkSweep.cpp synchronizer.hpp -g1MarkSweep.cpp systemDictionary.hpp -g1MarkSweep.cpp thread.hpp -g1MarkSweep.cpp vmSymbols.hpp -g1MarkSweep.cpp vmThread.hpp - -g1MarkSweep.hpp generation.hpp -g1MarkSweep.hpp growableArray.hpp -g1MarkSweep.hpp markOop.hpp -g1MarkSweep.hpp genMarkSweep.hpp -g1MarkSweep.hpp oop.hpp -g1MarkSweep.hpp timer.hpp -g1MarkSweep.hpp universe.hpp - -g1MemoryPool.cpp heapRegion.hpp -g1MemoryPool.cpp g1CollectedHeap.inline.hpp -g1MemoryPool.cpp g1CollectedHeap.hpp -g1MemoryPool.cpp g1CollectorPolicy.hpp -g1MemoryPool.cpp g1MemoryPool.hpp - -g1MemoryPool.hpp memoryUsage.hpp -g1MemoryPool.hpp memoryPool.hpp - -g1OopClosures.inline.hpp concurrentMark.hpp -g1OopClosures.inline.hpp g1OopClosures.hpp -g1OopClosures.inline.hpp g1CollectedHeap.hpp -g1OopClosures.inline.hpp g1RemSet.hpp - -g1MMUTracker.cpp g1MMUTracker.hpp -g1MMUTracker.cpp ostream.hpp -g1MMUTracker.cpp mutexLocker.hpp - -g1MMUTracker.hpp debug.hpp -g1MMUTracker.hpp allocation.hpp - -g1RemSet.cpp bufferingOopClosure.hpp -g1RemSet.cpp concurrentG1Refine.hpp -g1RemSet.cpp concurrentG1RefineThread.hpp -g1RemSet.cpp g1BlockOffsetTable.inline.hpp -g1RemSet.cpp g1CollectedHeap.inline.hpp -g1RemSet.cpp g1CollectorPolicy.hpp -g1RemSet.cpp g1RemSet.inline.hpp -g1RemSet.cpp g1OopClosures.inline.hpp -g1RemSet.cpp heapRegionSeq.inline.hpp -g1RemSet.cpp intHisto.hpp -g1RemSet.cpp iterator.hpp -g1RemSet.cpp oop.inline.hpp - -g1RemSet.inline.hpp oop.inline.hpp -g1RemSet.inline.hpp g1RemSet.hpp -g1RemSet.inline.hpp heapRegionRemSet.hpp - -g1SATBCardTableModRefBS.cpp g1SATBCardTableModRefBS.hpp -g1SATBCardTableModRefBS.cpp heapRegion.hpp -g1SATBCardTableModRefBS.cpp mutexLocker.hpp -g1SATBCardTableModRefBS.cpp thread.hpp -g1SATBCardTableModRefBS.cpp thread_.inline.hpp -g1SATBCardTableModRefBS.cpp satbQueue.hpp - -g1SATBCardTableModRefBS.hpp oop.inline.hpp -g1SATBCardTableModRefBS.hpp cardTableModRefBS.hpp -g1SATBCardTableModRefBS.hpp memRegion.hpp - -heapRegion.cpp concurrentZFThread.hpp -heapRegion.cpp g1BlockOffsetTable.inline.hpp -heapRegion.cpp g1CollectedHeap.inline.hpp -heapRegion.cpp g1OopClosures.inline.hpp -heapRegion.cpp genOopClosures.inline.hpp -heapRegion.cpp heapRegion.inline.hpp -heapRegion.cpp heapRegionRemSet.hpp -heapRegion.cpp heapRegionSeq.inline.hpp -heapRegion.cpp iterator.hpp -heapRegion.cpp oop.inline.hpp - -heapRegion.hpp space.inline.hpp -heapRegion.hpp spaceDecorator.hpp -heapRegion.hpp g1BlockOffsetTable.inline.hpp -heapRegion.hpp watermark.hpp -heapRegion.hpp g1_specialized_oop_closures.hpp -heapRegion.hpp survRateGroup.hpp -heapRegion.hpp ageTable.hpp - -heapRegionRemSet.hpp sparsePRT.hpp - -heapRegionRemSet.cpp allocation.hpp -heapRegionRemSet.cpp bitMap.inline.hpp -heapRegionRemSet.cpp concurrentG1Refine.hpp -heapRegionRemSet.cpp g1BlockOffsetTable.inline.hpp -heapRegionRemSet.cpp g1CollectedHeap.inline.hpp -heapRegionRemSet.cpp heapRegionRemSet.hpp -heapRegionRemSet.cpp heapRegionSeq.inline.hpp -heapRegionRemSet.cpp globalDefinitions.hpp -heapRegionRemSet.cpp space.inline.hpp - -heapRegionSeq.cpp allocation.hpp -heapRegionSeq.cpp g1CollectedHeap.inline.hpp -heapRegionSeq.cpp heapRegionSeq.hpp - -heapRegionSeq.hpp growableArray.hpp -heapRegionSeq.hpp heapRegion.hpp - -heapRegionSeq.inline.hpp heapRegionSeq.hpp - -klass.hpp g1OopClosures.hpp - -memoryService.cpp g1MemoryPool.hpp - -ptrQueue.cpp allocation.hpp -ptrQueue.cpp allocation.inline.hpp -ptrQueue.cpp mutex.hpp -ptrQueue.cpp mutexLocker.hpp -ptrQueue.cpp ptrQueue.hpp -ptrQueue.cpp thread_.inline.hpp - -ptrQueue.hpp allocation.hpp -ptrQueue.hpp sizes.hpp - -ptrQueue.inline.hpp ptrQueue.hpp - -satbQueue.cpp allocation.inline.hpp -satbQueue.cpp mutexLocker.hpp -satbQueue.cpp satbQueue.hpp -satbQueue.cpp sharedHeap.hpp -satbQueue.cpp thread.hpp - -satbQueue.hpp ptrQueue.hpp - -sparsePRT.cpp allocation.inline.hpp -sparsePRT.cpp cardTableModRefBS.hpp -sparsePRT.cpp heapRegion.hpp -sparsePRT.cpp heapRegionRemSet.hpp -sparsePRT.cpp mutexLocker.hpp -sparsePRT.cpp sparsePRT.hpp -sparsePRT.cpp space.inline.hpp - -sparsePRT.hpp allocation.hpp -sparsePRT.hpp cardTableModRefBS.hpp -sparsePRT.hpp globalDefinitions.hpp -sparsePRT.hpp g1CollectedHeap.inline.hpp -sparsePRT.hpp heapRegion.hpp -sparsePRT.hpp mutex.hpp - -specialized_oop_closures.hpp g1_specialized_oop_closures.hpp - -survRateGroup.hpp numberSeq.hpp - -survRateGroup.cpp allocation.hpp -survRateGroup.cpp g1CollectedHeap.inline.hpp -survRateGroup.cpp g1CollectorPolicy.hpp -survRateGroup.cpp heapRegion.hpp -survRateGroup.cpp survRateGroup.hpp - -thread.cpp concurrentMarkThread.inline.hpp - -universe.cpp g1CollectedHeap.inline.hpp -universe.cpp g1CollectorPolicy.hpp - -vm_operations_g1.hpp vmGCOperations.hpp - -vm_operations_g1.cpp vm_operations_g1.hpp -vm_operations_g1.cpp g1CollectedHeap.inline.hpp -vm_operations_g1.cpp g1CollectorPolicy.hpp -vm_operations_g1.cpp interfaceSupport.hpp -vm_operations_g1.cpp isGCActiveMark.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/includeDB_gc_parNew --- a/src/share/vm/gc_implementation/includeDB_gc_parNew Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -// -// Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -asParNewGeneration.hpp adaptiveSizePolicy.hpp -asParNewGeneration.hpp parNewGeneration.hpp - -asParNewGeneration.cpp asParNewGeneration.hpp -asParNewGeneration.cpp cmsAdaptiveSizePolicy.hpp -asParNewGeneration.cpp cmsGCAdaptivePolicyCounters.hpp -asParNewGeneration.cpp defNewGeneration.inline.hpp -asParNewGeneration.cpp markOop.inline.hpp -asParNewGeneration.cpp markSweep.inline.hpp -asParNewGeneration.cpp oop.pcgc.inline.hpp -asParNewGeneration.cpp parNewGeneration.hpp -asParNewGeneration.cpp referencePolicy.hpp -asParNewGeneration.cpp spaceDecorator.hpp - -parCardTableModRefBS.cpp allocation.inline.hpp -parCardTableModRefBS.cpp cardTableModRefBS.hpp -parCardTableModRefBS.cpp cardTableRS.hpp -parCardTableModRefBS.cpp java.hpp -parCardTableModRefBS.cpp mutexLocker.hpp -parCardTableModRefBS.cpp sharedHeap.hpp -parCardTableModRefBS.cpp space.inline.hpp -parCardTableModRefBS.cpp universe.hpp -parCardTableModRefBS.cpp virtualspace.hpp - -parGCAllocBuffer.cpp arrayOop.hpp -parGCAllocBuffer.cpp oop.inline.hpp -parGCAllocBuffer.cpp parGCAllocBuffer.hpp -parGCAllocBuffer.cpp sharedHeap.hpp - -parGCAllocBuffer.hpp allocation.hpp -parGCAllocBuffer.hpp globalDefinitions.hpp -parGCAllocBuffer.hpp threadLocalAllocBuffer.hpp - -parNewGeneration.cpp adaptiveSizePolicy.hpp -parNewGeneration.cpp ageTable.hpp -parNewGeneration.cpp concurrentMarkSweepGeneration.hpp -parNewGeneration.cpp copy.hpp -parNewGeneration.cpp defNewGeneration.inline.hpp -parNewGeneration.cpp genCollectedHeap.hpp -parNewGeneration.cpp genOopClosures.inline.hpp -parNewGeneration.cpp generation.hpp -parNewGeneration.cpp generation.inline.hpp -parNewGeneration.cpp globalDefinitions.hpp -parNewGeneration.cpp handles.hpp -parNewGeneration.cpp handles.inline.hpp -parNewGeneration.cpp java.hpp -parNewGeneration.cpp objArrayOop.hpp -parNewGeneration.cpp oop.inline.hpp -parNewGeneration.cpp oop.pcgc.inline.hpp -parNewGeneration.cpp parGCAllocBuffer.hpp -parNewGeneration.cpp parNewGeneration.hpp -parNewGeneration.cpp parOopClosures.inline.hpp -parNewGeneration.cpp referencePolicy.hpp -parNewGeneration.cpp resourceArea.hpp -parNewGeneration.cpp sharedHeap.hpp -parNewGeneration.cpp space.hpp -parNewGeneration.cpp spaceDecorator.hpp -parNewGeneration.cpp thread.hpp -parNewGeneration.cpp workgroup.hpp - -parNewGeneration.hpp defNewGeneration.hpp -parNewGeneration.hpp parGCAllocBuffer.hpp -parNewGeneration.hpp taskqueue.hpp - -parOopClosures.hpp genOopClosures.hpp - -parOopClosures.inline.hpp parNewGeneration.hpp -parOopClosures.inline.hpp parOopClosures.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/includeDB_gc_parallelScavenge --- a/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,466 +0,0 @@ -// -// Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// 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. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - - -adjoiningGenerations.hpp adjoiningVirtualSpaces.hpp -adjoiningGenerations.hpp asPSOldGen.hpp -adjoiningGenerations.hpp asPSYoungGen.hpp -adjoiningGenerations.hpp psPermGen.hpp - -adjoiningGenerations.cpp adjoiningGenerations.hpp -adjoiningGenerations.cpp adjoiningVirtualSpaces.hpp -adjoiningGenerations.cpp parallelScavengeHeap.hpp -adjoiningGenerations.cpp psPermGen.hpp - -adjoiningVirtualSpaces.hpp psVirtualspace.hpp - -adjoiningVirtualSpaces.cpp java.hpp -adjoiningVirtualSpaces.cpp adjoiningVirtualSpaces.hpp - -asPSOldGen.hpp generationCounters.hpp -asPSOldGen.hpp mutableSpace.hpp -asPSOldGen.hpp objectStartArray.hpp -asPSOldGen.hpp psVirtualspace.hpp -asPSOldGen.hpp spaceCounters.hpp -asPSOldGen.hpp psOldGen.hpp - -asPSOldGen.cpp psAdaptiveSizePolicy.hpp -asPSOldGen.cpp cardTableModRefBS.hpp -asPSOldGen.cpp java.hpp -asPSOldGen.cpp oop.inline.hpp -asPSOldGen.cpp parallelScavengeHeap.hpp -asPSOldGen.cpp psMarkSweepDecorator.hpp -asPSOldGen.cpp asPSOldGen.hpp - -asPSYoungGen.hpp generationCounters.hpp -asPSYoungGen.hpp mutableSpace.hpp -asPSYoungGen.hpp objectStartArray.hpp -asPSYoungGen.hpp spaceCounters.hpp -asPSYoungGen.hpp psVirtualspace.hpp -asPSYoungGen.hpp psYoungGen.hpp -asPSYoungGen.hpp spaceDecorator.hpp - -asPSYoungGen.cpp gcUtil.hpp -asPSYoungGen.cpp java.hpp -asPSYoungGen.cpp oop.inline.hpp -asPSYoungGen.cpp parallelScavengeHeap.hpp -asPSYoungGen.cpp psMarkSweepDecorator.hpp -asPSYoungGen.cpp psScavenge.hpp -asPSYoungGen.cpp asPSYoungGen.hpp -asPSYoungGen.cpp psYoungGen.hpp -asPSYoungGen.cpp spaceDecorator.hpp - -cardTableExtension.cpp cardTableExtension.hpp -cardTableExtension.cpp gcTaskManager.hpp -cardTableExtension.cpp oop.inline.hpp -cardTableExtension.cpp oop.psgc.inline.hpp -cardTableExtension.cpp parallelScavengeHeap.hpp -cardTableExtension.cpp psTasks.hpp -cardTableExtension.cpp psYoungGen.hpp - -cardTableExtension.hpp cardTableModRefBS.hpp - -gcTaskManager.hpp mutex.hpp -gcTaskManager.hpp growableArray.hpp - -gcTaskManager.cpp allocation.hpp -gcTaskManager.cpp allocation.inline.hpp -gcTaskManager.cpp gcTaskManager.hpp -gcTaskManager.cpp gcTaskThread.hpp -gcTaskManager.cpp mutex.hpp -gcTaskManager.cpp mutexLocker.hpp - -gcTaskThread.hpp thread.hpp - -gcTaskThread.cpp allocation.hpp -gcTaskThread.cpp allocation.inline.hpp -gcTaskThread.cpp gcTaskManager.hpp -gcTaskThread.cpp gcTaskThread.hpp -gcTaskThread.cpp handles.hpp -gcTaskThread.cpp handles.inline.hpp -gcTaskThread.cpp os.hpp -gcTaskThread.cpp resourceArea.hpp -gcTaskThread.cpp thread.hpp - -generationSizer.hpp collectorPolicy.hpp - -objectStartArray.cpp allocation.inline.hpp -objectStartArray.cpp cardTableModRefBS.hpp -objectStartArray.cpp java.hpp -objectStartArray.cpp objectStartArray.hpp -objectStartArray.cpp oop.inline.hpp - -objectStartArray.hpp allocation.hpp -objectStartArray.hpp memRegion.hpp -objectStartArray.hpp oop.hpp -objectStartArray.hpp psVirtualspace.hpp - -parallelScavengeHeap.cpp adjoiningGenerations.hpp -parallelScavengeHeap.cpp adjoiningVirtualSpaces.hpp -parallelScavengeHeap.cpp cardTableExtension.hpp -parallelScavengeHeap.cpp gcLocker.inline.hpp -parallelScavengeHeap.cpp gcTaskManager.hpp -parallelScavengeHeap.cpp generationSizer.hpp -parallelScavengeHeap.cpp handles.inline.hpp -parallelScavengeHeap.cpp java.hpp -parallelScavengeHeap.cpp oop.inline.hpp -parallelScavengeHeap.cpp parallelScavengeHeap.inline.hpp -parallelScavengeHeap.cpp psAdaptiveSizePolicy.hpp -parallelScavengeHeap.cpp psMarkSweep.hpp -parallelScavengeHeap.cpp psParallelCompact.hpp -parallelScavengeHeap.cpp psPromotionManager.hpp -parallelScavengeHeap.cpp psScavenge.hpp -parallelScavengeHeap.cpp vmThread.hpp -parallelScavengeHeap.cpp vmPSOperations.hpp - -parallelScavengeHeap.inline.hpp parallelScavengeHeap.hpp -parallelScavengeHeap.inline.hpp psMarkSweep.hpp -parallelScavengeHeap.inline.hpp psParallelCompact.hpp -parallelScavengeHeap.inline.hpp psScavenge.hpp - -parallelScavengeHeap.hpp collectedHeap.inline.hpp -parallelScavengeHeap.hpp objectStartArray.hpp -parallelScavengeHeap.hpp gcPolicyCounters.hpp -parallelScavengeHeap.hpp psGCAdaptivePolicyCounters.hpp -parallelScavengeHeap.hpp psOldGen.hpp -parallelScavengeHeap.hpp psPermGen.hpp -parallelScavengeHeap.hpp psYoungGen.hpp -parallelScavengeHeap.hpp ostream.hpp - -parMarkBitMap.cpp bitMap.inline.hpp -parMarkBitMap.cpp oop.inline.hpp -parMarkBitMap.cpp os.hpp -parMarkBitMap.cpp os_.inline.hpp -parMarkBitMap.cpp parMarkBitMap.hpp -parMarkBitMap.cpp parMarkBitMap.inline.hpp -parMarkBitMap.cpp psParallelCompact.hpp - -parMarkBitMap.hpp bitMap.inline.hpp -parMarkBitMap.hpp psVirtualspace.hpp - -psAdaptiveSizePolicy.cpp collectorPolicy.hpp -psAdaptiveSizePolicy.cpp gcPolicyCounters.hpp -psAdaptiveSizePolicy.cpp gcCause.hpp -psAdaptiveSizePolicy.cpp generationSizer.hpp -psAdaptiveSizePolicy.cpp psAdaptiveSizePolicy.hpp -psAdaptiveSizePolicy.cpp psGCAdaptivePolicyCounters.hpp -psAdaptiveSizePolicy.cpp psScavenge.hpp -psAdaptiveSizePolicy.cpp timer.hpp -psAdaptiveSizePolicy.cpp top.hpp - -psAdaptiveSizePolicy.hpp gcCause.hpp -psAdaptiveSizePolicy.hpp gcStats.hpp -psAdaptiveSizePolicy.hpp gcUtil.hpp -psAdaptiveSizePolicy.hpp adaptiveSizePolicy.hpp - -psCompactionManager.cpp gcTaskManager.hpp -psCompactionManager.cpp objArrayKlass.inline.hpp -psCompactionManager.cpp objectStartArray.hpp -psCompactionManager.cpp oop.hpp -psCompactionManager.cpp oop.inline.hpp -psCompactionManager.cpp oop.pcgc.inline.hpp -psCompactionManager.cpp parallelScavengeHeap.hpp -psCompactionManager.cpp parMarkBitMap.hpp -psCompactionManager.cpp psParallelCompact.hpp -psCompactionManager.cpp psCompactionManager.hpp -psCompactionManager.cpp psOldGen.hpp -psCompactionManager.cpp stack.inline.hpp -psCompactionManager.cpp systemDictionary.hpp - -psCompactionManager.hpp allocation.hpp -psCompactionManager.hpp stack.hpp -psCompactionManager.hpp taskqueue.hpp - -psCompactionManager.inline.hpp psCompactionManager.hpp -psCompactionManager.inline.hpp psParallelCompact.hpp - -psGCAdaptivePolicyCounters.hpp gcAdaptivePolicyCounters.hpp -psGCAdaptivePolicyCounters.hpp gcPolicyCounters.hpp -psGCAdaptivePolicyCounters.hpp psAdaptiveSizePolicy.hpp - -psGCAdaptivePolicyCounters.cpp arguments.hpp -psGCAdaptivePolicyCounters.cpp resourceArea.hpp -psGCAdaptivePolicyCounters.cpp psGCAdaptivePolicyCounters.hpp - -psGenerationCounters.cpp psGenerationCounters.hpp -psGenerationCounters.cpp resourceArea.hpp - -psGenerationCounters.hpp generationCounters.hpp -psGenerationCounters.hpp perfData.hpp -psGenerationCounters.hpp psVirtualspace.hpp - -psMarkSweep.cpp psAdaptiveSizePolicy.hpp -psMarkSweep.cpp biasedLocking.hpp -psMarkSweep.cpp codeCache.hpp -psMarkSweep.cpp events.hpp -psMarkSweep.cpp fprofiler.hpp -psMarkSweep.cpp gcCause.hpp -psMarkSweep.cpp gcLocker.inline.hpp -psMarkSweep.cpp generationSizer.hpp -psMarkSweep.cpp isGCActiveMark.hpp -psMarkSweep.cpp oop.inline.hpp -psMarkSweep.cpp memoryService.hpp -psMarkSweep.cpp management.hpp -psMarkSweep.cpp parallelScavengeHeap.hpp -psMarkSweep.cpp psMarkSweep.hpp -psMarkSweep.cpp psMarkSweepDecorator.hpp -psMarkSweep.cpp psOldGen.hpp -psMarkSweep.cpp psPermGen.hpp -psMarkSweep.cpp psScavenge.hpp -psMarkSweep.cpp psYoungGen.hpp -psMarkSweep.cpp referencePolicy.hpp -psMarkSweep.cpp referenceProcessor.hpp -psMarkSweep.cpp safepoint.hpp -psMarkSweep.cpp spaceDecorator.hpp -psMarkSweep.cpp stack.inline.hpp -psMarkSweep.cpp symbolTable.hpp -psMarkSweep.cpp systemDictionary.hpp -psMarkSweep.cpp vmThread.hpp - -psMarkSweep.hpp markSweep.inline.hpp -psMarkSweep.hpp collectorCounters.hpp -psMarkSweep.hpp stack.hpp - -psMarkSweepDecorator.cpp liveRange.hpp -psMarkSweepDecorator.cpp markSweep.inline.hpp -psMarkSweepDecorator.cpp objectStartArray.hpp -psMarkSweepDecorator.cpp oop.inline.hpp -psMarkSweepDecorator.cpp parallelScavengeHeap.hpp -psMarkSweepDecorator.cpp psMarkSweep.hpp -psMarkSweepDecorator.cpp psMarkSweepDecorator.hpp -psMarkSweepDecorator.cpp spaceDecorator.hpp -psMarkSweepDecorator.cpp systemDictionary.hpp - -psMarkSweepDecorator.hpp mutableSpace.hpp - -psParallelCompact.cpp psAdaptiveSizePolicy.hpp -psParallelCompact.cpp codeCache.hpp -psParallelCompact.cpp events.hpp -psParallelCompact.cpp fprofiler.hpp -psParallelCompact.cpp gcCause.hpp -psParallelCompact.cpp gcLocker.inline.hpp -psParallelCompact.cpp gcTaskManager.hpp -psParallelCompact.cpp generationSizer.hpp -psParallelCompact.cpp isGCActiveMark.hpp -psParallelCompact.cpp management.hpp -psParallelCompact.cpp memoryService.hpp -psParallelCompact.cpp methodDataOop.hpp -psParallelCompact.cpp oop.inline.hpp -psParallelCompact.cpp oop.pcgc.inline.hpp -psParallelCompact.cpp parallelScavengeHeap.inline.hpp -psParallelCompact.cpp pcTasks.hpp -psParallelCompact.cpp psMarkSweep.hpp -psParallelCompact.cpp psMarkSweepDecorator.hpp -psParallelCompact.cpp psCompactionManager.inline.hpp -psParallelCompact.cpp psPromotionManager.inline.hpp -psParallelCompact.cpp psOldGen.hpp -psParallelCompact.cpp psParallelCompact.hpp -psParallelCompact.cpp psPermGen.hpp -psParallelCompact.cpp psScavenge.hpp -psParallelCompact.cpp psYoungGen.hpp -psParallelCompact.cpp referencePolicy.hpp -psParallelCompact.cpp referenceProcessor.hpp -psParallelCompact.cpp safepoint.hpp -psParallelCompact.cpp stack.inline.hpp -psParallelCompact.cpp symbolTable.hpp -psParallelCompact.cpp systemDictionary.hpp -psParallelCompact.cpp vmThread.hpp - -psParallelCompact.hpp collectorCounters.hpp -psParallelCompact.hpp markSweep.hpp -psParallelCompact.hpp mutableSpace.hpp -psParallelCompact.hpp objectStartArray.hpp -psParallelCompact.hpp oop.hpp -psParallelCompact.hpp parMarkBitMap.hpp -psParallelCompact.hpp psCompactionManager.hpp -psParallelCompact.hpp sharedHeap.hpp - -psOldGen.cpp psAdaptiveSizePolicy.hpp -psOldGen.cpp cardTableModRefBS.hpp -psOldGen.cpp gcLocker.inline.hpp -psOldGen.cpp java.hpp -psOldGen.cpp oop.inline.hpp -psOldGen.cpp parallelScavengeHeap.hpp -psOldGen.cpp psMarkSweepDecorator.hpp -psOldGen.cpp psOldGen.hpp -psOldGen.cpp spaceDecorator.hpp - -psOldGen.hpp psGenerationCounters.hpp -psOldGen.hpp mutableSpace.hpp -psOldGen.hpp objectStartArray.hpp -psOldGen.hpp psVirtualspace.hpp -psOldGen.hpp safepoint.hpp -psOldGen.hpp spaceCounters.hpp - -psPermGen.cpp gcUtil.hpp -psPermGen.cpp markOop.inline.hpp -psPermGen.cpp markSweep.inline.hpp -psPermGen.cpp parallelScavengeHeap.hpp -psPermGen.cpp psMarkSweepDecorator.hpp -psPermGen.cpp psParallelCompact.hpp -psPermGen.cpp psPermGen.hpp - -psPermGen.hpp psOldGen.hpp - -psPromotionManager.cpp memRegion.hpp -psPromotionManager.cpp mutableSpace.hpp -psPromotionManager.cpp oop.inline.hpp -psPromotionManager.cpp oop.psgc.inline.hpp -psPromotionManager.cpp parallelScavengeHeap.hpp -psPromotionManager.cpp psOldGen.hpp -psPromotionManager.cpp psPromotionManager.inline.hpp -psPromotionManager.cpp psScavenge.inline.hpp - -psPromotionManager.hpp allocation.hpp -psPromotionManager.hpp psPromotionLAB.hpp -psPromotionManager.hpp taskqueue.hpp - -psPromotionManager.inline.hpp psPromotionManager.hpp -psPromotionManager.inline.hpp psScavenge.hpp - -psPromotionLAB.cpp mutableSpace.hpp -psPromotionLAB.cpp oop.inline.hpp -psPromotionLAB.cpp parallelScavengeHeap.hpp -psPromotionLAB.cpp psPromotionLAB.hpp - -psPromotionLAB.hpp allocation.hpp -psPromotionLAB.hpp objectStartArray.hpp - -psScavenge.cpp psAdaptiveSizePolicy.hpp -psScavenge.cpp biasedLocking.hpp -psScavenge.cpp cardTableExtension.hpp -psScavenge.cpp collectorPolicy.hpp -psScavenge.cpp fprofiler.hpp -psScavenge.cpp gcCause.hpp -psScavenge.cpp gcLocker.inline.hpp -psScavenge.cpp gcTaskManager.hpp -psScavenge.cpp generationSizer.hpp -psScavenge.cpp handles.inline.hpp -psScavenge.cpp isGCActiveMark.hpp -psScavenge.cpp oop.inline.hpp -psScavenge.cpp oop.psgc.inline.hpp -psScavenge.cpp memoryService.hpp -psScavenge.cpp parallelScavengeHeap.hpp -psScavenge.cpp psMarkSweep.hpp -psScavenge.cpp psParallelCompact.hpp -psScavenge.cpp psScavenge.inline.hpp -psScavenge.cpp psTasks.hpp -psScavenge.cpp referencePolicy.hpp -psScavenge.cpp referenceProcessor.hpp -psScavenge.cpp resourceArea.hpp -psScavenge.cpp spaceDecorator.hpp -psScavenge.cpp stack.inline.hpp -psScavenge.cpp threadCritical.hpp -psScavenge.cpp vmThread.hpp -psScavenge.cpp vm_operations.hpp - -psScavenge.hpp allocation.hpp -psScavenge.hpp cardTableExtension.hpp -psScavenge.hpp collectorCounters.hpp -psScavenge.hpp oop.hpp -psScavenge.hpp psVirtualspace.hpp -psScavenge.hpp stack.hpp - -psScavenge.inline.hpp cardTableExtension.hpp -psScavenge.inline.hpp parallelScavengeHeap.hpp -psScavenge.inline.hpp psPromotionManager.hpp -psScavenge.inline.hpp psScavenge.hpp - -pcTasks.cpp codeCache.hpp -pcTasks.cpp collectedHeap.hpp -pcTasks.cpp fprofiler.hpp -pcTasks.cpp jniHandles.hpp -pcTasks.cpp jvmtiExport.hpp -pcTasks.cpp management.hpp -pcTasks.cpp objArrayKlass.inline.hpp -pcTasks.cpp psParallelCompact.hpp -pcTasks.cpp pcTasks.hpp -pcTasks.cpp oop.inline.hpp -pcTasks.cpp oop.pcgc.inline.hpp -pcTasks.cpp systemDictionary.hpp -pcTasks.cpp thread.hpp -pcTasks.cpp universe.hpp -pcTasks.cpp vmThread.hpp - -pcTasks.hpp gcTaskManager.hpp -pcTasks.hpp psTasks.hpp - -psTasks.cpp cardTableExtension.hpp -psTasks.cpp codeCache.hpp -psTasks.cpp fprofiler.hpp -psTasks.cpp gcTaskManager.hpp -psTasks.cpp iterator.hpp -psTasks.cpp management.hpp -psTasks.cpp oop.inline.hpp -psTasks.cpp oop.psgc.inline.hpp -psTasks.cpp psMarkSweep.hpp -psTasks.cpp psPromotionManager.hpp -psTasks.cpp psPromotionManager.inline.hpp -psTasks.cpp psScavenge.hpp -psTasks.cpp psTasks.hpp -psTasks.cpp systemDictionary.hpp -psTasks.cpp taskqueue.hpp -psTasks.cpp thread.hpp -psTasks.cpp universe.hpp -psTasks.cpp vmThread.hpp - -psTasks.hpp allocation.hpp -psTasks.hpp growableArray.hpp - -psVirtualspace.hpp virtualspace.hpp - -psVirtualspace.cpp os.hpp -psVirtualspace.cpp os_.inline.hpp -psVirtualspace.cpp psVirtualspace.hpp -psVirtualspace.cpp virtualspace.hpp - -psYoungGen.cpp gcUtil.hpp -psYoungGen.cpp java.hpp -psYoungGen.cpp oop.inline.hpp -psYoungGen.cpp parallelScavengeHeap.hpp -psYoungGen.cpp psMarkSweepDecorator.hpp -psYoungGen.cpp psScavenge.hpp -psYoungGen.cpp psYoungGen.hpp -psYoungGen.cpp mutableNUMASpace.hpp -psYoungGen.cpp spaceDecorator.hpp - -psYoungGen.hpp psGenerationCounters.hpp -psYoungGen.hpp mutableSpace.hpp -psYoungGen.hpp objectStartArray.hpp -psYoungGen.hpp spaceCounters.hpp -psYoungGen.hpp psVirtualspace.hpp - -vmPSOperations.cpp dtrace.hpp -vmPSOperations.cpp parallelScavengeHeap.inline.hpp -vmPSOperations.cpp gcLocker.inline.hpp -vmPSOperations.cpp psMarkSweep.hpp -vmPSOperations.cpp psScavenge.hpp -vmPSOperations.cpp psScavenge.inline.hpp -vmPSOperations.cpp vmPSOperations.hpp - -vmPSOperations.hpp gcCause.hpp -vmPSOperations.hpp parallelScavengeHeap.hpp -vmPSOperations.hpp vmGCOperations.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/includeDB_gc_serial --- a/src/share/vm/gc_implementation/includeDB_gc_serial Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -// -// Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// 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. -// -// - -adaptiveSizePolicy.hpp collectedHeap.hpp -adaptiveSizePolicy.hpp gcCause.hpp -adaptiveSizePolicy.hpp gcUtil.hpp -adaptiveSizePolicy.hpp allocation.hpp -adaptiveSizePolicy.hpp universe.hpp - -adaptiveSizePolicy.cpp adaptiveSizePolicy.hpp -adaptiveSizePolicy.cpp collectorPolicy.hpp -adaptiveSizePolicy.cpp gcCause.hpp -adaptiveSizePolicy.cpp ostream.hpp -adaptiveSizePolicy.cpp timer.hpp - -ageTable.cpp ageTable.hpp -ageTable.cpp collectorPolicy.hpp -ageTable.cpp copy.hpp -ageTable.cpp gcPolicyCounters.hpp -ageTable.cpp resourceArea.hpp -ageTable.cpp sharedHeap.hpp - -ageTable.hpp markOop.hpp -ageTable.hpp oop.hpp -ageTable.hpp perfData.hpp - -collectorCounters.cpp collectorCounters.hpp -collectorCounters.cpp resourceArea.hpp - -collectorCounters.hpp perfData.hpp - -cSpaceCounters.cpp resourceArea.hpp -cSpaceCounters.cpp cSpaceCounters.hpp - -cSpaceCounters.hpp space.inline.hpp -cSpaceCounters.hpp perfData.hpp -cSpaceCounters.hpp generationCounters.hpp - -gcPolicyCounters.cpp resourceArea.hpp -gcPolicyCounters.cpp gcPolicyCounters.hpp - -gcPolicyCounters.hpp perfData.hpp - -gcStats.cpp gcStats.hpp -gcStats.cpp gcUtil.hpp - -gcStats.hpp gcUtil.hpp - -gcUtil.cpp gcUtil.hpp - -gcUtil.hpp allocation.hpp -gcUtil.hpp debug.hpp -gcUtil.hpp globalDefinitions.hpp -gcUtil.hpp ostream.hpp -gcUtil.hpp timer.hpp - -generationCounters.cpp generationCounters.hpp -generationCounters.cpp resourceArea.hpp - -generationCounters.hpp perfData.hpp -generationCounters.hpp virtualspace.hpp - -immutableSpace.hpp iterator.hpp - -liveRange.hpp copy.hpp -liveRange.hpp memRegion.hpp - -markSweep.cpp collectedHeap.inline.hpp -markSweep.cpp markSweep.inline.hpp -markSweep.cpp oop.inline.hpp - -markSweep.hpp growableArray.hpp -markSweep.hpp markOop.hpp -markSweep.hpp oop.hpp -markSweep.hpp stack.hpp -markSweep.hpp timer.hpp -markSweep.hpp universe.hpp - -markSweep.inline.hpp collectedHeap.hpp -markSweep.inline.hpp markSweep.hpp -markSweep.inline.hpp stack.inline.hpp - -mutableSpace.hpp immutableSpace.hpp -mutableSpace.hpp memRegion.hpp -mutableSpace.hpp copy.hpp - -vmGCOperations.cpp vmGCOperations.hpp -vmGCOperations.cpp dtrace.hpp -vmGCOperations.cpp classLoader.hpp -vmGCOperations.cpp gcLocker.inline.hpp -vmGCOperations.cpp genCollectedHeap.hpp -vmGCOperations.cpp handles.inline.hpp -vmGCOperations.cpp init.hpp -vmGCOperations.cpp instanceKlass.hpp -vmGCOperations.cpp instanceRefKlass.hpp -vmGCOperations.cpp interfaceSupport.hpp -vmGCOperations.cpp javaClasses.hpp -vmGCOperations.cpp jvmtiExport.hpp -vmGCOperations.cpp oopFactory.hpp -vmGCOperations.cpp preserveException.hpp - -vmGCOperations.hpp vm_operations.hpp -vmGCOperations.hpp heapInspection.hpp -vmGCOperations.hpp handles.hpp -vmGCOperations.hpp jniHandles.hpp -vmGCOperations.hpp synchronizer.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/includeDB_gc_shared --- a/src/share/vm/gc_implementation/includeDB_gc_shared Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -// -// Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -concurrentGCThread.cpp concurrentGCThread.hpp -concurrentGCThread.cpp init.hpp -concurrentGCThread.cpp instanceRefKlass.hpp -concurrentGCThread.cpp interfaceSupport.hpp -concurrentGCThread.cpp java.hpp -concurrentGCThread.cpp javaCalls.hpp -concurrentGCThread.cpp oop.inline.hpp -concurrentGCThread.cpp systemDictionary.hpp - -concurrentGCThread.hpp thread.hpp - -allocationStats.cpp allocationStats.hpp -allocationStats.cpp ostream.hpp - -allocationStats.hpp allocation.hpp -allocationStats.hpp gcUtil.hpp -allocationStats.hpp globalDefinitions.hpp - -gcAdaptivePolicyCounters.hpp adaptiveSizePolicy.hpp -gcAdaptivePolicyCounters.hpp gcPolicyCounters.hpp - -gcAdaptivePolicyCounters.cpp resourceArea.hpp -gcAdaptivePolicyCounters.cpp gcAdaptivePolicyCounters.hpp - -gSpaceCounters.cpp generation.hpp -gSpaceCounters.cpp resourceArea.hpp -gSpaceCounters.cpp gSpaceCounters.hpp - -gSpaceCounters.hpp generation.hpp -gSpaceCounters.hpp perfData.hpp -gSpaceCounters.hpp generationCounters.hpp - -immutableSpace.cpp immutableSpace.hpp -immutableSpace.cpp oop.inline.hpp -immutableSpace.cpp universe.hpp - -isGCActiveMark.hpp parallelScavengeHeap.hpp - -markSweep.inline.hpp psParallelCompact.hpp - -mutableNUMASpace.cpp mutableNUMASpace.hpp -mutableNUMASpace.cpp oop.inline.hpp -mutableNUMASpace.cpp sharedHeap.hpp -mutableNUMASpace.cpp spaceDecorator.hpp -mutableNUMASpace.cpp thread_.inline.hpp - -mutableNUMASpace.hpp mutableSpace.hpp -mutableNUMASpace.hpp gcUtil.hpp - -mutableSpace.cpp mutableSpace.hpp -mutableSpace.cpp oop.inline.hpp -mutableSpace.cpp safepoint.hpp -mutableSpace.cpp spaceDecorator.hpp -mutableSpace.cpp thread.hpp - -spaceCounters.cpp resourceArea.hpp -spaceCounters.cpp spaceCounters.hpp - -spaceCounters.hpp immutableSpace.hpp -spaceCounters.hpp mutableSpace.hpp -spaceCounters.hpp perfData.hpp -spaceCounters.hpp generationCounters.hpp - -vmGCOperations.cpp g1CollectedHeap.inline.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp --- a/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,17 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_asParNewGeneration.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/parNew/asParNewGeneration.hpp" +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/defNewGeneration.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "oops/markOop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" ASParNewGeneration::ASParNewGeneration(ReservedSpace rs, size_t initial_byte_size, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp --- a/src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_ASPARNEWGENERATION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_ASPARNEWGENERATION_HPP + +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" + // A Generation that does parallel young-gen collection extended // for adaptive size policy. @@ -88,3 +94,5 @@ // Space boundary invariant checker void space_invariants() PRODUCT_RETURN; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_ASPARNEWGENERATION_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp --- a/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parCardTableModRefBS.cpp.incl" +#include "precompiled.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/cardTableRS.hpp" +#include "memory/sharedHeap.hpp" +#include "memory/space.inline.hpp" +#include "memory/universe.hpp" +#include "runtime/java.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/virtualspace.hpp" void CardTableModRefBS::par_non_clean_card_iterate_work(Space* sp, MemRegion mr, DirtyCardToOopClosure* dcto_cl, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp --- a/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parGCAllocBuffer.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parNew/parGCAllocBuffer.hpp" +#include "memory/sharedHeap.hpp" +#include "oops/arrayOop.hpp" +#include "oops/oop.inline.hpp" ParGCAllocBuffer::ParGCAllocBuffer(size_t desired_plab_sz_) : _word_sz(desired_plab_sz_), _bottom(NULL), _top(NULL), diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp --- a/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARGCALLOCBUFFER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARGCALLOCBUFFER_HPP + +#include "memory/allocation.hpp" +#include "memory/threadLocalAllocBuffer.hpp" +#include "utilities/globalDefinitions.hpp" + // Forward decl. class PLABStats; @@ -237,3 +244,5 @@ return MemRegion(_top, _true_end); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARGCALLOCBUFFER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/parNewGeneration.cpp --- a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,33 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parNewGeneration.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "gc_implementation/parNew/parGCAllocBuffer.hpp" +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/parNew/parOopClosures.inline.hpp" +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "gc_implementation/shared/ageTable.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/defNewGeneration.inline.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/generation.hpp" +#include "memory/generation.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/resourceArea.hpp" +#include "memory/sharedHeap.hpp" +#include "memory/space.hpp" +#include "oops/objArrayOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "runtime/handles.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/thread.hpp" +#include "utilities/copy.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/workgroup.hpp" #ifdef _MSC_VER #pragma warning( push ) @@ -846,7 +871,7 @@ // from this generation, pass on collection; let the next generation // do it. if (!collection_attempt_is_safe()) { - gch->set_incremental_collection_will_fail(); + gch->set_incremental_collection_failed(); // slight lie, in that we did not even attempt one return; } assert(to()->is_empty(), "Else not collection_attempt_is_safe"); @@ -935,8 +960,6 @@ assert(to()->is_empty(), "to space should be empty now"); } else { - assert(HandlePromotionFailure, - "Should only be here if promotion failure handling is on"); assert(_promo_failure_scan_stack.is_empty(), "post condition"); _promo_failure_scan_stack.clear(true); // Clear cached segments. @@ -947,7 +970,7 @@ // All the spaces are in play for mark-sweep. swap_spaces(); // Make life simpler for CMS || rescan; see 6483690. from()->set_next_compaction_space(to()); - gch->set_incremental_collection_will_fail(); + gch->set_incremental_collection_failed(); // Inform the next generation that a promotion failure occurred. _next_gen->promotion_failure_occurred(); @@ -1092,11 +1115,6 @@ old, m, sz); if (new_obj == NULL) { - if (!HandlePromotionFailure) { - // A failed promotion likely means the MaxLiveObjectEvacuationRatio flag - // is incorrectly set. In any case, its seriously wrong to be here! - vm_exit_out_of_memory(sz*wordSize, "promotion"); - } // promotion failed, forward to self _promotion_failed = true; new_obj = old; @@ -1206,12 +1224,6 @@ old, m, sz); if (new_obj == NULL) { - if (!HandlePromotionFailure) { - // A failed promotion likely means the MaxLiveObjectEvacuationRatio - // flag is incorrectly set. In any case, its seriously wrong to be - // here! - vm_exit_out_of_memory(sz*wordSize, "promotion"); - } // promotion failed, forward to self forward_ptr = old->forward_to_atomic(old); new_obj = old; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/parNewGeneration.hpp --- a/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARNEWGENERATION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARNEWGENERATION_HPP + +#include "gc_implementation/parNew/parGCAllocBuffer.hpp" +#include "memory/defNewGeneration.hpp" +#include "utilities/taskqueue.hpp" + class ChunkArray; class ParScanWithoutBarrierClosure; class ParScanWithBarrierClosure; @@ -422,3 +429,5 @@ DEBUG_ONLY(static bool is_legal_forward_ptr(oop p);) }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARNEWGENERATION_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/parOopClosures.hpp --- a/src/share/vm/gc_implementation/parNew/parOopClosures.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/parOopClosures.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_HPP + +#include "memory/genOopClosures.hpp" + // Closures for ParNewGeneration class ParScanThreadState; @@ -141,3 +146,5 @@ ParallelTaskTerminator* terminator_); virtual void do_void(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp --- a/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_INLINE_HPP + +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/parNew/parOopClosures.hpp" +#include "memory/cardTableRS.hpp" + template inline void ParScanWeakRefClosure::do_oop_work(T* p) { assert (!oopDesc::is_null(*p), "null weak reference?"); oop obj = oopDesc::load_decode_heap_oop_not_null(p); @@ -107,3 +114,5 @@ inline void ParScanWithoutBarrierClosure::do_oop_nv(oop* p) { ParScanClosure::do_oop_work(p, false, false); } inline void ParScanWithoutBarrierClosure::do_oop_nv(narrowOop* p) { ParScanClosure::do_oop_work(p, false, false); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp --- a/src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_VMSTRUCTS_PARNEW_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_VMSTRUCTS_PARNEW_HPP + #define VM_TYPES_PARNEW(declare_type) \ declare_type(ParNewGeneration, DefNewGeneration) #define VM_INT_CONSTANTS_PARNEW(declare_constant) \ declare_constant(Generation::ParNew) + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_VMSTRUCTS_PARNEW_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_adjoiningGenerations.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/adjoiningGenerations.hpp" +#include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" // If boundary moving is being used, create the young gen and old // gen with ASPSYoungGen and ASPSOldGen, respectively. Revert to diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGGENERATIONS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGGENERATIONS_HPP + +#include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "gc_implementation/parallelScavenge/asPSOldGen.hpp" +#include "gc_implementation/parallelScavenge/asPSYoungGen.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" + // Contains two generations that both use an AdjoiningVirtualSpaces. // The two generations are adjacent in the reserved space for the @@ -75,3 +83,5 @@ // for the adjoining generations. size_t reserved_byte_size(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGGENERATIONS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_adjoiningVirtualSpaces.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "runtime/java.hpp" AdjoiningVirtualSpaces::AdjoiningVirtualSpaces(ReservedSpace rs, size_t min_low_byte_size, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGVIRTUALSPACES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGVIRTUALSPACES_HPP + +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" + // Contains two virtual spaces that each can individually span // most of the reserved region but committed parts of which @@ -106,3 +111,5 @@ size_t init_low_byte_size, size_t init_high_byte_size); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGVIRTUALSPACES_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_asPSOldGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/asPSOldGen.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" // Whereas PSOldGen takes the maximum size of the generation // (which doesn't change in the case of PSOldGen) as a parameter, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSOLDGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSOLDGEN_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceCounters.hpp" + class ASPSOldGen : public PSOldGen { friend class VMStructs; size_t _gen_size_limit; // Largest size the generation's reserved size @@ -55,3 +65,5 @@ // Debugging support virtual const char* short_name() const { return "ASPSOldGen"; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSOLDGEN_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_asPSYoungGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/asPSYoungGen.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" ASPSYoungGen::ASPSYoungGen(size_t init_byte_size, size_t minimum_byte_size, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSYOUNGGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSYOUNGGEN_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceCounters.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" + class ASPSYoungGen : public PSYoungGen { friend class VMStructs; private: @@ -62,3 +73,5 @@ // Printing support virtual const char* short_name() const { return "ASPSYoungGen"; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSYOUNGGEN_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cardTableExtension.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psTasks.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.psgc.inline.hpp" // Checks an individual oop for missing precise marks. Mark // may be either dirty or newgen. diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_CARDTABLEEXTENSION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_CARDTABLEEXTENSION_HPP + +#include "memory/cardTableModRefBS.hpp" + class MutableSpace; class ObjectStartArray; class PSPromotionManager; @@ -108,3 +113,5 @@ #endif // ASSERT }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_CARDTABLEEXTENSION_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_gcTaskManager.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/gcTaskThread.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "runtime/mutex.hpp" +#include "runtime/mutexLocker.hpp" // // GCTask diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKMANAGER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKMANAGER_HPP + +#include "runtime/mutex.hpp" +#include "utilities/growableArray.hpp" + // // The GCTaskManager is a queue of GCTasks, and accessors // to allow the queue to be accessed from many threads. @@ -636,3 +642,5 @@ return _freelist; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKMANAGER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_gcTaskThread.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/gcTaskThread.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/handles.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/thread.hpp" GCTaskThread::GCTaskThread(GCTaskManager* manager, uint which, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKTHREAD_HPP + +#include "runtime/thread.hpp" + // Forward declarations of classes defined here. class GCTaskThread; class GCTaskTimeStamp; @@ -97,3 +102,5 @@ void set_exit_time(jlong time) { _exit_time = time; } void set_name(char* name) { _name = name; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKTHREAD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GENERATIONSIZER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GENERATIONSIZER_HPP + +#include "memory/collectorPolicy.hpp" + // There is a nice batch of tested generation sizing code in // TwoGenerationCollectorPolicy. Lets reuse it! @@ -67,3 +72,5 @@ size_t perm_gen_size() { return PermSize; } size_t max_perm_gen_size() { return MaxPermSize; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GENERATIONSIZER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_objectStartArray.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" void ObjectStartArray::initialize(MemRegion reserved_region) { // We're based on the assumption that we use the same diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_OBJECTSTARTARRAY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_OBJECTSTARTARRAY_HPP + +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "memory/allocation.hpp" +#include "memory/memRegion.hpp" +#include "oops/oop.hpp" + // // This class can be used to locate the beginning of an object in the // covered region. @@ -160,3 +168,5 @@ // "start", the method will return true. bool object_starts_in_range(HeapWord* start_addr, HeapWord* end_addr) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_OBJECTSTARTARRAY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,22 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parMarkBitMap.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parMarkBitMap.hpp" +#include "gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/os.hpp" +#include "utilities/bitMap.inline.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif bool ParMarkBitMap::initialize(MemRegion covered_region) diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_HPP + +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "utilities/bitMap.inline.hpp" + class oopDesc; class ParMarkBitMapClosure; @@ -426,3 +432,5 @@ assert(addr <= region_start() + region_size(), "addr too big"); } #endif // #ifdef ASSERT + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_INLINE_HPP + inline bool ParMarkBitMap::mark_obj(oop obj) { return mark_obj(obj, obj->size()); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,25 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parallelScavengeHeap.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/adjoiningGenerations.hpp" +#include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/vmPSOperations.hpp" +#include "memory/gcLocker.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/vmThread.hpp" +#include "utilities/vmError.hpp" PSYoungGen* ParallelScavengeHeap::_young_gen = NULL; PSOldGen* ParallelScavengeHeap::_old_gen = NULL; @@ -805,7 +822,8 @@ if (young_gen()->is_in_reserved(addr)) { assert(young_gen()->is_in(addr), "addr should be in allocated part of young gen"); - if (Debugging) return NULL; // called from find() in debug.cpp + // called from os::print_location by find or VMError + if (Debugging || VMError::fatal_error_in_progress()) return NULL; Unimplemented(); } else if (old_gen()->is_in_reserved(addr)) { assert(old_gen()->is_in(addr), diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "utilities/ostream.hpp" + class AdjoiningGenerations; class GCTaskManager; class PSAdaptiveSizePolicy; @@ -263,3 +275,5 @@ var = round_to(val, intra_heap_alignment()); return var; } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_INLINE_HPP + +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" + inline size_t ParallelScavengeHeap::total_invocations() { return UseParallelOldGC ? PSParallelCompact::total_invocations() : @@ -49,3 +57,5 @@ inline bool ParallelScavengeHeap::is_in_old_or_perm(oop p) { return old_gen()->is_in_reserved(p) || perm_gen()->is_in_reserved(p); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,22 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_pcTasks.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/parallelScavenge/pcTasks.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/universe.hpp" +#include "oops/objArrayKlass.inline.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/thread.hpp" +#include "runtime/vmThread.hpp" +#include "services/management.hpp" // // ThreadRootsMarkingTask diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PCTASKS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PCTASKS_HPP + +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psTasks.hpp" + // Tasks for parallel compaction of the old generation // @@ -250,3 +257,5 @@ char* name() { return (char *)"drain-region-task"; } virtual void do_it(GCTaskManager* manager, uint which); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PCTASKS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psAdaptiveSizePolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/collectorPolicy.hpp" +#include "runtime/timer.hpp" +#include "utilities/top.hpp" #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSADAPTIVESIZEPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSADAPTIVESIZEPOLICY_HPP + +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_interface/gcCause.hpp" + // This class keeps statistical information and computes the // optimal free space for both the young and old generation // based on current application characteristics (based on gc cost @@ -384,3 +392,5 @@ // Printing support virtual bool print_adaptive_size_policy_on(outputStream* st) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSADAPTIVESIZEPOLICY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,20 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psCompactionManager.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/parMarkBitMap.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psCompactionManager.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "oops/objArrayKlass.inline.hpp" +#include "oops/oop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "utilities/stack.inline.hpp" PSOldGen* ParCompactionManager::_old_gen = NULL; ParCompactionManager** ParCompactionManager::_manager_array = NULL; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_HPP + +#include "memory/allocation.hpp" +#include "utilities/stack.hpp" +#include "utilities/taskqueue.hpp" + // Move to some global location #define HAS_BEEN_MOVED 0x1501d01d // End move to some global location @@ -167,3 +174,5 @@ bool ParCompactionManager::marking_stacks_empty() const { return _marking_stack.is_empty() && _objarray_stack.is_empty(); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP + +#include "gc_implementation/parallelScavenge/psCompactionManager.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" + void ParCompactionManager::push_objarray(oop obj, size_t index) { ObjArrayTask task(obj, index); @@ -39,3 +45,5 @@ #endif region_stack()->push(index); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psGCAdaptivePolicyCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/arguments.hpp" diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGCADAPTIVEPOLICYCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGCADAPTIVEPOLICYCOUNTERS_HPP + +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcAdaptivePolicyCounters.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" + // PSGCAdaptivePolicyCounters is a holder class for performance counters // that track the data and decisions for the ergonomics policy for the // parallel scavenge collector. @@ -200,3 +207,5 @@ return GCPolicyCounters::PSGCAdaptivePolicyCountersKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGCADAPTIVEPOLICYCOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psGenerationCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/psGenerationCounters.hpp" +#include "memory/resourceArea.hpp" PSGenerationCounters::PSGenerationCounters(const char* name, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGENERATIONCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGENERATIONCOUNTERS_HPP + +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "runtime/perfData.hpp" + // A PSGenerationCounter is a holder class for performance counters // that track a generation @@ -41,3 +48,5 @@ _current_size->set_value(_ps_virtual_space->committed_size()); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGENERATIONCOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,34 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psMarkSweep.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/referenceProcessor.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#include "services/management.hpp" +#include "services/memoryService.hpp" +#include "utilities/events.hpp" +#include "utilities/stack.inline.hpp" elapsedTimer PSMarkSweep::_accumulated_time; unsigned int PSMarkSweep::_total_invocations = 0; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEP_HPP + +#include "gc_implementation/shared/collectorCounters.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "utilities/stack.hpp" + class PSAdaptiveSizePolicy; class PSYoungGen; class PSOldGen; @@ -83,3 +90,5 @@ // Time since last full gc (in milliseconds) static jlong millis_since_last_gc(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psMarkSweepDecorator.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/shared/liveRange.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "oops/oop.inline.hpp" PSMarkSweepDecorator* PSMarkSweepDecorator::_destination_decorator = NULL; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEPDECORATOR_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEPDECORATOR_HPP + +#include "gc_implementation/shared/mutableSpace.hpp" + // // A PSMarkSweepDecorator is used to add "ParallelScavenge" style mark sweep operations // to a MutableSpace. @@ -73,3 +78,5 @@ void precompact(); void compact(bool mangle_free_space); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEPDECORATOR_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psOldGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/gcLocker.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" inline const char* PSOldGen::select_name() { return UseParallelOldGC ? "ParOldGen" : "PSOldGen"; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSOLDGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSOLDGEN_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psGenerationCounters.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceCounters.hpp" +#include "runtime/safepoint.hpp" + class PSMarkSweepDecorator; class PSOldGen : public CHeapObj { @@ -190,3 +200,5 @@ // Save the tops of all spaces for later use during mangling. void record_spaces_top() PRODUCT_RETURN; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSOLDGEN_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,39 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psParallelCompact.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp" +#include "gc_implementation/parallelScavenge/pcTasks.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psCompactionManager.inline.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/referenceProcessor.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#include "services/management.hpp" +#include "services/memoryService.hpp" +#include "utilities/events.hpp" +#include "utilities/stack.inline.hpp" #include diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPARALLELCOMPACT_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPARALLELCOMPACT_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/parMarkBitMap.hpp" +#include "gc_implementation/parallelScavenge/psCompactionManager.hpp" +#include "gc_implementation/shared/collectorCounters.hpp" +#include "gc_implementation/shared/markSweep.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "memory/sharedHeap.hpp" +#include "oops/oop.hpp" + class ParallelScavengeHeap; class PSAdaptiveSizePolicy; class PSYoungGen; @@ -1514,3 +1526,5 @@ private: ObjectStartArray* const _start_array; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPARALLELCOMPACT_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psPermGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "oops/markOop.inline.hpp" PSPermGen::PSPermGen(ReservedSpace rs, size_t alignment, size_t initial_size, size_t min_size, size_t max_size, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPERMGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPERMGEN_HPP + +#include "gc_implementation/parallelScavenge/psOldGen.hpp" + class AdaptivePaddedAverage; class PSPermGen : public PSOldGen { @@ -51,3 +56,5 @@ virtual const char* name() const { return "PSPermGen"; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPERMGEN_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psPromotionLAB.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psPromotionLAB.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "oops/oop.inline.hpp" size_t PSPromotionLAB::filler_header_size; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONLAB_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONLAB_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "memory/allocation.hpp" + // // PSPromotionLAB is a parallel scavenge promotion lab. This class acts very // much like a MutableSpace. We couldn't embed a MutableSpace, though, as @@ -140,3 +146,5 @@ debug_only(virtual bool lab_is_valid(MemRegion lab)); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONLAB_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,15 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psPromotionManager.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "memory/memRegion.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.psgc.inline.hpp" PSPromotionManager** PSPromotionManager::_manager_array = NULL; OopStarTaskQueueSet* PSPromotionManager::_stack_array_depth = NULL; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_HPP + +#include "gc_implementation/parallelScavenge/psPromotionLAB.hpp" +#include "memory/allocation.hpp" +#include "utilities/taskqueue.hpp" + // // psPromotionManager is used by a single thread to manage object survival // during a scavenge. The promotion manager contains thread local data only. @@ -191,3 +198,5 @@ TASKQUEUE_STATS_ONLY(inline void record_steal(StarTask& p);) }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_INLINE_HPP + +#include "gc_implementation/parallelScavenge/psPromotionManager.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" + inline PSPromotionManager* PSPromotionManager::manager_array(int index) { assert(_manager_array != NULL, "access of NULL manager_array"); assert(index >= 0 && index <= (int)ParallelGCThreads, "out of range manager_array access"); @@ -77,3 +83,5 @@ } } #endif // TASKQUEUE_STATS + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,9 +22,35 @@ * */ +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" +#include "gc_implementation/parallelScavenge/psTasks.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/collectorPolicy.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/referenceProcessor.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.psgc.inline.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/vmThread.hpp" +#include "runtime/vm_operations.hpp" +#include "services/memoryService.hpp" +#include "utilities/stack.inline.hpp" -# include "incls/_precompiled.incl" -# include "incls/_psScavenge.cpp.incl" HeapWord* PSScavenge::_to_space_top_before_gc = NULL; int PSScavenge::_consecutive_skipped_scavenges = 0; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_HPP + +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/collectorCounters.hpp" +#include "memory/allocation.hpp" +#include "oops/oop.hpp" +#include "utilities/stack.hpp" + class GCTaskManager; class GCTaskQueue; class OopStack; @@ -135,3 +145,5 @@ return result; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_INLINE_HPP + +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" + inline void PSScavenge::save_to_space_top_before_gc() { ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); _to_space_top_before_gc = heap->young_gen()->to_space()->top(); @@ -77,3 +85,5 @@ } } } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,25 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psTasks.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psTasks.hpp" +#include "memory/iterator.hpp" +#include "memory/universe.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.psgc.inline.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/thread.hpp" +#include "runtime/vmThread.hpp" +#include "services/management.hpp" +#include "utilities/taskqueue.hpp" // // ScavengeRootsTask diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSTASKS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSTASKS_HPP + +#include "memory/allocation.hpp" +#include "utilities/growableArray.hpp" + // // psTasks.hpp is a collection of GCTasks used by the // parallelScavenge collector. @@ -144,3 +150,5 @@ virtual void do_it(GCTaskManager* manager, uint which); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSTASKS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psVirtualspace.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "runtime/os.hpp" +#include "runtime/virtualspace.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif // PSVirtualSpace diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSVIRTUALSPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSVIRTUALSPACE_HPP + +#include "runtime/virtualspace.hpp" + // VirtualSpace for the parallel scavenge collector. // // VirtualSpace is data structure for committing a previously reserved address @@ -173,3 +178,5 @@ _committed_low_addr = low_addr; _committed_high_addr = high_addr; } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSVIRTUALSPACE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psYoungGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_implementation/shared/mutableNUMASpace.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" PSYoungGen::PSYoungGen(size_t initial_size, size_t min_size, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSYOUNGGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSYOUNGGEN_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psGenerationCounters.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceCounters.hpp" + class PSMarkSweepDecorator; class PSYoungGen : public CHeapObj { @@ -188,3 +197,5 @@ void record_spaces_top() PRODUCT_RETURN; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSYOUNGGEN_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmPSOperations.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" +#include "gc_implementation/parallelScavenge/vmPSOperations.hpp" +#include "memory/gcLocker.inline.hpp" +#include "utilities/dtrace.hpp" // The following methods are used by the parallel scavenge collector VM_ParallelGCFailedAllocation::VM_ParallelGCFailedAllocation(size_t size, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMPSOPERATIONS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMPSOPERATIONS_HPP + +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "gc_interface/gcCause.hpp" + class VM_ParallelGCFailedAllocation: public VM_GC_Operation { private: size_t _size; @@ -63,3 +70,5 @@ virtual VMOp_Type type() const { return VMOp_ParallelGCSystemGC; } virtual void doit(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMPSOPERATIONS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMSTRUCTS_PARALLELGC_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMSTRUCTS_PARALLELGC_HPP + #define VM_STRUCTS_PARALLELGC(nonstatic_field, \ static_field) \ \ @@ -93,3 +96,5 @@ declare_toplevel_type(ASPSOldGen*) \ declare_toplevel_type(PSPermGen*) \ declare_toplevel_type(ParallelScavengeHeap*) + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMSTRUCTS_PARALLELGC_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp --- a/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -21,9 +21,13 @@ * questions. * */ -#include "incls/_precompiled.incl" -#include "incls/_adaptiveSizePolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/collectorPolicy.hpp" +#include "runtime/timer.hpp" +#include "utilities/ostream.hpp" elapsedTimer AdaptiveSizePolicy::_minor_timer; elapsedTimer AdaptiveSizePolicy::_major_timer; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp --- a/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_ADAPTIVESIZEPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_ADAPTIVESIZEPOLICY_HPP + +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/allocation.hpp" +#include "memory/universe.hpp" + // This class keeps statistical information and computes the // size of the heap. @@ -503,3 +512,5 @@ } } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_ADAPTIVESIZEPOLICY_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/ageTable.cpp --- a/src/share/vm/gc_implementation/shared/ageTable.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/ageTable.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,12 +22,17 @@ * */ +#include "precompiled.hpp" +#include "gc_implementation/shared/ageTable.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "memory/collectorPolicy.hpp" +#include "memory/resourceArea.hpp" +#include "memory/sharedHeap.hpp" +#include "utilities/copy.hpp" + /* Copyright (c) 1992-2009 Oracle and/or its affiliates, and Stanford University. See the LICENSE file for license information. */ -# include "incls/_precompiled.incl" -# include "incls/_ageTable.cpp.incl" - ageTable::ageTable(bool global) { clear(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/ageTable.hpp --- a/src/share/vm/gc_implementation/shared/ageTable.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/ageTable.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_AGETABLE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_AGETABLE_HPP + +#include "oops/markOop.hpp" +#include "oops/oop.hpp" +#include "runtime/perfData.hpp" + /* Copyright (c) 1992-2009 Oracle and/or its affiliates, and Stanford University. See the LICENSE file for license information. */ @@ -64,3 +71,5 @@ private: PerfVariable* _perf_sizes[table_size]; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_AGETABLE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/allocationStats.cpp --- a/src/share/vm/gc_implementation/shared/allocationStats.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/allocationStats.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_allocationStats.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/allocationStats.hpp" +#include "utilities/ostream.hpp" +#endif // Technically this should be derived from machine speed, and // ideally it would be dynamically adjusted. diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/allocationStats.hpp --- a/src/share/vm/gc_implementation/shared/allocationStats.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/allocationStats.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_ALLOCATIONSTATS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_ALLOCATIONSTATS_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/gcUtil.hpp" +#include "memory/allocation.hpp" +#include "utilities/globalDefinitions.hpp" +#endif + class AllocationStats VALUE_OBJ_CLASS_SPEC { // A duration threshold (in ms) used to filter // possibly unreliable samples. @@ -157,3 +166,5 @@ void set_returnedBytes(size_t v) { _returnedBytes = v; } ) }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_ALLOCATIONSTATS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/cSpaceCounters.cpp --- a/src/share/vm/gc_implementation/shared/cSpaceCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/cSpaceCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cSpaceCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/cSpaceCounters.hpp" +#include "memory/resourceArea.hpp" CSpaceCounters::CSpaceCounters(const char* name, int ordinal, size_t max_size, ContiguousSpace* s, GenerationCounters* gc) : diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/cSpaceCounters.hpp --- a/src/share/vm/gc_implementation/shared/cSpaceCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/cSpaceCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_CSPACECOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_CSPACECOUNTERS_HPP + +#include "gc_implementation/shared/generationCounters.hpp" +#include "memory/space.inline.hpp" +#include "runtime/perfData.hpp" + // A CSpaceCounters is a holder class for performance counters // that track a space; @@ -75,3 +82,5 @@ return _space->used(); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_CSPACECOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/collectorCounters.cpp --- a/src/share/vm/gc_implementation/shared/collectorCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/collectorCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_collectorCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/collectorCounters.hpp" +#include "memory/resourceArea.hpp" CollectorCounters::CollectorCounters(const char* name, int ordinal) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/collectorCounters.hpp --- a/src/share/vm/gc_implementation/shared/collectorCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/collectorCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_COLLECTORCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_COLLECTORCOUNTERS_HPP + +#include "runtime/perfData.hpp" + // CollectorCounters is a holder class for performance counters // that track a collector @@ -78,3 +83,5 @@ if (UsePerfData) _c->last_exit_counter()->set_value(os::elapsed_counter()); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_COLLECTORCOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/concurrentGCThread.cpp --- a/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,10 +22,17 @@ * */ -// CopyrightVersion 1.2 +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/shared/concurrentGCThread.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" -# include "incls/_precompiled.incl" -# include "incls/_concurrentGCThread.cpp.incl" +// CopyrightVersion 1.2 int ConcurrentGCThread::_CGC_flag = CGC_nil; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/concurrentGCThread.hpp --- a/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP + +#ifndef SERIALGC +#include "runtime/thread.hpp" +#endif + class VoidClosure; // A SuspendibleThreadSet is (obviously) a set of threads that can be @@ -165,3 +172,5 @@ void manipulatePLL(SLT_msg_type msg); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gSpaceCounters.cpp --- a/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gSpaceCounters.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/gSpaceCounters.hpp" +#include "memory/generation.hpp" +#include "memory/resourceArea.hpp" +#endif GSpaceCounters::GSpaceCounters(const char* name, int ordinal, size_t max_size, Generation* g, GenerationCounters* gc, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gSpaceCounters.hpp --- a/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GSPACECOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GSPACECOUNTERS_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/generationCounters.hpp" +#include "memory/generation.hpp" +#include "runtime/perfData.hpp" +#endif + // A GSpaceCounter is a holder class for performance counters // that track a space; @@ -100,3 +109,5 @@ return _gen->used(); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GSPACECOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.cpp --- a/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gcAdaptivePolicyCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/gcAdaptivePolicyCounters.hpp" +#include "memory/resourceArea.hpp" // This class keeps statistical information and computes the // size of the heap. diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp --- a/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#endif + // This class keeps statistical information and computes the // size of the heap. @@ -222,3 +230,5 @@ return GCPolicyCounters::GCAdaptivePolicyCountersKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gcPolicyCounters.cpp --- a/src/share/vm/gc_implementation/shared/gcPolicyCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gcPolicyCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gcPolicyCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "memory/resourceArea.hpp" GCPolicyCounters::GCPolicyCounters(const char* name, int collectors, int generations) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp --- a/src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCPOLICYCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCPOLICYCOUNTERS_HPP + +#include "runtime/perfData.hpp" + // GCPolicyCounters is a holder class for performance counters // that track a generation @@ -69,3 +74,5 @@ return GCPolicyCounters::GCPolicyCountersKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCPOLICYCOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gcStats.cpp --- a/src/share/vm/gc_implementation/shared/gcStats.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gcStats.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_gcStats.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "gc_implementation/shared/gcUtil.hpp" GCStats::GCStats() { _avg_promoted = new AdaptivePaddedNoZeroDevAverage( diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gcStats.hpp --- a/src/share/vm/gc_implementation/shared/gcStats.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gcStats.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCSTATS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCSTATS_HPP + +#include "gc_implementation/shared/gcUtil.hpp" + class GCStats : public CHeapObj { protected: // Avg amount promoted; used for avoiding promotion undo @@ -61,3 +66,5 @@ return CMSGCStatsKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCSTATS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gcUtil.cpp --- a/src/share/vm/gc_implementation/shared/gcUtil.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gcUtil.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gcUtil.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/gcUtil.hpp" // Catch-all file for utility classes diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/gcUtil.hpp --- a/src/share/vm/gc_implementation/shared/gcUtil.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/gcUtil.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCUTIL_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCUTIL_HPP + +#include "memory/allocation.hpp" +#include "runtime/timer.hpp" +#include "utilities/debug.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/ostream.hpp" + // Catch-all file for utility classes // A weighted average maintains a running, weighted average @@ -206,3 +215,5 @@ _timer->start(); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCUTIL_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/generationCounters.cpp --- a/src/share/vm/gc_implementation/shared/generationCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/generationCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_generationCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "memory/resourceArea.hpp" GenerationCounters::GenerationCounters(const char* name, diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/generationCounters.hpp --- a/src/share/vm/gc_implementation/shared/generationCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/generationCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP + +#include "runtime/perfData.hpp" +#include "runtime/virtualspace.hpp" + // A GenerationCounter is a holder class for performance counters // that track a generation @@ -60,3 +66,5 @@ const char* name_space() const { return _name_space; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/immutableSpace.cpp --- a/src/share/vm/gc_implementation/shared/immutableSpace.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/immutableSpace.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_immutableSpace.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/immutableSpace.hpp" +#include "memory/universe.hpp" +#include "oops/oop.inline.hpp" +#endif void ImmutableSpace::initialize(MemRegion mr) { HeapWord* bottom = mr.start(); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/immutableSpace.hpp --- a/src/share/vm/gc_implementation/shared/immutableSpace.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/immutableSpace.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_IMMUTABLESPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_IMMUTABLESPACE_HPP + +#include "memory/iterator.hpp" + // An ImmutableSpace is a viewport into a contiguous range // (or subrange) of previously allocated objects. @@ -62,3 +67,5 @@ virtual void print_short() const PRODUCT_RETURN; virtual void verify(bool allow_dirty); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_IMMUTABLESPACE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/isGCActiveMark.hpp --- a/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_ISGCACTIVEMARK_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_ISGCACTIVEMARK_HPP + +#ifndef SERIALGC +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#endif + // This class provides a method for block structured setting of the // _is_gc_active state without requiring accessors in CollectedHeap @@ -39,3 +46,5 @@ heap->_is_gc_active = false; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_ISGCACTIVEMARK_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/liveRange.hpp --- a/src/share/vm/gc_implementation/shared/liveRange.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/liveRange.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_LIVERANGE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_LIVERANGE_HPP + +#include "memory/memRegion.hpp" +#include "utilities/copy.hpp" + // This is a shared helper class used during phase 3 and 4 to move all the objects // Dead regions in a Space are linked together to keep track of the live regions // so that the live data can be traversed quickly without having to look at each @@ -46,3 +52,5 @@ Copy::aligned_conjoint_words(start(), destination, word_size()); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_LIVERANGE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/markSweep.cpp --- a/src/share/vm/gc_implementation/shared/markSweep.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/markSweep.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_markSweep.cpp.incl" +#include "precompiled.hpp" +#include "compiler/compileBroker.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.inline.hpp" +#include "oops/oop.inline.hpp" Stack MarkSweep::_marking_stack; Stack MarkSweep::_revisit_mdo_stack; diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/markSweep.hpp --- a/src/share/vm/gc_implementation/shared/markSweep.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/markSweep.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP + +#include "gc_interface/collectedHeap.hpp" +#include "memory/universe.hpp" +#include "oops/markOop.hpp" +#include "oops/oop.hpp" +#include "runtime/timer.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/stack.hpp" +#include "utilities/taskqueue.hpp" + class ReferenceProcessor; class DataLayout; @@ -248,3 +260,5 @@ _obj->set_mark(_mark); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/markSweep.inline.hpp --- a/src/share/vm/gc_implementation/shared/markSweep.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/markSweep.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_INLINE_HPP + +#include "gc_implementation/shared/markSweep.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "utilities/stack.inline.hpp" +#ifndef SERIALGC +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#endif + inline void MarkSweep::mark_object(oop obj) { // some marks may contain information we need to preserve so we store them away // and overwrite the mark. We'll restore it at the end of markSweep. @@ -115,3 +125,5 @@ #endif mark_and_push(p); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp --- a/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutableNUMASpace.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/mutableNUMASpace.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/sharedHeap.hpp" +#include "oops/oop.inline.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif MutableNUMASpace::MutableNUMASpace(size_t alignment) : MutableSpace(alignment) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp --- a/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#endif + /* * The NUMA-aware allocator (MutableNUMASpace) is basically a modification * of MutableSpace which preserves interfaces but implements different @@ -221,3 +229,5 @@ virtual void set_top(HeapWord* value); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/mutableSpace.cpp --- a/src/share/vm/gc_implementation/shared/mutableSpace.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/mutableSpace.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutableSpace.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/thread.hpp" +#endif MutableSpace::MutableSpace(size_t alignment): ImmutableSpace(), _top(NULL), _alignment(alignment) { assert(MutableSpace::alignment() >= 0 && diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/mutableSpace.hpp --- a/src/share/vm/gc_implementation/shared/mutableSpace.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/mutableSpace.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLESPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLESPACE_HPP + +#include "gc_implementation/shared/immutableSpace.hpp" +#include "memory/memRegion.hpp" +#include "utilities/copy.hpp" + // A MutableSpace is a subtype of ImmutableSpace that supports the // concept of allocation. This includes the concepts that a space may // be only partially full, and the querry methods that go with such @@ -136,3 +143,5 @@ virtual void print_short_on(outputStream* st) const; virtual void verify(bool allow_dirty); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLESPACE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/spaceCounters.cpp --- a/src/share/vm/gc_implementation/shared/spaceCounters.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/spaceCounters.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_spaceCounters.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/spaceCounters.hpp" +#include "memory/resourceArea.hpp" +#endif SpaceCounters::SpaceCounters(const char* name, int ordinal, size_t max_size, MutableSpace* m, GenerationCounters* gc) : diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/spaceCounters.hpp --- a/src/share/vm/gc_implementation/shared/spaceCounters.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/spaceCounters.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACECOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACECOUNTERS_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/generationCounters.hpp" +#include "gc_implementation/shared/immutableSpace.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "runtime/perfData.hpp" +#endif + // A SpaceCounter is a holder class for performance counters // that track a space; @@ -75,3 +85,5 @@ return _m->used_in_bytes(); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACECOUNTERS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/spaceDecorator.cpp --- a/src/share/vm/gc_implementation/shared/spaceDecorator.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/spaceDecorator.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_spaceDecorator.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/space.inline.hpp" +#include "utilities/copy.hpp" // Catch-all file for utility classes diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/spaceDecorator.hpp --- a/src/share/vm/gc_implementation/shared/spaceDecorator.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/spaceDecorator.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACEDECORATOR_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACEDECORATOR_HPP + +#include "gc_implementation/shared/mutableSpace.hpp" +#include "memory/space.hpp" +#include "utilities/globalDefinitions.hpp" + class SpaceDecorator: public AllStatic { public: // Initialization flags. @@ -139,3 +146,5 @@ public: MutableSpaceMangler(MutableSpace* sp) : SpaceMangler(), _sp(sp) {} }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACEDECORATOR_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/vmGCOperations.cpp --- a/src/share/vm/gc_implementation/shared/vmGCOperations.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/vmGCOperations.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,9 +21,25 @@ * questions. * */ -# include "incls/_precompiled.incl" -# include "incls/_vmGCOperations.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/javaClasses.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/oopFactory.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/instanceRefKlass.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "utilities/dtrace.hpp" +#include "utilities/preserveException.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#endif HS_DTRACE_PROBE_DECL1(hotspot, gc__begin, bool); HS_DTRACE_PROBE_DECL(hotspot, gc__end); diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_implementation/shared/vmGCOperations.hpp --- a/src/share/vm/gc_implementation/shared/vmGCOperations.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_implementation/shared/vmGCOperations.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_VMGCOPERATIONS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_VMGCOPERATIONS_HPP + +#include "memory/heapInspection.hpp" +#include "runtime/handles.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vm_operations.hpp" + // The following class hierarchy represents // a set of operations (VM_Operation) related to GC. // @@ -199,3 +208,5 @@ virtual void doit(); HeapWord* result() const { return _res; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_VMGCOPERATIONS_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_interface/collectedHeap.cpp --- a/src/share/vm/gc_interface/collectedHeap.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_interface/collectedHeap.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,23 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_collectedHeap.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/init.hpp" +#include "services/heapDumper.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif #ifdef ASSERT diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_interface/collectedHeap.hpp --- a/src/share/vm/gc_interface/collectedHeap.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_interface/collectedHeap.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_HPP +#define SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_HPP + +#include "gc_interface/gcCause.hpp" +#include "memory/allocation.hpp" +#include "memory/barrierSet.hpp" +#include "runtime/handles.hpp" +#include "runtime/perfData.hpp" +#include "runtime/safepoint.hpp" + // A "CollectedHeap" is an implementation of a java heap for HotSpot. This // is an abstract class: there may be many different kinds of heaps. This // class defines the functions that a heap must implement, and contains @@ -644,3 +654,5 @@ _heap->set_gc_cause(_previous_cause); } }; + +#endif // SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_interface/collectedHeap.inline.hpp --- a/src/share/vm/gc_interface/collectedHeap.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_interface/collectedHeap.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,28 @@ * */ +#ifndef SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_INLINE_HPP +#define SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_INLINE_HPP + +#include "gc_interface/collectedHeap.hpp" +#include "memory/threadLocalAllocBuffer.inline.hpp" +#include "memory/universe.hpp" +#include "oops/arrayOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/thread.hpp" +#include "services/lowMemoryDetector.hpp" +#include "utilities/copy.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif + // Inline allocation implementations. void CollectedHeap::post_allocation_setup_common(KlassHandle klass, @@ -368,3 +390,5 @@ reset_promotion_should_fail(&_promotion_failure_alot_count); } #endif // #ifndef PRODUCT + +#endif // SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_interface/gcCause.cpp --- a/src/share/vm/gc_interface/gcCause.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_interface/gcCause.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gcCause.cpp.incl" +#include "precompiled.hpp" +#include "gc_interface/gcCause.hpp" const char* GCCause::to_string(GCCause::Cause cause) { switch (cause) { diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/gc_interface/gcCause.hpp --- a/src/share/vm/gc_interface/gcCause.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/gc_interface/gcCause.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_INTERFACE_GCCAUSE_HPP +#define SHARE_VM_GC_INTERFACE_GCCAUSE_HPP + +#include "memory/allocation.hpp" + // // This class exposes implementation details of the various // collector(s), and we need to be very careful with it. If @@ -83,3 +88,5 @@ // Return true if the GCCause is for a full collection. static bool is_for_full_collection(GCCause::Cause cause) PRODUCT_RETURN0; }; + +#endif // SHARE_VM_GC_INTERFACE_GCCAUSE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_compiler1 --- a/src/share/vm/includeDB_compiler1 Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,454 +0,0 @@ -// -// Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -allocation.hpp c1_globals.hpp - -c1_CFGPrinter.cpp c1_CFGPrinter.hpp -c1_CFGPrinter.cpp c1_IR.hpp -c1_CFGPrinter.cpp c1_InstructionPrinter.hpp -c1_CFGPrinter.cpp c1_LIR.hpp -c1_CFGPrinter.cpp c1_LinearScan.hpp -c1_CFGPrinter.cpp c1_ValueStack.hpp - -c1_CFGPrinter.hpp c1_Compilation.hpp -c1_CFGPrinter.hpp c1_Instruction.hpp - -cardTableModRefBS.cpp c1_LIR.hpp -cardTableModRefBS.cpp c1_LIRGenerator.hpp - -c1_Canonicalizer.cpp c1_Canonicalizer.hpp -c1_Canonicalizer.cpp c1_InstructionPrinter.hpp -c1_Canonicalizer.cpp ciArray.hpp -c1_Canonicalizer.cpp sharedRuntime.hpp - -c1_Canonicalizer.hpp c1_Instruction.hpp - -c1_CodeStubs.hpp array.hpp -c1_CodeStubs.hpp c1_FrameMap.hpp -c1_CodeStubs.hpp c1_IR.hpp -c1_CodeStubs.hpp c1_Instruction.hpp -c1_CodeStubs.hpp c1_LIR.hpp -c1_CodeStubs.hpp c1_Runtime1.hpp - -c1_CodeStubs_.cpp c1_CodeStubs.hpp -c1_CodeStubs_.cpp c1_FrameMap.hpp -c1_CodeStubs_.cpp c1_LIRAssembler.hpp -c1_CodeStubs_.cpp c1_MacroAssembler.hpp -c1_CodeStubs_.cpp c1_Runtime1.hpp -c1_CodeStubs_.cpp g1SATBCardTableModRefBS.hpp -c1_CodeStubs_.cpp nativeInst_.hpp -c1_CodeStubs_.cpp sharedRuntime.hpp -c1_CodeStubs_.cpp vmreg_.inline.hpp - -c1_Compilation.cpp c1_CFGPrinter.hpp -c1_Compilation.cpp c1_Compilation.hpp -c1_Compilation.cpp c1_IR.hpp -c1_Compilation.cpp c1_LIRAssembler.hpp -c1_Compilation.cpp c1_LinearScan.hpp -c1_Compilation.cpp c1_MacroAssembler.hpp -c1_Compilation.cpp c1_ValueMap.hpp -c1_Compilation.cpp c1_ValueStack.hpp -c1_Compilation.cpp debugInfoRec.hpp -c1_Compilation.hpp ciEnv.hpp -c1_Compilation.hpp exceptionHandlerTable.hpp -c1_Compilation.hpp resourceArea.hpp - -c1_Compiler.cpp allocation.hpp -c1_Compiler.cpp allocation.inline.hpp -c1_Compiler.cpp arguments.hpp -c1_Compiler.cpp c1_Compilation.hpp -c1_Compiler.cpp c1_Compiler.hpp -c1_Compiler.cpp c1_FrameMap.hpp -c1_Compiler.cpp c1_GraphBuilder.hpp -c1_Compiler.cpp c1_LinearScan.hpp -c1_Compiler.cpp c1_MacroAssembler.hpp -c1_Compiler.cpp c1_Runtime1.hpp -c1_Compiler.cpp c1_ValueType.hpp -c1_Compiler.cpp compileBroker.hpp -c1_Compiler.cpp compilerOracle.hpp -c1_Compiler.cpp interfaceSupport.hpp -c1_Compiler.cpp linkResolver.hpp -c1_Compiler.cpp nativeLookup.hpp -c1_Compiler.cpp resourceArea.hpp -c1_Compiler.cpp sharedRuntime.hpp - -c1_Compiler.hpp abstractCompiler.hpp - -c1_Defs.cpp c1_Defs.hpp - -c1_Defs.hpp globalDefinitions.hpp -c1_Defs.hpp register_.hpp - -c1_Defs_.hpp generate_platform_dependent_include - -c1_FpuStackSim.hpp allocation.hpp -c1_FpuStackSim.hpp c1_FrameMap.hpp - -c1_FpuStackSim_.cpp array.hpp -c1_FpuStackSim_.cpp c1_FpuStackSim.hpp -c1_FpuStackSim_.cpp c1_FrameMap.hpp -c1_FpuStackSim_.cpp ostream.hpp - -c1_FpuStackSim_.hpp generate_platform_dependent_include - -c1_FrameMap.cpp c1_FrameMap.hpp -c1_FrameMap.cpp c1_LIR.hpp -c1_FrameMap.cpp sharedRuntime.hpp -c1_FrameMap.cpp vmreg_.inline.hpp - -c1_FrameMap.hpp allocation.hpp -c1_FrameMap.hpp assembler.hpp -c1_FrameMap.hpp c1_Defs.hpp -c1_FrameMap.hpp c1_LIR.hpp -c1_FrameMap.hpp frame.hpp -c1_FrameMap.hpp globalDefinitions.hpp -c1_FrameMap.hpp synchronizer.hpp -c1_FrameMap.hpp vmreg.hpp - -c1_FrameMap_.cpp c1_FrameMap.hpp -c1_FrameMap_.cpp c1_LIR.hpp -c1_FrameMap_.cpp sharedRuntime.hpp -c1_FrameMap_.cpp vmreg_.inline.hpp - -c1_FrameMap_.hpp generate_platform_dependent_include - -c1_globals.cpp c1_globals.hpp - -c1_globals.hpp c1_globals_.hpp -c1_globals.hpp c1_globals_.hpp -c1_globals.hpp globals.hpp - -c1_globals_.hpp globalDefinitions.hpp -c1_globals_.hpp macros.hpp - -c1_globals_.hpp globalDefinitions.hpp -c1_globals_.hpp macros.hpp - -c1_GraphBuilder.cpp bitMap.inline.hpp -c1_GraphBuilder.cpp bytecode.hpp -c1_GraphBuilder.cpp c1_CFGPrinter.hpp -c1_GraphBuilder.cpp c1_Canonicalizer.hpp -c1_GraphBuilder.cpp c1_Compilation.hpp -c1_GraphBuilder.cpp c1_GraphBuilder.hpp -c1_GraphBuilder.cpp c1_InstructionPrinter.hpp -c1_GraphBuilder.cpp ciField.hpp -c1_GraphBuilder.cpp ciKlass.hpp -c1_GraphBuilder.cpp sharedRuntime.hpp - -c1_GraphBuilder.hpp c1_IR.hpp -c1_GraphBuilder.hpp c1_Instruction.hpp -c1_GraphBuilder.hpp c1_ValueMap.hpp -c1_GraphBuilder.hpp c1_ValueStack.hpp -c1_GraphBuilder.hpp ciMethodData.hpp -c1_GraphBuilder.hpp ciStreams.hpp - -c1_IR.cpp bitMap.inline.hpp -c1_IR.cpp c1_Compilation.hpp -c1_IR.cpp c1_FrameMap.hpp -c1_IR.cpp c1_GraphBuilder.hpp -c1_IR.cpp c1_IR.hpp -c1_IR.cpp c1_InstructionPrinter.hpp -c1_IR.cpp c1_Optimizer.hpp - -c1_IR.hpp allocation.hpp -c1_IR.hpp c1_Instruction.hpp -c1_IR.hpp ciExceptionHandler.hpp -c1_IR.hpp ciMethod.hpp -c1_IR.hpp ciStreams.hpp - -c1_Instruction.cpp c1_IR.hpp -c1_Instruction.cpp c1_Instruction.hpp -c1_Instruction.cpp c1_InstructionPrinter.hpp -c1_Instruction.cpp c1_ValueStack.hpp -c1_Instruction.cpp ciObjArrayKlass.hpp -c1_Instruction.cpp ciTypeArrayKlass.hpp - -c1_Instruction.hpp c1_Compilation.hpp -c1_Instruction.hpp c1_LIR.hpp -c1_Instruction.hpp c1_ValueType.hpp -c1_Instruction.hpp ciField.hpp - -c1_InstructionPrinter.cpp c1_InstructionPrinter.hpp -c1_InstructionPrinter.cpp c1_ValueStack.hpp -c1_InstructionPrinter.cpp ciArray.hpp -c1_InstructionPrinter.cpp ciInstance.hpp -c1_InstructionPrinter.cpp ciObject.hpp - -c1_InstructionPrinter.hpp c1_IR.hpp -c1_InstructionPrinter.hpp c1_Instruction.hpp -c1_InstructionPrinter.hpp c1_Runtime1.hpp - -c1_LIR.cpp c1_InstructionPrinter.hpp -c1_LIR.cpp c1_LIR.hpp -c1_LIR.cpp c1_LIRAssembler.hpp -c1_LIR.cpp ciInstance.hpp -c1_LIR.cpp sharedRuntime.hpp - -c1_LIR.hpp c1_ValueType.hpp - -c1_LIRAssembler.cpp c1_Compilation.hpp -c1_LIRAssembler.cpp c1_Instruction.hpp -c1_LIRAssembler.cpp c1_InstructionPrinter.hpp -c1_LIRAssembler.cpp c1_LIRAssembler.hpp -c1_LIRAssembler.cpp c1_MacroAssembler.hpp -c1_LIRAssembler.cpp c1_ValueStack.hpp -c1_LIRAssembler.cpp ciInstance.hpp -c1_LIRAssembler.cpp nativeInst_.hpp -c1_LIRAssembler.cpp vmreg_.inline.hpp - -c1_LIRAssembler.hpp c1_CodeStubs.hpp -c1_LIRAssembler.hpp ciMethodData.hpp -c1_LIRAssembler.hpp methodDataOop.hpp -c1_LIRAssembler.hpp top.hpp - -c1_LIRAssembler_.cpp barrierSet.hpp -c1_LIRAssembler_.cpp c1_Compilation.hpp -c1_LIRAssembler_.cpp c1_LIRAssembler.hpp -c1_LIRAssembler_.cpp c1_MacroAssembler.hpp -c1_LIRAssembler_.cpp c1_Runtime1.hpp -c1_LIRAssembler_.cpp c1_ValueStack.hpp -c1_LIRAssembler_.cpp cardTableModRefBS.hpp -c1_LIRAssembler_.cpp ciArrayKlass.hpp -c1_LIRAssembler_.cpp ciInstance.hpp -c1_LIRAssembler_.cpp collectedHeap.hpp -c1_LIRAssembler_.cpp nativeInst_.hpp -c1_LIRAssembler_.cpp objArrayKlass.hpp -c1_LIRAssembler_.cpp sharedRuntime.hpp - -c1_LIRAssembler_.hpp generate_platform_dependent_include - -c1_LIRGenerator.cpp bitMap.inline.hpp -c1_LIRGenerator.cpp c1_Compilation.hpp -c1_LIRGenerator.cpp c1_FrameMap.hpp -c1_LIRGenerator.cpp c1_Instruction.hpp -c1_LIRGenerator.cpp c1_LIRAssembler.hpp -c1_LIRGenerator.cpp c1_LIRGenerator.hpp -c1_LIRGenerator.cpp c1_ValueStack.hpp -c1_LIRGenerator.cpp ciArrayKlass.hpp -c1_LIRGenerator.cpp ciCPCache.hpp -c1_LIRGenerator.cpp ciInstance.hpp -c1_LIRGenerator.cpp heapRegion.hpp -c1_LIRGenerator.cpp sharedRuntime.hpp -c1_LIRGenerator.cpp stubRoutines.hpp - -c1_LIRGenerator.hpp c1_Instruction.hpp -c1_LIRGenerator.hpp c1_LIR.hpp -c1_LIRGenerator.hpp ciMethodData.hpp -c1_LIRGenerator.hpp sizes.hpp - -c1_LIRGenerator_.cpp c1_Compilation.hpp -c1_LIRGenerator_.cpp c1_FrameMap.hpp -c1_LIRGenerator_.cpp c1_Instruction.hpp -c1_LIRGenerator_.cpp c1_LIRAssembler.hpp -c1_LIRGenerator_.cpp c1_LIRGenerator.hpp -c1_LIRGenerator_.cpp c1_Runtime1.hpp -c1_LIRGenerator_.cpp c1_ValueStack.hpp -c1_LIRGenerator_.cpp ciArray.hpp -c1_LIRGenerator_.cpp ciObjArrayKlass.hpp -c1_LIRGenerator_.cpp ciTypeArrayKlass.hpp -c1_LIRGenerator_.cpp sharedRuntime.hpp -c1_LIRGenerator_.cpp vmreg_.inline.hpp -c1_LIRGenerator_.cpp stubRoutines.hpp - - -c1_LinearScan.cpp bitMap.inline.hpp -c1_LinearScan.cpp c1_CFGPrinter.hpp -c1_LinearScan.cpp c1_CodeStubs.hpp -c1_LinearScan.cpp c1_Compilation.hpp -c1_LinearScan.cpp c1_FrameMap.hpp -c1_LinearScan.cpp c1_IR.hpp -c1_LinearScan.cpp c1_LIRGenerator.hpp -c1_LinearScan.cpp c1_LinearScan.hpp -c1_LinearScan.cpp c1_ValueStack.hpp -c1_LinearScan.cpp vmreg_.inline.hpp - -c1_LinearScan.hpp c1_FpuStackSim.hpp -c1_LinearScan.hpp c1_FrameMap.hpp -c1_LinearScan.hpp c1_IR.hpp -c1_LinearScan.hpp c1_Instruction.hpp -c1_LinearScan.hpp c1_LIR.hpp -c1_LinearScan.hpp c1_LIRGenerator.hpp - -c1_LinearScan_.cpp bitMap.inline.hpp -c1_LinearScan_.cpp c1_Instruction.hpp -c1_LinearScan_.cpp c1_LinearScan.hpp - -c1_LinearScan_.hpp generate_platform_dependent_include - -c1_MacroAssembler.hpp assembler.hpp -c1_MacroAssembler.hpp assembler_.inline.hpp - -c1_MacroAssembler_.cpp arrayOop.hpp -c1_MacroAssembler_.cpp biasedLocking.hpp -c1_MacroAssembler_.cpp c1_MacroAssembler.hpp -c1_MacroAssembler_.cpp c1_Runtime1.hpp -c1_MacroAssembler_.cpp collectedHeap.hpp -c1_MacroAssembler_.cpp interpreter.hpp -c1_MacroAssembler_.cpp markOop.hpp -c1_MacroAssembler_.cpp os.hpp -c1_MacroAssembler_.cpp stubRoutines.hpp -c1_MacroAssembler_.cpp synchronizer.hpp -c1_MacroAssembler_.cpp systemDictionary.hpp - -c1_MacroAssembler_.hpp generate_platform_dependent_include - -c1_Optimizer.cpp bitMap.inline.hpp -c1_Optimizer.cpp c1_Canonicalizer.hpp -c1_Optimizer.cpp c1_Optimizer.hpp -c1_Optimizer.cpp c1_ValueMap.hpp -c1_Optimizer.cpp c1_ValueSet.hpp -c1_Optimizer.cpp c1_ValueStack.hpp - -c1_Optimizer.hpp allocation.hpp -c1_Optimizer.hpp c1_IR.hpp -c1_Optimizer.hpp c1_Instruction.hpp - -c1_Runtime1.cpp allocation.inline.hpp -c1_Runtime1.cpp barrierSet.hpp -c1_Runtime1.cpp biasedLocking.hpp -c1_Runtime1.cpp bytecode.hpp -c1_Runtime1.cpp c1_CodeStubs.hpp -c1_Runtime1.cpp c1_Defs.hpp -c1_Runtime1.cpp c1_FrameMap.hpp -c1_Runtime1.cpp c1_LIRAssembler.hpp -c1_Runtime1.cpp c1_MacroAssembler.hpp -c1_Runtime1.cpp c1_Runtime1.hpp -c1_Runtime1.cpp codeBlob.hpp -c1_Runtime1.cpp codeBuffer.hpp -c1_Runtime1.cpp collectedHeap.hpp -c1_Runtime1.cpp compilationPolicy.hpp -c1_Runtime1.cpp compiledIC.hpp -c1_Runtime1.cpp copy.hpp -c1_Runtime1.cpp disassembler.hpp -c1_Runtime1.cpp events.hpp -c1_Runtime1.cpp interfaceSupport.hpp -c1_Runtime1.cpp interpreter.hpp -c1_Runtime1.cpp javaCalls.hpp -c1_Runtime1.cpp objArrayKlass.hpp -c1_Runtime1.cpp oop.inline.hpp -c1_Runtime1.cpp oopFactory.hpp -c1_Runtime1.cpp pcDesc.hpp -c1_Runtime1.cpp resourceArea.hpp -c1_Runtime1.cpp scopeDesc.hpp -c1_Runtime1.cpp sharedRuntime.hpp -c1_Runtime1.cpp systemDictionary.hpp -c1_Runtime1.cpp threadCritical.hpp -c1_Runtime1.cpp vframe.hpp -c1_Runtime1.cpp vframeArray.hpp -c1_Runtime1.cpp vmSymbols.hpp -c1_Runtime1.cpp vtableStubs.hpp - -c1_Runtime1.hpp allocation.hpp -c1_Runtime1.hpp c1_FrameMap.hpp -c1_Runtime1.hpp deoptimization.hpp -c1_Runtime1.hpp interpreter.hpp -c1_Runtime1.hpp stubs.hpp - -c1_Runtime1_.cpp c1_Defs.hpp -c1_Runtime1_.cpp c1_MacroAssembler.hpp -c1_Runtime1_.cpp c1_Runtime1.hpp -c1_Runtime1_.cpp compiledICHolderOop.hpp -c1_Runtime1_.cpp interpreter.hpp -c1_Runtime1_.cpp jvmtiExport.hpp -c1_Runtime1_.cpp nativeInst_.hpp -c1_Runtime1_.cpp oop.inline.hpp -c1_Runtime1_.cpp register_.hpp -c1_Runtime1_.cpp sharedRuntime.hpp -c1_Runtime1_.cpp signature.hpp -c1_Runtime1_.cpp vframeArray.hpp -c1_Runtime1_.cpp vmreg_.inline.hpp - -c1_ValueMap.cpp bitMap.inline.hpp -c1_ValueMap.cpp c1_Canonicalizer.hpp -c1_ValueMap.cpp c1_IR.hpp -c1_ValueMap.cpp c1_ValueMap.hpp - -c1_ValueMap.hpp allocation.hpp -c1_ValueMap.hpp c1_Instruction.hpp -c1_ValueMap.hpp c1_ValueSet.hpp - -c1_ValueSet.cpp c1_ValueSet.hpp - -c1_ValueSet.hpp allocation.hpp -c1_ValueSet.hpp bitMap.inline.hpp -c1_ValueSet.hpp c1_Instruction.hpp - -c1_ValueStack.cpp c1_IR.hpp -c1_ValueStack.cpp c1_InstructionPrinter.hpp -c1_ValueStack.cpp c1_ValueStack.hpp - -c1_ValueStack.hpp c1_Instruction.hpp -c1_ValueType.cpp c1_ValueType.hpp -c1_ValueType.cpp ciArray.hpp -c1_ValueType.cpp ciInstance.hpp -c1_ValueType.cpp ciNullObject.hpp - -c1_ValueType.hpp c1_Compilation.hpp -c1_ValueType.hpp ciConstant.hpp - -ciEnv.cpp c1_Runtime1.hpp - -codeBlob.cpp c1_Runtime1.hpp - -compileBroker.cpp c1_Compiler.hpp - -frame_.cpp c1_Runtime1.hpp -frame_.cpp vframeArray.hpp - -globals.cpp c1_globals.hpp - -globals.hpp c1_globals_.hpp -globals.hpp c1_globals_.hpp - -instanceKlass.cpp c1_Compiler.hpp - -interpreter_.cpp c1_Runtime1.hpp - -java.cpp c1_Compiler.hpp -java.cpp c1_Runtime1.hpp - -nativeInst_.cpp c1_Runtime1.hpp - -oopMap.cpp c1_Defs.hpp - -os_.cpp c1_Runtime1.hpp - -os_.cpp c1_Runtime1.hpp - -safepoint.cpp c1_globals.hpp - -sharedRuntime.cpp c1_Runtime1.hpp - -sharedRuntime_.cpp c1_Runtime1.hpp - -thread.cpp c1_Compiler.hpp - -top.hpp c1_globals.hpp - -vmStructs.hpp c1_Runtime1.hpp - -c1_Canonicalizer.cpp c1_ValueStack.hpp - -c1_LIR.cpp c1_ValueStack.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_compiler2 --- a/src/share/vm/includeDB_compiler2 Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1164 +0,0 @@ -// -// Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// 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. -// -// - -ad_.cpp adGlobals_.hpp -ad_.cpp ad_.hpp -ad_.cpp allocation.inline.hpp -ad_.cpp assembler.hpp -ad_.cpp assembler_.inline.hpp -ad_.cpp biasedLocking.hpp -ad_.cpp cfgnode.hpp -ad_.cpp collectedHeap.inline.hpp -ad_.cpp compiledICHolderOop.hpp -ad_.cpp growableArray.hpp -ad_.cpp locknode.hpp -ad_.cpp markOop.hpp -ad_.cpp methodOop.hpp -ad_.cpp nativeInst_.hpp -ad_.cpp oop.inline.hpp -ad_.cpp oop.inline2.hpp -ad_.cpp opcodes.hpp -ad_.cpp regalloc.hpp -ad_.cpp regmask.hpp -ad_.cpp runtime.hpp -ad_.cpp sharedRuntime.hpp -ad_.cpp stubRoutines.hpp -ad_.cpp vmreg.hpp -ad_.cpp vmreg_.inline.hpp - -ad_.hpp addnode.hpp -ad_.hpp machnode.hpp -ad_.hpp matcher.hpp -ad_.hpp opcodes.hpp -ad_.hpp regalloc.hpp -ad_.hpp resourceArea.hpp -ad_.hpp subnode.hpp -ad_.hpp vectornode.hpp - -ad__clone.cpp ad_.hpp - -ad__expand.cpp ad_.hpp - -ad__format.cpp ad_.hpp - -ad__gen.cpp ad_.hpp -ad__gen.cpp cfgnode.hpp -ad__gen.cpp locknode.hpp - -ad__misc.cpp ad_.hpp - -ad__peephole.cpp ad_.hpp - -ad__pipeline.cpp ad_.hpp - -addnode.cpp addnode.hpp -addnode.cpp allocation.inline.hpp -addnode.cpp cfgnode.hpp -addnode.cpp connode.hpp -addnode.cpp machnode.hpp -addnode.cpp mulnode.hpp -addnode.cpp phaseX.hpp -addnode.cpp subnode.hpp - -addnode.hpp node.hpp -addnode.hpp opcodes.hpp -addnode.hpp type.hpp - -adlcVMDeps.hpp allocation.hpp - -allocation.hpp c2_globals.hpp - -bcEscapeAnalyzer.cpp bcEscapeAnalyzer.hpp -bcEscapeAnalyzer.cpp bitMap.inline.hpp -bcEscapeAnalyzer.cpp bytecode.hpp -bcEscapeAnalyzer.cpp ciConstant.hpp -bcEscapeAnalyzer.cpp ciField.hpp -bcEscapeAnalyzer.cpp ciMethodBlocks.hpp -bcEscapeAnalyzer.cpp ciStreams.hpp - -bcEscapeAnalyzer.hpp allocation.hpp -bcEscapeAnalyzer.hpp ciMethod.hpp -bcEscapeAnalyzer.hpp ciMethodData.hpp -bcEscapeAnalyzer.hpp dependencies.hpp -bcEscapeAnalyzer.hpp growableArray.hpp -bcEscapeAnalyzer.hpp vectset.hpp - -block.cpp allocation.inline.hpp -block.cpp block.hpp -block.cpp cfgnode.hpp -block.cpp chaitin.hpp -block.cpp copy.hpp -block.cpp loopnode.hpp -block.cpp machnode.hpp -block.cpp matcher.hpp -block.cpp opcodes.hpp -block.cpp rootnode.hpp -block.cpp vectset.hpp - -block.hpp multnode.hpp -block.hpp node.hpp -block.hpp phase.hpp - -buildOopMap.cpp addnode.hpp -buildOopMap.cpp callnode.hpp -buildOopMap.cpp compile.hpp -buildOopMap.cpp machnode.hpp -buildOopMap.cpp matcher.hpp -buildOopMap.cpp oopMap.hpp -buildOopMap.cpp phase.hpp -buildOopMap.cpp regalloc.hpp -buildOopMap.cpp rootnode.hpp -buildOopMap.cpp vmreg_.inline.hpp - -bytecodeInfo.cpp callGenerator.hpp -bytecodeInfo.cpp compileLog.hpp -bytecodeInfo.cpp handles.inline.hpp -bytecodeInfo.cpp linkResolver.hpp -bytecodeInfo.cpp objArrayKlass.hpp -bytecodeInfo.cpp parse.hpp -bytecodeInfo.cpp systemDictionary.hpp -bytecodeInfo.cpp vmSymbols.hpp - -bytecodeInterpreter.hpp methodDataOop.hpp - -c2_globals.cpp c2_globals.hpp - -c2_globals.hpp c2_globals_.hpp -c2_globals.hpp c2_globals_.hpp -c2_globals.hpp globals.hpp - -c2_globals_.hpp globalDefinitions.hpp -c2_globals_.hpp macros.hpp - -c2_globals_.hpp globalDefinitions.hpp -c2_globals_.hpp macros.hpp - -c2_init_.cpp compile.hpp -c2_init_.cpp node.hpp - -c2compiler.cpp ad_.hpp -c2compiler.cpp c2compiler.hpp -c2compiler.cpp runtime.hpp - -c2compiler.hpp abstractCompiler.hpp - -callGenerator.cpp addnode.hpp -callGenerator.cpp bcEscapeAnalyzer.hpp -callGenerator.cpp callGenerator.hpp -callGenerator.cpp callnode.hpp -callGenerator.cpp cfgnode.hpp -callGenerator.cpp compileLog.hpp -callGenerator.cpp connode.hpp -callGenerator.cpp ciCPCache.hpp -callGenerator.cpp ciMethodHandle.hpp -callGenerator.cpp javaClasses.hpp -callGenerator.cpp parse.hpp -callGenerator.cpp rootnode.hpp -callGenerator.cpp runtime.hpp -callGenerator.cpp subnode.hpp - -callGenerator.hpp callnode.hpp -callGenerator.hpp compile.hpp -callGenerator.hpp deoptimization.hpp -callGenerator.hpp type.hpp - -callnode.cpp callnode.hpp -callnode.cpp bcEscapeAnalyzer.hpp -callnode.cpp escape.hpp -callnode.cpp locknode.hpp -callnode.cpp machnode.hpp -callnode.cpp matcher.hpp -callnode.cpp oopMap.hpp -callnode.cpp parse.hpp -callnode.cpp regalloc.hpp -callnode.cpp regmask.hpp -callnode.cpp rootnode.hpp -callnode.cpp runtime.hpp - -callnode.hpp connode.hpp -callnode.hpp mulnode.hpp -callnode.hpp multnode.hpp -callnode.hpp opcodes.hpp -callnode.hpp phaseX.hpp -callnode.hpp type.hpp - -cfgnode.cpp addnode.hpp -cfgnode.cpp allocation.inline.hpp -cfgnode.cpp cfgnode.hpp -cfgnode.cpp connode.hpp -cfgnode.cpp loopnode.hpp -cfgnode.cpp machnode.hpp -cfgnode.cpp mulnode.hpp -cfgnode.cpp objArrayKlass.hpp -cfgnode.cpp phaseX.hpp -cfgnode.cpp regmask.hpp -cfgnode.cpp runtime.hpp -cfgnode.cpp subnode.hpp -cfgnode.cpp systemDictionary.hpp - -cfgnode.hpp multnode.hpp -cfgnode.hpp node.hpp -cfgnode.hpp opcodes.hpp -cfgnode.hpp type.hpp - -chaitin.cpp addnode.hpp -chaitin.cpp allocation.inline.hpp -chaitin.cpp block.hpp -chaitin.cpp callnode.hpp -chaitin.cpp cfgnode.hpp -chaitin.cpp chaitin.hpp -chaitin.cpp coalesce.hpp -chaitin.cpp compileLog.hpp -chaitin.cpp connode.hpp -chaitin.cpp indexSet.hpp -chaitin.cpp machnode.hpp -chaitin.cpp memnode.hpp -chaitin.cpp oopMap.hpp -chaitin.cpp opcodes.hpp -chaitin.cpp rootnode.hpp - -chaitin.hpp connode.hpp -chaitin.hpp live.hpp -chaitin.hpp matcher.hpp -chaitin.hpp phase.hpp -chaitin.hpp port.hpp -chaitin.hpp regalloc.hpp -chaitin.hpp regmask.hpp -chaitin.hpp resourceArea.hpp -chaitin.hpp vmreg.hpp - -chaitin_.cpp chaitin.hpp -chaitin_.cpp machnode.hpp - -ciEnv.cpp compileLog.hpp -ciEnv.cpp runtime.hpp - -ciMethod.cpp bcEscapeAnalyzer.hpp -ciMethod.cpp ciTypeFlow.hpp -ciMethod.cpp methodOop.hpp - -ciTypeFlow.cpp allocation.inline.hpp -ciTypeFlow.cpp bytecode.hpp -ciTypeFlow.cpp bytecodes.hpp -ciTypeFlow.cpp ciConstant.hpp -ciTypeFlow.cpp ciField.hpp -ciTypeFlow.cpp ciMethod.hpp -ciTypeFlow.cpp ciMethodData.hpp -ciTypeFlow.cpp ciObjArrayKlass.hpp -ciTypeFlow.cpp ciStreams.hpp -ciTypeFlow.cpp ciTypeArrayKlass.hpp -ciTypeFlow.cpp ciTypeFlow.hpp -ciTypeFlow.cpp compileLog.hpp -ciTypeFlow.cpp deoptimization.hpp -ciTypeFlow.cpp growableArray.hpp - -ciTypeFlow.hpp ciEnv.hpp -ciTypeFlow.hpp ciKlass.hpp -ciTypeFlow.hpp ciMethodBlocks.hpp - -classes.cpp addnode.hpp -classes.cpp callnode.hpp -classes.cpp cfgnode.hpp -classes.cpp connode.hpp -classes.cpp divnode.hpp -classes.cpp locknode.hpp -classes.cpp loopnode.hpp -classes.cpp machnode.hpp -classes.cpp memnode.hpp -classes.cpp mulnode.hpp -classes.cpp multnode.hpp -classes.cpp node.hpp -classes.cpp rootnode.hpp -classes.cpp subnode.hpp -classes.cpp vectornode.hpp - -classes.hpp top.hpp - -coalesce.cpp allocation.inline.hpp -coalesce.cpp block.hpp -coalesce.cpp cfgnode.hpp -coalesce.cpp chaitin.hpp -coalesce.cpp coalesce.hpp -coalesce.cpp connode.hpp -coalesce.cpp indexSet.hpp -coalesce.cpp machnode.hpp -coalesce.cpp matcher.hpp -coalesce.cpp regmask.hpp - -coalesce.hpp phase.hpp - -compile.cpp ad_.hpp -compile.cpp addnode.hpp -compile.cpp arguments.hpp -compile.cpp assembler.hpp -compile.cpp block.hpp -compile.cpp c2compiler.hpp -compile.cpp callGenerator.hpp -compile.cpp callnode.hpp -compile.cpp cfgnode.hpp -compile.cpp chaitin.hpp -compile.cpp compile.hpp -compile.cpp compileLog.hpp -compile.cpp connode.hpp -compile.cpp copy.hpp -compile.cpp divnode.hpp -compile.cpp escape.hpp -compile.cpp exceptionHandlerTable.hpp -compile.cpp loopnode.hpp -compile.cpp machnode.hpp -compile.cpp macro.hpp -compile.cpp matcher.hpp -compile.cpp memnode.hpp -compile.cpp mulnode.hpp -compile.cpp nmethod.hpp -compile.cpp node.hpp -compile.cpp oopMap.hpp -compile.cpp opcodes.hpp -compile.cpp output.hpp -compile.cpp parse.hpp -compile.cpp phaseX.hpp -compile.cpp rootnode.hpp -compile.cpp runtime.hpp -compile.cpp signature.hpp -compile.cpp stringopts.hpp -compile.cpp stubRoutines.hpp -compile.cpp systemDictionary.hpp -compile.cpp timer.hpp -compile.cpp type.hpp -compile.cpp vectornode.hpp - -compile.hpp codeBuffer.hpp -compile.hpp compilerInterface.hpp -compile.hpp compilerOracle.hpp -compile.hpp debugInfoRec.hpp -compile.hpp deoptimization.hpp -compile.hpp dict.hpp -compile.hpp exceptionHandlerTable.hpp -compile.hpp idealGraphPrinter.hpp -compile.hpp phase.hpp -compile.hpp port.hpp -compile.hpp regmask.hpp -compile.hpp resourceArea.hpp -compile.hpp vectset.hpp -compile.hpp vmThread.hpp - -compileBroker.cpp c2compiler.hpp - -connode.cpp addnode.hpp -connode.cpp allocation.inline.hpp -connode.cpp compile.hpp -connode.cpp connode.hpp -connode.cpp machnode.hpp -connode.cpp matcher.hpp -connode.cpp memnode.hpp -connode.cpp phaseX.hpp -connode.cpp sharedRuntime.hpp -connode.cpp subnode.hpp - -connode.hpp node.hpp -connode.hpp opcodes.hpp -connode.hpp type.hpp - -deoptimization.cpp ad_.hpp - -dfa_.cpp ad_.hpp -dfa_.cpp matcher.hpp -dfa_.cpp opcodes.hpp - -dict.cpp allocation.inline.hpp -dict.cpp dict.hpp -dict.cpp resourceArea.hpp -dict.cpp thread.hpp - -dict.hpp port.hpp - -divnode.cpp addnode.hpp -divnode.cpp allocation.inline.hpp -divnode.cpp connode.hpp -divnode.cpp divnode.hpp -divnode.cpp machnode.hpp -divnode.cpp matcher.hpp -divnode.cpp mulnode.hpp -divnode.cpp phaseX.hpp -divnode.cpp subnode.hpp - -divnode.hpp multnode.hpp -divnode.hpp node.hpp -divnode.hpp opcodes.hpp -divnode.hpp type.hpp - -doCall.cpp addnode.hpp -doCall.cpp callGenerator.hpp -doCall.cpp ciCallSite.hpp -doCall.cpp ciCPCache.hpp -doCall.cpp ciMethodHandle.hpp -doCall.cpp cfgnode.hpp -doCall.cpp compileLog.hpp -doCall.cpp linkResolver.hpp -doCall.cpp mulnode.hpp -doCall.cpp nativeLookup.hpp -doCall.cpp parse.hpp -doCall.cpp rootnode.hpp -doCall.cpp runtime.hpp -doCall.cpp sharedRuntime.hpp -doCall.cpp subnode.hpp -doCall.cpp vmSymbols.hpp - -domgraph.cpp allocation.hpp -domgraph.cpp block.hpp -domgraph.cpp machnode.hpp -domgraph.cpp phaseX.hpp -domgraph.cpp rootnode.hpp -domgraph.cpp vectset.hpp - -escape.cpp allocation.hpp -escape.cpp bcEscapeAnalyzer.hpp -escape.cpp c2compiler.hpp -escape.cpp callnode.hpp -escape.cpp cfgnode.hpp -escape.cpp compile.hpp -escape.cpp escape.hpp -escape.cpp phaseX.hpp -escape.cpp rootnode.hpp -escape.cpp vectset.hpp - -escape.hpp addnode.hpp -escape.hpp growableArray.hpp -escape.hpp node.hpp - -frame.hpp adGlobals_.hpp - -gcm.cpp ad_.hpp -gcm.cpp allocation.inline.hpp -gcm.cpp block.hpp -gcm.cpp c2compiler.hpp -gcm.cpp callnode.hpp -gcm.cpp cfgnode.hpp -gcm.cpp deoptimization.hpp -gcm.cpp machnode.hpp -gcm.cpp opcodes.hpp -gcm.cpp phaseX.hpp -gcm.cpp rootnode.hpp -gcm.cpp runtime.hpp -gcm.cpp vectset.hpp - -generateOptoStub.cpp addnode.hpp -generateOptoStub.cpp callnode.hpp -generateOptoStub.cpp cfgnode.hpp -generateOptoStub.cpp compile.hpp -generateOptoStub.cpp connode.hpp -generateOptoStub.cpp locknode.hpp -generateOptoStub.cpp memnode.hpp -generateOptoStub.cpp mulnode.hpp -generateOptoStub.cpp node.hpp -generateOptoStub.cpp parse.hpp -generateOptoStub.cpp phaseX.hpp -generateOptoStub.cpp rootnode.hpp -generateOptoStub.cpp runtime.hpp -generateOptoStub.cpp type.hpp - -globals.hpp c2_globals_.hpp -globals.hpp c2_globals_.hpp - -globals.cpp c2_globals.hpp - -graphKit.cpp addnode.hpp -graphKit.cpp barrierSet.hpp -graphKit.cpp cardTableModRefBS.hpp -graphKit.cpp g1SATBCardTableModRefBS.hpp -graphKit.cpp collectedHeap.hpp -graphKit.cpp compileLog.hpp -graphKit.cpp deoptimization.hpp -graphKit.cpp graphKit.hpp -graphKit.cpp heapRegion.hpp -graphKit.cpp idealKit.hpp -graphKit.cpp locknode.hpp -graphKit.cpp machnode.hpp -graphKit.cpp parse.hpp -graphKit.cpp rootnode.hpp -graphKit.cpp runtime.hpp -graphKit.cpp sharedRuntime.hpp - -graphKit.hpp addnode.hpp -graphKit.hpp callnode.hpp -graphKit.hpp cfgnode.hpp -graphKit.hpp ciEnv.hpp -graphKit.hpp ciMethodData.hpp -graphKit.hpp divnode.hpp -graphKit.hpp compile.hpp -graphKit.hpp deoptimization.hpp -graphKit.hpp phaseX.hpp -graphKit.hpp mulnode.hpp -graphKit.hpp subnode.hpp -graphKit.hpp type.hpp - -idealKit.cpp addnode.hpp -idealKit.cpp callnode.hpp -idealKit.cpp cfgnode.hpp -idealKit.cpp idealKit.hpp -idealKit.cpp runtime.hpp - -idealKit.hpp addnode.hpp -idealKit.hpp cfgnode.hpp -idealKit.hpp connode.hpp -idealKit.hpp divnode.hpp -idealKit.hpp mulnode.hpp -idealKit.hpp phaseX.hpp -idealKit.hpp subnode.hpp -idealKit.hpp type.hpp - -ifg.cpp addnode.hpp -ifg.cpp allocation.inline.hpp -ifg.cpp block.hpp -ifg.cpp callnode.hpp -ifg.cpp cfgnode.hpp -ifg.cpp chaitin.hpp -ifg.cpp coalesce.hpp -ifg.cpp connode.hpp -ifg.cpp indexSet.hpp -ifg.cpp machnode.hpp -ifg.cpp memnode.hpp -ifg.cpp oopMap.hpp -ifg.cpp opcodes.hpp - -ifnode.cpp addnode.hpp -ifnode.cpp allocation.inline.hpp -ifnode.cpp cfgnode.hpp -ifnode.cpp connode.hpp -ifnode.cpp phaseX.hpp -ifnode.cpp runtime.hpp -ifnode.cpp subnode.hpp - -indexSet.cpp allocation.inline.hpp -indexSet.cpp chaitin.hpp -indexSet.cpp compile.hpp -indexSet.cpp indexSet.hpp -indexSet.cpp regmask.hpp - -indexSet.hpp allocation.hpp -indexSet.hpp compile.hpp -indexSet.hpp regmask.hpp -indexSet.hpp resourceArea.hpp - -interpreterRuntime.cpp runtime.hpp - -java.cpp compile.hpp -java.cpp compiledIC.hpp -java.cpp indexSet.hpp -java.cpp methodLiveness.hpp -java.cpp runtime.hpp - -lcm.cpp ad_.hpp -lcm.cpp allocation.inline.hpp -lcm.cpp block.hpp -lcm.cpp c2compiler.hpp -lcm.cpp callnode.hpp -lcm.cpp cfgnode.hpp -lcm.cpp machnode.hpp -lcm.cpp runtime.hpp - -library_call.cpp addnode.hpp -library_call.cpp callGenerator.hpp -library_call.cpp cfgnode.hpp -library_call.cpp compileLog.hpp -library_call.cpp idealKit.hpp -library_call.cpp mulnode.hpp -library_call.cpp nativeLookup.hpp -library_call.cpp objArrayKlass.hpp -library_call.cpp parse.hpp -library_call.cpp runtime.hpp -library_call.cpp sharedRuntime.hpp -library_call.cpp subnode.hpp -library_call.cpp systemDictionary.hpp -library_call.cpp vmSymbols.hpp - -live.cpp allocation.inline.hpp -live.cpp callnode.hpp -live.cpp chaitin.hpp -live.cpp live.hpp -live.cpp machnode.hpp - -live.hpp block.hpp -live.hpp indexSet.hpp -live.hpp phase.hpp -live.hpp port.hpp -live.hpp regmask.hpp -live.hpp vectset.hpp - -locknode.cpp locknode.hpp -locknode.cpp parse.hpp -locknode.cpp rootnode.hpp -locknode.cpp runtime.hpp - -locknode.hpp ad_.hpp -locknode.hpp node.hpp -locknode.hpp opcodes.hpp -locknode.hpp subnode.hpp - -loopTransform.cpp addnode.hpp -loopTransform.cpp allocation.inline.hpp -loopTransform.cpp callnode.hpp -loopTransform.cpp connode.hpp -loopTransform.cpp compileLog.hpp -loopTransform.cpp divnode.hpp -loopTransform.cpp loopnode.hpp -loopTransform.cpp mulnode.hpp -loopTransform.cpp rootnode.hpp -loopTransform.cpp runtime.hpp -loopTransform.cpp subnode.hpp - -loopUnswitch.cpp allocation.inline.hpp -loopUnswitch.cpp connode.hpp -loopUnswitch.cpp loopnode.hpp -loopUnswitch.cpp rootnode.hpp - -loopnode.cpp addnode.hpp -loopnode.cpp allocation.inline.hpp -loopnode.cpp callnode.hpp -loopnode.cpp ciMethodData.hpp -loopnode.cpp compileLog.hpp -loopnode.cpp connode.hpp -loopnode.cpp divnode.hpp -loopnode.cpp loopnode.hpp -loopnode.cpp mulnode.hpp -loopnode.cpp rootnode.hpp -loopnode.cpp superword.hpp -loopnode.cpp vectset.hpp - -loopnode.hpp cfgnode.hpp -loopnode.hpp multnode.hpp -loopnode.hpp phaseX.hpp -loopnode.hpp subnode.hpp -loopnode.hpp type.hpp - -loopopts.cpp addnode.hpp -loopopts.cpp allocation.inline.hpp -loopopts.cpp connode.hpp -loopopts.cpp divnode.hpp -loopopts.cpp loopnode.hpp -loopopts.cpp mulnode.hpp -loopopts.cpp rootnode.hpp -loopopts.cpp subnode.hpp - -machnode.cpp collectedHeap.hpp -machnode.cpp machnode.hpp -machnode.cpp regalloc.hpp - -machnode.hpp callnode.hpp -machnode.hpp matcher.hpp -machnode.hpp multnode.hpp -machnode.hpp node.hpp -machnode.hpp regmask.hpp - -macro.cpp addnode.hpp -macro.cpp callnode.hpp -macro.cpp cfgnode.hpp -macro.cpp compile.hpp -macro.cpp compileLog.hpp -macro.cpp connode.hpp -macro.cpp locknode.hpp -macro.cpp loopnode.hpp -macro.cpp macro.hpp -macro.cpp memnode.hpp -macro.cpp node.hpp -macro.cpp phaseX.hpp -macro.cpp rootnode.hpp -macro.cpp runtime.hpp -macro.cpp sharedRuntime.hpp -macro.cpp subnode.hpp -macro.cpp type.hpp -macro.cpp vectset.hpp -macro.hpp phase.hpp - -matcher.cpp ad_.hpp -matcher.cpp addnode.hpp -matcher.cpp allocation.inline.hpp -matcher.cpp atomic.hpp -matcher.cpp callnode.hpp -matcher.cpp connode.hpp -matcher.cpp hpi.hpp -matcher.cpp matcher.hpp -matcher.cpp memnode.hpp -matcher.cpp opcodes.hpp -matcher.cpp os.hpp -matcher.cpp regmask.hpp -matcher.cpp rootnode.hpp -matcher.cpp runtime.hpp -matcher.cpp type.hpp - -matcher.hpp node.hpp -matcher.hpp phaseX.hpp -matcher.hpp regmask.hpp -matcher.hpp resourceArea.hpp -matcher.hpp vectset.hpp - -memnode.cpp addnode.hpp -memnode.cpp allocation.inline.hpp -memnode.cpp cfgnode.hpp -memnode.cpp compile.hpp -memnode.cpp compileLog.hpp -memnode.cpp connode.hpp -memnode.cpp loopnode.hpp -memnode.cpp machnode.hpp -memnode.cpp matcher.hpp -memnode.cpp memnode.hpp -memnode.cpp mulnode.hpp -memnode.cpp objArrayKlass.hpp -memnode.cpp phaseX.hpp -memnode.cpp regmask.hpp -memnode.cpp systemDictionary.hpp - -memnode.hpp multnode.hpp -memnode.hpp node.hpp -memnode.hpp opcodes.hpp -memnode.hpp type.hpp - -methodLiveness.cpp allocation.inline.hpp -methodLiveness.cpp bytecode.hpp -methodLiveness.cpp bytecodes.hpp -methodLiveness.cpp ciStreams.hpp -methodLiveness.cpp methodLiveness.hpp - -methodLiveness.hpp bitMap.hpp -methodLiveness.hpp growableArray.hpp - -mulnode.cpp addnode.hpp -mulnode.cpp allocation.inline.hpp -mulnode.cpp connode.hpp -mulnode.cpp memnode.hpp -mulnode.cpp mulnode.hpp -mulnode.cpp phaseX.hpp -mulnode.cpp subnode.hpp - -mulnode.hpp node.hpp -mulnode.hpp opcodes.hpp -mulnode.hpp type.hpp - -multnode.cpp matcher.hpp -multnode.cpp multnode.hpp -multnode.cpp opcodes.hpp -multnode.cpp phaseX.hpp -multnode.cpp regmask.hpp -multnode.cpp type.hpp - -multnode.hpp node.hpp - -node.cpp allocation.inline.hpp -node.cpp cfgnode.hpp -node.cpp connode.hpp -node.cpp copy.hpp -node.cpp machnode.hpp -node.cpp matcher.hpp -node.cpp node.hpp -node.cpp opcodes.hpp -node.cpp regmask.hpp -node.cpp type.hpp -node.cpp vectset.hpp - -node.hpp compile.hpp -node.hpp port.hpp -node.hpp type.hpp -node.hpp vectset.hpp - -opcodes.cpp classes.hpp -opcodes.cpp globalDefinitions.hpp -opcodes.cpp no_precompiled_headers - -os_.cpp runtime.hpp - -os_.cpp runtime.hpp - -output.cpp allocation.inline.hpp -output.cpp assembler.inline.hpp -output.cpp callnode.hpp -output.cpp cfgnode.hpp -output.cpp compileBroker.hpp -output.cpp debugInfo.hpp -output.cpp debugInfoRec.hpp -output.cpp handles.inline.hpp -output.cpp locknode.hpp -output.cpp machnode.hpp -output.cpp oopMap.hpp -output.cpp output.hpp -output.cpp regalloc.hpp -output.cpp runtime.hpp -output.cpp subnode.hpp -output.cpp type.hpp -output.cpp xmlstream.hpp - -output.hpp ad_.hpp -output.hpp block.hpp -output.hpp node.hpp - -parse.hpp ciMethodData.hpp -parse.hpp ciTypeFlow.hpp -parse.hpp generateOopMap.hpp -parse.hpp graphKit.hpp -parse.hpp methodLiveness.hpp -parse.hpp subnode.hpp -parse.hpp vectset.hpp - -parse1.cpp addnode.hpp -parse1.cpp arguments.hpp -parse1.cpp compileLog.hpp -parse1.cpp copy.hpp -parse1.cpp handles.inline.hpp -parse1.cpp linkResolver.hpp -parse1.cpp locknode.hpp -parse1.cpp memnode.hpp -parse1.cpp methodOop.hpp -parse1.cpp parse.hpp -parse1.cpp rootnode.hpp -parse1.cpp runtime.hpp -parse1.cpp sharedRuntime.hpp - -parse2.cpp addnode.hpp -parse2.cpp ciMethodData.hpp -parse2.cpp compileLog.hpp -parse2.cpp deoptimization.hpp -parse2.cpp divnode.hpp -parse2.cpp linkResolver.hpp -parse2.cpp matcher.hpp -parse2.cpp memnode.hpp -parse2.cpp mulnode.hpp -parse2.cpp parse.hpp -parse2.cpp runtime.hpp -parse2.cpp sharedRuntime.hpp -parse2.cpp systemDictionary.hpp -parse2.cpp universe.inline.hpp -parse2.cpp vmSymbols.hpp - -parse3.cpp addnode.hpp -parse3.cpp compileLog.hpp -parse3.cpp deoptimization.hpp -parse3.cpp handles.inline.hpp -parse3.cpp linkResolver.hpp -parse3.cpp memnode.hpp -parse3.cpp objArrayKlass.hpp -parse3.cpp parse.hpp -parse3.cpp rootnode.hpp -parse3.cpp runtime.hpp -parse3.cpp subnode.hpp -parse3.cpp universe.inline.hpp - -parseHelper.cpp addnode.hpp -parseHelper.cpp compileLog.hpp -parseHelper.cpp memnode.hpp -parseHelper.cpp mulnode.hpp -parseHelper.cpp objArrayKlass.hpp -parseHelper.cpp parse.hpp -parseHelper.cpp rootnode.hpp -parseHelper.cpp runtime.hpp -parseHelper.cpp sharedRuntime.hpp -parseHelper.cpp systemDictionary.hpp - -phase.cpp compile.hpp -phase.cpp compileBroker.hpp -phase.cpp nmethod.hpp -phase.cpp node.hpp -phase.cpp phase.hpp - -phase.hpp port.hpp -phase.hpp timer.hpp - -phaseX.cpp allocation.inline.hpp -phaseX.cpp block.hpp -phaseX.cpp callnode.hpp -phaseX.cpp cfgnode.hpp -phaseX.cpp connode.hpp -phaseX.cpp loopnode.hpp -phaseX.cpp machnode.hpp -phaseX.cpp opcodes.hpp -phaseX.cpp phaseX.hpp -phaseX.cpp regalloc.hpp -phaseX.cpp rootnode.hpp - -phaseX.hpp dict.hpp -phaseX.hpp memnode.hpp -phaseX.hpp node.hpp -phaseX.hpp phase.hpp -phaseX.hpp resourceArea.hpp -phaseX.hpp type.hpp -phaseX.hpp vectset.hpp - -port.cpp port.hpp - -port.hpp top.hpp - -postaloc.cpp allocation.inline.hpp -postaloc.cpp chaitin.hpp -postaloc.cpp machnode.hpp - -reg_split.cpp addnode.hpp -reg_split.cpp allocation.inline.hpp -reg_split.cpp callnode.hpp -reg_split.cpp c2compiler.hpp -reg_split.cpp cfgnode.hpp -reg_split.cpp chaitin.hpp -reg_split.cpp loopnode.hpp -reg_split.cpp machnode.hpp -reg_split.cpp vectset.hpp - -regalloc.cpp regalloc.hpp - -regalloc.hpp block.hpp -regalloc.hpp matcher.hpp -regalloc.hpp phase.hpp -regalloc.hpp vmreg.hpp - -regmask.cpp ad_.hpp -regmask.cpp compile.hpp -regmask.cpp regmask.hpp - -regmask.hpp adGlobals_.hpp -regmask.hpp optoreg.hpp -regmask.hpp port.hpp -regmask.hpp vmreg.hpp - -rootnode.cpp allocation.inline.hpp -rootnode.cpp callnode.hpp -rootnode.cpp cfgnode.hpp -rootnode.cpp phaseX.hpp -rootnode.cpp regmask.hpp -rootnode.cpp rootnode.hpp -rootnode.cpp subnode.hpp -rootnode.cpp type.hpp - -rootnode.hpp loopnode.hpp - -runtime.cpp ad_.hpp -runtime.cpp addnode.hpp -runtime.cpp barrierSet.hpp -runtime.cpp bytecode.hpp -runtime.cpp callnode.hpp -runtime.cpp cfgnode.hpp -runtime.cpp collectedHeap.hpp -runtime.cpp compileBroker.hpp -runtime.cpp compiledIC.hpp -runtime.cpp compilerOracle.hpp -runtime.cpp connode.hpp -runtime.cpp copy.hpp -runtime.cpp fprofiler.hpp -runtime.cpp g1SATBCardTableModRefBS.hpp -runtime.cpp gcLocker.inline.hpp -runtime.cpp graphKit.hpp -runtime.cpp handles.inline.hpp -runtime.cpp heapRegion.hpp -runtime.cpp icBuffer.hpp -runtime.cpp interfaceSupport.hpp -runtime.cpp interpreter.hpp -runtime.cpp javaCalls.hpp -runtime.cpp linkResolver.hpp -runtime.cpp machnode.hpp -runtime.cpp matcher.hpp -runtime.cpp memnode.hpp -runtime.cpp mulnode.hpp -runtime.cpp nmethod.hpp -runtime.cpp objArrayKlass.hpp -runtime.cpp oop.inline.hpp -runtime.cpp oopFactory.hpp -runtime.cpp oopMap.hpp -runtime.cpp pcDesc.hpp -runtime.cpp preserveException.hpp -runtime.cpp runtime.hpp -runtime.cpp scopeDesc.hpp -runtime.cpp sharedRuntime.hpp -runtime.cpp signature.hpp -runtime.cpp subnode.hpp -runtime.cpp systemDictionary.hpp -runtime.cpp threadCritical.hpp -runtime.cpp vframe.hpp -runtime.cpp vframeArray.hpp -runtime.cpp vframe_hp.hpp -runtime.cpp vmSymbols.hpp -runtime.cpp vtableStubs.hpp - -runtime.hpp biasedLocking.hpp -runtime.hpp codeBlob.hpp -runtime.hpp deoptimization.hpp -runtime.hpp machnode.hpp -runtime.hpp type.hpp -runtime.hpp vframe.hpp - -runtime_.cpp adGlobals_.hpp -runtime_.cpp ad_.hpp -runtime_.cpp assembler.hpp -runtime_.cpp assembler_.inline.hpp -runtime_.cpp globalDefinitions.hpp -runtime_.cpp interfaceSupport.hpp -runtime_.cpp interpreter.hpp -runtime_.cpp nativeInst_.hpp -runtime_.cpp runtime.hpp -runtime_.cpp sharedRuntime.hpp -runtime_.cpp stubRoutines.hpp -runtime_.cpp systemDictionary.hpp -runtime_.cpp vframeArray.hpp -runtime_.cpp vmreg.hpp -runtime_.cpp vmreg_.inline.hpp - -set.cpp allocation.inline.hpp -set.cpp set.hpp - -set.hpp allocation.hpp -set.hpp port.hpp - -sharedRuntime_.cpp runtime.hpp - -split_if.cpp allocation.inline.hpp -split_if.cpp callnode.hpp -split_if.cpp connode.hpp -split_if.cpp loopnode.hpp - -stringopts.hpp phaseX.hpp -stringopts.hpp node.hpp - -stringopts.cpp addnode.hpp -stringopts.cpp callnode.hpp -stringopts.cpp callGenerator.hpp -stringopts.cpp compileLog.hpp -stringopts.cpp divnode.hpp -stringopts.cpp idealKit.hpp -stringopts.cpp graphKit.hpp -stringopts.cpp rootnode.hpp -stringopts.cpp runtime.hpp -stringopts.cpp subnode.hpp -stringopts.cpp stringopts.hpp - -stubGenerator_.cpp runtime.hpp - -stubRoutines.cpp runtime.hpp - -subnode.cpp addnode.hpp -subnode.cpp allocation.inline.hpp -subnode.cpp callnode.hpp -subnode.cpp cfgnode.hpp -subnode.cpp compileLog.hpp -subnode.cpp connode.hpp -subnode.cpp loopnode.hpp -subnode.cpp matcher.hpp -subnode.cpp mulnode.hpp -subnode.cpp opcodes.hpp -subnode.cpp phaseX.hpp -subnode.cpp sharedRuntime.hpp -subnode.cpp subnode.hpp - -subnode.hpp node.hpp -subnode.hpp opcodes.hpp -subnode.hpp type.hpp - -superword.cpp addnode.hpp -superword.cpp allocation.inline.hpp -superword.cpp callnode.hpp -superword.cpp compileLog.hpp -superword.cpp divnode.hpp -superword.cpp matcher.hpp -superword.cpp memnode.hpp -superword.cpp mulnode.hpp -superword.cpp opcodes.hpp -superword.cpp superword.hpp -superword.cpp vectornode.hpp -superword.cpp vectset.hpp - -superword.hpp connode.hpp -superword.hpp growableArray.hpp -superword.hpp loopnode.hpp -superword.hpp node.hpp -superword.hpp phaseX.hpp -superword.hpp vectornode.hpp - -thread.cpp c2compiler.hpp - -top.hpp c2_globals.hpp - -type.cpp ciTypeFlow.hpp -type.cpp compileLog.hpp -type.cpp dict.hpp -type.cpp gcLocker.hpp -type.cpp instanceKlass.hpp -type.cpp klassKlass.hpp -type.cpp matcher.hpp -type.cpp node.hpp -type.cpp objArrayKlass.hpp -type.cpp oopFactory.hpp -type.cpp opcodes.hpp -type.cpp resourceArea.hpp -type.cpp symbolTable.hpp -type.cpp systemDictionary.hpp -type.cpp type.hpp -type.cpp typeArrayKlass.hpp - -type.hpp adlcVMDeps.hpp -type.hpp handles.hpp -type.hpp port.hpp - -vectornode.cpp allocation.inline.hpp -vectornode.cpp connode.hpp -vectornode.cpp vectornode.hpp - -vectornode.hpp matcher.hpp -vectornode.hpp memnode.hpp -vectornode.hpp node.hpp -vectornode.hpp opcodes.hpp - -vectset.cpp allocation.inline.hpp -vectset.cpp vectset.hpp - -vectset.hpp set.hpp - -vframeArray.cpp runtime.hpp - -vframe_hp.cpp matcher.hpp - -vmStructs.cpp adGlobals_.hpp -vmStructs.cpp matcher.hpp - -vmreg.hpp adGlobals_.hpp -vmreg.hpp adlcVMDeps.hpp -vmreg.hpp ostream.hpp - -vtableStubs.cpp matcher.hpp - -vtableStubs_.cpp ad_.hpp -vtableStubs_.cpp runtime.hpp - -idealGraphPrinter.hpp dict.hpp -idealGraphPrinter.hpp vectset.hpp -idealGraphPrinter.hpp growableArray.hpp -idealGraphPrinter.hpp ostream.hpp -idealGraphPrinter.hpp xmlstream.hpp - -idealGraphPrinter.cpp idealGraphPrinter.hpp -idealGraphPrinter.cpp chaitin.hpp -idealGraphPrinter.cpp machnode.hpp -idealGraphPrinter.cpp parse.hpp -idealGraphPrinter.cpp threadCritical.hpp - -compile.cpp idealGraphPrinter.hpp -thread.cpp idealGraphPrinter.hpp -phaseX.cpp idealGraphPrinter.hpp -parse2.cpp idealGraphPrinter.hpp -parse1.cpp idealGraphPrinter.hpp -matcher.cpp idealGraphPrinter.hpp -loopnode.cpp idealGraphPrinter.hpp -chaitin.cpp idealGraphPrinter.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_core --- a/src/share/vm/includeDB_core Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4767 +0,0 @@ -// -// Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - - -// includeDB format: -// a comment starts with '// ' and goes to the end of the line -// anything else is a pair of filenames. The line "x.cpp y.hpp" means -// "x.cpp must include y.hpp". Similarly, "y.hpp z.hpp" means "any file including -// y.hpp must also include z.hpp, and z.hpp must be included before y.hpp". -// -// Style hint: we try to keep the entries ordered alphabetically, both -// globally (left-hand sides) and within a given file (right-hand sides) -// -// To avoid unnecessary conflicts with the work of other programmers, -// do not delete, move, or reformat pre-existing lines. Do not attempt -// to "optimize" this file incrementally. -// -// ============ Platform dependent include files =========== -// -// Some header files occur in clusters. Header files which depend -// on the token "generate_platform_dependent_include" are included -// directly by other header files, and should not be explicitly declared -// as dependencies. Header files named H.inline.hpp generally contain -// bodies for inline functions declared in H.hpp. -// -// NOTE: Files that use the token "generate_platform_dependent_include" -// are expected to contain macro references like , , ... and -// makedeps has a dependency on these platform files looking like: -// foo_.trailing_string -// (where "trailing_string" can be any legal filename strings but typically -// is "hpp" or "inline.hpp"). -// -// The dependency in makedeps (and enforced) is that an underscore -// will precedure the macro invocation. Note that this restriction -// is only enforced on filenames that have the dependency token -// "generate_platform_dependent_include" so other files using macro -// expansion (typically .cpp files) have no requirement to have -// an underscore precede the macro although this is encouraged for -// readibility. -// -// ======= Circular dependencies and inline functions ========== -// -// (Sometimes, circular dependencies prevent complex function bodies -// from being defined directly in H.hpp. In such cases, a client S.cpp -// of H.hpp must always declare a dependency on H.inline.hpp, which in -// turn will declare a dependency on H.hpp. If by some mischance S.cpp -// declares a dependency on H.hpp, the compiler may complain about missing -// inline function bodies, or (perhaps) the program may fail to link. -// The solution is to have S.cpp depend on H.inline.hpp instead of H.hpp. -// -// Generally, if in response to a source code change the compiler -// issues an error in a file F (which may be either a header or a -// source file), you should consider if the error arises from a missing -// class definition C. If that is the case, find the header file H which -// contains C (often, H=C.hpp, but you may have to search for C's definition). -// Then, add a line to the includeDB file as appropriate. -// -// -// Here are some typical compiler errors that may require changes to includeDB. -// (Messages are taken from Sun's SPARC compiler.) -// -// "klassVtable.cpp", line 96: Error: No_GC_Verifier is not defined. -// Source code: -// No_GC_Verifier no_gc; -// -// The problem is that the class name No_GC_Verifier is not declared, -// so the compiler is confused by the syntax. The solution: -// klassVtable.cpp gcLocker.hpp -// -// Sometimes the compiler has only partial knowledge about a class: -// "privilegedStack.cpp", line 60: Error: cast is not a member of instanceKlass. -// Source code: -// if (_protection_domain != instanceKlass::cast(method->method_holder())->protection_domain()) return false; -// -// Here, instanceKlass is known to the compiler as a type, because of a -// forward declaration somewhere ("class instanceKlass;"). The problem -// is that the compiler has not seen the body of instanceKlass, and so it -// complains that it does not know about "instanceKlass::cast". Solution: -// privilegedStack.cpp instanceKlass.hpp -// -// Here's another example of a missing declaration: -// "privilegedStack.cpp", line 111: Error: The function AllocateHeap must have a prototype. -// Source code: -// _array = NEW_C_HEAP_ARRAY(PrivilegedElement, initial_size); -// -// The problem is that the macro call expands to use a heap function -// which is defined (for technical reasons) in a different file. Solution: -// privilegedStack.cpp allocation.inline.hpp -// The macro is defined in allocation.hpp, while the function is -// defined (as an inline) in allocation.inline.hpp. Generally, if you -// find you need a header H.hpp, and there is also a header -// H.inline.hpp use the latter, because it contains inline definitions -// you will require. - -abstractCompiler.cpp abstractCompiler.hpp -abstractCompiler.cpp mutexLocker.hpp - -abstractCompiler.hpp compilerInterface.hpp - -abstractInterpreter.hpp bytecodes.hpp -abstractInterpreter.hpp interp_masm_.hpp -abstractInterpreter.hpp stubs.hpp -abstractInterpreter.hpp thread_.inline.hpp -abstractInterpreter.hpp top.hpp -abstractInterpreter.hpp vmThread.hpp - -accessFlags.cpp accessFlags.hpp -accessFlags.cpp oop.inline.hpp -accessFlags.cpp os_.inline.hpp - -accessFlags.hpp jvm.h -accessFlags.hpp top.hpp - -allocation.cpp allocation.hpp -allocation.cpp allocation.inline.hpp -allocation.cpp os.hpp -allocation.cpp os_.inline.hpp -allocation.cpp ostream.hpp -allocation.cpp resourceArea.hpp -allocation.cpp task.hpp -allocation.cpp threadCritical.hpp - -allocation.hpp globalDefinitions.hpp -allocation.hpp globals.hpp - -allocation.inline.hpp os.hpp - -aprofiler.cpp aprofiler.hpp -aprofiler.cpp collectedHeap.inline.hpp -aprofiler.cpp oop.inline.hpp -aprofiler.cpp oop.inline2.hpp -aprofiler.cpp permGen.hpp -aprofiler.cpp resourceArea.hpp -aprofiler.cpp space.hpp -aprofiler.cpp systemDictionary.hpp - -aprofiler.hpp allocation.hpp -aprofiler.hpp klass.hpp -aprofiler.hpp klassOop.hpp -aprofiler.hpp top.hpp -aprofiler.hpp universe.hpp - -arguments.cpp allocation.inline.hpp -arguments.cpp arguments.hpp -arguments.cpp cardTableRS.hpp -arguments.cpp compilerOracle.hpp -arguments.cpp defaultStream.hpp -arguments.cpp globals_extension.hpp -arguments.cpp java.hpp -arguments.cpp javaAssertions.hpp -arguments.cpp jvmtiExport.hpp -arguments.cpp management.hpp -arguments.cpp oop.inline.hpp -arguments.cpp os_.inline.hpp -arguments.cpp referenceProcessor.hpp -arguments.cpp taskqueue.hpp -arguments.cpp universe.inline.hpp -arguments.cpp vm_version_.hpp - -arguments.hpp java.hpp -arguments.hpp perfData.hpp -arguments.hpp top.hpp - -array.cpp array.hpp -array.cpp resourceArea.hpp -array.cpp thread_.inline.hpp - -array.hpp allocation.hpp -array.hpp allocation.inline.hpp - -arrayKlass.cpp arrayKlass.hpp -arrayKlass.cpp arrayKlassKlass.hpp -arrayKlass.cpp arrayOop.hpp -arrayKlass.cpp collectedHeap.inline.hpp -arrayKlass.cpp gcLocker.hpp -arrayKlass.cpp instanceKlass.hpp -arrayKlass.cpp javaClasses.hpp -arrayKlass.cpp jvmti.h -arrayKlass.cpp objArrayOop.hpp -arrayKlass.cpp oop.inline.hpp -arrayKlass.cpp systemDictionary.hpp -arrayKlass.cpp universe.inline.hpp -arrayKlass.cpp vmSymbols.hpp - -arrayKlass.hpp klass.hpp -arrayKlass.hpp klassOop.hpp -arrayKlass.hpp klassVtable.hpp -arrayKlass.hpp universe.hpp - -arrayKlassKlass.cpp arrayKlassKlass.hpp -arrayKlassKlass.cpp handles.inline.hpp -arrayKlassKlass.cpp javaClasses.hpp -arrayKlassKlass.cpp markSweep.inline.hpp -arrayKlassKlass.cpp oop.inline.hpp - -arrayKlassKlass.hpp arrayKlass.hpp -arrayKlassKlass.hpp klassKlass.hpp - -arrayOop.cpp arrayOop.hpp -arrayOop.cpp objArrayOop.hpp -arrayOop.cpp oop.inline.hpp -arrayOop.cpp symbolOop.hpp - -arrayOop.hpp oop.hpp -arrayOop.hpp universe.inline.hpp - -assembler.cpp assembler.hpp -assembler.cpp assembler.inline.hpp -assembler.cpp assembler_.inline.hpp -assembler.cpp codeBuffer.hpp -assembler.cpp icache.hpp -assembler.cpp os.hpp - -assembler.hpp allocation.hpp -assembler.hpp debug.hpp -assembler.hpp growableArray.hpp -assembler.hpp oopRecorder.hpp -assembler.hpp register_.hpp -assembler.hpp relocInfo.hpp -assembler.hpp top.hpp -assembler.hpp vm_version_.hpp - -assembler.inline.hpp assembler.hpp -assembler.inline.hpp codeBuffer.hpp -assembler.inline.hpp disassembler.hpp -assembler.inline.hpp threadLocalStorage.hpp - -assembler_.cpp assembler_.inline.hpp -assembler_.cpp biasedLocking.hpp -assembler_.cpp cardTableModRefBS.hpp -assembler_.cpp collectedHeap.inline.hpp -assembler_.cpp interfaceSupport.hpp -assembler_.cpp interpreter.hpp -assembler_.cpp methodHandles.hpp -assembler_.cpp objectMonitor.hpp -assembler_.cpp os.hpp -assembler_.cpp resourceArea.hpp -assembler_.cpp sharedRuntime.hpp -assembler_.cpp stubRoutines.hpp - -assembler_.hpp generate_platform_dependent_include - -assembler_.inline.hpp assembler.inline.hpp -assembler_.inline.hpp codeBuffer.hpp -assembler_.inline.hpp codeCache.hpp -assembler_.inline.hpp handles.inline.hpp - -assembler_.cpp assembler.hpp -assembler_.cpp assembler_.inline.hpp -assembler_.cpp os.hpp -assembler_.cpp threadLocalStorage.hpp - -atomic.cpp atomic.hpp -atomic.cpp atomic_.inline.hpp -atomic.cpp os_.inline.hpp - -atomic.hpp allocation.hpp - -atomic_.inline.hpp atomic.hpp -atomic_.inline.hpp os.hpp -atomic_.inline.hpp vm_version_.hpp -atomic_.inline.hpp orderAccess_.inline.hpp - -// attachListener is jck optional, put cpp deps in includeDB_features - -attachListener.hpp allocation.hpp -attachListener.hpp debug.hpp -attachListener.hpp ostream.hpp - -barrierSet.cpp barrierSet.inline.hpp -barrierSet.cpp collectedHeap.hpp -barrierSet.cpp universe.hpp - -barrierSet.hpp memRegion.hpp -barrierSet.hpp oopsHierarchy.hpp - -barrierSet.inline.hpp barrierSet.hpp -barrierSet.inline.hpp cardTableModRefBS.hpp - -biasedLocking.cpp biasedLocking.hpp -biasedLocking.cpp klass.inline.hpp -biasedLocking.cpp markOop.hpp -biasedLocking.cpp synchronizer.hpp -biasedLocking.cpp task.hpp -biasedLocking.cpp vframe.hpp -biasedLocking.cpp vmThread.hpp -biasedLocking.cpp vm_operations.hpp - -biasedLocking.hpp growableArray.hpp -biasedLocking.hpp handles.hpp - -bitMap.cpp allocation.inline.hpp -bitMap.cpp bitMap.inline.hpp -bitMap.cpp copy.hpp -bitMap.cpp os_.inline.hpp - -bitMap.hpp allocation.hpp -bitMap.hpp top.hpp - -bitMap.inline.hpp atomic.hpp -bitMap.inline.hpp bitMap.hpp - -blockOffsetTable.cpp blockOffsetTable.inline.hpp -blockOffsetTable.cpp collectedHeap.inline.hpp -blockOffsetTable.cpp iterator.hpp -blockOffsetTable.cpp java.hpp -blockOffsetTable.cpp oop.inline.hpp -blockOffsetTable.cpp space.inline.hpp -blockOffsetTable.cpp universe.hpp - -blockOffsetTable.hpp globalDefinitions.hpp -blockOffsetTable.hpp memRegion.hpp -blockOffsetTable.hpp virtualspace.hpp - -blockOffsetTable.inline.hpp blockOffsetTable.hpp -blockOffsetTable.inline.hpp safepoint.hpp -blockOffsetTable.inline.hpp space.hpp - -bytecode.cpp bytecode.hpp -bytecode.cpp constantPoolOop.hpp -bytecode.cpp fieldType.hpp -bytecode.cpp handles.inline.hpp -bytecode.cpp linkResolver.hpp -bytecode.cpp oop.inline.hpp -bytecode.cpp safepoint.hpp -bytecode.cpp signature.hpp - -bytecode.hpp allocation.hpp -bytecode.hpp bytecodes.hpp -bytecode.hpp bytes_.hpp -bytecode.hpp methodOop.hpp - -bytecodeHistogram.cpp bytecodeHistogram.hpp -bytecodeHistogram.cpp growableArray.hpp -bytecodeHistogram.cpp os.hpp -bytecodeHistogram.cpp resourceArea.hpp - -bytecodeHistogram.hpp allocation.hpp -bytecodeHistogram.hpp bytecodes.hpp - -bytecodeInterpreter.cpp no_precompiled_headers -bytecodeInterpreter.cpp bytecodeHistogram.hpp -bytecodeInterpreter.cpp bytecodeInterpreter.hpp -bytecodeInterpreter.cpp bytecodeInterpreter.inline.hpp -bytecodeInterpreter.cpp cardTableModRefBS.hpp -bytecodeInterpreter.cpp collectedHeap.hpp -bytecodeInterpreter.cpp exceptions.hpp -bytecodeInterpreter.cpp frame.inline.hpp -bytecodeInterpreter.cpp handles.inline.hpp -bytecodeInterpreter.cpp interfaceSupport.hpp -bytecodeInterpreter.cpp interpreterRuntime.hpp -bytecodeInterpreter.cpp interpreter.hpp -bytecodeInterpreter.cpp jvmtiExport.hpp -bytecodeInterpreter.cpp objArrayKlass.hpp -bytecodeInterpreter.cpp oop.inline.hpp -bytecodeInterpreter.cpp orderAccess_.inline.hpp -bytecodeInterpreter.cpp resourceArea.hpp -bytecodeInterpreter.cpp sharedRuntime.hpp -bytecodeInterpreter.cpp threadCritical.hpp -bytecodeInterpreter.cpp vmSymbols.hpp - -bytecodeInterpreter_.cpp assembler.hpp -bytecodeInterpreter_.cpp bytecodeInterpreter.hpp -bytecodeInterpreter_.cpp bytecodeInterpreter.inline.hpp -bytecodeInterpreter_.cpp debug.hpp -bytecodeInterpreter_.cpp deoptimization.hpp -bytecodeInterpreter_.cpp frame.inline.hpp -bytecodeInterpreter_.cpp interp_masm_.hpp -bytecodeInterpreter_.cpp interpreterRuntime.hpp -bytecodeInterpreter_.cpp interpreter.hpp -bytecodeInterpreter_.cpp jvmtiExport.hpp -bytecodeInterpreter_.cpp jvmtiThreadState.hpp -bytecodeInterpreter_.cpp methodDataOop.hpp -bytecodeInterpreter_.cpp methodOop.hpp -bytecodeInterpreter_.cpp oop.inline.hpp -bytecodeInterpreter_.cpp sharedRuntime.hpp -bytecodeInterpreter_.cpp stubRoutines.hpp -bytecodeInterpreter_.cpp synchronizer.hpp -bytecodeInterpreter_.cpp vframeArray.hpp - -bytecodeInterpreterWithChecks.cpp bytecodeInterpreter.cpp - -bytecodeInterpreter.hpp allocation.hpp -bytecodeInterpreter.hpp bytes_.hpp -bytecodeInterpreter.hpp frame.hpp -bytecodeInterpreter.hpp globalDefinitions.hpp -bytecodeInterpreter.hpp globals.hpp -bytecodeInterpreter.hpp methodDataOop.hpp -bytecodeInterpreter.hpp methodOop.hpp -bytecodeInterpreter.hpp synchronizer.hpp - -bytecodeInterpreter.inline.hpp bytecodeInterpreter.hpp -bytecodeInterpreter.inline.hpp stubRoutines.hpp - -bytecodeInterpreter_.hpp generate_platform_dependent_include - -bytecodeInterpreter_.inline.hpp generate_platform_dependent_include - -bytecodeStream.cpp bytecodeStream.hpp -bytecodeStream.cpp bytecodes.hpp - -bytecodeStream.hpp allocation.hpp -bytecodeStream.hpp bytecode.hpp -bytecodeStream.hpp bytes_.hpp -bytecodeStream.hpp methodOop.hpp - -bytecodeTracer.cpp bytecodeHistogram.hpp -bytecodeTracer.cpp bytecodeTracer.hpp -bytecodeTracer.cpp bytecodes.hpp -bytecodeTracer.cpp interpreter.hpp -bytecodeTracer.cpp interpreterRuntime.hpp -bytecodeTracer.cpp methodDataOop.hpp -bytecodeTracer.cpp methodOop.hpp -bytecodeTracer.cpp mutexLocker.hpp -bytecodeTracer.cpp resourceArea.hpp -bytecodeTracer.cpp timer.hpp - -bytecodeTracer.hpp allocation.hpp - -bytecodes.cpp bytecodes.hpp -bytecodes.cpp bytes_.hpp -bytecodes.cpp methodOop.hpp -bytecodes.cpp resourceArea.hpp - -bytecodes.hpp allocation.hpp -bytecodes.hpp top.hpp - -bytecodes_.cpp bytecodes.hpp - -bytecodes_.hpp generate_platform_dependent_include - -bytes_.hpp allocation.hpp - -bytes_.inline.hpp generate_platform_dependent_include - -cardTableModRefBS.cpp allocation.inline.hpp -cardTableModRefBS.cpp cardTableModRefBS.hpp -cardTableModRefBS.cpp cardTableRS.hpp -cardTableModRefBS.cpp java.hpp -cardTableModRefBS.cpp mutexLocker.hpp -cardTableModRefBS.cpp sharedHeap.hpp -cardTableModRefBS.cpp space.hpp -cardTableModRefBS.cpp space.inline.hpp -cardTableModRefBS.cpp universe.hpp -cardTableModRefBS.cpp virtualspace.hpp - -cardTableModRefBS.hpp modRefBarrierSet.hpp -cardTableModRefBS.hpp oop.hpp -cardTableModRefBS.hpp oop.inline2.hpp - -cardTableRS.cpp allocation.inline.hpp -cardTableRS.cpp cardTableRS.hpp -cardTableRS.cpp genCollectedHeap.hpp -cardTableRS.cpp generation.hpp -cardTableRS.cpp java.hpp -cardTableRS.cpp oop.inline.hpp -cardTableRS.cpp os.hpp -cardTableRS.cpp space.hpp - -cardTableRS.hpp cardTableModRefBS.hpp -cardTableRS.hpp genRemSet.hpp -cardTableRS.hpp memRegion.hpp - -ciArray.cpp ciArray.hpp -ciArray.cpp ciKlass.hpp -ciArray.cpp ciUtilities.hpp - -ciArray.hpp arrayOop.hpp -ciArray.hpp ciObject.hpp -ciArray.hpp objArrayOop.hpp -ciArray.hpp typeArrayOop.hpp - -ciArrayKlass.cpp ciArrayKlass.hpp -ciArrayKlass.cpp ciObjArrayKlass.hpp -ciArrayKlass.cpp ciTypeArrayKlass.hpp -ciArrayKlass.cpp ciUtilities.hpp - -ciArrayKlass.hpp ciKlass.hpp - -ciArrayKlassKlass.hpp ciKlassKlass.hpp - -ciCallProfile.hpp ciClassList.hpp - -ciCallSite.cpp ciCallSite.hpp -ciCallSite.cpp ciUtilities.hpp - -ciCallSite.hpp ciInstance.hpp - -ciConstant.cpp allocation.hpp -ciConstant.cpp allocation.inline.hpp -ciConstant.cpp ciConstant.hpp -ciConstant.cpp ciUtilities.hpp - -ciConstant.hpp ciClassList.hpp -ciConstant.hpp ciNullObject.hpp - -ciConstantPoolCache.cpp allocation.hpp -ciConstantPoolCache.cpp allocation.inline.hpp -ciConstantPoolCache.cpp ciConstantPoolCache.hpp -ciConstantPoolCache.cpp ciUtilities.hpp - -ciConstantPoolCache.hpp growableArray.hpp -ciConstantPoolCache.hpp resourceArea.hpp - -ciCPCache.cpp cpCacheOop.hpp -ciCPCache.cpp ciCPCache.hpp -ciCPCache.cpp ciUtilities.hpp - -ciCPCache.hpp ciClassList.hpp -ciCPCache.hpp ciObject.hpp -ciCPCache.hpp cpCacheOop.hpp - -ciEnv.cpp allocation.inline.hpp -ciEnv.cpp ciConstant.hpp -ciEnv.cpp ciEnv.hpp -ciEnv.cpp ciField.hpp -ciEnv.cpp ciInstance.hpp -ciEnv.cpp ciInstanceKlass.hpp -ciEnv.cpp ciInstanceKlassKlass.hpp -ciEnv.cpp ciMethod.hpp -ciEnv.cpp ciNullObject.hpp -ciEnv.cpp ciObjArrayKlassKlass.hpp -ciEnv.cpp ciTypeArrayKlassKlass.hpp -ciEnv.cpp ciUtilities.hpp -ciEnv.cpp collectedHeap.inline.hpp -ciEnv.cpp compileBroker.hpp -ciEnv.cpp compileLog.hpp -ciEnv.cpp compilerOracle.hpp -ciEnv.cpp dtrace.hpp -ciEnv.cpp init.hpp -ciEnv.cpp jvmtiExport.hpp -ciEnv.cpp linkResolver.hpp -ciEnv.cpp methodDataOop.hpp -ciEnv.cpp objArrayKlass.hpp -ciEnv.cpp oop.inline.hpp -ciEnv.cpp oop.inline2.hpp -ciEnv.cpp oopFactory.hpp -ciEnv.cpp reflection.hpp -ciEnv.cpp scopeDesc.hpp -ciEnv.cpp sharedRuntime.hpp -ciEnv.cpp systemDictionary.hpp -ciEnv.cpp universe.inline.hpp -ciEnv.cpp vmSymbols.hpp - -ciEnv.hpp ciClassList.hpp -ciEnv.hpp ciObjectFactory.hpp -ciEnv.hpp debugInfoRec.hpp -ciEnv.hpp dependencies.hpp -ciEnv.hpp exceptionHandlerTable.hpp -ciEnv.hpp oopMap.hpp -ciEnv.hpp systemDictionary.hpp -ciEnv.hpp thread.hpp - -ciExceptionHandler.cpp ciExceptionHandler.hpp -ciExceptionHandler.cpp ciUtilities.hpp - -ciExceptionHandler.hpp ciClassList.hpp -ciExceptionHandler.hpp ciInstanceKlass.hpp - -ciField.cpp ciField.hpp -ciField.cpp ciInstanceKlass.hpp -ciField.cpp ciUtilities.hpp -ciField.cpp collectedHeap.inline.hpp -ciField.cpp fieldDescriptor.hpp -ciField.cpp linkResolver.hpp -ciField.cpp oop.inline.hpp -ciField.cpp oop.inline2.hpp -ciField.cpp systemDictionary.hpp -ciField.cpp universe.inline.hpp - -ciField.hpp ciClassList.hpp -ciField.hpp ciConstant.hpp -ciField.hpp ciFlags.hpp -ciField.hpp ciInstance.hpp - -ciFlags.cpp ciFlags.hpp - -ciFlags.hpp accessFlags.hpp -ciFlags.hpp allocation.hpp -ciFlags.hpp ciClassList.hpp -ciFlags.hpp jvm.h - -ciInstance.cpp ciConstant.hpp -ciInstance.cpp ciField.hpp -ciInstance.cpp ciInstance.hpp -ciInstance.cpp ciInstanceKlass.hpp -ciInstance.cpp ciUtilities.hpp -ciInstance.cpp oop.inline.hpp -ciInstance.cpp systemDictionary.hpp - -ciInstance.hpp ciObject.hpp -ciInstance.hpp instanceOop.hpp - -ciInstanceKlass.cpp allocation.hpp -ciInstanceKlass.cpp allocation.inline.hpp -ciInstanceKlass.cpp ciField.hpp -ciInstanceKlass.cpp ciInstance.hpp -ciInstanceKlass.cpp ciInstanceKlass.hpp -ciInstanceKlass.cpp ciUtilities.hpp -ciInstanceKlass.cpp fieldDescriptor.hpp -ciInstanceKlass.cpp oop.inline.hpp -ciInstanceKlass.cpp systemDictionary.hpp - -ciInstanceKlass.hpp ciConstantPoolCache.hpp -ciInstanceKlass.hpp ciFlags.hpp -ciInstanceKlass.hpp ciInstanceKlassKlass.hpp -ciInstanceKlass.hpp ciKlass.hpp -ciInstanceKlass.hpp ciSymbol.hpp - -ciInstanceKlassKlass.cpp ciInstanceKlassKlass.hpp -ciInstanceKlassKlass.cpp ciUtilities.hpp - -ciInstanceKlassKlass.hpp ciKlassKlass.hpp - -ciKlass.cpp ciKlass.hpp -ciKlass.cpp ciSymbol.hpp -ciKlass.cpp ciUtilities.hpp -ciKlass.cpp oop.inline.hpp - -ciKlass.hpp ciType.hpp -ciKlass.hpp klassOop.hpp - -ciKlassKlass.cpp ciKlassKlass.hpp -ciKlassKlass.cpp ciUtilities.hpp - -ciKlassKlass.hpp ciKlass.hpp -ciKlassKlass.hpp ciSymbol.hpp - -ciMethod.cpp abstractCompiler.hpp -ciMethod.cpp allocation.inline.hpp -ciMethod.cpp bitMap.inline.hpp -ciMethod.cpp ciCallProfile.hpp -ciMethod.cpp ciExceptionHandler.hpp -ciMethod.cpp ciInstanceKlass.hpp -ciMethod.cpp ciMethod.hpp -ciMethod.cpp ciMethodBlocks.hpp -ciMethod.cpp ciMethodData.hpp -ciMethod.cpp ciMethodKlass.hpp -ciMethod.cpp ciStreams.hpp -ciMethod.cpp ciSymbol.hpp -ciMethod.cpp ciUtilities.hpp -ciMethod.cpp compilerOracle.hpp -ciMethod.cpp deoptimization.hpp -ciMethod.cpp generateOopMap.hpp -ciMethod.cpp interpreter.hpp -ciMethod.cpp linkResolver.hpp -ciMethod.cpp methodLiveness.hpp -ciMethod.cpp nativeLookup.hpp -ciMethod.cpp oop.inline.hpp -ciMethod.cpp oopMapCache.hpp -ciMethod.cpp resourceArea.hpp -ciMethod.cpp systemDictionary.hpp -ciMethod.cpp xmlstream.hpp - -ciMethod.hpp bitMap.hpp -ciMethod.hpp ciFlags.hpp -ciMethod.hpp ciInstanceKlass.hpp -ciMethod.hpp ciObject.hpp -ciMethod.hpp ciSignature.hpp -ciMethod.hpp methodHandles.hpp -ciMethod.hpp methodLiveness.hpp - -ciMethodBlocks.cpp bytecode.hpp -ciMethodBlocks.cpp ciMethodBlocks.hpp -ciMethodBlocks.cpp ciStreams.hpp -ciMethodBlocks.cpp copy.hpp - -ciMethodBlocks.hpp ciMethod.hpp -ciMethodBlocks.hpp growableArray.hpp -ciMethodBlocks.hpp resourceArea.hpp - -ciMethodData.cpp allocation.inline.hpp -ciMethodData.cpp ciMethodData.hpp -ciMethodData.cpp ciUtilities.hpp -ciMethodData.cpp copy.hpp -ciMethodData.cpp deoptimization.hpp -ciMethodData.cpp resourceArea.hpp - -ciMethodData.hpp ciClassList.hpp -ciMethodData.hpp ciKlass.hpp -ciMethodData.hpp ciObject.hpp -ciMethodData.hpp ciUtilities.hpp -ciMethodData.hpp methodDataOop.hpp -ciMethodData.hpp oop.inline.hpp - -ciMethodKlass.cpp ciMethodKlass.hpp -ciMethodKlass.cpp ciUtilities.hpp - -ciMethodKlass.hpp ciKlass.hpp -ciMethodKlass.hpp ciSymbol.hpp - -ciMethodHandle.cpp ciClassList.hpp -ciMethodHandle.cpp ciInstance.hpp -ciMethodHandle.cpp ciMethodHandle.hpp -ciMethodHandle.cpp ciUtilities.hpp -ciMethodHandle.cpp methodHandles.hpp -ciMethodHandle.cpp methodHandleWalk.hpp - -ciMethodHandle.hpp methodHandles.hpp - -ciNullObject.cpp ciNullObject.hpp - -ciNullObject.hpp ciClassList.hpp -ciNullObject.hpp ciObject.hpp -ciNullObject.hpp ciUtilities.hpp - -ciObjArray.hpp ciArray.hpp -ciObjArray.hpp ciClassList.hpp -ciObjArray.hpp objArrayOop.hpp - -ciObjArray.cpp ciObjArray.hpp -ciObjArray.cpp ciNullObject.hpp -ciObjArray.cpp ciUtilities.hpp -ciObjArray.cpp objArrayOop.hpp - -ciObjArray.cpp ciObjArray.hpp -ciObjArray.cpp ciNullObject.hpp -ciObjArray.cpp ciUtilities.hpp -ciObjArray.cpp objArrayOop.hpp - -ciObjArrayKlass.cpp ciInstanceKlass.hpp -ciObjArrayKlass.cpp ciObjArrayKlass.hpp -ciObjArrayKlass.cpp ciObjArrayKlassKlass.hpp -ciObjArrayKlass.cpp ciSymbol.hpp -ciObjArrayKlass.cpp ciUtilities.hpp -ciObjArrayKlass.cpp objArrayKlass.hpp - -ciObjArrayKlass.hpp ciArrayKlass.hpp - -ciObjArrayKlassKlass.cpp ciObjArrayKlassKlass.hpp -ciObjArrayKlassKlass.cpp ciUtilities.hpp - -ciObjArrayKlassKlass.hpp ciArrayKlassKlass.hpp - -ciObject.cpp ciObject.hpp -ciObject.cpp ciUtilities.hpp -ciObject.cpp collectedHeap.inline.hpp -ciObject.cpp oop.inline2.hpp - -ciObject.hpp allocation.hpp -ciObject.hpp ciClassList.hpp -ciObject.hpp handles.hpp -ciObject.hpp jniHandles.hpp - -ciObjectFactory.cpp allocation.inline.hpp -ciObjectFactory.cpp ciCallSite.hpp -ciObjectFactory.cpp ciCPCache.hpp -ciObjectFactory.cpp ciInstance.hpp -ciObjectFactory.cpp ciInstanceKlass.hpp -ciObjectFactory.cpp ciInstanceKlassKlass.hpp -ciObjectFactory.cpp ciMethod.hpp -ciObjectFactory.cpp ciMethodData.hpp -ciObjectFactory.cpp ciMethodHandle.hpp -ciObjectFactory.cpp ciMethodKlass.hpp -ciObjectFactory.cpp ciNullObject.hpp -ciObjectFactory.cpp ciObjArray.hpp -ciObjectFactory.cpp ciObjArrayKlass.hpp -ciObjectFactory.cpp ciObjArrayKlassKlass.hpp -ciObjectFactory.cpp ciObjectFactory.hpp -ciObjectFactory.cpp ciSymbol.hpp -ciObjectFactory.cpp ciSymbolKlass.hpp -ciObjectFactory.cpp ciTypeArray.hpp -ciObjectFactory.cpp ciTypeArrayKlass.hpp -ciObjectFactory.cpp ciTypeArrayKlassKlass.hpp -ciObjectFactory.cpp ciUtilities.hpp -ciObjectFactory.cpp collectedHeap.inline.hpp -ciObjectFactory.cpp fieldType.hpp -ciObjectFactory.cpp oop.inline.hpp -ciObjectFactory.cpp oop.inline2.hpp -ciObjectFactory.cpp systemDictionary.hpp - -ciObjectFactory.hpp ciClassList.hpp -ciObjectFactory.hpp ciObject.hpp -ciObjectFactory.hpp growableArray.hpp - -ciSignature.cpp allocation.inline.hpp -ciSignature.cpp ciSignature.hpp -ciSignature.cpp ciUtilities.hpp -ciSignature.cpp oop.inline.hpp -ciSignature.cpp signature.hpp - -ciSignature.hpp ciClassList.hpp -ciSignature.hpp ciSymbol.hpp -ciSignature.hpp globalDefinitions.hpp -ciSignature.hpp growableArray.hpp - -ciStreams.cpp ciCallSite.hpp -ciStreams.cpp ciConstant.hpp -ciStreams.cpp ciCPCache.hpp -ciStreams.cpp ciField.hpp -ciStreams.cpp ciStreams.hpp -ciStreams.cpp ciUtilities.hpp - -ciStreams.hpp bytecode.hpp -ciStreams.hpp ciClassList.hpp -ciStreams.hpp ciExceptionHandler.hpp -ciStreams.hpp ciInstanceKlass.hpp -ciStreams.hpp ciMethod.hpp - -ciSymbol.cpp ciSymbol.hpp -ciSymbol.cpp ciUtilities.hpp -ciSymbol.cpp oopFactory.hpp - -ciSymbol.hpp ciObject.hpp -ciSymbol.hpp ciObjectFactory.hpp -ciSymbol.hpp symbolOop.hpp -ciSymbol.hpp vmSymbols.hpp - -ciSymbolKlass.cpp ciSymbolKlass.hpp -ciSymbolKlass.cpp ciUtilities.hpp - -ciSymbolKlass.hpp ciKlass.hpp -ciSymbolKlass.hpp ciSymbol.hpp - -ciType.cpp ciType.hpp -ciType.cpp ciUtilities.hpp -ciType.cpp oop.inline.hpp -ciType.cpp systemDictionary.hpp - -ciType.hpp ciObject.hpp -ciType.hpp klassOop.hpp - -ciTypeArray.cpp ciTypeArray.hpp -ciTypeArray.cpp ciUtilities.hpp - -ciTypeArray.hpp ciArray.hpp -ciTypeArray.hpp ciClassList.hpp -ciTypeArray.hpp typeArrayOop.hpp - -ciTypeArrayKlass.cpp ciTypeArrayKlass.hpp -ciTypeArrayKlass.cpp ciUtilities.hpp - -ciTypeArrayKlass.hpp ciArrayKlass.hpp - -ciTypeArrayKlassKlass.cpp ciTypeArrayKlassKlass.hpp -ciTypeArrayKlassKlass.cpp ciUtilities.hpp - -ciTypeArrayKlassKlass.hpp ciArrayKlassKlass.hpp - -ciUtilities.cpp ciUtilities.hpp - -ciUtilities.hpp ciEnv.hpp -ciUtilities.hpp interfaceSupport.hpp - -classFileError.cpp classFileParser.hpp -classFileError.cpp stackMapTable.hpp -classFileError.cpp verifier.hpp - -classFileParser.cpp allocation.hpp -classFileParser.cpp classFileParser.hpp -classFileParser.cpp classLoader.hpp -classFileParser.cpp classLoadingService.hpp -classFileParser.cpp constantPoolOop.hpp -classFileParser.cpp gcLocker.hpp -classFileParser.cpp instanceKlass.hpp -classFileParser.cpp javaCalls.hpp -classFileParser.cpp javaClasses.hpp -classFileParser.cpp jvmtiExport.hpp -classFileParser.cpp klass.inline.hpp -classFileParser.cpp klassOop.hpp -classFileParser.cpp klassVtable.hpp -classFileParser.cpp methodOop.hpp -classFileParser.cpp oopFactory.hpp -classFileParser.cpp perfData.hpp -classFileParser.cpp reflection.hpp -classFileParser.cpp signature.hpp -classFileParser.cpp symbolOop.hpp -classFileParser.cpp symbolTable.hpp -classFileParser.cpp systemDictionary.hpp -classFileParser.cpp threadService.hpp -classFileParser.cpp timer.hpp -classFileParser.cpp universe.inline.hpp -classFileParser.cpp verificationType.hpp -classFileParser.cpp verifier.hpp -classFileParser.cpp vmSymbols.hpp - -classFileParser.hpp accessFlags.hpp -classFileParser.hpp classFileStream.hpp -classFileParser.hpp handles.inline.hpp -classFileParser.hpp oop.inline.hpp -classFileParser.hpp resourceArea.hpp -classFileParser.hpp typeArrayOop.hpp - -classFileStream.cpp classFileStream.hpp -classFileStream.cpp vmSymbols.hpp - -classFileStream.hpp bytes_.hpp -classFileStream.hpp top.hpp - -classLoader.cpp allocation.inline.hpp -classLoader.cpp arguments.hpp -classLoader.cpp bytecodeStream.hpp -classLoader.cpp classFileParser.hpp -classLoader.cpp classFileStream.hpp -classLoader.cpp classLoader.hpp -classLoader.cpp collectedHeap.inline.hpp -classLoader.cpp compilationPolicy.hpp -classLoader.cpp compileBroker.hpp -classLoader.cpp constantPoolKlass.hpp -classLoader.cpp events.hpp -classLoader.cpp fprofiler.hpp -classLoader.cpp generation.hpp -classLoader.cpp handles.hpp -classLoader.cpp handles.inline.hpp -classLoader.cpp hashtable.hpp -classLoader.cpp hashtable.inline.hpp -classLoader.cpp hpi.hpp -classLoader.cpp hpi_.hpp -classLoader.cpp init.hpp -classLoader.cpp instanceKlass.hpp -classLoader.cpp instanceRefKlass.hpp -classLoader.cpp interfaceSupport.hpp -classLoader.cpp java.hpp -classLoader.cpp javaCalls.hpp -classLoader.cpp javaClasses.hpp -classLoader.cpp jvm_misc.hpp -classLoader.cpp management.hpp -classLoader.cpp oop.inline.hpp -classLoader.cpp oopFactory.hpp -classLoader.cpp oopMapCache.hpp -classLoader.cpp os_.inline.hpp -classLoader.cpp symbolOop.hpp -classLoader.cpp systemDictionary.hpp -classLoader.cpp threadCritical.hpp -classLoader.cpp threadService.hpp -classLoader.cpp timer.hpp -classLoader.cpp universe.inline.hpp -classLoader.cpp vmSymbols.hpp - -classLoader.hpp classFileParser.hpp -classLoader.hpp perfData.hpp - -classLoadingService.cpp allocation.hpp -classLoadingService.cpp classLoadingService.hpp -classLoadingService.cpp dtrace.hpp -classLoadingService.cpp memoryService.hpp -classLoadingService.cpp mutexLocker.hpp -classLoadingService.cpp oop.inline.hpp -classLoadingService.cpp systemDictionary.hpp -classLoadingService.cpp universe.hpp - -classLoadingService.hpp growableArray.hpp -classLoadingService.hpp handles.hpp -classLoadingService.hpp perfData.hpp - -classify.cpp classify.hpp -classify.cpp systemDictionary.hpp - -classify.hpp oop.inline.hpp - -codeBlob.cpp allocation.inline.hpp -codeBlob.cpp bytecode.hpp -codeBlob.cpp codeBlob.hpp -codeBlob.cpp codeCache.hpp -codeBlob.cpp disassembler.hpp -codeBlob.cpp forte.hpp -codeBlob.cpp handles.inline.hpp -codeBlob.cpp heap.hpp -codeBlob.cpp interfaceSupport.hpp -codeBlob.cpp memoryService.hpp -codeBlob.cpp mutexLocker.hpp -codeBlob.cpp nativeInst_.hpp -codeBlob.cpp oop.inline.hpp -codeBlob.cpp relocInfo.hpp -codeBlob.cpp safepoint.hpp -codeBlob.cpp sharedRuntime.hpp -codeBlob.cpp vframe.hpp - -codeBlob.hpp codeBuffer.hpp -codeBlob.hpp frame.hpp -codeBlob.hpp handles.hpp -codeBlob.hpp oopMap.hpp - -codeBuffer.cpp codeBuffer.hpp -codeBuffer.cpp copy.hpp -codeBuffer.cpp disassembler.hpp - -codeBuffer.hpp assembler.hpp -codeBuffer.hpp oopRecorder.hpp -codeBuffer.hpp relocInfo.hpp - -codeBuffer_.hpp generate_platform_dependent_include - -codeCache.cpp allocation.inline.hpp -codeCache.cpp codeBlob.hpp -codeCache.cpp codeCache.hpp -codeCache.cpp dependencies.hpp -codeCache.cpp gcLocker.hpp -codeCache.cpp handles.inline.hpp -codeCache.cpp icache.hpp -codeCache.cpp iterator.hpp -codeCache.cpp java.hpp -codeCache.cpp markSweep.hpp -codeCache.cpp memoryService.hpp -codeCache.cpp methodOop.hpp -codeCache.cpp mutexLocker.hpp -codeCache.cpp nmethod.hpp -codeCache.cpp objArrayOop.hpp -codeCache.cpp oop.inline.hpp -codeCache.cpp pcDesc.hpp -codeCache.cpp resourceArea.hpp -codeCache.cpp xmlstream.hpp - -codeCache.hpp allocation.hpp -codeCache.hpp codeBlob.hpp -codeCache.hpp heap.hpp -codeCache.hpp instanceKlass.hpp -codeCache.hpp oopsHierarchy.hpp - -collectorPolicy.cpp adaptiveSizePolicy.hpp -collectorPolicy.cpp arguments.hpp -collectorPolicy.cpp cardTableRS.hpp -collectorPolicy.cpp collectorPolicy.hpp -collectorPolicy.cpp gcLocker.inline.hpp -collectorPolicy.cpp genCollectedHeap.hpp -collectorPolicy.cpp gcPolicyCounters.hpp -collectorPolicy.cpp generationSpec.hpp -collectorPolicy.cpp globals_extension.hpp -collectorPolicy.cpp handles.inline.hpp -collectorPolicy.cpp java.hpp -collectorPolicy.cpp space.hpp -collectorPolicy.cpp thread_.inline.hpp -collectorPolicy.cpp universe.hpp -collectorPolicy.cpp vmGCOperations.hpp -collectorPolicy.cpp vmThread.hpp - -collectorPolicy.hpp barrierSet.hpp -collectorPolicy.hpp genRemSet.hpp -collectorPolicy.hpp permGen.hpp - -compactPermGen.hpp generation.hpp -compactPermGen.hpp permGen.hpp - -compactingPermGenGen.cpp compactingPermGenGen.hpp -compactingPermGenGen.cpp filemap.hpp -compactingPermGenGen.cpp genOopClosures.inline.hpp -compactingPermGenGen.cpp generation.inline.hpp -compactingPermGenGen.cpp generationSpec.hpp -compactingPermGenGen.cpp java.hpp -compactingPermGenGen.cpp oop.inline.hpp -compactingPermGenGen.cpp symbolTable.hpp -compactingPermGenGen.cpp systemDictionary.hpp - -compactingPermGenGen.hpp generationCounters.hpp -compactingPermGenGen.hpp space.hpp - -compilationPolicy.cpp compilationPolicy.hpp -compilationPolicy.cpp compiledIC.hpp -compilationPolicy.cpp compilerOracle.hpp -compilationPolicy.cpp events.hpp -compilationPolicy.cpp frame.hpp -compilationPolicy.cpp globalDefinitions.hpp -compilationPolicy.cpp handles.inline.hpp -compilationPolicy.cpp interpreter.hpp -compilationPolicy.cpp methodDataOop.hpp -compilationPolicy.cpp methodOop.hpp -compilationPolicy.cpp nativeLookup.hpp -compilationPolicy.cpp nmethod.hpp -compilationPolicy.cpp oop.inline.hpp -compilationPolicy.cpp rframe.hpp -compilationPolicy.cpp scopeDesc.hpp -compilationPolicy.cpp simpleThresholdPolicy.hpp -compilationPolicy.cpp stubRoutines.hpp -compilationPolicy.cpp thread.hpp -compilationPolicy.cpp timer.hpp -compilationPolicy.cpp vframe.hpp -compilationPolicy.cpp vm_operations.hpp - -compilationPolicy.hpp allocation.hpp -compilationPolicy.hpp compileBroker.hpp -compilationPolicy.hpp growableArray.hpp -compilationPolicy.hpp nmethod.hpp -compilationPolicy.hpp vm_operations.hpp - -compileBroker.cpp allocation.inline.hpp -compileBroker.cpp arguments.hpp -compileBroker.cpp codeCache.hpp -compileBroker.cpp compilationPolicy.hpp -compileBroker.cpp compileBroker.hpp -compileBroker.cpp compileLog.hpp -compileBroker.cpp compilerOracle.hpp -compileBroker.cpp dtrace.hpp -compileBroker.cpp init.hpp -compileBroker.cpp interfaceSupport.hpp -compileBroker.cpp javaCalls.hpp -compileBroker.cpp linkResolver.hpp -compileBroker.cpp methodDataOop.hpp -compileBroker.cpp methodOop.hpp -compileBroker.cpp nativeLookup.hpp -compileBroker.cpp oop.inline.hpp -compileBroker.cpp os.hpp -compileBroker.cpp sharedRuntime.hpp -compileBroker.cpp sweeper.hpp -compileBroker.cpp systemDictionary.hpp -compileBroker.cpp vmSymbols.hpp - -compileBroker.hpp abstractCompiler.hpp -compileBroker.hpp compilerInterface.hpp -compileBroker.hpp perfData.hpp - -compileLog.cpp allocation.inline.hpp -compileLog.cpp ciMethod.hpp -compileLog.cpp compileLog.hpp -compileLog.cpp methodOop.hpp -compileLog.cpp mutexLocker.hpp -compileLog.cpp os.hpp - -compileLog.hpp xmlstream.hpp - -compiledIC.cpp codeCache.hpp -compiledIC.cpp compiledIC.hpp -compiledIC.cpp events.hpp -compiledIC.cpp icBuffer.hpp -compiledIC.cpp icache.hpp -compiledIC.cpp interpreter.hpp -compiledIC.cpp linkResolver.hpp -compiledIC.cpp methodOop.hpp -compiledIC.cpp nmethod.hpp -compiledIC.cpp oop.inline.hpp -compiledIC.cpp oopFactory.hpp -compiledIC.cpp sharedRuntime.hpp -compiledIC.cpp stubRoutines.hpp -compiledIC.cpp symbolOop.hpp -compiledIC.cpp systemDictionary.hpp -compiledIC.cpp vtableStubs.hpp - -compiledIC.hpp compiledICHolderKlass.hpp -compiledIC.hpp compiledICHolderOop.hpp -compiledIC.hpp klassOop.hpp -compiledIC.hpp linkResolver.hpp -compiledIC.hpp nativeInst_.hpp - -compiledICHolderKlass.cpp collectedHeap.hpp -compiledICHolderKlass.cpp collectedHeap.inline.hpp -compiledICHolderKlass.cpp compiledICHolderKlass.hpp -compiledICHolderKlass.cpp handles.inline.hpp -compiledICHolderKlass.cpp javaClasses.hpp -compiledICHolderKlass.cpp markSweep.inline.hpp -compiledICHolderKlass.cpp oop.inline.hpp -compiledICHolderKlass.cpp oop.inline2.hpp -compiledICHolderKlass.cpp permGen.hpp -compiledICHolderKlass.cpp universe.inline.hpp - -compiledICHolderKlass.hpp compiledICHolderOop.hpp -compiledICHolderKlass.hpp klass.hpp -compiledICHolderKlass.hpp methodOop.hpp - -compiledICHolderOop.cpp compiledICHolderOop.hpp - -compiledICHolderOop.hpp oop.hpp - -compilerInterface.hpp ciArray.hpp -compilerInterface.hpp ciArrayKlass.hpp -compilerInterface.hpp ciArrayKlassKlass.hpp -compilerInterface.hpp ciCallProfile.hpp -compilerInterface.hpp ciConstant.hpp -compilerInterface.hpp ciEnv.hpp -compilerInterface.hpp ciExceptionHandler.hpp -compilerInterface.hpp ciField.hpp -compilerInterface.hpp ciFlags.hpp -compilerInterface.hpp ciInstance.hpp -compilerInterface.hpp ciInstanceKlass.hpp -compilerInterface.hpp ciInstanceKlassKlass.hpp -compilerInterface.hpp ciKlass.hpp -compilerInterface.hpp ciKlassKlass.hpp -compilerInterface.hpp ciMethod.hpp -compilerInterface.hpp ciMethodKlass.hpp -compilerInterface.hpp ciNullObject.hpp -compilerInterface.hpp ciObjArray.hpp -compilerInterface.hpp ciObjArrayKlass.hpp -compilerInterface.hpp ciObjArrayKlassKlass.hpp -compilerInterface.hpp ciObject.hpp -compilerInterface.hpp ciSignature.hpp -compilerInterface.hpp ciStreams.hpp -compilerInterface.hpp ciSymbol.hpp -compilerInterface.hpp ciSymbolKlass.hpp -compilerInterface.hpp ciTypeArray.hpp -compilerInterface.hpp ciTypeArrayKlass.hpp -compilerInterface.hpp ciTypeArrayKlassKlass.hpp - -compilerOracle.cpp allocation.inline.hpp -compilerOracle.cpp compilerOracle.hpp -compilerOracle.cpp handles.inline.hpp -compilerOracle.cpp jniHandles.hpp -compilerOracle.cpp klass.hpp -compilerOracle.cpp methodOop.hpp -compilerOracle.cpp oop.inline.hpp -compilerOracle.cpp oopFactory.hpp -compilerOracle.cpp resourceArea.hpp -compilerOracle.cpp symbolOop.hpp - -compilerOracle.hpp allocation.hpp -compilerOracle.hpp oopsHierarchy.hpp - -compressedStream.cpp compressedStream.hpp -compressedStream.cpp ostream.hpp - -compressedStream.hpp allocation.hpp - -constMethodKlass.cpp constMethodKlass.hpp -constMethodKlass.cpp constMethodOop.hpp -constMethodKlass.cpp gcLocker.hpp -constMethodKlass.cpp handles.inline.hpp -constMethodKlass.cpp interpreter.hpp -constMethodKlass.cpp markSweep.inline.hpp -constMethodKlass.cpp oop.inline.hpp -constMethodKlass.cpp oop.inline2.hpp -constMethodKlass.cpp resourceArea.hpp - -constMethodKlass.hpp oop.hpp -constMethodKlass.hpp klass.hpp -constMethodKlass.hpp orderAccess.hpp - -constMethodOop.cpp constMethodOop.hpp -constMethodOop.cpp methodOop.hpp - -constMethodOop.hpp oop.hpp -constMethodOop.hpp typeArrayOop.hpp - -constantPoolKlass.cpp collectedHeap.inline.hpp -constantPoolKlass.cpp constantPoolKlass.hpp -constantPoolKlass.cpp constantPoolOop.hpp -constantPoolKlass.cpp handles.inline.hpp -constantPoolKlass.cpp javaClasses.hpp -constantPoolKlass.cpp markSweep.inline.hpp -constantPoolKlass.cpp oop.inline.hpp -constantPoolKlass.cpp oop.inline2.hpp -constantPoolKlass.cpp oopFactory.hpp -constantPoolKlass.cpp permGen.hpp -constantPoolKlass.cpp symbolOop.hpp -constantPoolKlass.cpp thread_.inline.hpp -constantPoolKlass.cpp universe.inline.hpp - -constantPoolKlass.hpp arrayKlass.hpp -constantPoolKlass.hpp instanceKlass.hpp - -constantPoolOop.cpp constantPoolOop.hpp -constantPoolOop.cpp fieldType.hpp -constantPoolOop.cpp init.hpp -constantPoolOop.cpp instanceKlass.hpp -constantPoolOop.cpp javaClasses.hpp -constantPoolOop.cpp linkResolver.hpp -constantPoolOop.cpp objArrayKlass.hpp -constantPoolOop.cpp oop.inline.hpp -constantPoolOop.cpp signature.hpp -constantPoolOop.cpp symbolTable.hpp -constantPoolOop.cpp systemDictionary.hpp -constantPoolOop.cpp universe.inline.hpp -constantPoolOop.cpp vframe.hpp -constantPoolOop.cpp vmSymbols.hpp - -constantPoolOop.hpp arrayOop.hpp -constantPoolOop.hpp bytes_.hpp -constantPoolOop.hpp constantTag.hpp -constantPoolOop.hpp cpCacheOop.hpp -constantPoolOop.hpp typeArrayOop.hpp - -constantTag.cpp constantTag.hpp - -constantTag.hpp jvm.h -constantTag.hpp top.hpp - -copy.cpp copy.hpp -copy.cpp sharedRuntime.hpp - -copy.hpp stubRoutines.hpp - -copy_.hpp generate_platform_dependent_include - -copy_.inline.hpp generate_platform_dependent_include - -cpCacheKlass.cpp bytecodes.hpp -cpCacheKlass.cpp collectedHeap.hpp -cpCacheKlass.cpp constantPoolOop.hpp -cpCacheKlass.cpp cpCacheKlass.hpp -cpCacheKlass.cpp genOopClosures.inline.hpp -cpCacheKlass.cpp handles.inline.hpp -cpCacheKlass.cpp javaClasses.hpp -cpCacheKlass.cpp markSweep.inline.hpp -cpCacheKlass.cpp oop.inline.hpp -cpCacheKlass.cpp permGen.hpp - -cpCacheKlass.hpp arrayKlass.hpp -cpCacheKlass.hpp cpCacheOop.hpp -cpCacheKlass.hpp instanceKlass.hpp - -cpCacheOop.cpp cpCacheOop.hpp -cpCacheOop.cpp handles.inline.hpp -cpCacheOop.cpp interpreter.hpp -cpCacheOop.cpp jvmtiRedefineClassesTrace.hpp -cpCacheOop.cpp markSweep.inline.hpp -cpCacheOop.cpp objArrayOop.hpp -cpCacheOop.cpp oop.inline.hpp -cpCacheOop.cpp rewriter.hpp -cpCacheOop.cpp universe.inline.hpp - -cpCacheOop.hpp allocation.hpp -cpCacheOop.hpp array.hpp -cpCacheOop.hpp arrayOop.hpp -cpCacheOop.hpp bytecodes.hpp - -cppInterpreter.cpp bytecodeInterpreter.hpp -cppInterpreter.cpp interpreter.hpp -cppInterpreter.cpp interpreterGenerator.hpp -cppInterpreter.cpp interpreterRuntime.hpp - -cppInterpreter.hpp abstractInterpreter.hpp - -cppInterpreter_.cpp arguments.hpp -cppInterpreter_.cpp arrayOop.hpp -cppInterpreter_.cpp assembler.hpp -cppInterpreter_.cpp bytecodeHistogram.hpp -cppInterpreter_.cpp debug.hpp -cppInterpreter_.cpp deoptimization.hpp -cppInterpreter_.cpp frame.inline.hpp -cppInterpreter_.cpp interfaceSupport.hpp -cppInterpreter_.cpp interpreterRuntime.hpp -cppInterpreter_.cpp interpreter.hpp -cppInterpreter_.cpp interpreterGenerator.hpp -cppInterpreter_.cpp jvmtiExport.hpp -cppInterpreter_.cpp jvmtiThreadState.hpp -cppInterpreter_.cpp methodDataOop.hpp -cppInterpreter_.cpp methodOop.hpp -cppInterpreter_.cpp oop.inline.hpp -cppInterpreter_.cpp sharedRuntime.hpp -cppInterpreter_.cpp stubRoutines.hpp -cppInterpreter_.cpp synchronizer.hpp -cppInterpreter_.cpp cppInterpreter.hpp -cppInterpreter_.cpp timer.hpp -cppInterpreter_.cpp vframeArray.hpp - -cppInterpreter_.hpp generate_platform_dependent_include - -cppInterpreterGenerator_.hpp generate_platform_dependent_include - -debug.cpp arguments.hpp -debug.cpp bytecodeHistogram.hpp -debug.cpp codeCache.hpp -debug.cpp collectedHeap.hpp -debug.cpp compileBroker.hpp -debug.cpp defaultStream.hpp -debug.cpp disassembler.hpp -debug.cpp events.hpp -debug.cpp frame.hpp -debug.cpp heapDumper.hpp -debug.cpp icBuffer.hpp -debug.cpp interpreter.hpp -debug.cpp java.hpp -debug.cpp markSweep.hpp -debug.cpp nmethod.hpp -debug.cpp oop.inline.hpp -debug.cpp os_.inline.hpp -debug.cpp privilegedStack.hpp -debug.cpp resourceArea.hpp -debug.cpp sharedRuntime.hpp -debug.cpp stubCodeGenerator.hpp -debug.cpp stubRoutines.hpp -debug.cpp systemDictionary.hpp -debug.cpp thread_.inline.hpp -debug.cpp top.hpp -debug.cpp universe.hpp -debug.cpp vframe.hpp -debug.cpp vmError.hpp -debug.cpp vtableStubs.hpp - -debug.hpp globalDefinitions.hpp - -debugInfo.cpp debugInfo.hpp -debugInfo.cpp debugInfoRec.hpp -debugInfo.cpp handles.inline.hpp -debugInfo.cpp nmethod.hpp - -debugInfo.hpp compressedStream.hpp -debugInfo.hpp growableArray.hpp -debugInfo.hpp location.hpp -debugInfo.hpp nmethod.hpp -debugInfo.hpp oopRecorder.hpp -debugInfo.hpp stackValue.hpp - -debugInfoRec.cpp debugInfoRec.hpp -debugInfoRec.cpp jvmtiExport.hpp -debugInfoRec.cpp scopeDesc.hpp - -debugInfoRec.hpp ciClassList.hpp -debugInfoRec.hpp ciInstanceKlass.hpp -debugInfoRec.hpp ciMethod.hpp -debugInfoRec.hpp debugInfo.hpp -debugInfoRec.hpp growableArray.hpp -debugInfoRec.hpp location.hpp -debugInfoRec.hpp oop.hpp -debugInfoRec.hpp oopMap.hpp -debugInfoRec.hpp pcDesc.hpp - -debug_.cpp codeCache.hpp -debug_.cpp debug.hpp -debug_.cpp frame.hpp -debug_.cpp init.hpp -debug_.cpp nmethod.hpp -debug_.cpp os.hpp -debug_.cpp top.hpp - -defNewGeneration.cpp collectorCounters.hpp -defNewGeneration.cpp copy.hpp -defNewGeneration.cpp defNewGeneration.inline.hpp -defNewGeneration.cpp gcLocker.inline.hpp -defNewGeneration.cpp gcPolicyCounters.hpp -defNewGeneration.cpp genCollectedHeap.hpp -defNewGeneration.cpp genOopClosures.inline.hpp -defNewGeneration.cpp generationSpec.hpp -defNewGeneration.cpp instanceRefKlass.hpp -defNewGeneration.cpp iterator.hpp -defNewGeneration.cpp java.hpp -defNewGeneration.cpp oop.inline.hpp -defNewGeneration.cpp referencePolicy.hpp -defNewGeneration.cpp space.inline.hpp -defNewGeneration.cpp spaceDecorator.hpp -defNewGeneration.cpp stack.inline.hpp -defNewGeneration.cpp thread_.inline.hpp - -defNewGeneration.hpp ageTable.hpp -defNewGeneration.hpp cSpaceCounters.hpp -defNewGeneration.hpp generation.inline.hpp -defNewGeneration.hpp generationCounters.hpp -defNewGeneration.hpp stack.hpp - -defNewGeneration.inline.hpp cardTableRS.hpp -defNewGeneration.inline.hpp defNewGeneration.hpp -defNewGeneration.inline.hpp space.hpp - -defaultStream.hpp xmlstream.hpp - -deoptimization.cpp allocation.inline.hpp -deoptimization.cpp biasedLocking.hpp -deoptimization.cpp bytecode.hpp -deoptimization.cpp compilationPolicy.hpp -deoptimization.cpp debugInfoRec.hpp -deoptimization.cpp deoptimization.hpp -deoptimization.cpp events.hpp -deoptimization.cpp interfaceSupport.hpp -deoptimization.cpp interpreter.hpp -deoptimization.cpp jvmtiThreadState.hpp -deoptimization.cpp methodOop.hpp -deoptimization.cpp nmethod.hpp -deoptimization.cpp oop.inline.hpp -deoptimization.cpp oopFactory.hpp -deoptimization.cpp oopMapCache.hpp -deoptimization.cpp pcDesc.hpp -deoptimization.cpp resourceArea.hpp -deoptimization.cpp scopeDesc.hpp -deoptimization.cpp sharedRuntime.hpp -deoptimization.cpp signature.hpp -deoptimization.cpp stubRoutines.hpp -deoptimization.cpp systemDictionary.hpp -deoptimization.cpp thread.hpp -deoptimization.cpp vframe.hpp -deoptimization.cpp vframeArray.hpp -deoptimization.cpp vframe_hp.hpp -deoptimization.cpp vmreg_.inline.hpp -deoptimization.cpp xmlstream.hpp - -deoptimization.hpp allocation.hpp -deoptimization.hpp frame.inline.hpp - -depChecker_.cpp depChecker_.hpp -depChecker_.cpp disassembler.hpp -depChecker_.cpp hpi.hpp - -dependencies.cpp ciArrayKlass.hpp -dependencies.cpp ciEnv.hpp -dependencies.cpp ciKlass.hpp -dependencies.cpp ciMethod.hpp -dependencies.cpp compileLog.hpp -dependencies.cpp copy.hpp -dependencies.cpp dependencies.hpp -dependencies.cpp handles.inline.hpp -dependencies.cpp oop.inline.hpp - -dependencies.hpp ciKlass.hpp -dependencies.hpp compressedStream.hpp -dependencies.hpp growableArray.hpp -dependencies.hpp nmethod.hpp - -dictionary.cpp classLoadingService.hpp -dictionary.cpp dictionary.hpp -dictionary.cpp hashtable.inline.hpp -dictionary.cpp jvmtiRedefineClassesTrace.hpp -dictionary.cpp oop.inline.hpp -dictionary.cpp systemDictionary.hpp - -dictionary.hpp hashtable.hpp -dictionary.hpp instanceKlass.hpp -dictionary.hpp oop.hpp -dictionary.hpp systemDictionary.hpp - -disassembler_.hpp generate_platform_dependent_include - -disassembler.cpp cardTableModRefBS.hpp -disassembler.cpp codeCache.hpp -disassembler.cpp collectedHeap.hpp -disassembler.cpp depChecker_.hpp -disassembler.cpp disassembler.hpp -disassembler.cpp fprofiler.hpp -disassembler.cpp handles.inline.hpp -disassembler.cpp hpi.hpp -disassembler.cpp javaClasses.hpp -disassembler.cpp stubCodeGenerator.hpp -disassembler.cpp stubRoutines.hpp - -disassembler.hpp globals.hpp -disassembler.hpp os_.inline.hpp - -dtraceAttacher.cpp codeCache.hpp -dtraceAttacher.cpp deoptimization.hpp -dtraceAttacher.cpp dtraceAttacher.hpp -dtraceAttacher.cpp resourceArea.hpp -dtraceAttacher.cpp vmThread.hpp -dtraceAttacher.cpp vm_operations.hpp - -dtraceJSDT.cpp allocation.hpp -dtraceJSDT.cpp codeBlob.hpp -dtraceJSDT.cpp dtraceJSDT.hpp -dtraceJSDT.cpp exceptions.hpp -dtraceJSDT.cpp globalDefinitions.hpp -dtraceJSDT.cpp javaClasses.hpp -dtraceJSDT.cpp jniHandles.hpp -dtraceJSDT.cpp jvm.h -dtraceJSDT.cpp os.hpp -dtraceJSDT.cpp utf8.hpp - -dtraceJSDT.hpp nativeInst_.hpp -dtraceJSDT.hpp nmethod.hpp - -dtraceJSDT_.cpp allocation.hpp -dtraceJSDT_.cpp codeBlob.hpp -dtraceJSDT_.cpp dtraceJSDT.hpp -dtraceJSDT_.cpp globalDefinitions.hpp -dtraceJSDT_.cpp javaClasses.hpp -dtraceJSDT_.cpp jniHandles.hpp -dtraceJSDT_.cpp jvm.h -dtraceJSDT_.cpp os.hpp -dtraceJSDT_.cpp signature.hpp - -// dump is jck optional, put cpp deps in includeDB_features - -events.cpp allocation.inline.hpp -events.cpp events.hpp -events.cpp mutexLocker.hpp -events.cpp osThread.hpp -events.cpp threadLocalStorage.hpp -events.cpp thread_.inline.hpp -events.cpp timer.hpp - -events.hpp allocation.hpp -events.hpp top.hpp - -evmCompat.cpp debug.hpp - -exceptionHandlerTable.cpp allocation.inline.hpp -exceptionHandlerTable.cpp exceptionHandlerTable.hpp -exceptionHandlerTable.cpp nmethod.hpp - -exceptionHandlerTable.hpp allocation.hpp -exceptionHandlerTable.hpp methodOop.hpp - -exceptions.cpp compileBroker.hpp -exceptions.cpp events.hpp -exceptions.cpp exceptions.hpp -exceptions.cpp init.hpp -exceptions.cpp java.hpp -exceptions.cpp javaCalls.hpp -exceptions.cpp oop.inline.hpp -exceptions.cpp systemDictionary.hpp -exceptions.cpp threadCritical.hpp -exceptions.cpp thread_.inline.hpp -exceptions.cpp vmSymbols.hpp - -exceptions.hpp allocation.hpp -exceptions.hpp oopsHierarchy.hpp -exceptions.hpp sizes.hpp - -fieldDescriptor.cpp fieldDescriptor.hpp -fieldDescriptor.cpp handles.inline.hpp -fieldDescriptor.cpp instanceKlass.hpp -fieldDescriptor.cpp resourceArea.hpp -fieldDescriptor.cpp signature.hpp -fieldDescriptor.cpp systemDictionary.hpp -fieldDescriptor.cpp universe.inline.hpp -fieldDescriptor.cpp vmSymbols.hpp - -fieldDescriptor.hpp accessFlags.hpp -fieldDescriptor.hpp constantPoolOop.hpp -fieldDescriptor.hpp constantTag.hpp -fieldDescriptor.hpp fieldType.hpp -fieldDescriptor.hpp klassOop.hpp -fieldDescriptor.hpp oop.inline.hpp -fieldDescriptor.hpp symbolOop.hpp - -fieldType.cpp fieldType.hpp -fieldType.cpp oop.inline.hpp -fieldType.cpp oopFactory.hpp -fieldType.cpp signature.hpp -fieldType.cpp systemDictionary.hpp -fieldType.cpp typeArrayKlass.hpp - -fieldType.hpp allocation.hpp -fieldType.hpp symbolOop.hpp - -filemap.cpp arguments.hpp -filemap.cpp classLoader.hpp -filemap.cpp defaultStream.hpp -filemap.cpp filemap.hpp -filemap.cpp hpi_.hpp -filemap.cpp java.hpp -filemap.cpp os.hpp -filemap.cpp symbolTable.hpp - -filemap.hpp compactingPermGenGen.hpp -filemap.hpp space.hpp - -// forte is jck optional, put cpp deps in includeDB_features -// fprofiler is jck optional, put cpp deps in includeDB_features - -fprofiler.hpp thread_.inline.hpp -fprofiler.hpp timer.hpp - -frame.cpp collectedHeap.inline.hpp -frame.cpp frame.inline.hpp -frame.cpp handles.inline.hpp -frame.cpp interpreter.hpp -frame.cpp javaCalls.hpp -frame.cpp markOop.hpp -frame.cpp methodDataOop.hpp -frame.cpp methodOop.hpp -frame.cpp monitorChunk.hpp -frame.cpp nativeInst_.hpp -frame.cpp oop.inline.hpp -frame.cpp oop.inline2.hpp -frame.cpp oopMapCache.hpp -frame.cpp resourceArea.hpp -frame.cpp sharedRuntime.hpp -frame.cpp signature.hpp -frame.cpp stubCodeGenerator.hpp -frame.cpp stubRoutines.hpp -frame.cpp universe.inline.hpp - -frame.hpp assembler.hpp -frame.hpp methodOop.hpp -frame.hpp monitorChunk.hpp -frame.hpp registerMap.hpp -frame.hpp synchronizer.hpp -frame.hpp top.hpp - -frame.inline.hpp bytecodeInterpreter.hpp -frame.inline.hpp bytecodeInterpreter.inline.hpp -frame.inline.hpp frame.hpp -frame.inline.hpp interpreter.hpp -frame.inline.hpp jniTypes_.hpp -frame.inline.hpp methodOop.hpp -frame.inline.hpp signature.hpp - -frame_.cpp frame.inline.hpp -frame_.cpp handles.inline.hpp -frame_.cpp interpreter.hpp -frame_.cpp javaCalls.hpp -frame_.cpp markOop.hpp -frame_.cpp methodOop.hpp -frame_.cpp monitorChunk.hpp -frame_.cpp oop.inline.hpp -frame_.cpp resourceArea.hpp -frame_.cpp signature.hpp -frame_.cpp stubCodeGenerator.hpp -frame_.cpp stubRoutines.hpp -frame_.cpp vmreg_.inline.hpp - -frame_.hpp generate_platform_dependent_include -frame_.hpp synchronizer.hpp -frame_.hpp top.hpp - -frame_.inline.hpp generate_platform_dependent_include - -gcLocker.cpp gcLocker.inline.hpp -gcLocker.cpp sharedHeap.hpp -gcLocker.cpp resourceArea.hpp - -gcLocker.hpp collectedHeap.hpp -gcLocker.hpp genCollectedHeap.hpp -gcLocker.hpp oop.hpp -gcLocker.hpp os_.inline.hpp -gcLocker.hpp thread_.inline.hpp -gcLocker.hpp universe.hpp - -gcLocker.inline.hpp gcLocker.hpp - -genCollectedHeap.cpp aprofiler.hpp -genCollectedHeap.cpp biasedLocking.hpp -genCollectedHeap.cpp collectedHeap.inline.hpp -genCollectedHeap.cpp collectorCounters.hpp -genCollectedHeap.cpp compactPermGen.hpp -genCollectedHeap.cpp filemap.hpp -genCollectedHeap.cpp fprofiler.hpp -genCollectedHeap.cpp gcLocker.inline.hpp -genCollectedHeap.cpp genCollectedHeap.hpp -genCollectedHeap.cpp genOopClosures.inline.hpp -genCollectedHeap.cpp generation.inline.hpp -genCollectedHeap.cpp generationSpec.hpp -genCollectedHeap.cpp handles.hpp -genCollectedHeap.cpp handles.inline.hpp -genCollectedHeap.cpp icBuffer.hpp -genCollectedHeap.cpp java.hpp -genCollectedHeap.cpp memoryService.hpp -genCollectedHeap.cpp oop.inline.hpp -genCollectedHeap.cpp oop.inline2.hpp -genCollectedHeap.cpp permGen.hpp -genCollectedHeap.cpp resourceArea.hpp -genCollectedHeap.cpp sharedHeap.hpp -genCollectedHeap.cpp space.hpp -genCollectedHeap.cpp symbolTable.hpp -genCollectedHeap.cpp systemDictionary.hpp -genCollectedHeap.cpp vmError.hpp -genCollectedHeap.cpp vmGCOperations.hpp -genCollectedHeap.cpp vmSymbols.hpp -genCollectedHeap.cpp vmThread.hpp -genCollectedHeap.cpp workgroup.hpp - -genCollectedHeap.hpp adaptiveSizePolicy.hpp -genCollectedHeap.hpp collectorPolicy.hpp -genCollectedHeap.hpp generation.hpp -genCollectedHeap.hpp sharedHeap.hpp - -genMarkSweep.cpp codeCache.hpp -genMarkSweep.cpp collectedHeap.inline.hpp -genMarkSweep.cpp copy.hpp -genMarkSweep.cpp events.hpp -genMarkSweep.cpp fprofiler.hpp -genMarkSweep.cpp genCollectedHeap.hpp -genMarkSweep.cpp genMarkSweep.hpp -genMarkSweep.cpp genOopClosures.inline.hpp -genMarkSweep.cpp generation.inline.hpp -genMarkSweep.cpp handles.inline.hpp -genMarkSweep.cpp icBuffer.hpp -genMarkSweep.cpp instanceRefKlass.hpp -genMarkSweep.cpp javaClasses.hpp -genMarkSweep.cpp jvmtiExport.hpp -genMarkSweep.cpp modRefBarrierSet.hpp -genMarkSweep.cpp oop.inline.hpp -genMarkSweep.cpp referencePolicy.hpp -genMarkSweep.cpp space.hpp -genMarkSweep.cpp symbolTable.hpp -genMarkSweep.cpp synchronizer.hpp -genMarkSweep.cpp systemDictionary.hpp -genMarkSweep.cpp thread_.inline.hpp -genMarkSweep.cpp vmSymbols.hpp -genMarkSweep.cpp vmThread.hpp - -genMarkSweep.hpp markSweep.hpp - -genOopClosures.hpp iterator.hpp -genOopClosures.hpp oop.hpp - -genOopClosures.inline.hpp cardTableRS.hpp -genOopClosures.inline.hpp defNewGeneration.hpp -genOopClosures.inline.hpp genCollectedHeap.hpp -genOopClosures.inline.hpp genOopClosures.hpp -genOopClosures.inline.hpp genRemSet.hpp -genOopClosures.inline.hpp generation.hpp -genOopClosures.inline.hpp sharedHeap.hpp -genOopClosures.inline.hpp space.hpp - -genRemSet.cpp cardTableRS.hpp -genRemSet.cpp genRemSet.hpp - -genRemSet.hpp oop.hpp - -generateOopMap.cpp bitMap.inline.hpp -generateOopMap.cpp bytecodeStream.hpp -generateOopMap.cpp generateOopMap.hpp -generateOopMap.cpp handles.inline.hpp -generateOopMap.cpp java.hpp -generateOopMap.cpp oop.inline.hpp -generateOopMap.cpp relocator.hpp -generateOopMap.cpp symbolOop.hpp - -generateOopMap.hpp allocation.inline.hpp -generateOopMap.hpp bytecodeStream.hpp -generateOopMap.hpp methodOop.hpp -generateOopMap.hpp oopsHierarchy.hpp -generateOopMap.hpp signature.hpp -generateOopMap.hpp universe.inline.hpp - -generation.cpp allocation.inline.hpp -generation.cpp blockOffsetTable.inline.hpp -generation.cpp cardTableRS.hpp -generation.cpp collectedHeap.inline.hpp -generation.cpp copy.hpp -generation.cpp events.hpp -generation.cpp gcLocker.inline.hpp -generation.cpp genCollectedHeap.hpp -generation.cpp genMarkSweep.hpp -generation.cpp genOopClosures.hpp -generation.cpp genOopClosures.inline.hpp -generation.cpp generation.hpp -generation.cpp generation.inline.hpp -generation.cpp java.hpp -generation.cpp oop.inline.hpp -generation.cpp spaceDecorator.hpp -generation.cpp space.inline.hpp - -generation.hpp allocation.hpp -generation.hpp collectorCounters.hpp -generation.hpp memRegion.hpp -generation.hpp mutex.hpp -generation.hpp perfData.hpp -generation.hpp referenceProcessor.hpp -generation.hpp universe.hpp -generation.hpp virtualspace.hpp -generation.hpp watermark.hpp - -generation.inline.hpp genCollectedHeap.hpp -generation.inline.hpp generation.hpp -generation.inline.hpp space.hpp - -genOopClosures.hpp oop.hpp - -generationSpec.cpp compactPermGen.hpp -generationSpec.cpp defNewGeneration.hpp -generationSpec.cpp filemap.hpp -generationSpec.cpp genRemSet.hpp -generationSpec.cpp generationSpec.hpp -generationSpec.cpp java.hpp -generationSpec.cpp tenuredGeneration.hpp - -generationSpec.hpp generation.hpp -generationSpec.hpp permGen.hpp - -globalDefinitions.cpp globalDefinitions.hpp -globalDefinitions.cpp os.hpp -globalDefinitions.cpp top.hpp - -globalDefinitions.hpp globalDefinitions_.hpp -globalDefinitions.hpp macros.hpp - -globalDefinitions_.hpp generate_platform_dependent_include - -globalDefinitions_.hpp jni.h - -globals.cpp allocation.inline.hpp -globals.cpp arguments.hpp -globals.cpp globals.hpp -globals.cpp globals_extension.hpp -globals.cpp oop.inline.hpp -globals.cpp ostream.hpp -globals.cpp top.hpp - -globals.hpp debug.hpp -globals.hpp globals_.hpp -globals.hpp globals_.hpp -globals.hpp globals_.hpp - -globals_extension.hpp globals.hpp -globals_extension.hpp top.hpp - -growableArray.cpp growableArray.hpp -growableArray.cpp resourceArea.hpp -growableArray.cpp thread_.inline.hpp - -growableArray.hpp allocation.hpp -growableArray.hpp allocation.inline.hpp -growableArray.hpp debug.hpp -growableArray.hpp globalDefinitions.hpp -growableArray.hpp top.hpp - -handles.cpp allocation.inline.hpp -handles.cpp handles.inline.hpp -handles.cpp oop.inline.hpp -handles.cpp os_.inline.hpp -handles.cpp thread_.inline.hpp - -handles.hpp klass.hpp -handles.hpp klassOop.hpp -handles.hpp top.hpp - -handles.inline.hpp handles.hpp -handles.inline.hpp thread_.inline.hpp - -hashtable.cpp allocation.inline.hpp -hashtable.cpp dtrace.hpp -hashtable.cpp hashtable.hpp -hashtable.cpp hashtable.inline.hpp -hashtable.cpp oop.inline.hpp -hashtable.cpp resourceArea.hpp -hashtable.cpp safepoint.hpp - -hashtable.hpp allocation.hpp -hashtable.hpp handles.hpp -hashtable.hpp oop.hpp -hashtable.hpp symbolOop.hpp - -hashtable.inline.hpp allocation.inline.hpp -hashtable.inline.hpp hashtable.hpp - -heap.cpp heap.hpp -heap.cpp oop.inline.hpp -heap.cpp os.hpp - -heap.hpp allocation.hpp -heap.hpp virtualspace.hpp - -// heapDumper is jck optional, put cpp deps in includeDB_features - -heapDumper.hpp allocation.hpp -heapDumper.hpp klassOop.hpp -heapDumper.hpp oop.hpp -heapDumper.hpp os.hpp - -// heapInspection is jck optional, put cpp deps in includeDB_features - -heapInspection.hpp allocation.inline.hpp -heapInspection.hpp oop.inline.hpp - -histogram.cpp histogram.hpp -histogram.cpp oop.inline.hpp - -histogram.hpp allocation.hpp -histogram.hpp growableArray.hpp -histogram.hpp os.hpp -histogram.hpp os_.inline.hpp - -hpi.cpp hpi.hpp -hpi.cpp jvm.h - -hpi.hpp globalDefinitions.hpp -hpi.hpp hpi_imported.h -hpi.hpp os.hpp -hpi.hpp top.hpp - -hpi_.cpp hpi.hpp -hpi_.cpp oop.inline.hpp -hpi_.cpp os.hpp - -hpi_imported.h jni.h - -icBuffer.cpp assembler_.inline.hpp -icBuffer.cpp collectedHeap.inline.hpp -icBuffer.cpp compiledIC.hpp -icBuffer.cpp icBuffer.hpp -icBuffer.cpp interpreter.hpp -icBuffer.cpp linkResolver.hpp -icBuffer.cpp methodOop.hpp -icBuffer.cpp mutexLocker.hpp -icBuffer.cpp nmethod.hpp -icBuffer.cpp oop.inline.hpp -icBuffer.cpp oop.inline2.hpp -icBuffer.cpp resourceArea.hpp -icBuffer.cpp scopeDesc.hpp -icBuffer.cpp stubRoutines.hpp -icBuffer.cpp universe.inline.hpp - -icBuffer.hpp allocation.hpp -icBuffer.hpp bytecodes.hpp -icBuffer.hpp stubs.hpp - -icBuffer_.cpp assembler.hpp -icBuffer_.cpp assembler_.inline.hpp -icBuffer_.cpp bytecodes.hpp -icBuffer_.cpp collectedHeap.inline.hpp -icBuffer_.cpp icBuffer.hpp -icBuffer_.cpp nativeInst_.hpp -icBuffer_.cpp oop.inline.hpp -icBuffer_.cpp oop.inline2.hpp -icBuffer_.cpp resourceArea.hpp - -icache.cpp icache.hpp -icache.cpp resourceArea.hpp - -icache.hpp allocation.hpp -icache.hpp stubCodeGenerator.hpp - -icache_.cpp assembler_.inline.hpp -icache_.cpp icache.hpp - -icache_.hpp generate_platform_dependent_include - -init.cpp bytecodes.hpp -init.cpp collectedHeap.hpp -init.cpp handles.inline.hpp -init.cpp icBuffer.hpp -init.cpp icache.hpp -init.cpp init.hpp -init.cpp methodHandles.hpp -init.cpp safepoint.hpp -init.cpp sharedRuntime.hpp -init.cpp universe.hpp - -init.hpp top.hpp - -instanceKlass.cpp collectedHeap.inline.hpp -instanceKlass.cpp compileBroker.hpp -instanceKlass.cpp dtrace.hpp -instanceKlass.cpp fieldDescriptor.hpp -instanceKlass.cpp genOopClosures.inline.hpp -instanceKlass.cpp handles.inline.hpp -instanceKlass.cpp instanceKlass.hpp -instanceKlass.cpp instanceOop.hpp -instanceKlass.cpp javaCalls.hpp -instanceKlass.cpp javaClasses.hpp -instanceKlass.cpp jvmti.h -instanceKlass.cpp jvmtiExport.hpp -instanceKlass.cpp jvmtiRedefineClassesTrace.hpp -instanceKlass.cpp markSweep.inline.hpp -instanceKlass.cpp methodOop.hpp -instanceKlass.cpp mutexLocker.hpp -instanceKlass.cpp objArrayKlassKlass.hpp -instanceKlass.cpp oop.inline.hpp -instanceKlass.cpp oopFactory.hpp -instanceKlass.cpp oopMapCache.hpp -instanceKlass.cpp permGen.hpp -instanceKlass.cpp rewriter.hpp -instanceKlass.cpp symbolOop.hpp -instanceKlass.cpp systemDictionary.hpp -instanceKlass.cpp threadService.hpp -instanceKlass.cpp thread_.inline.hpp -instanceKlass.cpp verifier.hpp -instanceKlass.cpp vmSymbols.hpp - -instanceKlass.hpp accessFlags.hpp -instanceKlass.hpp bitMap.inline.hpp -instanceKlass.hpp constMethodOop.hpp -instanceKlass.hpp constantPoolOop.hpp -instanceKlass.hpp handles.hpp -instanceKlass.hpp instanceOop.hpp -instanceKlass.hpp klassOop.hpp -instanceKlass.hpp klassVtable.hpp -instanceKlass.hpp objArrayOop.hpp -instanceKlass.hpp os.hpp - -instanceKlassKlass.cpp collectedHeap.inline.hpp -instanceKlassKlass.cpp constantPoolOop.hpp -instanceKlassKlass.cpp fieldDescriptor.hpp -instanceKlassKlass.cpp gcLocker.hpp -instanceKlassKlass.cpp instanceKlass.hpp -instanceKlassKlass.cpp instanceKlassKlass.hpp -instanceKlassKlass.cpp instanceRefKlass.hpp -instanceKlassKlass.cpp javaClasses.hpp -instanceKlassKlass.cpp jvmtiExport.hpp -instanceKlassKlass.cpp markSweep.inline.hpp -instanceKlassKlass.cpp objArrayKlassKlass.hpp -instanceKlassKlass.cpp objArrayOop.hpp -instanceKlassKlass.cpp oop.inline.hpp -instanceKlassKlass.cpp oop.inline2.hpp -instanceKlassKlass.cpp oopMapCache.hpp -instanceKlassKlass.cpp symbolOop.hpp -instanceKlassKlass.cpp systemDictionary.hpp -instanceKlassKlass.cpp typeArrayOop.hpp - -instanceKlassKlass.hpp klassKlass.hpp - -instanceOop.cpp instanceOop.hpp - -instanceOop.hpp oop.hpp - -instanceRefKlass.cpp collectedHeap.hpp -instanceRefKlass.cpp collectedHeap.inline.hpp -instanceRefKlass.cpp genCollectedHeap.hpp -instanceRefKlass.cpp genOopClosures.inline.hpp -instanceRefKlass.cpp instanceRefKlass.hpp -instanceRefKlass.cpp javaClasses.hpp -instanceRefKlass.cpp markSweep.inline.hpp -instanceRefKlass.cpp oop.inline.hpp -instanceRefKlass.cpp preserveException.hpp -instanceRefKlass.cpp systemDictionary.hpp - -instanceRefKlass.hpp instanceKlass.hpp - -interfaceSupport.cpp collectedHeap.hpp -interfaceSupport.cpp collectedHeap.inline.hpp -interfaceSupport.cpp genCollectedHeap.hpp -interfaceSupport.cpp init.hpp -interfaceSupport.cpp interfaceSupport.hpp -interfaceSupport.cpp markSweep.hpp -interfaceSupport.cpp preserveException.hpp -interfaceSupport.cpp resourceArea.hpp -interfaceSupport.cpp threadLocalStorage.hpp -interfaceSupport.cpp vframe.hpp - -interfaceSupport.hpp gcLocker.hpp -interfaceSupport.hpp globalDefinitions.hpp -interfaceSupport.hpp handles.inline.hpp -interfaceSupport.hpp mutexLocker.hpp -interfaceSupport.hpp orderAccess.hpp -interfaceSupport.hpp os.hpp -interfaceSupport.hpp preserveException.hpp -interfaceSupport.hpp safepoint.hpp -interfaceSupport.hpp thread_.inline.hpp -interfaceSupport.hpp top.hpp -interfaceSupport.hpp vmThread.hpp - -interfaceSupport_.hpp generate_platform_dependent_include - -interp_masm_.cpp arrayOop.hpp -interp_masm_.cpp biasedLocking.hpp -interp_masm_.cpp interp_masm_.hpp -interp_masm_.cpp interpreterRuntime.hpp -interp_masm_.cpp interpreter.hpp -interp_masm_.cpp jvmtiExport.hpp -interp_masm_.cpp jvmtiRedefineClassesTrace.hpp -interp_masm_.cpp jvmtiThreadState.hpp -interp_masm_.cpp markOop.hpp -interp_masm_.cpp methodDataOop.hpp -interp_masm_.cpp methodOop.hpp -interp_masm_.cpp sharedRuntime.hpp -interp_masm_.cpp synchronizer.hpp -interp_masm_.cpp thread_.inline.hpp - -interp_masm_.hpp assembler_.inline.hpp -interp_masm_.hpp invocationCounter.hpp - -interpreter.cpp allocation.inline.hpp -interpreter.cpp arrayOop.hpp -interpreter.cpp assembler.hpp -interpreter.cpp bytecodeHistogram.hpp -interpreter.cpp bytecodeInterpreter.hpp -interpreter.cpp forte.hpp -interpreter.cpp handles.inline.hpp -interpreter.cpp interpreter.hpp -interpreter.cpp interpreterRuntime.hpp -interpreter.cpp interpreter.hpp -interpreter.cpp jvmtiExport.hpp -interpreter.cpp methodDataOop.hpp -interpreter.cpp methodOop.hpp -interpreter.cpp oop.inline.hpp -interpreter.cpp resourceArea.hpp -interpreter.cpp sharedRuntime.hpp -interpreter.cpp stubRoutines.hpp -interpreter.cpp templateTable.hpp -interpreter.cpp timer.hpp - -interpreter.hpp cppInterpreter.hpp -interpreter.hpp stubs.hpp -interpreter.hpp templateInterpreter.hpp - -interpreterRT_.cpp allocation.inline.hpp -interpreterRT_.cpp handles.inline.hpp -interpreterRT_.cpp icache.hpp -interpreterRT_.cpp interfaceSupport.hpp -interpreterRT_.cpp interpreterRuntime.hpp -interpreterRT_.cpp interpreter.hpp -interpreterRT_.cpp methodOop.hpp -interpreterRT_.cpp oop.inline.hpp -interpreterRT_.cpp signature.hpp -interpreterRT_.cpp universe.inline.hpp - -interpreterRT_.hpp allocation.hpp -interpreterRT_.hpp generate_platform_dependent_include - -interpreterRuntime.cpp biasedLocking.hpp -interpreterRuntime.cpp collectedHeap.hpp -interpreterRuntime.cpp compileBroker.hpp -interpreterRuntime.cpp compilationPolicy.hpp -interpreterRuntime.cpp constantPoolOop.hpp -interpreterRuntime.cpp cpCacheOop.hpp -interpreterRuntime.cpp deoptimization.hpp -interpreterRuntime.cpp events.hpp -interpreterRuntime.cpp fieldDescriptor.hpp -interpreterRuntime.cpp handles.inline.hpp -interpreterRuntime.cpp instanceKlass.hpp -interpreterRuntime.cpp interfaceSupport.hpp -interpreterRuntime.cpp interpreterRuntime.hpp -interpreterRuntime.cpp interpreter.hpp -interpreterRuntime.cpp java.hpp -interpreterRuntime.cpp jfieldIDWorkaround.hpp -interpreterRuntime.cpp jvmtiExport.hpp -interpreterRuntime.cpp linkResolver.hpp -interpreterRuntime.cpp methodDataOop.hpp -interpreterRuntime.cpp nativeLookup.hpp -interpreterRuntime.cpp objArrayKlass.hpp -interpreterRuntime.cpp oop.inline.hpp -interpreterRuntime.cpp oopFactory.hpp -interpreterRuntime.cpp osThread.hpp -interpreterRuntime.cpp sharedRuntime.hpp -interpreterRuntime.cpp stubRoutines.hpp -interpreterRuntime.cpp symbolOop.hpp -interpreterRuntime.cpp synchronizer.hpp -interpreterRuntime.cpp systemDictionary.hpp -interpreterRuntime.cpp templateTable.hpp -interpreterRuntime.cpp threadCritical.hpp -interpreterRuntime.cpp universe.inline.hpp -interpreterRuntime.cpp vmSymbols.hpp -interpreterRuntime.cpp vm_version_.hpp - -interpreterRuntime.hpp bytecode.hpp -interpreterRuntime.hpp frame.inline.hpp -interpreterRuntime.hpp linkResolver.hpp -interpreterRuntime.hpp methodOop.hpp -interpreterRuntime.hpp signature.hpp -interpreterRuntime.hpp thread_.inline.hpp -interpreterRuntime.hpp top.hpp -interpreterRuntime.hpp universe.hpp - -interpreter_.cpp arguments.hpp -interpreter_.cpp arrayOop.hpp -interpreter_.cpp assembler.hpp -interpreter_.cpp bytecodeHistogram.hpp -interpreter_.cpp debug.hpp -interpreter_.cpp deoptimization.hpp -interpreter_.cpp frame.inline.hpp -interpreter_.cpp interpreterRuntime.hpp -interpreter_.cpp interpreter.hpp -interpreter_.cpp interpreterGenerator.hpp -interpreter_.cpp jvmtiExport.hpp -interpreter_.cpp jvmtiThreadState.hpp -interpreter_.cpp methodDataOop.hpp -interpreter_.cpp methodHandles.hpp -interpreter_.cpp methodOop.hpp -interpreter_.cpp oop.inline.hpp -interpreter_.cpp sharedRuntime.hpp -interpreter_.cpp stubRoutines.hpp -interpreter_.cpp synchronizer.hpp -interpreter_.cpp templateTable.hpp -interpreter_.cpp timer.hpp -interpreter_.cpp vframeArray.hpp - -interpreter_.hpp generate_platform_dependent_include - -interpreterGenerator.hpp cppInterpreter.hpp -interpreterGenerator.hpp cppInterpreterGenerator.hpp -interpreterGenerator.hpp templateInterpreter.hpp -interpreterGenerator.hpp templateInterpreterGenerator.hpp - -interpreterGenerator_.hpp generate_platform_dependent_include - -invocationCounter.cpp frame.hpp -invocationCounter.cpp handles.inline.hpp -invocationCounter.cpp invocationCounter.hpp - -invocationCounter.hpp allocation.hpp -invocationCounter.hpp exceptions.hpp -invocationCounter.hpp handles.hpp - -intHisto.cpp intHisto.hpp - -intHisto.hpp allocation.hpp -intHisto.hpp growableArray.hpp - -iterator.cpp iterator.hpp -iterator.cpp oop.inline.hpp - -iterator.hpp allocation.hpp -iterator.hpp memRegion.hpp -iterator.hpp prefetch.hpp -iterator.hpp top.hpp - -java.cpp aprofiler.hpp -java.cpp arguments.hpp -java.cpp biasedLocking.hpp -java.cpp bytecodeHistogram.hpp -java.cpp classLoader.hpp -java.cpp codeCache.hpp -java.cpp compilationPolicy.hpp -java.cpp compileBroker.hpp -java.cpp compilerOracle.hpp -java.cpp constantPoolOop.hpp -java.cpp dtrace.hpp -java.cpp fprofiler.hpp -java.cpp genCollectedHeap.hpp -java.cpp generateOopMap.hpp -java.cpp globalDefinitions.hpp -java.cpp histogram.hpp -java.cpp init.hpp -java.cpp instanceKlass.hpp -java.cpp instanceKlassKlass.hpp -java.cpp instanceOop.hpp -java.cpp interfaceSupport.hpp -java.cpp java.hpp -java.cpp jvmtiExport.hpp -java.cpp memprofiler.hpp -java.cpp methodOop.hpp -java.cpp objArrayOop.hpp -java.cpp oop.inline.hpp -java.cpp oopFactory.hpp -java.cpp sharedRuntime.hpp -java.cpp statSampler.hpp -java.cpp symbolOop.hpp -java.cpp symbolTable.hpp -java.cpp systemDictionary.hpp -java.cpp task.hpp -java.cpp thread_.inline.hpp -java.cpp timer.hpp -java.cpp universe.hpp -java.cpp vmError.hpp -java.cpp vm_operations.hpp -java.cpp vm_version_.hpp - -java.hpp os.hpp - -javaAssertions.cpp allocation.inline.hpp -javaAssertions.cpp handles.inline.hpp -javaAssertions.cpp javaAssertions.hpp -javaAssertions.cpp javaClasses.hpp -javaAssertions.cpp oop.inline.hpp -javaAssertions.cpp oopFactory.hpp -javaAssertions.cpp systemDictionary.hpp -javaAssertions.cpp vmSymbols.hpp - -javaAssertions.hpp exceptions.hpp -javaAssertions.hpp objArrayOop.hpp -javaAssertions.hpp ostream.hpp -javaAssertions.hpp typeArrayOop.hpp - -javaCalls.cpp compilationPolicy.hpp -javaCalls.cpp compileBroker.hpp -javaCalls.cpp handles.inline.hpp -javaCalls.cpp interfaceSupport.hpp -javaCalls.cpp interpreter.hpp -javaCalls.cpp javaCalls.hpp -javaCalls.cpp jniCheck.hpp -javaCalls.cpp linkResolver.hpp -javaCalls.cpp mutexLocker.hpp -javaCalls.cpp nmethod.hpp -javaCalls.cpp oop.inline.hpp -javaCalls.cpp signature.hpp -javaCalls.cpp stubRoutines.hpp -javaCalls.cpp systemDictionary.hpp -javaCalls.cpp thread_.inline.hpp -javaCalls.cpp universe.inline.hpp -javaCalls.cpp vmSymbols.hpp -javaCalls.hpp allocation.hpp - -javaCalls.hpp handles.hpp -javaCalls.hpp javaFrameAnchor.hpp -javaCalls.hpp jniTypes_.hpp -javaCalls.hpp methodOop.hpp -javaCalls.hpp thread_.inline.hpp -javaCalls.hpp vmThread.hpp - -javaClasses.cpp debugInfo.hpp -javaClasses.cpp fieldDescriptor.hpp -javaClasses.cpp handles.inline.hpp -javaClasses.cpp instanceKlass.hpp -javaClasses.cpp interfaceSupport.hpp -javaClasses.cpp interpreter.hpp -javaClasses.cpp java.hpp -javaClasses.cpp javaCalls.hpp -javaClasses.cpp javaClasses.hpp -javaClasses.cpp klass.hpp -javaClasses.cpp klassOop.hpp -javaClasses.cpp methodOop.hpp -javaClasses.cpp oopFactory.hpp -javaClasses.cpp pcDesc.hpp -javaClasses.cpp preserveException.hpp -javaClasses.cpp resourceArea.hpp -javaClasses.cpp safepoint.hpp -javaClasses.cpp symbolOop.hpp -javaClasses.cpp symbolTable.hpp -javaClasses.cpp thread_.inline.hpp -javaClasses.cpp typeArrayOop.hpp -javaClasses.cpp universe.inline.hpp -javaClasses.cpp vframe.hpp -javaClasses.cpp vmSymbols.hpp - -javaClasses.hpp jvmti.h -javaClasses.hpp oop.hpp -javaClasses.hpp os.hpp -javaClasses.hpp systemDictionary.hpp -javaClasses.hpp utf8.hpp - -javaFrameAnchor.hpp globalDefinitions.hpp -javaFrameAnchor.hpp orderAccess_.inline.hpp - -javaFrameAnchor_.hpp generate_platform_dependent_include - -jni.cpp allocation.inline.hpp -jni.cpp classLoader.hpp -jni.cpp compilationPolicy.hpp -jni.cpp defaultStream.hpp -jni.cpp dtrace.hpp -jni.cpp events.hpp -jni.cpp fieldDescriptor.hpp -jni.cpp fprofiler.hpp -jni.cpp gcLocker.inline.hpp -jni.cpp handles.inline.hpp -jni.cpp histogram.hpp -jni.cpp instanceKlass.hpp -jni.cpp instanceOop.hpp -jni.cpp interfaceSupport.hpp -jni.cpp java.hpp -jni.cpp javaCalls.hpp -jni.cpp javaClasses.hpp -jni.cpp jfieldIDWorkaround.hpp -jni.cpp jni.h -jni.cpp jniCheck.hpp -jni.cpp jniFastGetField.hpp -jni.cpp jniTypes_.hpp -jni.cpp jvm.h -jni.cpp jvm_misc.hpp -jni.cpp jvmtiExport.hpp -jni.cpp jvmtiThreadState.hpp -jni.cpp linkResolver.hpp -jni.cpp markOop.hpp -jni.cpp methodOop.hpp -jni.cpp objArrayKlass.hpp -jni.cpp objArrayOop.hpp -jni.cpp oop.inline.hpp -jni.cpp oopFactory.hpp -jni.cpp os_.inline.hpp -jni.cpp reflection.hpp -jni.cpp runtimeService.hpp -jni.cpp sharedRuntime.hpp -jni.cpp signature.hpp -jni.cpp symbolOop.hpp -jni.cpp symbolTable.hpp -jni.cpp systemDictionary.hpp -jni.cpp thread_.inline.hpp -jni.cpp typeArrayKlass.hpp -jni.cpp typeArrayOop.hpp -jni.cpp universe.inline.hpp -jni.cpp vmSymbols.hpp -jni.cpp vm_operations.hpp - -// jniCheck is jck optional, put cpp deps in includeDB_features - -jniFastGetField.cpp jniFastGetField.hpp - -jniFastGetField.hpp allocation.hpp -jniFastGetField.hpp jvm_misc.hpp - -jniFastGetField_.cpp assembler_.inline.hpp -jniFastGetField_.cpp jniFastGetField.hpp -jniFastGetField_.cpp jvm_misc.hpp -jniFastGetField_.cpp resourceArea.hpp -jniFastGetField_.cpp safepoint.hpp - -jniHandles.cpp jniHandles.hpp -jniHandles.cpp mutexLocker.hpp -jniHandles.cpp oop.inline.hpp -jniHandles.cpp systemDictionary.hpp -jniHandles.cpp thread_.inline.hpp - -jniHandles.hpp handles.hpp -jniHandles.hpp top.hpp - -jniPeriodicChecker.cpp allocation.inline.hpp -jniPeriodicChecker.cpp jniPeriodicChecker.hpp -jniPeriodicChecker.cpp task.hpp - -jniTypes_.hpp allocation.hpp -jniTypes_.hpp jni.h -jniTypes_.hpp oop.hpp - -jni_.h generate_platform_dependent_include - -jvm.cpp arguments.hpp -jvm.cpp attachListener.hpp -jvm.cpp classLoader.hpp -jvm.cpp collectedHeap.inline.hpp -jvm.cpp copy.hpp -jvm.cpp defaultStream.hpp -jvm.cpp dtrace.hpp -jvm.cpp dtraceJSDT.hpp -jvm.cpp events.hpp -jvm.cpp handles.inline.hpp -jvm.cpp histogram.hpp -jvm.cpp hpi.hpp -jvm.cpp hpi_.hpp -jvm.cpp init.hpp -jvm.cpp instanceKlass.hpp -jvm.cpp interfaceSupport.hpp -jvm.cpp java.hpp -jvm.cpp javaAssertions.hpp -jvm.cpp javaCalls.hpp -jvm.cpp javaClasses.hpp -jvm.cpp jfieldIDWorkaround.hpp -jvm.cpp jvm.h -jvm.cpp jvm_.h -jvm.cpp jvm_misc.hpp -jvm.cpp jvmtiExport.hpp -jvm.cpp jvmtiThreadState.hpp -jvm.cpp management.hpp -jvm.cpp nativeLookup.hpp -jvm.cpp objArrayKlass.hpp -jvm.cpp oopFactory.hpp -jvm.cpp os.hpp -jvm.cpp perfData.hpp -jvm.cpp privilegedStack.hpp -jvm.cpp reflection.hpp -jvm.cpp symbolTable.hpp -jvm.cpp systemDictionary.hpp -jvm.cpp threadService.hpp -jvm.cpp top.hpp -jvm.cpp universe.inline.hpp -jvm.cpp utf8.hpp -jvm.cpp vframe.hpp -jvm.cpp vmSymbols.hpp -jvm.cpp vm_operations.hpp - -jvm.h globalDefinitions.hpp -jvm.h jni.h -jvm.h jvm_.h -jvm.h reflectionCompat.hpp - -jvm_.cpp interfaceSupport.hpp -jvm_.cpp jvm.h -jvm_.cpp osThread.hpp - -jvm_misc.hpp handles.hpp -jvm_misc.hpp jni.h - -jvmtiExport.hpp allocation.hpp -jvmtiExport.hpp globalDefinitions.hpp -jvmtiExport.hpp growableArray.hpp -jvmtiExport.hpp handles.hpp -jvmtiExport.hpp iterator.hpp -jvmtiExport.hpp jvmti.h -jvmtiExport.hpp jvmticmlr.h -jvmtiExport.hpp oop.hpp -jvmtiExport.hpp oopsHierarchy.hpp - -jvmtiThreadState.hpp allocation.hpp -jvmtiThreadState.hpp allocation.inline.hpp -jvmtiThreadState.hpp growableArray.hpp -jvmtiThreadState.hpp jvmti.h -jvmtiThreadState.hpp jvmtiEventController.hpp -jvmtiThreadState.hpp thread.hpp - -klass.cpp atomic.hpp -klass.cpp collectedHeap.inline.hpp -klass.cpp instanceKlass.hpp -klass.cpp klass.inline.hpp -klass.cpp klassOop.hpp -klass.cpp oop.inline.hpp -klass.cpp oop.inline2.hpp -klass.cpp oopFactory.hpp -klass.cpp resourceArea.hpp -klass.cpp systemDictionary.hpp -klass.cpp vmSymbols.hpp - -klass.hpp accessFlags.hpp -klass.hpp genOopClosures.hpp -klass.hpp iterator.hpp -klass.hpp klassOop.hpp -klass.hpp klassPS.hpp -klass.hpp memRegion.hpp -klass.hpp oop.hpp -klass.hpp specialized_oop_closures.hpp - -klass.inline.hpp klass.hpp -klass.inline.hpp markOop.hpp - -klassKlass.cpp collectedHeap.hpp -klassKlass.cpp collectedHeap.inline.hpp -klassKlass.cpp constantPoolKlass.hpp -klassKlass.cpp handles.inline.hpp -klassKlass.cpp instanceKlass.hpp -klassKlass.cpp instanceOop.hpp -klassKlass.cpp klassKlass.hpp -klassKlass.cpp klassOop.hpp -klassKlass.cpp markSweep.inline.hpp -klassKlass.cpp methodKlass.hpp -klassKlass.cpp objArrayKlass.hpp -klassKlass.cpp oop.inline.hpp -klassKlass.cpp oop.inline2.hpp -klassKlass.cpp oopFactory.hpp -klassKlass.cpp permGen.hpp -klassKlass.cpp symbolKlass.hpp -klassKlass.cpp symbolOop.hpp -klassKlass.cpp typeArrayKlass.hpp - -klassKlass.hpp klass.hpp -klassKlass.hpp klassOop.hpp -klassKlass.hpp oopFactory.hpp - -klassOop.cpp klassOop.hpp - -klassOop.hpp oop.hpp - -klassVtable.cpp arguments.hpp -klassVtable.cpp copy.hpp -klassVtable.cpp gcLocker.hpp -klassVtable.cpp handles.inline.hpp -klassVtable.cpp instanceKlass.hpp -klassVtable.cpp jvmtiRedefineClassesTrace.hpp -klassVtable.cpp klassOop.hpp -klassVtable.cpp klassVtable.hpp -klassVtable.cpp markSweep.inline.hpp -klassVtable.cpp methodOop.hpp -klassVtable.cpp objArrayOop.hpp -klassVtable.cpp oop.inline.hpp -klassVtable.cpp resourceArea.hpp -klassVtable.cpp systemDictionary.hpp -klassVtable.cpp universe.inline.hpp -klassVtable.cpp vmSymbols.hpp - -klassVtable.hpp allocation.hpp -klassVtable.hpp growableArray.hpp -klassVtable.hpp handles.hpp -klassVtable.hpp oopsHierarchy.hpp - -linkResolver.cpp bytecode.hpp -linkResolver.cpp collectedHeap.inline.hpp -linkResolver.cpp compilationPolicy.hpp -linkResolver.cpp compileBroker.hpp -linkResolver.cpp fieldDescriptor.hpp -linkResolver.cpp frame.inline.hpp -linkResolver.cpp handles.inline.hpp -linkResolver.cpp instanceKlass.hpp -linkResolver.cpp interpreterRuntime.hpp -linkResolver.cpp linkResolver.hpp -linkResolver.cpp methodHandles.hpp -linkResolver.cpp nativeLookup.hpp -linkResolver.cpp objArrayOop.hpp -linkResolver.cpp reflection.hpp -linkResolver.cpp resourceArea.hpp -linkResolver.cpp signature.hpp -linkResolver.cpp systemDictionary.hpp -linkResolver.cpp thread_.inline.hpp -linkResolver.cpp universe.inline.hpp -linkResolver.cpp vmSymbols.hpp -linkResolver.cpp vmThread.hpp - -linkResolver.hpp methodOop.hpp -linkResolver.hpp top.hpp - -liveRange.hpp copy.hpp - -loaderConstraints.cpp handles.inline.hpp -loaderConstraints.cpp hashtable.inline.hpp -loaderConstraints.cpp loaderConstraints.hpp -loaderConstraints.cpp oop.inline.hpp -loaderConstraints.cpp resourceArea.hpp -loaderConstraints.cpp safepoint.hpp - -loaderConstraints.hpp dictionary.hpp -loaderConstraints.hpp placeholders.hpp -loaderConstraints.hpp hashtable.hpp - -location.cpp debugInfo.hpp -location.cpp location.hpp - -location.hpp allocation.hpp -location.hpp assembler.hpp -location.hpp vmreg.hpp - -lowMemoryDetector.cpp interfaceSupport.hpp -lowMemoryDetector.cpp java.hpp -lowMemoryDetector.cpp javaCalls.hpp -lowMemoryDetector.cpp lowMemoryDetector.hpp -lowMemoryDetector.cpp management.hpp -lowMemoryDetector.cpp mutex.hpp -lowMemoryDetector.cpp mutexLocker.hpp -lowMemoryDetector.cpp oop.inline.hpp -lowMemoryDetector.cpp systemDictionary.hpp -lowMemoryDetector.cpp vmSymbols.hpp - -lowMemoryDetector.hpp allocation.hpp -lowMemoryDetector.hpp memoryPool.hpp -lowMemoryDetector.hpp memoryService.hpp - -management.cpp arguments.hpp -management.cpp classLoadingService.hpp -management.cpp compileBroker.hpp -management.cpp handles.inline.hpp -management.cpp heapDumper.hpp -management.cpp interfaceSupport.hpp -management.cpp iterator.hpp -management.cpp javaCalls.hpp -management.cpp jniHandles.hpp -management.cpp klass.hpp -management.cpp klassOop.hpp -management.cpp lowMemoryDetector.hpp -management.cpp management.hpp -management.cpp memoryManager.hpp -management.cpp memoryPool.hpp -management.cpp memoryService.hpp -management.cpp objArrayKlass.hpp -management.cpp oop.inline.hpp -management.cpp oopFactory.hpp -management.cpp os.hpp -management.cpp resourceArea.hpp -management.cpp runtimeService.hpp -management.cpp systemDictionary.hpp -management.cpp threadService.hpp - -management.hpp allocation.hpp -management.hpp handles.hpp -management.hpp jmm.h -management.hpp timer.hpp - -markOop.cpp markOop.hpp -markOop.cpp thread_.inline.hpp - -markOop.hpp oop.hpp - -markOop.inline.hpp globals.hpp -markOop.inline.hpp klass.hpp -markOop.inline.hpp klassOop.hpp -markOop.inline.hpp markOop.hpp - -markSweep.cpp compileBroker.hpp -markSweep.cpp methodDataOop.hpp -markSweep.cpp objArrayKlass.inline.hpp - -markSweep.hpp collectedHeap.hpp -markSweep.hpp taskqueue.hpp - -memRegion.cpp globals.hpp -memRegion.cpp memRegion.hpp - -memRegion.hpp allocation.hpp -memRegion.hpp debug.hpp -memRegion.hpp globalDefinitions.hpp - -memoryManager.cpp systemDictionary.hpp -memoryManager.cpp vmSymbols.hpp -memoryManager.cpp dtrace.hpp -memoryManager.cpp handles.inline.hpp -memoryManager.cpp javaCalls.hpp -memoryManager.cpp lowMemoryDetector.hpp -memoryManager.cpp management.hpp -memoryManager.cpp memoryManager.hpp -memoryManager.cpp memoryPool.hpp -memoryManager.cpp memoryService.hpp -memoryManager.cpp oop.inline.hpp - -memoryManager.hpp allocation.hpp -memoryManager.hpp memoryUsage.hpp -memoryManager.hpp timer.hpp - -memoryPool.cpp systemDictionary.hpp -memoryPool.cpp vmSymbols.hpp -memoryPool.cpp handles.inline.hpp -memoryPool.cpp javaCalls.hpp -memoryPool.cpp lowMemoryDetector.hpp -memoryPool.cpp management.hpp -memoryPool.cpp memoryManager.hpp -memoryPool.cpp memoryPool.hpp -memoryPool.cpp oop.inline.hpp - -memoryPool.hpp defNewGeneration.hpp -memoryPool.hpp heap.hpp -memoryPool.hpp memoryUsage.hpp -memoryPool.hpp mutableSpace.hpp -memoryPool.hpp space.hpp - -memoryService.cpp classLoadingService.hpp -memoryService.cpp collectorPolicy.hpp -memoryService.cpp defNewGeneration.hpp -memoryService.cpp genCollectedHeap.hpp -memoryService.cpp generation.hpp -memoryService.cpp generationSpec.hpp -memoryService.cpp growableArray.hpp -memoryService.cpp heap.hpp -memoryService.cpp javaCalls.hpp -memoryService.cpp lowMemoryDetector.hpp -memoryService.cpp management.hpp -memoryService.cpp memRegion.hpp -memoryService.cpp memoryManager.hpp -memoryService.cpp memoryPool.hpp -memoryService.cpp memoryService.hpp -memoryService.cpp mutableSpace.hpp -memoryService.cpp oop.inline.hpp -memoryService.cpp permGen.hpp -memoryService.cpp systemDictionary.hpp -memoryService.cpp tenuredGeneration.hpp -memoryService.cpp vmSymbols.hpp - -memoryService.hpp allocation.hpp -memoryService.hpp generation.hpp -memoryService.hpp handles.hpp -memoryService.hpp memoryUsage.hpp - -memoryUsage.hpp globalDefinitions.hpp - -memprofiler.cpp codeCache.hpp -memprofiler.cpp collectedHeap.inline.hpp -memprofiler.cpp generation.hpp -memprofiler.cpp handles.inline.hpp -memprofiler.cpp jniHandles.hpp -memprofiler.cpp memprofiler.hpp -memprofiler.cpp mutexLocker.hpp -memprofiler.cpp oopMapCache.hpp -memprofiler.cpp os.hpp -memprofiler.cpp permGen.hpp -memprofiler.cpp resourceArea.hpp -memprofiler.cpp systemDictionary.hpp -memprofiler.cpp task.hpp -memprofiler.cpp thread_.inline.hpp -memprofiler.cpp vmThread.hpp - -methodComparator.cpp globalDefinitions.hpp -methodComparator.cpp handles.inline.hpp -methodComparator.cpp jvmtiRedefineClassesTrace.hpp -methodComparator.cpp methodComparator.hpp -methodComparator.cpp oop.inline.hpp -methodComparator.cpp symbolOop.hpp - -methodComparator.hpp bytecodeStream.hpp -methodComparator.hpp constantPoolOop.hpp -methodComparator.hpp methodOop.hpp - -methodDataKlass.cpp collectedHeap.inline.hpp -methodDataKlass.cpp gcLocker.hpp -methodDataKlass.cpp handles.inline.hpp -methodDataKlass.cpp klassOop.hpp -methodDataKlass.cpp markSweep.inline.hpp -methodDataKlass.cpp methodDataKlass.hpp -methodDataKlass.cpp methodDataOop.hpp -methodDataKlass.cpp oop.inline.hpp -methodDataKlass.cpp oop.inline2.hpp -methodDataKlass.cpp resourceArea.hpp -methodDataKlass.cpp universe.inline.hpp - -methodDataKlass.hpp klass.hpp - -methodDataOop.cpp bytecode.hpp -methodDataOop.cpp bytecodeStream.hpp -methodDataOop.cpp compilationPolicy.hpp -methodDataOop.cpp deoptimization.hpp -methodDataOop.cpp handles.inline.hpp -methodDataOop.cpp linkResolver.hpp -methodDataOop.cpp markSweep.inline.hpp -methodDataOop.cpp methodDataOop.hpp -methodDataOop.cpp oop.inline.hpp -methodDataOop.cpp systemDictionary.hpp - -methodDataOop.hpp bytecodes.hpp -methodDataOop.hpp oop.hpp -methodDataOop.hpp orderAccess.hpp -methodDataOop.hpp universe.hpp -methodDataOop.hpp methodOop.hpp - -methodHandleWalk.hpp methodHandles.hpp - -methodHandleWalk.cpp methodHandleWalk.hpp -methodHandleWalk.cpp oopFactory.hpp -methodHandleWalk.cpp rewriter.hpp - -methodHandles.hpp frame.inline.hpp -methodHandles.hpp globals.hpp -methodHandles.hpp interfaceSupport.hpp -methodHandles.hpp javaClasses.hpp -methodHandles.hpp no_precompiled_headers -methodHandles.hpp vmSymbols.hpp - -methodHandles.cpp allocation.inline.hpp -methodHandles.cpp interpreter.hpp -methodHandles.cpp javaCalls.hpp -methodHandles.cpp methodHandles.hpp -methodHandles.cpp oopFactory.hpp -methodHandles.cpp reflection.hpp -methodHandles.cpp signature.hpp -methodHandles.cpp stubRoutines.hpp -methodHandles.cpp symbolTable.hpp - -methodHandles_.cpp allocation.inline.hpp -methodHandles_.cpp interpreter.hpp -methodHandles_.cpp methodHandles.hpp - -methodKlass.cpp collectedHeap.inline.hpp -methodKlass.cpp constMethodKlass.hpp -methodKlass.cpp gcLocker.hpp -methodKlass.cpp handles.inline.hpp -methodKlass.cpp interpreter.hpp -methodKlass.cpp javaClasses.hpp -methodKlass.cpp klassOop.hpp -methodKlass.cpp markSweep.inline.hpp -methodKlass.cpp methodDataOop.hpp -methodKlass.cpp methodKlass.hpp -methodKlass.cpp oop.inline.hpp -methodKlass.cpp oop.inline2.hpp -methodKlass.cpp resourceArea.hpp -methodKlass.cpp symbolOop.hpp -methodKlass.cpp universe.inline.hpp - -methodKlass.hpp klass.hpp -methodKlass.hpp klassOop.hpp -methodKlass.hpp methodOop.hpp - -methodLiveness.cpp allocation.inline.hpp -methodLiveness.cpp bitMap.inline.hpp -methodLiveness.cpp bytecode.hpp -methodLiveness.cpp bytecodes.hpp -methodLiveness.cpp ciMethod.hpp -methodLiveness.cpp ciMethodBlocks.hpp -methodLiveness.cpp ciStreams.hpp -methodLiveness.cpp methodLiveness.hpp - -methodLiveness.hpp bitMap.hpp -methodLiveness.hpp growableArray.hpp - -methodOop.cpp arguments.hpp -methodOop.cpp bytecodeStream.hpp -methodOop.cpp bytecodeTracer.hpp -methodOop.cpp bytecodes.hpp -methodOop.cpp collectedHeap.inline.hpp -methodOop.cpp compilationPolicy.hpp -methodOop.cpp debugInfoRec.hpp -methodOop.cpp frame.inline.hpp -methodOop.cpp gcLocker.hpp -methodOop.cpp gcTaskThread.hpp -methodOop.cpp generation.hpp -methodOop.cpp handles.inline.hpp -methodOop.cpp interpreter.hpp -methodOop.cpp jvmtiExport.hpp -methodOop.cpp klassOop.hpp -methodOop.cpp methodDataOop.hpp -methodOop.cpp methodHandleWalk.hpp -methodOop.cpp methodOop.hpp -methodOop.cpp nativeLookup.hpp -methodOop.cpp oop.inline.hpp -methodOop.cpp oopFactory.hpp -methodOop.cpp oopMapCache.hpp -methodOop.cpp relocator.hpp -methodOop.cpp sharedRuntime.hpp -methodOop.cpp signature.hpp -methodOop.cpp symbolOop.hpp -methodOop.cpp systemDictionary.hpp -methodOop.cpp xmlstream.hpp - -methodOop.hpp accessFlags.hpp -methodOop.hpp compressedStream.hpp -methodOop.hpp constMethodOop.hpp -methodOop.hpp constantPoolOop.hpp -methodOop.hpp growableArray.hpp -methodOop.hpp instanceKlass.hpp -methodOop.hpp invocationCounter.hpp -methodOop.hpp oop.hpp -methodOop.hpp oopMap.hpp -methodOop.hpp typeArrayOop.hpp -methodOop.hpp vmSymbols.hpp - -modRefBarrierSet.hpp barrierSet.hpp - -monitorChunk.cpp allocation.inline.hpp -monitorChunk.cpp monitorChunk.hpp -monitorChunk.cpp oop.inline.hpp - -monitorChunk.hpp synchronizer.hpp - -mutex.cpp events.hpp -mutex.cpp mutex.hpp -mutex.cpp mutex_.inline.hpp -mutex.cpp osThread.hpp -mutex.cpp thread_.inline.hpp - -mutex.hpp allocation.hpp -mutex.hpp histogram.hpp -mutex.hpp os.hpp - -mutexLocker.cpp mutexLocker.hpp -mutexLocker.cpp safepoint.hpp -mutexLocker.cpp threadLocalStorage.hpp -mutexLocker.cpp thread_.inline.hpp -mutexLocker.cpp vmThread.hpp - -mutexLocker.hpp allocation.hpp -mutexLocker.hpp mutex.hpp -mutexLocker.hpp os_.inline.hpp - -mutex_.cpp events.hpp -mutex_.cpp interfaceSupport.hpp -mutex_.cpp mutex.hpp -mutex_.cpp mutex_.inline.hpp -mutex_.cpp thread_.inline.hpp - -mutex_.inline.hpp interfaceSupport.hpp -mutex_.inline.hpp os_.inline.hpp -mutex_.inline.hpp thread_.inline.hpp - -nativeInst_.cpp assembler_.inline.hpp -nativeInst_.cpp handles.hpp -nativeInst_.cpp nativeInst_.hpp -nativeInst_.cpp oop.inline.hpp -nativeInst_.cpp ostream.hpp -nativeInst_.cpp resourceArea.hpp -nativeInst_.cpp sharedRuntime.hpp -nativeInst_.cpp stubRoutines.hpp - -nativeInst_.hpp allocation.hpp -nativeInst_.hpp assembler.hpp -nativeInst_.hpp icache.hpp -nativeInst_.hpp os.hpp -nativeInst_.hpp top.hpp - -nativeLookup.cpp arguments.hpp -nativeLookup.cpp handles.inline.hpp -nativeLookup.cpp hpi.hpp -nativeLookup.cpp instanceKlass.hpp -nativeLookup.cpp javaCalls.hpp -nativeLookup.cpp javaClasses.hpp -nativeLookup.cpp jvm_misc.hpp -nativeLookup.cpp methodOop.hpp -nativeLookup.cpp nativeLookup.hpp -nativeLookup.cpp oop.inline.hpp -nativeLookup.cpp oopFactory.hpp -nativeLookup.cpp os_.inline.hpp -nativeLookup.cpp resourceArea.hpp -nativeLookup.cpp sharedRuntime.hpp -nativeLookup.cpp signature.hpp -nativeLookup.cpp symbolOop.hpp -nativeLookup.cpp systemDictionary.hpp -nativeLookup.cpp universe.inline.hpp -nativeLookup.cpp vmSymbols.hpp - -nativeLookup.hpp handles.hpp -nativeLookup.hpp top.hpp - -nmethod.cpp abstractCompiler.hpp -nmethod.cpp bytecode.hpp -nmethod.cpp codeCache.hpp -nmethod.cpp compileLog.hpp -nmethod.cpp compiledIC.hpp -nmethod.cpp compilerOracle.hpp -nmethod.cpp disassembler.hpp -nmethod.cpp dtrace.hpp -nmethod.cpp events.hpp -nmethod.cpp jvmtiRedefineClassesTrace.hpp -nmethod.cpp methodDataOop.hpp -nmethod.cpp nmethod.hpp -nmethod.cpp scopeDesc.hpp -nmethod.cpp sharedRuntime.hpp -nmethod.cpp sweeper.hpp -nmethod.cpp xmlstream.hpp - -nmethod.hpp codeBlob.hpp -nmethod.hpp pcDesc.hpp - -numberSeq.cpp debug.hpp -numberSeq.cpp numberSeq.hpp -numberSeq.cpp globalDefinitions.hpp -numberSeq.cpp allocation.inline.hpp - -objArrayKlass.cpp collectedHeap.inline.hpp -objArrayKlass.cpp copy.hpp -objArrayKlass.cpp genOopClosures.inline.hpp -objArrayKlass.cpp handles.inline.hpp -objArrayKlass.cpp instanceKlass.hpp -objArrayKlass.cpp markSweep.inline.hpp -objArrayKlass.cpp mutexLocker.hpp -objArrayKlass.cpp objArrayKlass.hpp -objArrayKlass.cpp objArrayKlass.inline.hpp -objArrayKlass.cpp objArrayKlassKlass.hpp -objArrayKlass.cpp objArrayOop.hpp -objArrayKlass.cpp oop.inline.hpp -objArrayKlass.cpp oop.inline2.hpp -objArrayKlass.cpp resourceArea.hpp -objArrayKlass.cpp symbolOop.hpp -objArrayKlass.cpp systemDictionary.hpp -objArrayKlass.cpp universe.inline.hpp -objArrayKlass.cpp vmSymbols.hpp - -objArrayKlass.hpp arrayKlass.hpp -objArrayKlass.hpp instanceKlass.hpp -objArrayKlass.hpp specialized_oop_closures.hpp - -objArrayKlass.inline.hpp objArrayKlass.hpp - -objArrayKlassKlass.cpp collectedHeap.inline.hpp -objArrayKlassKlass.cpp instanceKlass.hpp -objArrayKlassKlass.cpp javaClasses.hpp -objArrayKlassKlass.cpp markSweep.inline.hpp -objArrayKlassKlass.cpp objArrayKlassKlass.hpp -objArrayKlassKlass.cpp oop.inline.hpp -objArrayKlassKlass.cpp oop.inline2.hpp -objArrayKlassKlass.cpp systemDictionary.hpp - -objArrayKlassKlass.hpp arrayKlassKlass.hpp -objArrayKlassKlass.hpp objArrayKlass.hpp - -objArrayOop.cpp objArrayKlass.hpp -objArrayOop.cpp objArrayOop.hpp -objArrayOop.cpp oop.inline.hpp - -objArrayOop.hpp arrayOop.hpp - -objectMonitor.hpp os.hpp - -objectMonitor_.cpp dtrace.hpp -objectMonitor_.cpp interfaceSupport.hpp -objectMonitor_.cpp objectMonitor.hpp -objectMonitor_.cpp objectMonitor.inline.hpp -objectMonitor_.cpp oop.inline.hpp -objectMonitor_.cpp osThread.hpp -objectMonitor_.cpp os_.inline.hpp -objectMonitor_.cpp threadService.hpp -objectMonitor_.cpp thread_.inline.hpp -objectMonitor_.cpp vmSymbols.hpp - -objectMonitor_.hpp generate_platform_dependent_include -objectMonitor_.hpp os_.inline.hpp -objectMonitor_.hpp thread_.inline.hpp -objectMonitor_.hpp top.hpp - -objectMonitor_.inline.hpp generate_platform_dependent_include - -oop.cpp copy.hpp -oop.cpp handles.inline.hpp -oop.cpp javaClasses.hpp -oop.cpp oop.inline.hpp -oop.cpp thread_.inline.hpp - -oop.hpp iterator.hpp -oop.hpp memRegion.hpp -oop.hpp specialized_oop_closures.hpp -oop.hpp top.hpp - -oop.inline.hpp ageTable.hpp -oop.inline.hpp arrayKlass.hpp -oop.inline.hpp arrayOop.hpp -oop.inline.hpp atomic.hpp -oop.inline.hpp barrierSet.inline.hpp -oop.inline.hpp bytes_.hpp -oop.inline.hpp cardTableModRefBS.hpp -oop.inline.hpp collectedHeap.inline.hpp -oop.inline.hpp compactingPermGenGen.hpp -oop.inline.hpp genCollectedHeap.hpp -oop.inline.hpp generation.hpp -oop.inline.hpp klass.hpp -oop.inline.hpp klassOop.hpp -oop.inline.hpp markOop.inline.hpp -oop.inline.hpp markSweep.inline.hpp -oop.inline.hpp oop.hpp -oop.inline.hpp os.hpp -oop.inline.hpp permGen.hpp -oop.inline.hpp specialized_oop_closures.hpp - -oop.inline2.hpp collectedHeap.hpp -oop.inline2.hpp generation.hpp -oop.inline2.hpp oop.hpp -oop.inline2.hpp permGen.hpp -oop.inline2.hpp universe.hpp - -oopFactory.cpp collectedHeap.inline.hpp -oopFactory.cpp compiledICHolderKlass.hpp -oopFactory.cpp constMethodKlass.hpp -oopFactory.cpp constantPoolKlass.hpp -oopFactory.cpp cpCacheKlass.hpp -oopFactory.cpp instanceKlass.hpp -oopFactory.cpp instanceKlassKlass.hpp -oopFactory.cpp instanceOop.hpp -oopFactory.cpp javaClasses.hpp -oopFactory.cpp klassKlass.hpp -oopFactory.cpp klassOop.hpp -oopFactory.cpp methodDataKlass.hpp -oopFactory.cpp methodKlass.hpp -oopFactory.cpp objArrayOop.hpp -oopFactory.cpp oop.inline.hpp -oopFactory.cpp oopFactory.hpp -oopFactory.cpp resourceArea.hpp -oopFactory.cpp symbolTable.hpp -oopFactory.cpp systemDictionary.hpp -oopFactory.cpp universe.inline.hpp -oopFactory.cpp vmSymbols.hpp - -oopFactory.hpp growableArray.hpp -oopFactory.hpp klassOop.hpp -oopFactory.hpp objArrayKlass.hpp -oopFactory.hpp oop.hpp -oopFactory.hpp symbolTable.hpp -oopFactory.hpp systemDictionary.hpp -oopFactory.hpp typeArrayKlass.hpp -oopFactory.hpp universe.hpp - -oopMap.cpp allocation.inline.hpp -oopMap.cpp codeBlob.hpp -oopMap.cpp codeCache.hpp -oopMap.cpp collectedHeap.hpp -oopMap.cpp frame.inline.hpp -oopMap.cpp nmethod.hpp -oopMap.cpp oopMap.hpp -oopMap.cpp resourceArea.hpp -oopMap.cpp scopeDesc.hpp -oopMap.cpp signature.hpp - -oopMap.hpp allocation.hpp -oopMapCache.cpp jvmtiRedefineClassesTrace.hpp -oopMap.hpp compressedStream.hpp -oopMap.hpp growableArray.hpp -oopMap.hpp vmreg.hpp - -oopMapCache.cpp allocation.inline.hpp -oopMapCache.cpp jvmtiRedefineClassesTrace.hpp -oopMapCache.cpp handles.inline.hpp -oopMapCache.cpp oop.inline.hpp -oopMapCache.cpp oopMapCache.hpp -oopMapCache.cpp resourceArea.hpp -oopMapCache.cpp signature.hpp - -oopMapCache.hpp generateOopMap.hpp - -oopRecorder.cpp allocation.inline.hpp -oopRecorder.cpp oop.inline.hpp -oopRecorder.cpp oopRecorder.hpp - -oopRecorder.hpp growableArray.hpp -oopRecorder.hpp handles.hpp - -oopsHierarchy.cpp collectedHeap.hpp -oopsHierarchy.cpp collectedHeap.inline.hpp -oopsHierarchy.cpp globalDefinitions.hpp -oopsHierarchy.cpp oopsHierarchy.hpp -oopsHierarchy.cpp thread.hpp -oopsHierarchy.cpp thread_.inline.hpp - -orderAccess.cpp orderAccess.hpp -orderAccess.cpp stubRoutines.hpp -orderAccess.cpp thread.hpp - -orderAccess.hpp allocation.hpp -orderAccess.hpp os.hpp - -orderAccess_.inline.hpp orderAccess.hpp - -os.cpp allocation.inline.hpp -os.cpp arguments.hpp -os.cpp attachListener.hpp -os.cpp classLoader.hpp -os.cpp defaultStream.hpp -os.cpp events.hpp -os.cpp frame.inline.hpp -os.cpp hpi.hpp -os.cpp icBuffer.hpp -os.cpp interfaceSupport.hpp -os.cpp interpreter.hpp -os.cpp java.hpp -os.cpp javaCalls.hpp -os.cpp javaClasses.hpp -os.cpp jvm.h -os.cpp jvm_misc.hpp -os.cpp mutexLocker.hpp -os.cpp oop.inline.hpp -os.cpp os.hpp -os.cpp os_.inline.hpp -os.cpp privilegedStack.hpp -os.cpp stubRoutines.hpp -os.cpp systemDictionary.hpp -os.cpp threadService.hpp -os.cpp thread_.inline.hpp -os.cpp vmGCOperations.hpp -os.cpp vmSymbols.hpp -os.cpp vtableStubs.hpp - -os.hpp atomic.hpp -os.hpp extendedPC.hpp -os.hpp handles.hpp -os.hpp jvmti.h -os.hpp top.hpp - -os_.cpp allocation.inline.hpp -os_.cpp arguments.hpp -os_.cpp assembler_.inline.hpp -os_.cpp classLoader.hpp -os_.cpp events.hpp -os_.cpp extendedPC.hpp -os_.cpp frame.inline.hpp -os_.cpp hpi.hpp -os_.cpp icBuffer.hpp -os_.cpp interfaceSupport.hpp -os_.cpp interpreter.hpp -os_.cpp java.hpp -os_.cpp javaCalls.hpp -os_.cpp jniFastGetField.hpp -os_.cpp jvm.h -os_.cpp jvm_.h -os_.cpp jvm_misc.hpp -os_.cpp mutexLocker.hpp -os_.cpp mutex_.inline.hpp -os_.cpp nativeInst_.hpp -os_.cpp no_precompiled_headers -os_.cpp osThread.hpp -os_.cpp os_share_.hpp -os_.cpp sharedRuntime.hpp -os_.cpp stubRoutines.hpp -os_.cpp systemDictionary.hpp -os_.cpp thread_.inline.hpp -os_.cpp timer.hpp -os_.cpp vmError.hpp -os_.cpp vmSymbols.hpp -os_.cpp vtableStubs.hpp - -os_.hpp generate_platform_dependent_include - -os_.cpp allocation.inline.hpp -os_.cpp arguments.hpp -os_.cpp assembler_.inline.hpp -os_.cpp attachListener.hpp -os_.cpp classLoader.hpp -os_.cpp compileBroker.hpp -os_.cpp defaultStream.hpp -os_.cpp events.hpp -os_.cpp extendedPC.hpp -os_.cpp filemap.hpp -os_.cpp globals.hpp -os_.cpp growableArray.hpp -os_.cpp hpi.hpp -os_.cpp icBuffer.hpp -os_.cpp interfaceSupport.hpp -os_.cpp interpreter.hpp -os_.cpp java.hpp -os_.cpp javaCalls.hpp -os_.cpp jniFastGetField.hpp -os_.cpp jvm.h -os_.cpp jvm_.h -os_.cpp jvm_misc.hpp -os_.cpp mutexLocker.hpp -os_.cpp mutex_.inline.hpp -os_.cpp nativeInst_.hpp -os_.cpp no_precompiled_headers -os_.cpp objectMonitor.hpp -os_.cpp objectMonitor.inline.hpp -os_.cpp oop.inline.hpp -os_.cpp osThread.hpp -os_.cpp os_share_.hpp -os_.cpp perfMemory.hpp -os_.cpp runtimeService.hpp -os_.cpp sharedRuntime.hpp -os_.cpp statSampler.hpp -os_.cpp stubRoutines.hpp -os_.cpp systemDictionary.hpp -os_.cpp threadCritical.hpp -os_.cpp thread_.inline.hpp -os_.cpp timer.hpp -os_.cpp vmError.hpp -os_.cpp vmSymbols.hpp -os_.cpp vtableStubs.hpp - -os_.hpp generate_platform_dependent_include - -os_.inline.hpp atomic.hpp -os_.inline.hpp atomic_.inline.hpp -os_.inline.hpp orderAccess_.inline.hpp -os_.inline.hpp os.hpp - -osThread.cpp oop.inline.hpp -osThread.cpp osThread.hpp - -osThread.hpp frame.hpp -osThread.hpp handles.hpp -osThread.hpp hpi.hpp -osThread.hpp javaFrameAnchor.hpp -osThread.hpp objectMonitor.hpp -osThread.hpp top.hpp - -osThread_.cpp assembler_.inline.hpp -osThread_.cpp atomic.hpp -osThread_.cpp handles.inline.hpp -osThread_.cpp mutexLocker.hpp -osThread_.cpp no_precompiled_headers -osThread_.cpp os.hpp -osThread_.cpp osThread.hpp -osThread_.cpp safepoint.hpp -osThread_.cpp vmThread.hpp - -osThread_.hpp generate_platform_dependent_include - -ostream.cpp arguments.hpp -ostream.cpp compileLog.hpp -ostream.cpp defaultStream.hpp -ostream.cpp oop.inline.hpp -ostream.cpp os_.inline.hpp -ostream.cpp hpi.hpp -ostream.cpp hpi_.hpp -ostream.cpp ostream.hpp -ostream.cpp top.hpp -ostream.cpp xmlstream.hpp - -ostream.hpp allocation.hpp -ostream.hpp timer.hpp - -pcDesc.cpp debugInfoRec.hpp -pcDesc.cpp nmethod.hpp -pcDesc.cpp pcDesc.hpp -pcDesc.cpp resourceArea.hpp -pcDesc.cpp scopeDesc.hpp - -pcDesc.hpp allocation.hpp - -perf.cpp allocation.inline.hpp -perf.cpp interfaceSupport.hpp -perf.cpp jni.h -perf.cpp jvm.h -perf.cpp oop.inline.hpp -perf.cpp perfData.hpp -perf.cpp perfMemory.hpp -perf.cpp resourceArea.hpp -perf.cpp vmSymbols.hpp - -perfData.cpp exceptions.hpp -perfData.cpp globalDefinitions.hpp -perfData.cpp handles.inline.hpp -perfData.cpp java.hpp -perfData.cpp mutex.hpp -perfData.cpp mutexLocker.hpp -perfData.cpp oop.inline.hpp -perfData.cpp os.hpp -perfData.cpp perfData.hpp -perfData.cpp vmSymbols.hpp - -perfData.hpp allocation.inline.hpp -perfData.hpp growableArray.hpp -perfData.hpp perfMemory.hpp -perfData.hpp timer.hpp - -perfMemory.cpp allocation.inline.hpp -perfMemory.cpp arguments.hpp -perfMemory.cpp globalDefinitions.hpp -perfMemory.cpp java.hpp -perfMemory.cpp mutex.hpp -perfMemory.cpp mutexLocker.hpp -perfMemory.cpp os.hpp -perfMemory.cpp perfData.hpp -perfMemory.cpp perfMemory.hpp -perfMemory.cpp statSampler.hpp - -perfMemory.hpp exceptions.hpp - -perfMemory_.cpp allocation.inline.hpp -perfMemory_.cpp exceptions.hpp -perfMemory_.cpp handles.inline.hpp -perfMemory_.cpp oop.inline.hpp -perfMemory_.cpp os_.inline.hpp -perfMemory_.cpp perfMemory.hpp -perfMemory_.cpp resourceArea.hpp -perfMemory_.cpp vmSymbols.hpp - -permGen.cpp blockOffsetTable.inline.hpp -permGen.cpp cSpaceCounters.hpp -permGen.cpp collectedHeap.inline.hpp -permGen.cpp compactPermGen.hpp -permGen.cpp genCollectedHeap.hpp -permGen.cpp generation.inline.hpp -permGen.cpp java.hpp -permGen.cpp oop.inline.hpp -permGen.cpp permGen.hpp -permGen.cpp universe.hpp -permGen.cpp gcLocker.hpp -permGen.cpp gcLocker.inline.hpp -permGen.cpp vmGCOperations.hpp -permGen.cpp vmThread.hpp - -permGen.hpp gcCause.hpp -permGen.hpp generation.hpp -permGen.hpp handles.hpp -permGen.hpp iterator.hpp -permGen.hpp mutexLocker.hpp -permGen.hpp virtualspace.hpp - -placeholders.cpp fieldType.hpp -placeholders.cpp hashtable.inline.hpp -placeholders.cpp oop.inline.hpp -placeholders.cpp placeholders.hpp -placeholders.cpp systemDictionary.hpp - -placeholders.hpp hashtable.hpp - -prefetch.hpp allocation.hpp - -prefetch_.inline.hpp prefetch.hpp - -preserveException.cpp handles.inline.hpp -preserveException.cpp preserveException.hpp - -preserveException.hpp handles.hpp -preserveException.hpp thread_.inline.hpp - -privilegedStack.cpp allocation.inline.hpp -privilegedStack.cpp instanceKlass.hpp -privilegedStack.cpp methodOop.hpp -privilegedStack.cpp oop.inline.hpp -privilegedStack.cpp privilegedStack.hpp -privilegedStack.cpp vframe.hpp - -privilegedStack.hpp allocation.hpp -privilegedStack.hpp growableArray.hpp -privilegedStack.hpp oopsHierarchy.hpp -privilegedStack.hpp vframe.hpp - -referencePolicy.cpp arguments.hpp -referencePolicy.cpp globals.hpp -referencePolicy.cpp javaClasses.hpp -referencePolicy.cpp referencePolicy.hpp -referencePolicy.cpp universe.hpp - -referenceProcessor.cpp collectedHeap.hpp -referenceProcessor.cpp collectedHeap.inline.hpp -referenceProcessor.cpp java.hpp -referenceProcessor.cpp javaClasses.hpp -referenceProcessor.cpp jniHandles.hpp -referenceProcessor.cpp oop.inline.hpp -referenceProcessor.cpp referencePolicy.hpp -referenceProcessor.cpp referenceProcessor.hpp -referenceProcessor.cpp systemDictionary.hpp - -referenceProcessor.hpp instanceRefKlass.hpp -referenceProcessor.hpp referencePolicy.hpp - -reflection.cpp arguments.hpp -reflection.cpp handles.inline.hpp -reflection.cpp instanceKlass.hpp -reflection.cpp javaCalls.hpp -reflection.cpp javaClasses.hpp -reflection.cpp jvm.h -reflection.cpp linkResolver.hpp -reflection.cpp methodHandleWalk.hpp -reflection.cpp objArrayKlass.hpp -reflection.cpp objArrayOop.hpp -reflection.cpp oopFactory.hpp -reflection.cpp reflection.hpp -reflection.cpp reflectionUtils.hpp -reflection.cpp resourceArea.hpp -reflection.cpp signature.hpp -reflection.cpp symbolTable.hpp -reflection.cpp systemDictionary.hpp -reflection.cpp universe.inline.hpp -reflection.cpp verifier.hpp -reflection.cpp vframe.hpp -reflection.cpp vmSymbols.hpp - -reflection.hpp accessFlags.hpp -reflection.hpp fieldDescriptor.hpp -reflection.hpp growableArray.hpp -reflection.hpp oop.hpp -reflection.hpp reflectionCompat.hpp - -reflectionUtils.cpp javaClasses.hpp -reflectionUtils.cpp reflectionUtils.hpp -reflectionUtils.cpp universe.inline.hpp - -reflectionUtils.hpp accessFlags.hpp -reflectionUtils.hpp allocation.hpp -reflectionUtils.hpp globalDefinitions.hpp -reflectionUtils.hpp handles.inline.hpp -reflectionUtils.hpp instanceKlass.hpp -reflectionUtils.hpp objArrayOop.hpp -reflectionUtils.hpp oopsHierarchy.hpp -reflectionUtils.hpp reflection.hpp - -register.cpp register.hpp - -register.hpp top.hpp - -register_.cpp register_.hpp - -register_.hpp register.hpp -register_.hpp vm_version_.hpp - -registerMap.hpp globalDefinitions.hpp -registerMap.hpp register_.hpp -registerMap.hpp vmreg.hpp - -registerMap_.hpp generate_platform_dependent_include - -register_definitions_.cpp assembler.hpp -register_definitions_.cpp interp_masm_.hpp -register_definitions_.cpp register.hpp -register_definitions_.cpp register_.hpp - -relocInfo.cpp assembler_.inline.hpp -relocInfo.cpp compiledIC.hpp -relocInfo.cpp copy.hpp -relocInfo.cpp nativeInst_.hpp -relocInfo.cpp nmethod.hpp -relocInfo.cpp relocInfo.hpp -relocInfo.cpp resourceArea.hpp -relocInfo.cpp stubCodeGenerator.hpp - -relocInfo.hpp allocation.hpp -relocInfo.hpp top.hpp - -relocInfo_.cpp assembler.inline.hpp -relocInfo_.cpp assembler_.inline.hpp -relocInfo_.cpp nativeInst_.hpp -relocInfo_.cpp oop.inline.hpp -relocInfo_.cpp relocInfo.hpp -relocInfo_.cpp safepoint.hpp - -relocInfo_.hpp generate_platform_dependent_include - -relocator.cpp bytecodes.hpp -relocator.cpp handles.inline.hpp -relocator.cpp oop.inline.hpp -relocator.cpp relocator.hpp -relocator.cpp universe.inline.hpp - -relocator.hpp bytecodes.hpp -relocator.hpp bytes_.hpp -relocator.hpp methodOop.hpp - -resolutionErrors.cpp handles.inline.hpp -resolutionErrors.cpp hashtable.inline.hpp -resolutionErrors.cpp oop.inline.hpp -resolutionErrors.cpp resolutionErrors.hpp -resolutionErrors.cpp resourceArea.hpp -resolutionErrors.cpp safepoint.hpp - -resolutionErrors.hpp constantPoolOop.hpp -resolutionErrors.hpp hashtable.hpp - -resourceArea.cpp allocation.inline.hpp -resourceArea.cpp mutexLocker.hpp -resourceArea.cpp resourceArea.hpp -resourceArea.cpp thread_.inline.hpp - -resourceArea.hpp allocation.hpp -resourceArea.hpp thread_.inline.hpp - -// restore is jck optional, put cpp deps in includeDB_features - -rewriter.cpp bytecodes.hpp -rewriter.cpp gcLocker.hpp -rewriter.cpp generateOopMap.hpp -rewriter.cpp interpreter.hpp -rewriter.cpp methodComparator.hpp -rewriter.cpp objArrayOop.hpp -rewriter.cpp oop.inline.hpp -rewriter.cpp oopFactory.hpp -rewriter.cpp resourceArea.hpp -rewriter.cpp rewriter.hpp - -rewriter.hpp allocation.hpp -rewriter.hpp growableArray.hpp -rewriter.hpp handles.inline.hpp - -rframe.cpp frame.inline.hpp -rframe.cpp interpreter.hpp -rframe.cpp oop.inline.hpp -rframe.cpp rframe.hpp -rframe.cpp symbolOop.hpp -rframe.cpp vframe.hpp -rframe.cpp vframe_hp.hpp - -rframe.hpp allocation.hpp -rframe.hpp frame.inline.hpp - -runtimeService.cpp attachListener.hpp -runtimeService.cpp classLoader.hpp -runtimeService.cpp dtrace.hpp -runtimeService.cpp exceptions.hpp -runtimeService.cpp management.hpp -runtimeService.cpp runtimeService.hpp - -runtimeService.hpp perfData.hpp -runtimeService.hpp timer.hpp - -safepoint.cpp codeCache.hpp -safepoint.cpp collectedHeap.hpp -safepoint.cpp compilationPolicy.hpp -safepoint.cpp deoptimization.hpp -safepoint.cpp events.hpp -safepoint.cpp frame.inline.hpp -safepoint.cpp icBuffer.hpp -safepoint.cpp interfaceSupport.hpp -safepoint.cpp interpreter.hpp -safepoint.cpp mutexLocker.hpp -safepoint.cpp nativeInst_.hpp -safepoint.cpp nmethod.hpp -safepoint.cpp oop.inline.hpp -safepoint.cpp osThread.hpp -safepoint.cpp pcDesc.hpp -safepoint.cpp resourceArea.hpp -safepoint.cpp runtimeService.hpp -safepoint.cpp safepoint.hpp -safepoint.cpp scopeDesc.hpp -safepoint.cpp signature.hpp -safepoint.cpp stubCodeGenerator.hpp -safepoint.cpp stubRoutines.hpp -safepoint.cpp sweeper.hpp -safepoint.cpp symbolOop.hpp -safepoint.cpp synchronizer.hpp -safepoint.cpp systemDictionary.hpp -safepoint.cpp thread_.inline.hpp -safepoint.cpp universe.inline.hpp -safepoint.cpp vmreg_.inline.hpp - -safepoint.hpp allocation.hpp -safepoint.hpp assembler.hpp -safepoint.hpp extendedPC.hpp -safepoint.hpp nmethod.hpp -safepoint.hpp os.hpp -safepoint.hpp ostream.hpp - -scopeDesc.cpp debugInfoRec.hpp -scopeDesc.cpp handles.inline.hpp -scopeDesc.cpp oop.inline.hpp -scopeDesc.cpp pcDesc.hpp -scopeDesc.cpp resourceArea.hpp -scopeDesc.cpp scopeDesc.hpp - -scopeDesc.hpp debugInfo.hpp -scopeDesc.hpp growableArray.hpp -scopeDesc.hpp methodOop.hpp -scopeDesc.hpp pcDesc.hpp - -// serialize is jck optional, put cpp deps in includeDB_features - -serviceUtil.hpp objArrayOop.hpp -serviceUtil.hpp systemDictionary.hpp - -sharedHeap.cpp codeCache.hpp -sharedHeap.cpp collectedHeap.inline.hpp -sharedHeap.cpp copy.hpp -sharedHeap.cpp fprofiler.hpp -sharedHeap.cpp java.hpp -sharedHeap.cpp management.hpp -sharedHeap.cpp oop.inline.hpp -sharedHeap.cpp sharedHeap.hpp -sharedHeap.cpp symbolTable.hpp -sharedHeap.cpp systemDictionary.hpp -sharedHeap.cpp workgroup.hpp - -sharedHeap.hpp collectedHeap.hpp -sharedHeap.hpp generation.hpp -sharedHeap.hpp permGen.hpp - -sharedRuntime.cpp abstractCompiler.hpp -sharedRuntime.cpp arguments.hpp -sharedRuntime.cpp biasedLocking.hpp -sharedRuntime.cpp compileBroker.hpp -sharedRuntime.cpp compiledIC.hpp -sharedRuntime.cpp compilerOracle.hpp -sharedRuntime.cpp copy.hpp -sharedRuntime.cpp dtrace.hpp -sharedRuntime.cpp events.hpp -sharedRuntime.cpp forte.hpp -sharedRuntime.cpp gcLocker.inline.hpp -sharedRuntime.cpp handles.inline.hpp -sharedRuntime.cpp hashtable.inline.hpp -sharedRuntime.cpp init.hpp -sharedRuntime.cpp interfaceSupport.hpp -sharedRuntime.cpp interpreterRuntime.hpp -sharedRuntime.cpp interpreter.hpp -sharedRuntime.cpp javaCalls.hpp -sharedRuntime.cpp jvmtiExport.hpp -sharedRuntime.cpp methodHandles.hpp -sharedRuntime.cpp jvmtiRedefineClassesTrace.hpp -sharedRuntime.cpp nativeInst_.hpp -sharedRuntime.cpp nativeLookup.hpp -sharedRuntime.cpp oop.inline.hpp -sharedRuntime.cpp scopeDesc.hpp -sharedRuntime.cpp sharedRuntime.hpp -sharedRuntime.cpp stubRoutines.hpp -sharedRuntime.cpp systemDictionary.hpp -sharedRuntime.cpp universe.inline.hpp -sharedRuntime.cpp vframe.hpp -sharedRuntime.cpp vframeArray.hpp -sharedRuntime.cpp vmSymbols.hpp -sharedRuntime.cpp vmreg_.inline.hpp -sharedRuntime.cpp vtableStubs.hpp -sharedRuntime.cpp xmlstream.hpp - -sharedRuntime.hpp allocation.hpp -sharedRuntime.hpp bytecodeHistogram.hpp -sharedRuntime.hpp bytecodeTracer.hpp -sharedRuntime.hpp hashtable.hpp -sharedRuntime.hpp linkResolver.hpp -sharedRuntime.hpp resourceArea.hpp -sharedRuntime.hpp threadLocalStorage.hpp - -sharedRuntime_.cpp assembler.hpp -sharedRuntime_.cpp assembler_.inline.hpp -sharedRuntime_.cpp compiledICHolderOop.hpp -sharedRuntime_.cpp debugInfoRec.hpp -sharedRuntime_.cpp icBuffer.hpp -sharedRuntime_.cpp interpreter.hpp -sharedRuntime_.cpp jvmtiRedefineClassesTrace.hpp -sharedRuntime_.cpp sharedRuntime.hpp -sharedRuntime_.cpp vframeArray.hpp -sharedRuntime_.cpp vmreg_.inline.hpp -sharedRuntime_.cpp vtableStubs.hpp - -sharedRuntimeTrans.cpp interfaceSupport.hpp -sharedRuntimeTrans.cpp jni.h -sharedRuntimeTrans.cpp sharedRuntime.hpp - -sharedRuntimeTrig.cpp interfaceSupport.hpp -sharedRuntimeTrig.cpp jni.h -sharedRuntimeTrig.cpp sharedRuntime.hpp - -signature.cpp instanceKlass.hpp -signature.cpp oop.inline.hpp -signature.cpp oopFactory.hpp -signature.cpp signature.hpp -signature.cpp symbolOop.hpp -signature.cpp symbolTable.hpp -signature.cpp systemDictionary.hpp -signature.cpp typeArrayKlass.hpp - -signature.hpp allocation.hpp -signature.hpp methodOop.hpp -signature.hpp top.hpp - -simpleThresholdPolicy.cpp arguments.hpp -simpleThresholdPolicy.cpp compileBroker.hpp -simpleThresholdPolicy.cpp resourceArea.hpp -simpleThresholdPolicy.cpp simpleThresholdPolicy.hpp -simpleThresholdPolicy.cpp simpleThresholdPolicy.inline.hpp - -simpleThresholdPolicy.hpp compilationPolicy.hpp -simpleThresholdPolicy.hpp globalDefinitions.hpp -simpleThresholdPolicy.hpp methodDataOop.hpp -simpleThresholdPolicy.hpp nmethod.hpp - -sizes.cpp sizes.hpp - -sizes.hpp allocation.hpp -sizes.hpp globalDefinitions.hpp - -space.cpp blockOffsetTable.inline.hpp -space.cpp copy.hpp -space.cpp defNewGeneration.hpp -space.cpp genCollectedHeap.hpp -space.cpp globalDefinitions.hpp -space.cpp java.hpp -space.cpp liveRange.hpp -space.cpp markSweep.hpp -space.cpp oop.inline.hpp -space.cpp oop.inline2.hpp -space.cpp safepoint.hpp -space.cpp space.hpp -space.cpp space.inline.hpp -space.cpp spaceDecorator.hpp -space.cpp systemDictionary.hpp -space.cpp universe.inline.hpp -space.cpp vmSymbols.hpp - -space.hpp allocation.hpp -space.hpp blockOffsetTable.hpp -space.hpp cardTableModRefBS.hpp -space.hpp iterator.hpp -space.hpp markOop.hpp -space.hpp memRegion.hpp -space.hpp mutexLocker.hpp -space.hpp os_.inline.hpp -space.hpp prefetch.hpp -space.hpp watermark.hpp -space.hpp workgroup.hpp - -space.inline.hpp collectedHeap.hpp -space.inline.hpp safepoint.hpp -space.inline.hpp space.hpp -space.inline.hpp universe.hpp - -spaceDecorator.hpp globalDefinitions.hpp -spaceDecorator.hpp mutableSpace.hpp -spaceDecorator.hpp space.hpp - -spaceDecorator.cpp copy.hpp -spaceDecorator.cpp spaceDecorator.hpp -spaceDecorator.cpp space.inline.hpp - -specialized_oop_closures.cpp ostream.hpp -specialized_oop_closures.cpp specialized_oop_closures.hpp - -specialized_oop_closures.hpp atomic.hpp - -stack.hpp allocation.inline.hpp - -stack.inline.hpp stack.hpp - -stackMapFrame.cpp globalDefinitions.hpp -stackMapFrame.cpp handles.inline.hpp -stackMapFrame.cpp oop.inline.hpp -stackMapFrame.cpp resourceArea.hpp -stackMapFrame.cpp stackMapFrame.hpp -stackMapFrame.cpp symbolOop.hpp -stackMapFrame.cpp verifier.hpp - -stackMapFrame.hpp exceptions.hpp -stackMapFrame.hpp handles.hpp -stackMapFrame.hpp methodOop.hpp -stackMapFrame.hpp signature.hpp -stackMapFrame.hpp verificationType.hpp -stackMapFrame.hpp verifier.hpp - -stackMapTable.cpp fieldType.hpp -stackMapTable.cpp handles.inline.hpp -stackMapTable.cpp oop.inline.hpp -stackMapTable.cpp resourceArea.hpp -stackMapTable.cpp stackMapTable.hpp -stackMapTable.cpp verifier.hpp - -stackMapTable.hpp allocation.hpp -stackMapTable.hpp bytes_.hpp -stackMapTable.hpp constantPoolOop.hpp -stackMapTable.hpp globalDefinitions.hpp -stackMapTable.hpp methodOop.hpp -stackMapTable.hpp stackMapFrame.hpp - -stackValue.cpp debugInfo.hpp -stackValue.cpp frame.inline.hpp -stackValue.cpp handles.inline.hpp -stackValue.cpp oop.inline.hpp -stackValue.cpp stackValue.hpp - -stackValue.hpp handles.hpp -stackValue.hpp location.hpp -stackValue.hpp top.hpp - -stackValueCollection.cpp jniTypes_.hpp -stackValueCollection.cpp stackValueCollection.hpp - -stackValueCollection.hpp allocation.hpp -stackValueCollection.hpp growableArray.hpp -stackValueCollection.hpp stackValue.hpp - -statSampler.cpp allocation.inline.hpp -statSampler.cpp arguments.hpp -statSampler.cpp java.hpp -statSampler.cpp javaCalls.hpp -statSampler.cpp oop.inline.hpp -statSampler.cpp os.hpp -statSampler.cpp resourceArea.hpp -statSampler.cpp statSampler.hpp -statSampler.cpp systemDictionary.hpp -statSampler.cpp vmSymbols.hpp -statSampler.cpp vm_version_.hpp - -statSampler.hpp perfData.hpp -statSampler.hpp task.hpp - -stubCodeGenerator.cpp assembler_.inline.hpp -stubCodeGenerator.cpp disassembler.hpp -stubCodeGenerator.cpp forte.hpp -stubCodeGenerator.cpp oop.inline.hpp -stubCodeGenerator.cpp stubCodeGenerator.hpp - -stubCodeGenerator.hpp allocation.hpp -stubCodeGenerator.hpp assembler.hpp - -stubGenerator_.cpp assembler.hpp -stubGenerator_.cpp assembler_.inline.hpp -stubGenerator_.cpp frame.inline.hpp -stubGenerator_.cpp handles.inline.hpp -stubGenerator_.cpp instanceOop.hpp -stubGenerator_.cpp interpreter.hpp -stubGenerator_.cpp methodHandles.hpp -stubGenerator_.cpp methodOop.hpp -stubGenerator_.cpp nativeInst_.hpp -stubGenerator_.cpp objArrayKlass.hpp -stubGenerator_.cpp oop.inline.hpp -stubGenerator_.cpp sharedRuntime.hpp -stubGenerator_.cpp stubCodeGenerator.hpp -stubGenerator_.cpp stubRoutines.hpp -stubGenerator_.cpp thread_.inline.hpp -stubGenerator_.cpp top.hpp - -stubRoutines.cpp codeBuffer.hpp -stubRoutines.cpp copy.hpp -stubRoutines.cpp interfaceSupport.hpp -stubRoutines.cpp oop.inline.hpp -stubRoutines.cpp resourceArea.hpp -stubRoutines.cpp sharedRuntime.hpp -stubRoutines.cpp stubRoutines.hpp -stubRoutines.cpp timer.hpp - -stubRoutines.hpp allocation.hpp -stubRoutines.hpp codeBlob.hpp -stubRoutines.hpp frame.hpp -stubRoutines.hpp mutexLocker.hpp -stubRoutines.hpp nativeInst_.hpp -stubRoutines.hpp stubCodeGenerator.hpp -stubRoutines.hpp top.hpp - -stubRoutines_.cpp deoptimization.hpp -stubRoutines_.cpp frame.inline.hpp -stubRoutines_.cpp stubRoutines.hpp -stubRoutines_.cpp thread_.inline.hpp - -stubRoutines_.hpp generate_platform_dependent_include - -stubRoutines_.cpp os.hpp -stubRoutines_.cpp stubRoutines.hpp - -stubs.cpp allocation.inline.hpp -stubs.cpp codeBlob.hpp -stubs.cpp mutexLocker.hpp -stubs.cpp oop.inline.hpp -stubs.cpp stubs.hpp - -stubs.hpp allocation.hpp -stubs.hpp os_.inline.hpp - -sweeper.cpp atomic.hpp -sweeper.cpp codeCache.hpp -sweeper.cpp compilationPolicy.hpp -sweeper.cpp compileBroker.hpp -sweeper.cpp events.hpp -sweeper.cpp methodOop.hpp -sweeper.cpp mutexLocker.hpp -sweeper.cpp nmethod.hpp -sweeper.cpp os.hpp -sweeper.cpp resourceArea.hpp -sweeper.cpp sweeper.hpp -sweeper.cpp vm_operations.hpp -sweeper.cpp xmlstream.hpp - -symbolKlass.cpp gcLocker.hpp -symbolKlass.cpp handles.inline.hpp -symbolKlass.cpp oop.inline.hpp -symbolKlass.cpp symbolKlass.hpp -symbolKlass.cpp symbolOop.hpp -symbolKlass.cpp symbolTable.hpp - -symbolKlass.hpp typeArrayKlass.hpp - -symbolOop.cpp oop.inline.hpp -symbolOop.cpp symbolOop.hpp - -symbolOop.hpp typeArrayOop.hpp -symbolOop.hpp utf8.hpp - -symbolTable.cpp collectedHeap.inline.hpp -symbolTable.cpp filemap.hpp -symbolTable.cpp gcLocker.inline.hpp -symbolTable.cpp hashtable.inline.hpp -symbolTable.cpp javaClasses.hpp -symbolTable.cpp mutexLocker.hpp -symbolTable.cpp oop.inline.hpp -symbolTable.cpp oop.inline2.hpp -symbolTable.cpp symbolKlass.hpp -symbolTable.cpp symbolTable.hpp -symbolTable.cpp systemDictionary.hpp - -symbolTable.hpp allocation.inline.hpp -symbolTable.hpp hashtable.hpp -symbolTable.hpp symbolOop.hpp - -synchronizer.cpp biasedLocking.hpp -synchronizer.cpp dtrace.hpp -synchronizer.cpp events.hpp -synchronizer.cpp handles.inline.hpp -synchronizer.cpp interfaceSupport.hpp -synchronizer.cpp markOop.hpp -synchronizer.cpp mutexLocker.hpp -synchronizer.cpp objectMonitor.hpp -synchronizer.cpp objectMonitor.inline.hpp -synchronizer.cpp oop.inline.hpp -synchronizer.cpp osThread.hpp -synchronizer.cpp os_.inline.hpp -synchronizer.cpp preserveException.hpp -synchronizer.cpp resourceArea.hpp -synchronizer.cpp stubRoutines.hpp -synchronizer.cpp synchronizer.hpp -synchronizer.cpp threadService.hpp -synchronizer.cpp thread_.inline.hpp -synchronizer.cpp vmSymbols.hpp - -synchronizer.hpp handles.hpp -synchronizer.hpp markOop.hpp -synchronizer.hpp perfData.hpp -synchronizer.hpp top.hpp - -systemDictionary.cpp biasedLocking.hpp -systemDictionary.cpp bytecodeStream.hpp -systemDictionary.cpp classLoadingService.hpp -systemDictionary.cpp dictionary.hpp -systemDictionary.cpp fieldType.hpp -systemDictionary.cpp gcLocker.hpp -systemDictionary.cpp handles.inline.hpp -systemDictionary.cpp instanceKlass.hpp -systemDictionary.cpp instanceRefKlass.hpp -systemDictionary.cpp interpreter.hpp -systemDictionary.cpp java.hpp -systemDictionary.cpp javaCalls.hpp -systemDictionary.cpp javaClasses.hpp -systemDictionary.cpp jvmtiEnvBase.hpp -systemDictionary.cpp klass.inline.hpp -systemDictionary.cpp loaderConstraints.hpp -systemDictionary.cpp methodDataOop.hpp -systemDictionary.cpp methodHandles.hpp -systemDictionary.cpp mutexLocker.hpp -systemDictionary.cpp objArrayKlass.hpp -systemDictionary.cpp oop.inline.hpp -systemDictionary.cpp oop.inline2.hpp -systemDictionary.cpp oopFactory.hpp -systemDictionary.cpp placeholders.hpp -systemDictionary.cpp resolutionErrors.hpp -systemDictionary.cpp signature.hpp -systemDictionary.cpp systemDictionary.hpp -systemDictionary.cpp threadService.hpp -systemDictionary.cpp typeArrayKlass.hpp -systemDictionary.cpp vmSymbols.hpp - -systemDictionary.hpp classFileStream.hpp -systemDictionary.hpp classLoader.hpp -systemDictionary.hpp hashtable.hpp -systemDictionary.hpp java.hpp -systemDictionary.hpp objArrayOop.hpp -systemDictionary.hpp reflectionUtils.hpp -systemDictionary.hpp symbolOop.hpp - -task.cpp allocation.hpp -task.cpp init.hpp -task.cpp os_.inline.hpp -task.cpp task.hpp -task.cpp thread_.inline.hpp -task.cpp timer.hpp - -task.hpp top.hpp - -taskqueue.cpp debug.hpp -taskqueue.cpp oop.inline.hpp -taskqueue.cpp os.hpp -taskqueue.cpp stack.inline.hpp -taskqueue.cpp taskqueue.hpp -taskqueue.cpp thread_.inline.hpp - -taskqueue.hpp allocation.hpp -taskqueue.hpp allocation.inline.hpp -taskqueue.hpp mutex.hpp -taskqueue.hpp orderAccess_.inline.hpp -taskqueue.hpp stack.hpp - -templateInterpreter.cpp interpreter.hpp -templateInterpreter.cpp interpreterGenerator.hpp -templateInterpreter.cpp interpreterRuntime.hpp -templateInterpreter.cpp templateTable.hpp - -templateInterpreter.hpp abstractInterpreter.hpp -templateInterpreter.hpp templateTable.hpp - -templateInterpreter_.cpp arguments.hpp -templateInterpreter_.cpp arrayOop.hpp -templateInterpreter_.cpp assembler.hpp -templateInterpreter_.cpp bytecodeHistogram.hpp -templateInterpreter_.cpp debug.hpp -templateInterpreter_.cpp deoptimization.hpp -templateInterpreter_.cpp frame.inline.hpp -templateInterpreter_.cpp interpreterRuntime.hpp -templateInterpreter_.cpp interpreter.hpp -templateInterpreter_.cpp interpreterGenerator.hpp -templateInterpreter_.cpp jvmtiExport.hpp -templateInterpreter_.cpp jvmtiThreadState.hpp -templateInterpreter_.cpp methodDataOop.hpp -templateInterpreter_.cpp methodOop.hpp -templateInterpreter_.cpp oop.inline.hpp -templateInterpreter_.cpp sharedRuntime.hpp -templateInterpreter_.cpp stubRoutines.hpp -templateInterpreter_.cpp synchronizer.hpp -templateInterpreter_.cpp templateTable.hpp -templateInterpreter_.cpp timer.hpp -templateInterpreter_.cpp vframeArray.hpp - -templateInterpreter_.hpp generate_platform_dependent_include - -templateInterpreterGenerator_.hpp generate_platform_dependent_include - -templateTable.cpp collectedHeap.hpp -templateTable.cpp templateTable.hpp -templateTable.cpp timer.hpp - -templateTable.hpp allocation.hpp -templateTable.hpp bytecodes.hpp -templateTable.hpp frame.hpp -templateTable.hpp interp_masm_.hpp - -templateTable_.cpp interpreterRuntime.hpp -templateTable_.cpp interpreter.hpp -templateTable_.cpp methodDataOop.hpp -templateTable_.cpp methodHandles.hpp -templateTable_.cpp objArrayKlass.hpp -templateTable_.cpp oop.inline.hpp -templateTable_.cpp sharedRuntime.hpp -templateTable_.cpp stubRoutines.hpp -templateTable_.cpp synchronizer.hpp -templateTable_.cpp templateTable.hpp -templateTable_.cpp universe.inline.hpp - -templateTable_.hpp generate_platform_dependent_include - -tenuredGeneration.cpp allocation.inline.hpp -tenuredGeneration.cpp blockOffsetTable.inline.hpp -tenuredGeneration.cpp collectorCounters.hpp -tenuredGeneration.cpp generation.inline.hpp -tenuredGeneration.cpp generationSpec.hpp -tenuredGeneration.cpp java.hpp -tenuredGeneration.cpp oop.inline.hpp -tenuredGeneration.cpp parGCAllocBuffer.hpp -tenuredGeneration.cpp space.hpp -tenuredGeneration.cpp tenuredGeneration.hpp - -tenuredGeneration.hpp cSpaceCounters.hpp -tenuredGeneration.hpp gcStats.hpp -tenuredGeneration.hpp generation.hpp -tenuredGeneration.hpp generationCounters.hpp - -thread.cpp aprofiler.hpp -thread.cpp arguments.hpp -thread.cpp attachListener.hpp -thread.cpp biasedLocking.hpp -thread.cpp classLoader.hpp -thread.cpp compileBroker.hpp -thread.cpp defaultStream.hpp -thread.cpp deoptimization.hpp -thread.cpp dtrace.hpp -thread.cpp events.hpp -thread.cpp fprofiler.hpp -thread.cpp frame.inline.hpp -thread.cpp gcTaskManager.hpp -thread.cpp hpi.hpp -thread.cpp init.hpp -thread.cpp instanceKlass.hpp -thread.cpp interfaceSupport.hpp -thread.cpp interpreter.hpp -thread.cpp interpreter.hpp -thread.cpp java.hpp -thread.cpp javaCalls.hpp -thread.cpp javaClasses.hpp -thread.cpp jniPeriodicChecker.hpp -thread.cpp jvm_misc.hpp -thread.cpp jvmtiExport.hpp -thread.cpp jvmtiThreadState.hpp -thread.cpp linkResolver.hpp -thread.cpp management.hpp -thread.cpp memprofiler.hpp -thread.cpp mutexLocker.hpp -thread.cpp objArrayOop.hpp -thread.cpp objectMonitor.hpp -thread.cpp objectMonitor.inline.hpp -thread.cpp oop.inline.hpp -thread.cpp oopFactory.hpp -thread.cpp osThread.hpp -thread.cpp os_.inline.hpp -thread.cpp preserveException.hpp -thread.cpp privilegedStack.hpp -thread.cpp safepoint.hpp -thread.cpp scopeDesc.hpp -thread.cpp sharedRuntime.hpp -thread.cpp statSampler.hpp -thread.cpp stubRoutines.hpp -thread.cpp symbolOop.hpp -thread.cpp systemDictionary.hpp -thread.cpp task.hpp -thread.cpp threadCritical.hpp -thread.cpp threadLocalStorage.hpp -thread.cpp threadService.hpp -thread.cpp thread_.inline.hpp -thread.cpp universe.inline.hpp -thread.cpp vframe.hpp -thread.cpp vframeArray.hpp -thread.cpp vframe_hp.hpp -thread.cpp vmSymbols.hpp -thread.cpp vmThread.hpp -thread.cpp vm_operations.hpp - -thread.hpp allocation.hpp -thread.hpp exceptions.hpp -thread.hpp frame.hpp -thread.hpp javaFrameAnchor.hpp -thread.hpp jni.h -thread.hpp jniHandles.hpp -thread.hpp jvmtiExport.hpp -thread.hpp mutexLocker.hpp -thread.hpp oop.hpp -thread.hpp os.hpp -thread.hpp osThread.hpp -thread.hpp safepoint.hpp -thread.hpp stubRoutines.hpp -thread.hpp threadLocalAllocBuffer.hpp -thread.hpp threadLocalStorage.hpp -thread.hpp top.hpp -thread.hpp unhandledOops.hpp - -thread_.cpp frame.inline.hpp -thread_.cpp thread_.inline.hpp - -thread_.hpp generate_platform_dependent_include - -thread_.inline.hpp atomic.hpp -thread_.inline.hpp atomic_.inline.hpp -thread_.inline.hpp orderAccess_.inline.hpp -thread_.inline.hpp prefetch.hpp -thread_.inline.hpp prefetch_.inline.hpp -thread_.inline.hpp thread.hpp -thread_.inline.hpp threadLocalStorage.hpp - -threadCritical.hpp allocation.hpp - -threadCritical_.cpp threadCritical.hpp -threadCritical_.cpp thread_.inline.hpp - -threadLS_.cpp threadLocalStorage.hpp -threadLS_.cpp thread_.inline.hpp - -threadLS_.hpp generate_platform_dependent_include - -threadLocalAllocBuffer.cpp copy.hpp -threadLocalAllocBuffer.cpp genCollectedHeap.hpp -threadLocalAllocBuffer.cpp oop.inline.hpp -threadLocalAllocBuffer.cpp resourceArea.hpp -threadLocalAllocBuffer.cpp threadLocalAllocBuffer.inline.hpp -threadLocalAllocBuffer.cpp thread_.inline.hpp -threadLocalAllocBuffer.cpp universe.inline.hpp - -threadLocalAllocBuffer.hpp gcUtil.hpp -threadLocalAllocBuffer.hpp perfData.hpp -threadLocalAllocBuffer.hpp typeArrayOop.hpp - -threadLocalAllocBuffer.inline.hpp atomic.hpp -threadLocalAllocBuffer.inline.hpp collectedHeap.hpp -threadLocalAllocBuffer.inline.hpp copy.hpp -threadLocalAllocBuffer.inline.hpp threadLocalAllocBuffer.hpp - -threadLocalStorage.cpp os_.inline.hpp -threadLocalStorage.cpp threadLocalStorage.hpp -threadLocalStorage.cpp thread_.inline.hpp - -threadLocalStorage.hpp gcUtil.hpp -threadLocalStorage.hpp os.hpp -threadLocalStorage.hpp top.hpp - -threadService.cpp allocation.hpp -threadService.cpp handles.inline.hpp -threadService.cpp heapInspection.hpp -threadService.cpp init.hpp -threadService.cpp instanceKlass.hpp -threadService.cpp oop.inline.hpp -threadService.cpp oopFactory.hpp -threadService.cpp systemDictionary.hpp -threadService.cpp thread.hpp -threadService.cpp threadService.hpp -threadService.cpp vframe.hpp -threadService.cpp vmThread.hpp -threadService.cpp vm_operations.hpp - -threadService.hpp handles.hpp -threadService.hpp init.hpp -threadService.hpp javaClasses.hpp -threadService.hpp jniHandles.hpp -threadService.hpp management.hpp -threadService.hpp objectMonitor.hpp -threadService.hpp objectMonitor.inline.hpp -threadService.hpp perfData.hpp -threadService.hpp serviceUtil.hpp - -timer.cpp oop.inline.hpp -timer.cpp os_.inline.hpp -timer.cpp ostream.hpp -timer.cpp timer.hpp - -timer.hpp globalDefinitions.hpp - -top.hpp debug.hpp -top.hpp exceptions.hpp -top.hpp globalDefinitions.hpp -top.hpp globals.hpp -top.hpp macros.hpp -top.hpp oopsHierarchy.hpp -top.hpp ostream.hpp -top.hpp sizes.hpp - -typeArrayKlass.cpp collectedHeap.hpp -typeArrayKlass.cpp collectedHeap.inline.hpp -typeArrayKlass.cpp handles.inline.hpp -typeArrayKlass.cpp instanceKlass.hpp -typeArrayKlass.cpp klassOop.hpp -typeArrayKlass.cpp objArrayKlassKlass.hpp -typeArrayKlass.cpp oop.inline.hpp -typeArrayKlass.cpp resourceArea.hpp -typeArrayKlass.cpp systemDictionary.hpp -typeArrayKlass.cpp typeArrayKlass.hpp -typeArrayKlass.cpp typeArrayOop.hpp -typeArrayKlass.cpp universe.hpp -typeArrayKlass.cpp universe.inline.hpp -typeArrayKlass.cpp vmSymbols.hpp - -typeArrayKlass.hpp arrayKlass.hpp - -typeArrayKlassKlass.cpp handles.inline.hpp -typeArrayKlassKlass.cpp javaClasses.hpp -typeArrayKlassKlass.cpp oop.inline.hpp -typeArrayKlassKlass.cpp typeArrayKlassKlass.hpp - -typeArrayKlassKlass.hpp arrayKlassKlass.hpp -typeArrayKlassKlass.hpp typeArrayKlass.hpp - -typeArrayOop.cpp oop.inline.hpp -typeArrayOop.cpp typeArrayOop.hpp - -typeArrayOop.hpp arrayOop.hpp -typeArrayOop.hpp orderAccess_.inline.hpp -typeArrayOop.hpp typeArrayKlass.hpp - -unhandledOops.cpp collectedHeap.hpp -unhandledOops.cpp gcLocker.inline.hpp -unhandledOops.cpp globalDefinitions.hpp -unhandledOops.cpp oop.inline.hpp -unhandledOops.cpp thread.hpp -unhandledOops.cpp unhandledOops.hpp -unhandledOops.cpp universe.hpp - -universe.cpp aprofiler.hpp -universe.cpp arguments.hpp -universe.cpp arrayKlassKlass.hpp -universe.cpp cardTableModRefBS.hpp -universe.cpp classLoader.hpp -universe.cpp codeCache.hpp -universe.cpp collectedHeap.inline.hpp -universe.cpp compiledICHolderKlass.hpp -universe.cpp constMethodKlass.hpp -universe.cpp constantPoolKlass.hpp -universe.cpp constantPoolOop.hpp -universe.cpp copy.hpp -universe.cpp cpCacheKlass.hpp -universe.cpp cpCacheOop.hpp -universe.cpp deoptimization.hpp -universe.cpp dependencies.hpp -universe.cpp events.hpp -universe.cpp filemap.hpp -universe.cpp fprofiler.hpp -universe.cpp gcLocker.inline.hpp -universe.cpp genCollectedHeap.hpp -universe.cpp genRemSet.hpp -universe.cpp generation.hpp -universe.cpp handles.inline.hpp -universe.cpp hashtable.inline.hpp -universe.cpp instanceKlass.hpp -universe.cpp instanceKlassKlass.hpp -universe.cpp instanceRefKlass.hpp -universe.cpp interpreter.hpp -universe.cpp java.hpp -universe.cpp javaCalls.hpp -universe.cpp javaClasses.hpp -universe.cpp jvmtiRedefineClassesTrace.hpp -universe.cpp klassKlass.hpp -universe.cpp klassOop.hpp -universe.cpp memoryService.hpp -universe.cpp methodDataKlass.hpp -universe.cpp methodKlass.hpp -universe.cpp objArrayKlassKlass.hpp -universe.cpp oop.inline.hpp -universe.cpp oopFactory.hpp -universe.cpp permGen.hpp -universe.cpp preserveException.hpp -universe.cpp sharedRuntime.hpp -universe.cpp space.hpp -universe.cpp symbolKlass.hpp -universe.cpp symbolTable.hpp -universe.cpp synchronizer.hpp -universe.cpp systemDictionary.hpp -universe.cpp thread_.inline.hpp -universe.cpp timer.hpp -universe.cpp typeArrayKlass.hpp -universe.cpp typeArrayKlassKlass.hpp -universe.cpp universe.hpp -universe.cpp universe.inline.hpp -universe.cpp vmSymbols.hpp -universe.cpp vm_operations.hpp - -universe.hpp growableArray.hpp -universe.hpp handles.hpp - -universe.inline.hpp universe.hpp - -unsafe.cpp allocation.inline.hpp -unsafe.cpp copy.hpp -unsafe.cpp dtrace.hpp -unsafe.cpp globals.hpp -unsafe.cpp interfaceSupport.hpp -unsafe.cpp jni.h -unsafe.cpp jvm.h -unsafe.cpp reflection.hpp -unsafe.cpp reflectionCompat.hpp -unsafe.cpp synchronizer.hpp -unsafe.cpp threadService.hpp -unsafe.cpp vmSymbols.hpp - -utf8.cpp utf8.hpp - -utf8.hpp allocation.hpp -utf8.hpp top.hpp - -verificationType.cpp symbolTable.hpp -verificationType.cpp verificationType.hpp - -verificationType.hpp allocation.hpp -verificationType.hpp handles.hpp -verificationType.hpp instanceKlass.hpp -verificationType.hpp oop.inline.hpp -verificationType.hpp signature.hpp -verificationType.hpp symbolOop.hpp -verificationType.hpp systemDictionary.hpp - -verifier.cpp bytecodeStream.hpp -verifier.cpp bytes_.hpp -verifier.cpp classFileStream.hpp -verifier.cpp fieldDescriptor.hpp -verifier.cpp handles.inline.hpp -verifier.cpp hpi.hpp -verifier.cpp instanceKlass.hpp -verifier.cpp interfaceSupport.hpp -verifier.cpp javaCalls.hpp -verifier.cpp javaClasses.hpp -verifier.cpp jvm.h -verifier.cpp oop.inline.hpp -verifier.cpp oopFactory.hpp -verifier.cpp orderAccess.hpp -verifier.cpp os.hpp -verifier.cpp resourceArea.hpp -verifier.cpp stackMapTable.hpp -verifier.cpp systemDictionary.hpp -verifier.cpp typeArrayOop.hpp -verifier.cpp verifier.hpp -verifier.cpp vmSymbols.hpp - -verifier.hpp exceptions.hpp -verifier.hpp gcLocker.hpp -verifier.hpp handles.hpp -verifier.hpp klass.hpp -verifier.hpp methodOop.hpp -verifier.hpp verificationType.hpp - -vframe.cpp codeCache.hpp -vframe.cpp debugInfoRec.hpp -vframe.cpp handles.inline.hpp -vframe.cpp instanceKlass.hpp -vframe.cpp interpreter.hpp -vframe.cpp javaClasses.hpp -vframe.cpp nmethod.hpp -vframe.cpp objectMonitor.hpp -vframe.cpp objectMonitor.inline.hpp -vframe.cpp oop.inline.hpp -vframe.cpp oopMapCache.hpp -vframe.cpp pcDesc.hpp -vframe.cpp resourceArea.hpp -vframe.cpp scopeDesc.hpp -vframe.cpp signature.hpp -vframe.cpp stubRoutines.hpp -vframe.cpp synchronizer.hpp -vframe.cpp systemDictionary.hpp -vframe.cpp vframe.hpp -vframe.cpp vframeArray.hpp -vframe.cpp vframe_hp.hpp -vframe.cpp vmSymbols.hpp - -vframe.hpp debugInfo.hpp -vframe.hpp debugInfoRec.hpp -vframe.hpp frame.hpp -vframe.hpp frame.inline.hpp -vframe.hpp growableArray.hpp -vframe.hpp location.hpp -vframe.hpp oop.hpp -vframe.hpp stackValue.hpp -vframe.hpp stackValueCollection.hpp - -vframeArray.cpp allocation.inline.hpp -vframeArray.cpp events.hpp -vframeArray.cpp handles.inline.hpp -vframeArray.cpp interpreter.hpp -vframeArray.cpp jvmtiThreadState.hpp -vframeArray.cpp methodDataOop.hpp -vframeArray.cpp monitorChunk.hpp -vframeArray.cpp oop.inline.hpp -vframeArray.cpp resourceArea.hpp -vframeArray.cpp sharedRuntime.hpp -vframeArray.cpp universe.inline.hpp -vframeArray.cpp vframe.hpp -vframeArray.cpp vframeArray.hpp -vframeArray.cpp vframe_hp.hpp -vframeArray.cpp vmSymbols.hpp - -vframeArray.hpp arrayOop.hpp -vframeArray.hpp deoptimization.hpp -vframeArray.hpp frame.inline.hpp -vframeArray.hpp growableArray.hpp -vframeArray.hpp monitorChunk.hpp - -vframe_hp.cpp codeCache.hpp -vframe_hp.cpp debugInfoRec.hpp -vframe_hp.cpp handles.inline.hpp -vframe_hp.cpp instanceKlass.hpp -vframe_hp.cpp interpreter.hpp -vframe_hp.cpp monitorChunk.hpp -vframe_hp.cpp nmethod.hpp -vframe_hp.cpp oop.inline.hpp -vframe_hp.cpp oopMapCache.hpp -vframe_hp.cpp pcDesc.hpp -vframe_hp.cpp scopeDesc.hpp -vframe_hp.cpp signature.hpp -vframe_hp.cpp stubRoutines.hpp -vframe_hp.cpp synchronizer.hpp -vframe_hp.cpp vframeArray.hpp -vframe_hp.cpp vframe_hp.hpp - -vframe_hp.hpp vframe.hpp - -virtualspace.cpp markOop.hpp -virtualspace.cpp oop.inline.hpp -virtualspace.cpp os_.inline.hpp -virtualspace.cpp virtualspace.hpp - -virtualspace.hpp allocation.hpp - -vmError.cpp arguments.hpp -vmError.cpp collectedHeap.hpp -vmError.cpp compileBroker.hpp -vmError.cpp debug.hpp -vmError.cpp defaultStream.hpp -vmError.cpp frame.inline.hpp -vmError.cpp init.hpp -vmError.cpp os.hpp -vmError.cpp thread.hpp -vmError.cpp top.hpp -vmError.cpp vmError.hpp -vmError.cpp vmThread.hpp -vmError.cpp vm_operations.hpp - -vmError.hpp globalDefinitions.hpp - -vmError_.cpp arguments.hpp -vmError_.cpp os.hpp -vmError_.cpp thread.hpp -vmError_.cpp vmError.hpp - -// vmStructs is jck optional, put cpp deps in includeDB_features - -vmStructs.hpp debug.hpp - -vmSymbols.cpp handles.inline.hpp -vmSymbols.cpp oop.inline.hpp -vmSymbols.cpp oopFactory.hpp -vmSymbols.cpp vmSymbols.hpp -vmSymbols.cpp xmlstream.hpp - -vmSymbols.hpp symbolOop.hpp - -vmThread.cpp collectedHeap.hpp -vmThread.cpp compileBroker.hpp -vmThread.cpp dtrace.hpp -vmThread.cpp events.hpp -vmThread.cpp interfaceSupport.hpp -vmThread.cpp methodOop.hpp -vmThread.cpp mutexLocker.hpp -vmThread.cpp oop.inline.hpp -vmThread.cpp os.hpp -vmThread.cpp resourceArea.hpp -vmThread.cpp runtimeService.hpp -vmThread.cpp thread_.inline.hpp -vmThread.cpp vmThread.hpp -vmThread.cpp vm_operations.hpp -vmThread.cpp xmlstream.hpp - -vmThread.hpp perfData.hpp -vmThread.hpp thread_.inline.hpp -vmThread.hpp vm_operations.hpp - -vm_operations.cpp arguments.hpp -vm_operations.cpp compileBroker.hpp -vm_operations.cpp compilerOracle.hpp -vm_operations.cpp deoptimization.hpp -vm_operations.cpp interfaceSupport.hpp -vm_operations.cpp isGCActiveMark.hpp -vm_operations.cpp resourceArea.hpp -vm_operations.cpp sweeper.hpp -vm_operations.cpp threadService.hpp -vm_operations.cpp thread_.inline.hpp -vm_operations.cpp vmSymbols.hpp -vm_operations.cpp vm_operations.hpp - -vm_operations.hpp allocation.hpp -vm_operations.hpp javaClasses.hpp -vm_operations.hpp oop.hpp -vm_operations.hpp thread.hpp -vm_operations.hpp top.hpp - -vm_version.cpp arguments.hpp -vm_version.cpp oop.inline.hpp -vm_version.cpp universe.hpp -vm_version.cpp vm_version_.hpp - -vm_version.hpp allocation.hpp -vm_version.hpp ostream.hpp - -vm_version_.cpp assembler_.inline.hpp -vm_version_.cpp java.hpp -vm_version_.cpp os_.inline.hpp -vm_version_.cpp resourceArea.hpp -vm_version_.cpp stubCodeGenerator.hpp -vm_version_.cpp vm_version_.hpp - -vm_version_.hpp globals_extension.hpp -vm_version_.hpp vm_version.hpp - -vm_version_.cpp os.hpp -vm_version_.cpp vm_version_.hpp - -vmreg.cpp assembler.hpp -vmreg.cpp vmreg.hpp - -vmreg.hpp allocation.hpp -vmreg.hpp globalDefinitions.hpp -vmreg.hpp register_.hpp - -vmreg_.cpp assembler.hpp -vmreg_.cpp vmreg.hpp - -vmreg_.hpp generate_platform_dependent_include - -vtableStubs.cpp allocation.inline.hpp -vtableStubs.cpp disassembler.hpp -vtableStubs.cpp forte.hpp -vtableStubs.cpp handles.inline.hpp -vtableStubs.cpp instanceKlass.hpp -vtableStubs.cpp jvmtiExport.hpp -vtableStubs.cpp klassVtable.hpp -vtableStubs.cpp oop.inline.hpp -vtableStubs.cpp mutexLocker.hpp -vtableStubs.cpp resourceArea.hpp -vtableStubs.cpp sharedRuntime.hpp -vtableStubs.cpp vtableStubs.hpp - -vtableStubs.hpp allocation.hpp - -vtableStubs_.cpp assembler.hpp -vtableStubs_.cpp assembler_.inline.hpp -vtableStubs_.cpp instanceKlass.hpp -vtableStubs_.cpp interp_masm_.hpp -vtableStubs_.cpp klassVtable.hpp -vtableStubs_.cpp resourceArea.hpp -vtableStubs_.cpp sharedRuntime.hpp -vtableStubs_.cpp vmreg_.inline.hpp -vtableStubs_.cpp vtableStubs.hpp - -watermark.hpp allocation.hpp -watermark.hpp globalDefinitions.hpp - -workgroup.cpp allocation.hpp -workgroup.cpp allocation.inline.hpp -workgroup.cpp os.hpp -workgroup.cpp workgroup.hpp - -workgroup.hpp taskqueue.hpp -workgroup.hpp thread_.inline.hpp - -xmlstream.cpp allocation.hpp -xmlstream.cpp allocation.inline.hpp -xmlstream.cpp deoptimization.hpp -xmlstream.cpp methodDataOop.hpp -xmlstream.cpp methodOop.hpp -xmlstream.cpp nmethod.hpp -xmlstream.cpp oop.inline.hpp -xmlstream.cpp vmThread.hpp -xmlstream.cpp xmlstream.hpp - -xmlstream.hpp handles.hpp -xmlstream.hpp ostream.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_features --- a/src/share/vm/includeDB_features Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,325 +0,0 @@ -// -// Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -attachListener.cpp arguments.hpp -attachListener.cpp attachListener.hpp -attachListener.cpp globals.hpp -attachListener.cpp heapDumper.hpp -attachListener.cpp java.hpp -attachListener.cpp javaCalls.hpp -attachListener.cpp javaClasses.hpp -attachListener.cpp jvmtiExport.hpp -attachListener.cpp os.hpp -attachListener.cpp resourceArea.hpp -attachListener.cpp systemDictionary.hpp -attachListener.cpp vmGCOperations.hpp - -attachListener_.cpp attachListener.hpp -attachListener_.cpp dtraceAttacher.hpp -attachListener_.cpp interfaceSupport.hpp -attachListener_.cpp os.hpp - -dump.cpp classify.hpp -dump.cpp copy.hpp -dump.cpp filemap.hpp -dump.cpp javaCalls.hpp -dump.cpp javaClasses.hpp -dump.cpp loaderConstraints.hpp -dump.cpp methodDataOop.hpp -dump.cpp oop.inline.hpp -dump.cpp oopFactory.hpp -dump.cpp resourceArea.hpp -dump.cpp signature.hpp -dump.cpp spaceDecorator.hpp -dump.cpp symbolTable.hpp -dump.cpp systemDictionary.hpp -dump.cpp vmThread.hpp -dump.cpp vm_operations.hpp - -dump_.cpp assembler_.inline.hpp -dump_.cpp compactingPermGenGen.hpp -dump_.cpp generation.inline.hpp -dump_.cpp space.inline.hpp - -forte.cpp collectedHeap.inline.hpp -forte.cpp debugInfoRec.hpp -forte.cpp forte.hpp -forte.cpp oop.inline.hpp -forte.cpp oop.inline2.hpp -forte.cpp pcDesc.hpp -forte.cpp space.hpp -forte.cpp thread.hpp -forte.cpp universe.inline.hpp -forte.cpp vframe.hpp -forte.cpp vframeArray.hpp - -fprofiler.cpp allocation.inline.hpp -fprofiler.cpp classLoader.hpp -fprofiler.cpp collectedHeap.inline.hpp -fprofiler.cpp deoptimization.hpp -fprofiler.cpp fprofiler.hpp -fprofiler.cpp interpreter.hpp -fprofiler.cpp macros.hpp -fprofiler.cpp mutexLocker.hpp -fprofiler.cpp oop.inline.hpp -fprofiler.cpp oop.inline2.hpp -fprofiler.cpp stubCodeGenerator.hpp -fprofiler.cpp stubRoutines.hpp -fprofiler.cpp symbolOop.hpp -fprofiler.cpp task.hpp -fprofiler.cpp universe.inline.hpp -fprofiler.cpp vframe.hpp -fprofiler.cpp vtableStubs.hpp - -heapDumper.cpp genCollectedHeap.hpp -heapDumper.cpp heapDumper.hpp -heapDumper.cpp javaCalls.hpp -heapDumper.cpp jniHandles.hpp -heapDumper.cpp objArrayKlass.hpp -heapDumper.cpp ostream.hpp -heapDumper.cpp reflectionUtils.hpp -heapDumper.cpp symbolTable.hpp -heapDumper.cpp systemDictionary.hpp -heapDumper.cpp threadService.hpp -heapDumper.cpp universe.hpp -heapDumper.cpp vframe.hpp -heapDumper.cpp vmGCOperations.hpp -heapDumper.cpp vmSymbols.hpp -heapDumper.cpp vmThread.hpp -heapDumper.cpp vm_operations.hpp - -heapInspection.cpp collectedHeap.hpp -heapInspection.cpp genCollectedHeap.hpp -heapInspection.cpp globalDefinitions.hpp -heapInspection.cpp heapInspection.hpp -heapInspection.cpp klassOop.hpp -heapInspection.cpp os.hpp -heapInspection.cpp resourceArea.hpp - -javaCalls.cpp jniCheck.hpp - -jniCheck.cpp fieldDescriptor.hpp -jniCheck.cpp handles.hpp -jniCheck.cpp instanceKlass.hpp -jniCheck.cpp interfaceSupport.hpp -jniCheck.cpp jfieldIDWorkaround.hpp -jniCheck.cpp jni.h -jniCheck.cpp jniCheck.hpp -jniCheck.cpp jniTypes_.hpp -jniCheck.cpp jvm_misc.hpp -jniCheck.cpp oop.inline.hpp -jniCheck.cpp symbolOop.hpp -jniCheck.cpp systemDictionary.hpp -jniCheck.cpp thread.hpp -jniCheck.cpp vmSymbols.hpp - -jvmtiCodeBlobEvents.cpp codeBlob.hpp -jvmtiCodeBlobEvents.cpp codeCache.hpp -jvmtiCodeBlobEvents.cpp handles.hpp -jvmtiCodeBlobEvents.cpp handles.inline.hpp -jvmtiCodeBlobEvents.cpp jvmtiCodeBlobEvents.hpp -jvmtiCodeBlobEvents.cpp jvmtiExport.hpp -jvmtiCodeBlobEvents.cpp oop.inline.hpp -jvmtiCodeBlobEvents.cpp resourceArea.hpp -jvmtiCodeBlobEvents.cpp scopeDesc.hpp -jvmtiCodeBlobEvents.cpp vmThread.hpp - -jvmtiCodeBlobEvents.hpp jvmti.h - -jvmtiExtensions.cpp jvmtiExport.hpp -jvmtiExtensions.cpp jvmtiExtensions.hpp - -jvmtiExtensions.hpp allocation.hpp -jvmtiExtensions.hpp jvmti.h -jvmtiExtensions.hpp jvmtiEnv.hpp - -jvmtiImpl.cpp exceptions.hpp -jvmtiImpl.cpp handles.hpp -jvmtiImpl.cpp handles.inline.hpp -jvmtiImpl.cpp instanceKlass.hpp -jvmtiImpl.cpp interfaceSupport.hpp -jvmtiImpl.cpp interpreter.hpp -jvmtiImpl.cpp javaCalls.hpp -jvmtiImpl.cpp jvmtiAgentThread.hpp -jvmtiImpl.cpp jvmtiEnv.hpp -jvmtiImpl.cpp jvmtiEventController.inline.hpp -jvmtiImpl.cpp jvmtiImpl.hpp -jvmtiImpl.cpp jvmtiRedefineClasses.hpp -jvmtiImpl.cpp resourceArea.hpp -jvmtiImpl.cpp signature.hpp -jvmtiImpl.cpp systemDictionary.hpp -jvmtiImpl.cpp thread_.inline.hpp -jvmtiImpl.cpp vframe.hpp -jvmtiImpl.cpp vframe_hp.hpp -jvmtiImpl.cpp vm_operations.hpp - -jvmtiImpl.hpp jvmti.h -jvmtiImpl.hpp jvmtiEnvThreadState.hpp -jvmtiImpl.hpp jvmtiEventController.hpp -jvmtiImpl.hpp jvmtiTrace.hpp -jvmtiImpl.hpp jvmtiUtil.hpp -jvmtiImpl.hpp objArrayOop.hpp -jvmtiImpl.hpp stackValueCollection.hpp -jvmtiImpl.hpp systemDictionary.hpp -jvmtiImpl.hpp vm_operations.hpp - -jvmtiTagMap.cpp biasedLocking.hpp -jvmtiTagMap.cpp javaCalls.hpp -jvmtiTagMap.cpp jniHandles.hpp -jvmtiTagMap.cpp jvmtiEnv.hpp -jvmtiTagMap.cpp jvmtiEventController.hpp -jvmtiTagMap.cpp jvmtiEventController.inline.hpp -jvmtiTagMap.cpp jvmtiExport.hpp -jvmtiTagMap.cpp jvmtiImpl.hpp -jvmtiTagMap.cpp jvmtiTagMap.hpp -jvmtiTagMap.cpp mutex.hpp -jvmtiTagMap.cpp mutexLocker.hpp -jvmtiTagMap.cpp objArrayKlass.hpp -jvmtiTagMap.cpp oop.inline2.hpp -jvmtiTagMap.cpp reflectionUtils.hpp -jvmtiTagMap.cpp serviceUtil.hpp -jvmtiTagMap.cpp symbolTable.hpp -jvmtiTagMap.cpp systemDictionary.hpp -jvmtiTagMap.cpp vframe.hpp -jvmtiTagMap.cpp vmSymbols.hpp -jvmtiTagMap.cpp vmThread.hpp -jvmtiTagMap.cpp vm_operations.hpp - -jvmtiTagMap.hpp allocation.hpp -jvmtiTagMap.hpp collectedHeap.hpp -jvmtiTagMap.hpp genCollectedHeap.hpp -jvmtiTagMap.hpp jvmti.h -jvmtiTagMap.hpp jvmtiEnv.hpp -jvmtiTagMap.hpp universe.hpp - -jvmtiTrace.cpp jvmtiEnv.hpp -jvmtiTrace.cpp jvmtiTrace.hpp - -jvmtiTrace.hpp jvmti.h -jvmtiTrace.hpp jvmtiEnvThreadState.hpp -jvmtiTrace.hpp jvmtiEventController.hpp -jvmtiTrace.hpp jvmtiUtil.hpp -jvmtiTrace.hpp objArrayOop.hpp -jvmtiTrace.hpp stackValueCollection.hpp -jvmtiTrace.hpp systemDictionary.hpp -jvmtiTrace.hpp vm_operations.hpp - -restore.cpp filemap.hpp -restore.cpp hashtable.inline.hpp -restore.cpp oop.inline.hpp -restore.cpp symbolTable.hpp -restore.cpp systemDictionary.hpp - -serialize.cpp classify.hpp -serialize.cpp codeCache.hpp -serialize.cpp compactingPermGenGen.hpp -serialize.cpp compiledICHolderOop.hpp -serialize.cpp methodDataOop.hpp -serialize.cpp objArrayOop.hpp -serialize.cpp oop.inline.hpp -serialize.cpp symbolTable.hpp -serialize.cpp systemDictionary.hpp - -vmStructs.cpp arguments.hpp -vmStructs.cpp arrayKlass.hpp -vmStructs.cpp arrayKlassKlass.hpp -vmStructs.cpp arrayOop.hpp -vmStructs.cpp bytecodes.hpp -vmStructs.cpp bytecodeInterpreter.hpp -vmStructs.cpp cardTableRS.hpp -vmStructs.cpp codeBlob.hpp -vmStructs.cpp codeCache.hpp -vmStructs.cpp collectedHeap.hpp -vmStructs.cpp compactPermGen.hpp -vmStructs.cpp compiledICHolderKlass.hpp -vmStructs.cpp compiledICHolderOop.hpp -vmStructs.cpp compressedStream.hpp -vmStructs.cpp constMethodKlass.hpp -vmStructs.cpp constMethodOop.hpp -vmStructs.cpp constantPoolKlass.hpp -vmStructs.cpp constantPoolOop.hpp -vmStructs.cpp cpCacheKlass.hpp -vmStructs.cpp cpCacheOop.hpp -vmStructs.cpp defNewGeneration.hpp -vmStructs.cpp dictionary.hpp -vmStructs.cpp freeBlockDictionary.hpp -vmStructs.cpp genCollectedHeap.hpp -vmStructs.cpp generation.hpp -vmStructs.cpp generationSpec.hpp -vmStructs.cpp globalDefinitions.hpp -vmStructs.cpp globals.hpp -vmStructs.cpp hashtable.hpp -vmStructs.cpp heap.hpp -vmStructs.cpp immutableSpace.hpp -vmStructs.cpp instanceKlass.hpp -vmStructs.cpp instanceKlassKlass.hpp -vmStructs.cpp instanceOop.hpp -vmStructs.cpp interpreter.hpp -vmStructs.cpp java.hpp -vmStructs.cpp javaCalls.hpp -vmStructs.cpp javaClasses.hpp -vmStructs.cpp jvmtiAgentThread.hpp -vmStructs.cpp klass.hpp -vmStructs.cpp klassOop.hpp -vmStructs.cpp loaderConstraints.hpp -vmStructs.cpp location.hpp -vmStructs.cpp markOop.hpp -vmStructs.cpp markSweep.hpp -vmStructs.cpp methodDataKlass.hpp -vmStructs.cpp methodDataOop.hpp -vmStructs.cpp methodKlass.hpp -vmStructs.cpp methodOop.hpp -vmStructs.cpp mutableSpace.hpp -vmStructs.cpp nmethod.hpp -vmStructs.cpp objArrayKlass.hpp -vmStructs.cpp objArrayKlassKlass.hpp -vmStructs.cpp objArrayOop.hpp -vmStructs.cpp oop.inline.hpp -vmStructs.cpp oopMap.hpp -vmStructs.cpp pcDesc.hpp -vmStructs.cpp perfMemory.hpp -vmStructs.cpp permGen.hpp -vmStructs.cpp placeholders.hpp -vmStructs.cpp sharedRuntime.hpp -vmStructs.cpp space.hpp -vmStructs.cpp stubRoutines.hpp -vmStructs.cpp stubs.hpp -vmStructs.cpp symbolKlass.hpp -vmStructs.cpp symbolOop.hpp -vmStructs.cpp symbolTable.hpp -vmStructs.cpp systemDictionary.hpp -vmStructs.cpp tenuredGeneration.hpp -vmStructs.cpp thread_.inline.hpp -vmStructs.cpp typeArrayKlass.hpp -vmStructs.cpp typeArrayKlassKlass.hpp -vmStructs.cpp typeArrayOop.hpp -vmStructs.cpp universe.hpp -vmStructs.cpp virtualspace.hpp -vmStructs.cpp vmStructs.hpp -vmStructs.cpp vmStructs_.hpp -vmStructs.cpp vmStructs_.hpp -vmStructs.cpp vmreg.hpp -vmStructs.cpp watermark.hpp - -vmStructs.hpp debug.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_gc --- a/src/share/vm/includeDB_gc Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -// -// Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -collectedHeap.cpp collectedHeap.hpp -collectedHeap.cpp collectedHeap.inline.hpp -collectedHeap.cpp heapDumper.hpp -collectedHeap.cpp init.hpp -collectedHeap.cpp oop.inline.hpp -collectedHeap.cpp systemDictionary.hpp -collectedHeap.cpp thread_.inline.hpp -collectedHeap.cpp vmGCOperations.hpp - -collectedHeap.hpp allocation.hpp -collectedHeap.hpp barrierSet.hpp -collectedHeap.hpp gcCause.hpp -collectedHeap.hpp handles.hpp -collectedHeap.hpp perfData.hpp -collectedHeap.hpp safepoint.hpp - -collectedHeap.inline.hpp arrayOop.hpp -collectedHeap.inline.hpp collectedHeap.hpp -collectedHeap.inline.hpp copy.hpp -collectedHeap.inline.hpp jvmtiExport.hpp -collectedHeap.inline.hpp lowMemoryDetector.hpp -collectedHeap.inline.hpp sharedRuntime.hpp -collectedHeap.inline.hpp thread.hpp -collectedHeap.inline.hpp threadLocalAllocBuffer.inline.hpp -collectedHeap.inline.hpp universe.hpp -collectedHeap.inline.hpp thread_.inline.hpp -collectedHeap.inline.hpp sharedRuntime.hpp - -gcCause.hpp allocation.hpp - -gcCause.cpp gcCause.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_gc_parallel --- a/src/share/vm/includeDB_gc_parallel Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,184 +0,0 @@ -// -// Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -arguments.cpp compactibleFreeListSpace.hpp - -assembler_.cpp g1SATBCardTableModRefBS.hpp -assembler_.cpp g1CollectedHeap.inline.hpp -assembler_.cpp heapRegion.hpp - -collectorPolicy.cpp cmsAdaptiveSizePolicy.hpp -collectorPolicy.cpp cmsGCAdaptivePolicyCounters.hpp - -compiledICHolderKlass.cpp oop.pcgc.inline.hpp - -constantPoolKlass.cpp cardTableRS.hpp -constantPoolKlass.cpp oop.pcgc.inline.hpp -constantPoolKlass.cpp psPromotionManager.inline.hpp -constantPoolKlass.cpp psScavenge.inline.hpp -constantPoolKlass.cpp parOopClosures.inline.hpp - -constantPoolKlass.cpp cardTableRS.hpp -constantPoolKlass.cpp oop.pcgc.inline.hpp -constantPoolKlass.cpp psPromotionManager.inline.hpp -constantPoolKlass.cpp psScavenge.inline.hpp -constantPoolKlass.cpp parOopClosures.inline.hpp - -cpCacheKlass.cpp cardTableRS.hpp -cpCacheKlass.cpp oop.pcgc.inline.hpp -cpCacheKlass.cpp psPromotionManager.inline.hpp -cpCacheKlass.cpp psScavenge.inline.hpp -cpCacheKlass.cpp parOopClosures.inline.hpp - -genCollectedHeap.cpp concurrentMarkSweepThread.hpp -genCollectedHeap.cpp vmCMSOperations.hpp - -generationSpec.cpp asParNewGeneration.hpp -generationSpec.cpp cmsPermGen.hpp -generationSpec.cpp parNewGeneration.hpp - -heapDumper.cpp parallelScavengeHeap.hpp - -heapInspection.cpp parallelScavengeHeap.hpp - -instanceKlass.cpp heapRegionSeq.inline.hpp -instanceKlass.cpp g1CollectedHeap.inline.hpp -instanceKlass.cpp g1OopClosures.inline.hpp -instanceKlass.cpp oop.pcgc.inline.hpp -instanceKlass.cpp psPromotionManager.inline.hpp -instanceKlass.cpp psScavenge.inline.hpp -instanceKlass.cpp parOopClosures.inline.hpp - -instanceKlassKlass.cpp cardTableRS.hpp -instanceKlassKlass.cpp oop.pcgc.inline.hpp -instanceKlassKlass.cpp psPromotionManager.inline.hpp -instanceKlassKlass.cpp psScavenge.inline.hpp -instanceKlassKlass.cpp parOopClosures.inline.hpp - -instanceRefKlass.cpp heapRegionSeq.inline.hpp -instanceRefKlass.cpp g1CollectedHeap.inline.hpp -instanceRefKlass.cpp g1OopClosures.inline.hpp -instanceRefKlass.cpp oop.pcgc.inline.hpp -instanceRefKlass.cpp psPromotionManager.inline.hpp -instanceRefKlass.cpp psScavenge.inline.hpp -instanceRefKlass.cpp parOopClosures.inline.hpp - -java.cpp concurrentMarkSweepThread.hpp -java.cpp psScavenge.hpp -java.cpp psScavenge.inline.hpp - -jvmtiExport.cpp psMarkSweep.hpp - -jvmtiTagMap.cpp parallelScavengeHeap.hpp - -klassKlass.cpp oop.pcgc.inline.hpp - -klass.hpp cmsOopClosures.hpp -klass.hpp parOopClosures.hpp - -memoryPool.hpp compactibleFreeListSpace.hpp - -memoryService.cpp cmsPermGen.hpp -memoryService.cpp concurrentMarkSweepGeneration.hpp -memoryService.cpp g1CollectedHeap.inline.hpp -memoryService.cpp parNewGeneration.hpp -memoryService.cpp parallelScavengeHeap.hpp -memoryService.cpp psMemoryPool.hpp -memoryService.cpp psOldGen.hpp -memoryService.cpp psPermGen.hpp -memoryService.cpp psYoungGen.hpp - -methodDataKlass.cpp oop.pcgc.inline.hpp -methodDataKlass.cpp psScavenge.inline.hpp - -objArrayKlass.cpp heapRegionSeq.inline.hpp -objArrayKlass.cpp g1CollectedHeap.inline.hpp -objArrayKlass.cpp g1OopClosures.inline.hpp -objArrayKlass.cpp oop.pcgc.inline.hpp -objArrayKlass.cpp psCompactionManager.hpp -objArrayKlass.cpp psPromotionManager.inline.hpp -objArrayKlass.cpp psScavenge.inline.hpp -objArrayKlass.cpp parOopClosures.inline.hpp - -objArrayKlass.inline.hpp psCompactionManager.inline.hpp -objArrayKlass.inline.hpp psParallelCompact.hpp - -oop.pcgc.inline.hpp parNewGeneration.hpp -oop.pcgc.inline.hpp parallelScavengeHeap.hpp -oop.pcgc.inline.hpp psCompactionManager.hpp -oop.pcgc.inline.hpp psParallelCompact.hpp -oop.pcgc.inline.hpp psScavenge.hpp -oop.pcgc.inline.hpp psScavenge.inline.hpp - -oop.psgc.inline.hpp parallelScavengeHeap.hpp -oop.psgc.inline.hpp psScavenge.hpp -oop.psgc.inline.hpp psScavenge.inline.hpp - -psMemoryPool.cpp handles.inline.hpp -psMemoryPool.cpp javaCalls.hpp -psMemoryPool.cpp lowMemoryDetector.hpp -psMemoryPool.cpp management.hpp -psMemoryPool.cpp memoryManager.hpp -psMemoryPool.cpp oop.inline.hpp -psMemoryPool.cpp psMemoryPool.hpp -psMemoryPool.cpp psPermGen.hpp -psMemoryPool.cpp systemDictionary.hpp -psMemoryPool.cpp vmSymbols.hpp - -psMemoryPool.hpp defNewGeneration.hpp -psMemoryPool.hpp heap.hpp -psMemoryPool.hpp memoryUsage.hpp -psMemoryPool.hpp memoryPool.hpp -psMemoryPool.hpp mutableSpace.hpp -psMemoryPool.hpp psOldGen.hpp -psMemoryPool.hpp psYoungGen.hpp -psMemoryPool.hpp space.hpp - -safepoint.cpp concurrentGCThread.hpp -safepoint.cpp concurrentMarkSweepThread.hpp - -thread.cpp concurrentMarkSweepThread.hpp -thread.cpp pcTasks.hpp - -thread.hpp dirtyCardQueue.hpp -thread.hpp satbQueue.hpp - -universe.cpp parallelScavengeHeap.hpp -universe.cpp cmsCollectorPolicy.hpp -universe.cpp cmsAdaptiveSizePolicy.hpp - -vmStructs.cpp asPSOldGen.hpp -vmStructs.cpp asPSYoungGen.hpp -vmStructs.cpp cmsPermGen.hpp -vmStructs.cpp compactibleFreeListSpace.hpp -vmStructs.cpp concurrentMarkSweepGeneration.hpp -vmStructs.cpp concurrentMarkSweepThread.hpp -vmStructs.cpp parNewGeneration.hpp -vmStructs.cpp parallelScavengeHeap.hpp -vmStructs.cpp psOldGen.hpp -vmStructs.cpp psPermGen.hpp -vmStructs.cpp psVirtualspace.hpp -vmStructs.cpp psYoungGen.hpp -vmStructs.cpp vmStructs_cms.hpp -vmStructs.cpp vmStructs_parallelgc.hpp -vmStructs.cpp vmStructs_parNew.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_jvmti --- a/src/share/vm/includeDB_jvmti Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,259 +0,0 @@ -// -// Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -jvmtiAgentThread.hpp jvmtiEnv.hpp - -jvmtiClassFileReconstituter.cpp bytecodeStream.hpp -jvmtiClassFileReconstituter.cpp bytes_.hpp -jvmtiClassFileReconstituter.cpp jvmtiClassFileReconstituter.hpp -jvmtiClassFileReconstituter.cpp symbolTable.hpp -jvmtiClassFileReconstituter.cpp signature.hpp - -jvmtiClassFileReconstituter.hpp jvmtiEnv.hpp - -// jvmtiCodeBlobEvents is jck optional, please put deps in includeDB_features - -jvmtiEnter.cpp jvmtiEnter.hpp -jvmtiEnter.cpp jvmtiUtil.hpp - -jvmtiEnter.hpp interfaceSupport.hpp -jvmtiEnter.hpp jvmtiEnv.hpp -jvmtiEnter.hpp jvmtiImpl.hpp -jvmtiEnter.hpp resourceArea.hpp -jvmtiEnter.hpp systemDictionary.hpp - -jvmtiEnterTrace.cpp jvmtiEnter.hpp -jvmtiEnterTrace.cpp jvmtiUtil.hpp - -jvmtiEnv.cpp arguments.hpp -jvmtiEnv.cpp bytecodeStream.hpp -jvmtiEnv.cpp cpCacheOop.hpp -jvmtiEnv.cpp deoptimization.hpp -jvmtiEnv.cpp exceptions.hpp -jvmtiEnv.cpp instanceKlass.hpp -jvmtiEnv.cpp interfaceSupport.hpp -jvmtiEnv.cpp interpreter.hpp -jvmtiEnv.cpp javaCalls.hpp -jvmtiEnv.cpp jfieldIDWorkaround.hpp -jvmtiEnv.cpp jniCheck.hpp -jvmtiEnv.cpp jvm_misc.hpp -jvmtiEnv.cpp jvmtiAgentThread.hpp -jvmtiEnv.cpp jvmtiClassFileReconstituter.hpp -jvmtiEnv.cpp jvmtiCodeBlobEvents.hpp -jvmtiEnv.cpp jvmtiEnv.hpp -jvmtiEnv.cpp jvmtiExtensions.hpp -jvmtiEnv.cpp jvmtiGetLoadedClasses.hpp -jvmtiEnv.cpp jvmtiImpl.hpp -jvmtiEnv.cpp jvmtiManageCapabilities.hpp -jvmtiEnv.cpp jvmtiRedefineClasses.hpp -jvmtiEnv.cpp jvmtiTagMap.hpp -jvmtiEnv.cpp jvmtiThreadState.inline.hpp -jvmtiEnv.cpp jvmtiUtil.hpp -jvmtiEnv.cpp objectMonitor.inline.hpp -jvmtiEnv.cpp osThread.hpp -jvmtiEnv.cpp preserveException.hpp -jvmtiEnv.cpp reflectionUtils.hpp -jvmtiEnv.cpp resourceArea.hpp -jvmtiEnv.cpp signature.hpp -jvmtiEnv.cpp systemDictionary.hpp -jvmtiEnv.cpp threadService.hpp -jvmtiEnv.cpp thread_.inline.hpp -jvmtiEnv.cpp universe.inline.hpp -jvmtiEnv.cpp vframe.hpp -jvmtiEnv.cpp vmSymbols.hpp -jvmtiEnv.cpp vmThread.hpp - -jvmtiEnv.hpp jvmtiEnvBase.hpp - -jvmtiEnvBase.cpp biasedLocking.hpp -jvmtiEnvBase.cpp interfaceSupport.hpp -jvmtiEnvBase.cpp jfieldIDWorkaround.hpp -jvmtiEnvBase.cpp jvmtiEnv.hpp -jvmtiEnvBase.cpp jvmtiEnvBase.hpp -jvmtiEnvBase.cpp jvmtiEventController.inline.hpp -jvmtiEnvBase.cpp jvmtiExtensions.hpp -jvmtiEnvBase.cpp jvmtiImpl.hpp -jvmtiEnvBase.cpp jvmtiManageCapabilities.hpp -jvmtiEnvBase.cpp jvmtiTagMap.hpp -jvmtiEnvBase.cpp jvmtiThreadState.inline.hpp -jvmtiEnvBase.cpp objArrayKlass.hpp -jvmtiEnvBase.cpp objArrayOop.hpp -jvmtiEnvBase.cpp objectMonitor.hpp -jvmtiEnvBase.cpp objectMonitor.inline.hpp -jvmtiEnvBase.cpp signature.hpp -jvmtiEnvBase.cpp systemDictionary.hpp -jvmtiEnvBase.cpp vframe.hpp -jvmtiEnvBase.cpp vframe_hp.hpp -jvmtiEnvBase.cpp vmThread.hpp -jvmtiEnvBase.cpp vm_operations.hpp - -jvmtiEnvBase.hpp classLoader.hpp -jvmtiEnvBase.hpp fieldDescriptor.hpp -jvmtiEnvBase.hpp frame.hpp -jvmtiEnvBase.hpp growableArray.hpp -jvmtiEnvBase.hpp handles.inline.hpp -jvmtiEnvBase.hpp jvmtiEnvThreadState.hpp -jvmtiEnvBase.hpp jvmtiEventController.hpp -jvmtiEnvBase.hpp jvmtiThreadState.hpp -jvmtiEnvBase.hpp thread.hpp -jvmtiEnvBase.hpp vm_operations.hpp - -jvmtiEnvThreadState.cpp handles.hpp -jvmtiEnvThreadState.cpp handles.inline.hpp -jvmtiEnvThreadState.cpp interfaceSupport.hpp -jvmtiEnvThreadState.cpp interpreter.hpp -jvmtiEnvThreadState.cpp javaCalls.hpp -jvmtiEnvThreadState.cpp jvmtiEnv.hpp -jvmtiEnvThreadState.cpp jvmtiEnvThreadState.hpp -jvmtiEnvThreadState.cpp jvmtiEventController.inline.hpp -jvmtiEnvThreadState.cpp jvmtiImpl.hpp -jvmtiEnvThreadState.cpp resourceArea.hpp -jvmtiEnvThreadState.cpp signature.hpp -jvmtiEnvThreadState.cpp systemDictionary.hpp -jvmtiEnvThreadState.cpp vframe.hpp -jvmtiEnvThreadState.cpp vm_operations.hpp - -jvmtiEnvThreadState.hpp allocation.hpp -jvmtiEnvThreadState.hpp allocation.inline.hpp -jvmtiEnvThreadState.hpp globalDefinitions.hpp -jvmtiEnvThreadState.hpp growableArray.hpp -jvmtiEnvThreadState.hpp instanceKlass.hpp -jvmtiEnvThreadState.hpp jvmti.h -jvmtiEnvThreadState.hpp jvmtiEventController.hpp - -jvmtiEventController.cpp frame.hpp -jvmtiEventController.cpp interpreter.hpp -jvmtiEventController.cpp jvmtiEnv.hpp -jvmtiEventController.cpp jvmtiEventController.hpp -jvmtiEventController.cpp jvmtiEventController.inline.hpp -jvmtiEventController.cpp jvmtiExport.hpp -jvmtiEventController.cpp jvmtiImpl.hpp -jvmtiEventController.cpp jvmtiThreadState.inline.hpp -jvmtiEventController.cpp resourceArea.hpp -jvmtiEventController.cpp thread.hpp -jvmtiEventController.cpp vframe.hpp -jvmtiEventController.cpp vframe_hp.hpp -jvmtiEventController.cpp vmThread.hpp -jvmtiEventController.cpp vm_operations.hpp - -jvmtiEventController.hpp allocation.hpp -jvmtiEventController.hpp allocation.inline.hpp -jvmtiEventController.hpp globalDefinitions.hpp -jvmtiEventController.hpp jvmti.h - -jvmtiEventController.inline.hpp jvmtiEventController.hpp -jvmtiEventController.inline.hpp jvmtiImpl.hpp -jvmtiEventController.inline.hpp jvmtiUtil.hpp - -jvmtiExport.cpp arguments.hpp -jvmtiExport.cpp attachListener.hpp -jvmtiExport.cpp handles.hpp -jvmtiExport.cpp interfaceSupport.hpp -jvmtiExport.cpp interpreter.hpp -jvmtiExport.cpp jvmtiCodeBlobEvents.hpp -jvmtiExport.cpp jvmtiEnv.hpp -jvmtiExport.cpp jvmtiEventController.hpp -jvmtiExport.cpp jvmtiEventController.inline.hpp -jvmtiExport.cpp jvmtiExport.hpp -jvmtiExport.cpp jvmtiImpl.hpp -jvmtiExport.cpp jvmtiManageCapabilities.hpp -jvmtiExport.cpp jvmtiTagMap.hpp -jvmtiExport.cpp jvmtiThreadState.inline.hpp -jvmtiExport.cpp nmethod.hpp -jvmtiExport.cpp objArrayKlass.hpp -jvmtiExport.cpp objArrayOop.hpp -jvmtiExport.cpp objectMonitor.inline.hpp -jvmtiExport.cpp pcDesc.hpp -jvmtiExport.cpp resourceArea.hpp -jvmtiExport.cpp scopeDesc.hpp -jvmtiExport.cpp serviceUtil.hpp -jvmtiExport.cpp systemDictionary.hpp -jvmtiExport.cpp thread.hpp -jvmtiExport.cpp vframe.hpp - -// jvmtiExtensions is jck optional, please put deps in includeDB_features - -jvmtiGetLoadedClasses.cpp jvmtiGetLoadedClasses.hpp -jvmtiGetLoadedClasses.cpp systemDictionary.hpp -jvmtiGetLoadedClasses.cpp thread.hpp -jvmtiGetLoadedClasses.cpp universe.inline.hpp - -jvmtiGetLoadedClasses.hpp jvmtiEnv.hpp - -// jvmtiImpl is jck optional, please put deps in includeDB_features - -jvmtiManageCapabilities.cpp jvmtiEnv.hpp -jvmtiManageCapabilities.cpp jvmtiExport.hpp -jvmtiManageCapabilities.cpp jvmtiManageCapabilities.hpp - -jvmtiManageCapabilities.hpp allocation.hpp -jvmtiManageCapabilities.hpp jvmti.h - -jvmtiRedefineClasses.cpp bitMap.inline.hpp -jvmtiRedefineClasses.cpp codeCache.hpp -jvmtiRedefineClasses.cpp deoptimization.hpp -jvmtiRedefineClasses.cpp gcLocker.hpp -jvmtiRedefineClasses.cpp jvmtiImpl.hpp -jvmtiRedefineClasses.cpp jvmtiRedefineClasses.hpp -jvmtiRedefineClasses.cpp klassVtable.hpp -jvmtiRedefineClasses.cpp methodComparator.hpp -jvmtiRedefineClasses.cpp oopMapCache.hpp -jvmtiRedefineClasses.cpp relocator.hpp -jvmtiRedefineClasses.cpp rewriter.hpp -jvmtiRedefineClasses.cpp systemDictionary.hpp -jvmtiRedefineClasses.cpp universe.inline.hpp -jvmtiRedefineClasses.cpp verifier.hpp - -jvmtiRedefineClasses.hpp jvmtiEnv.hpp -jvmtiRedefineClasses.hpp jvmtiRedefineClassesTrace.hpp -jvmtiRedefineClasses.hpp objArrayKlass.hpp -jvmtiRedefineClasses.hpp objArrayOop.hpp -jvmtiRedefineClasses.hpp oopFactory.hpp -jvmtiRedefineClasses.hpp resourceArea.hpp -jvmtiRedefineClasses.hpp vm_operations.hpp - -// jvmtiTagMap is jck optional, please put deps in includeDB_features -// jvmtiTrace is jck optional, please put deps in includeDB_features - -jvmtiThreadState.cpp gcLocker.hpp -jvmtiThreadState.cpp jvmtiEnv.hpp -jvmtiThreadState.cpp jvmtiEventController.inline.hpp -jvmtiThreadState.cpp jvmtiImpl.hpp -jvmtiThreadState.cpp jvmtiThreadState.inline.hpp -jvmtiThreadState.cpp resourceArea.hpp -jvmtiThreadState.cpp vframe.hpp - -jvmtiThreadState.inline.hpp jvmtiEnvThreadState.hpp -jvmtiThreadState.inline.hpp jvmtiThreadState.hpp - -jvmtiUtil.cpp exceptions.hpp -jvmtiUtil.cpp handles.hpp -jvmtiUtil.cpp handles.inline.hpp -jvmtiUtil.cpp interfaceSupport.hpp -jvmtiUtil.cpp jvmtiUtil.hpp -jvmtiUtil.cpp vm_operations.hpp - -jvmtiUtil.hpp jvmti.h -jvmtiUtil.hpp jvmtiEventController.hpp -jvmtiUtil.hpp resourceArea.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_shark --- a/src/share/vm/includeDB_shark Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,371 +0,0 @@ -// -// Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. -// Copyright 2008, 2009, 2010 Red Hat, Inc. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// 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. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -ciMethod.cpp ciTypeFlow.hpp -ciMethod.cpp methodOop.hpp - -ciTypeFlow.cpp allocation.inline.hpp -ciTypeFlow.cpp bytecode.hpp -ciTypeFlow.cpp bytecodes.hpp -ciTypeFlow.cpp ciConstant.hpp -ciTypeFlow.cpp ciField.hpp -ciTypeFlow.cpp ciMethod.hpp -ciTypeFlow.cpp ciMethodData.hpp -ciTypeFlow.cpp ciObjArrayKlass.hpp -ciTypeFlow.cpp ciStreams.hpp -ciTypeFlow.cpp ciTypeArrayKlass.hpp -ciTypeFlow.cpp ciTypeFlow.hpp -ciTypeFlow.cpp compileLog.hpp -ciTypeFlow.cpp deoptimization.hpp -ciTypeFlow.cpp growableArray.hpp -ciTypeFlow.cpp shark_globals.hpp - -ciTypeFlow.hpp ciEnv.hpp -ciTypeFlow.hpp ciKlass.hpp -ciTypeFlow.hpp ciMethodBlocks.hpp - -cppInterpreter_.cpp shark_globals.hpp - -compileBroker.cpp sharkCompiler.hpp - -disassembler.cpp sharkEntry.hpp - -globals.hpp shark_globals_.hpp - -globals.cpp shark_globals.hpp - -llvmValue.hpp llvmHeaders.hpp -llvmValue.hpp sharkContext.hpp -llvmValue.hpp sharkType.hpp - -nmethod.cpp sharkCompiler.hpp - -sharedRuntime_.cpp compileBroker.hpp -sharedRuntime_.cpp sharkCompiler.hpp - -shark_globals.cpp shark_globals.hpp - -shark_globals.hpp shark_globals_.hpp -shark_globals.hpp globals.hpp - -sharkBlock.cpp debug.hpp -sharkBlock.cpp bytecodes.hpp -sharkBlock.cpp llvmHeaders.hpp -sharkBlock.cpp llvmValue.hpp -sharkBlock.cpp shark_globals.hpp -sharkBlock.cpp sharkBlock.hpp -sharkBlock.cpp sharkBuilder.hpp -sharkBlock.cpp sharkConstant.hpp -sharkBlock.cpp sharkState.hpp -sharkBlock.cpp sharkValue.hpp - -sharkBlock.hpp allocation.hpp -sharkBlock.hpp ciMethod.hpp -sharkBlock.hpp ciStreams.hpp -sharkBlock.hpp debug.hpp -sharkBlock.hpp llvmHeaders.hpp -sharkBlock.hpp sharkBuilder.hpp -sharkBlock.hpp sharkConstant.hpp -sharkBlock.hpp sharkInvariants.hpp -sharkBlock.hpp sharkState.hpp -sharkBlock.hpp sharkValue.hpp - -sharkBuilder.cpp ciMethod.hpp -sharkBuilder.cpp debug.hpp -sharkBuilder.cpp llvmHeaders.hpp -sharkBuilder.cpp llvmValue.hpp -sharkBuilder.cpp methodOop.hpp -sharkBuilder.cpp os.hpp -sharkBuilder.cpp resourceArea.hpp -sharkBuilder.cpp llvmHeaders.hpp -sharkBuilder.cpp sharkBuilder.hpp -sharkBuilder.cpp sharkContext.hpp -sharkBuilder.cpp sharkRuntime.hpp -sharkBuilder.cpp synchronizer.hpp -sharkBuilder.cpp thread.hpp - -sharkBuilder.hpp barrierSet.hpp -sharkBuilder.hpp cardTableModRefBS.hpp -sharkBuilder.hpp ciType.hpp -sharkBuilder.hpp debug.hpp -sharkBuilder.hpp llvmHeaders.hpp -sharkBuilder.hpp llvmValue.hpp -sharkBuilder.hpp sizes.hpp -sharkBuilder.hpp sharkCodeBuffer.hpp -sharkBuilder.hpp sharkType.hpp -sharkBuilder.hpp sharkValue.hpp -sharkBuilder.hpp sharkEntry.hpp - -sharkCacheDecache.cpp ciMethod.hpp -sharkCacheDecache.cpp debugInfoRec.hpp -sharkCacheDecache.cpp llvmValue.hpp -sharkCacheDecache.cpp sharkBuilder.hpp -sharkCacheDecache.cpp sharkCacheDecache.hpp -sharkCacheDecache.cpp sharkFunction.hpp -sharkCacheDecache.cpp sharkState.hpp - -sharkCacheDecache.hpp ciMethod.hpp -sharkCacheDecache.hpp debugInfoRec.hpp -sharkCacheDecache.hpp sharkBuilder.hpp -sharkCacheDecache.hpp sharkFunction.hpp -sharkCacheDecache.hpp sharkStateScanner.hpp - -sharkCodeBuffer.hpp allocation.hpp -sharkCodeBuffer.hpp codeBuffer.hpp -sharkCodeBuffer.hpp llvmHeaders.hpp - -sharkCompiler.cpp abstractCompiler.hpp -sharkCompiler.cpp ciEnv.hpp -sharkCompiler.cpp ciMethod.hpp -sharkCompiler.cpp debug.hpp -sharkCompiler.cpp debugInfoRec.hpp -sharkCompiler.cpp dependencies.hpp -sharkCompiler.cpp exceptionHandlerTable.hpp -sharkCompiler.cpp llvmHeaders.hpp -sharkCompiler.cpp oopMap.hpp -sharkCompiler.cpp oopRecorder.hpp -sharkCompiler.cpp shark_globals.hpp -sharkCompiler.cpp sharkBuilder.hpp -sharkCompiler.cpp sharkCodeBuffer.hpp -sharkCompiler.cpp sharkCompiler.hpp -sharkCompiler.cpp sharkContext.hpp -sharkCompiler.cpp sharkEntry.hpp -sharkCompiler.cpp sharkFunction.hpp -sharkCompiler.cpp sharkMemoryManager.hpp -sharkCompiler.cpp sharkNativeWrapper.hpp - -sharkCompiler.hpp abstractCompiler.hpp -sharkCompiler.hpp ciEnv.hpp -sharkCompiler.hpp ciMethod.hpp -sharkCompiler.hpp compileBroker.hpp -sharkCompiler.hpp llvmHeaders.hpp -sharkCompiler.hpp sharkMemoryManager.hpp - -sharkContext.cpp arrayOop.hpp -sharkContext.cpp globalDefinitions.hpp -sharkContext.cpp llvmHeaders.hpp -sharkContext.cpp oop.hpp -sharkContext.cpp sharkContext.hpp - -sharkContext.hpp llvmHeaders.hpp -sharkContext.hpp sharkCompiler.hpp - -sharkConstant.cpp ciInstance.hpp -sharkConstant.cpp ciStreams.hpp -sharkConstant.cpp sharkBuilder.hpp -sharkConstant.cpp sharkConstant.hpp -sharkConstant.cpp sharkValue.hpp - -sharkConstant.hpp allocation.hpp -sharkConstant.hpp ciStreams.hpp -sharkConstant.hpp sharkBuilder.hpp -sharkConstant.hpp sharkValue.hpp - -sharkEntry.hpp llvmHeaders.hpp - -sharkFunction.cpp allocation.hpp -sharkFunction.cpp ciTypeFlow.hpp -sharkFunction.cpp debug.hpp -sharkFunction.cpp llvmHeaders.hpp -sharkFunction.cpp llvmValue.hpp -sharkFunction.cpp shark_globals.hpp -sharkFunction.cpp sharkBuilder.hpp -sharkFunction.cpp sharkEntry.hpp -sharkFunction.cpp sharkFunction.hpp -sharkFunction.cpp sharkState.hpp -sharkFunction.cpp sharkTopLevelBlock.hpp - -sharkFunction.hpp allocation.hpp -sharkFunction.hpp ciEnv.hpp -sharkFunction.hpp ciStreams.hpp -sharkFunction.hpp ciTypeFlow.hpp -sharkFunction.hpp llvmHeaders.hpp -sharkFunction.hpp llvmValue.hpp -sharkFunction.hpp sharkBuilder.hpp -sharkFunction.hpp sharkContext.hpp -sharkFunction.hpp sharkInvariants.hpp -sharkFunction.hpp sharkStack.hpp - -sharkInliner.cpp allocation.hpp -sharkInliner.cpp bytecodes.hpp -sharkInliner.cpp ciField.hpp -sharkInliner.cpp ciMethod.hpp -sharkInliner.cpp ciStreams.hpp -sharkInliner.cpp shark_globals.hpp -sharkInliner.cpp sharkBlock.hpp -sharkInliner.cpp sharkConstant.hpp -sharkInliner.cpp sharkInliner.hpp -sharkInliner.cpp sharkIntrinsics.hpp -sharkInliner.cpp sharkState.hpp -sharkInliner.cpp sharkValue.hpp - -sharkInliner.hpp allocation.hpp -sharkInliner.hpp ciMethod.hpp -sharkInliner.hpp llvmHeaders.hpp -sharkInliner.hpp sharkState.hpp - -sharkIntrinsics.cpp ciMethod.hpp -sharkIntrinsics.cpp llvmHeaders.hpp -sharkIntrinsics.cpp shark_globals.hpp -sharkIntrinsics.cpp sharkIntrinsics.hpp -sharkIntrinsics.cpp sharkState.hpp -sharkIntrinsics.cpp sharkValue.hpp - -sharkIntrinsics.hpp allocation.hpp -sharkIntrinsics.hpp ciMethod.hpp -sharkIntrinsics.hpp llvmHeaders.hpp -sharkIntrinsics.hpp sharkState.hpp - -sharkInvariants.cpp sharkInvariants.hpp - -sharkInvariants.hpp allocation.hpp -sharkInvariants.hpp ciEnv.hpp -sharkInvariants.hpp ciMethod.hpp -sharkInvariants.hpp ciInstanceKlass.hpp -sharkInvariants.hpp ciTypeFlow.hpp -sharkInvariants.hpp debugInfoRec.hpp -sharkInvariants.hpp dependencies.hpp -sharkInvariants.hpp llvmHeaders.hpp -sharkInvariants.hpp sharkBuilder.hpp - -sharkMemoryManager.hpp llvmHeaders.hpp -sharkMemoryManager.hpp sharkEntry.hpp - -sharkMemoryManager.cpp llvmHeaders.hpp -sharkMemoryManager.cpp sharkEntry.hpp -sharkMemoryManager.cpp sharkMemoryManager.hpp - -sharkNativeWrapper.cpp llvmHeaders.hpp -sharkNativeWrapper.cpp sharkNativeWrapper.hpp -sharkNativeWrapper.cpp sharkType.hpp - -sharkNativeWrapper.hpp handles.hpp -sharkNativeWrapper.hpp llvmHeaders.hpp -sharkNativeWrapper.hpp sharkBuilder.hpp -sharkNativeWrapper.hpp sharkContext.hpp -sharkNativeWrapper.hpp sharkInvariants.hpp -sharkNativeWrapper.hpp sharkStack.hpp - -sharkRuntime.cpp biasedLocking.hpp -sharkRuntime.cpp deoptimization.hpp -sharkRuntime.cpp llvmHeaders.hpp -sharkRuntime.cpp klassOop.hpp -sharkRuntime.cpp sharkRuntime.hpp -sharkRuntime.cpp stack_.inline.hpp -sharkRuntime.cpp thread.hpp - -sharkRuntime.hpp allocation.hpp -sharkRuntime.hpp llvmHeaders.hpp -sharkRuntime.hpp llvmValue.hpp -sharkRuntime.hpp klassOop.hpp -sharkRuntime.hpp thread.hpp - -sharkStack.cpp llvmHeaders.hpp -sharkStack.cpp sharkFunction.hpp -sharkStack.cpp sharkNativeWrapper.hpp -sharkStack.cpp sharkStack.hpp -sharkStack.cpp sharkType.hpp - -sharkStack.hpp llvmHeaders.hpp -sharkStack.hpp sharkInvariants.hpp -sharkStack.hpp sharkType.hpp - -sharkState.cpp allocation.hpp -sharkState.cpp ciType.hpp -sharkState.cpp ciTypeFlow.hpp -sharkState.cpp sharkBuilder.hpp -sharkState.cpp sharkCacheDecache.hpp -sharkState.cpp sharkState.hpp -sharkState.cpp sharkTopLevelBlock.hpp -sharkState.cpp sharkType.hpp -sharkState.cpp sharkValue.hpp - -sharkState.hpp allocation.hpp -sharkState.hpp ciMethod.hpp -sharkState.hpp llvmHeaders.hpp -sharkState.hpp sharkBuilder.hpp -sharkState.hpp sharkInvariants.hpp -sharkState.hpp sharkValue.hpp - -sharkStateScanner.cpp sharkState.hpp -sharkStateScanner.cpp sharkStateScanner.hpp - -sharkStateScanner.hpp allocation.hpp -sharkStateScanner.hpp llvmHeaders.hpp -sharkStateScanner.hpp sharkFunction.hpp -sharkStateScanner.hpp sharkInvariants.hpp - -sharkTopLevelBlock.cpp allocation.hpp -sharkTopLevelBlock.cpp bytecodes.hpp -sharkTopLevelBlock.cpp ciField.hpp -sharkTopLevelBlock.cpp ciInstance.hpp -sharkTopLevelBlock.cpp ciObjArrayKlass.hpp -sharkTopLevelBlock.cpp ciStreams.hpp -sharkTopLevelBlock.cpp ciType.hpp -sharkTopLevelBlock.cpp ciTypeFlow.hpp -sharkTopLevelBlock.cpp debug.hpp -sharkTopLevelBlock.cpp deoptimization.hpp -sharkTopLevelBlock.cpp llvmHeaders.hpp -sharkTopLevelBlock.cpp llvmValue.hpp -sharkTopLevelBlock.cpp shark_globals.hpp -sharkTopLevelBlock.cpp sharkCacheDecache.hpp -sharkTopLevelBlock.cpp sharkTopLevelBlock.hpp -sharkTopLevelBlock.cpp sharkBuilder.hpp -sharkTopLevelBlock.cpp sharkConstant.hpp -sharkTopLevelBlock.cpp sharkInliner.hpp -sharkTopLevelBlock.cpp sharkState.hpp -sharkTopLevelBlock.cpp sharkValue.hpp - -sharkTopLevelBlock.hpp allocation.hpp -sharkTopLevelBlock.hpp bytecodes.hpp -sharkTopLevelBlock.hpp ciStreams.hpp -sharkTopLevelBlock.hpp ciType.hpp -sharkTopLevelBlock.hpp ciTypeFlow.hpp -sharkTopLevelBlock.hpp llvmHeaders.hpp -sharkTopLevelBlock.hpp sharkBlock.hpp -sharkTopLevelBlock.hpp sharkBuilder.hpp -sharkTopLevelBlock.hpp sharkFunction.hpp -sharkTopLevelBlock.hpp sharkState.hpp -sharkTopLevelBlock.hpp sharkValue.hpp - -sharkType.hpp allocation.hpp -sharkType.hpp ciType.hpp -sharkType.hpp globalDefinitions.hpp -sharkType.hpp llvmHeaders.hpp -sharkType.hpp sharkContext.hpp - -sharkValue.cpp ciType.hpp -sharkValue.cpp llvmHeaders.hpp -sharkValue.cpp llvmValue.hpp -sharkValue.cpp sharkBuilder.hpp -sharkValue.cpp sharkValue.hpp - -sharkValue.hpp allocation.hpp -sharkValue.hpp ciType.hpp -sharkValue.hpp llvmHeaders.hpp -sharkValue.hpp llvmValue.hpp -sharkValue.hpp sharkType.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/includeDB_zero --- a/src/share/vm/includeDB_zero Tue Nov 30 18:07:18 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -// -// Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. -// Copyright 2009, 2010 Red Hat, Inc. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// 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. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -cppInterpreter_.cpp stack_.inline.hpp - -entryFrame_.hpp javaCalls.hpp -entryFrame_.hpp stack_.hpp - -fakeStubFrame_.hpp stack_.hpp - -frame.hpp stack_.hpp - -frame.inline.hpp fakeStubFrame_.hpp -frame.inline.hpp entryFrame_.hpp -frame.inline.hpp interpreterFrame_.hpp -frame.inline.hpp sharkFrame_.hpp - -frame_.cpp interpreterRuntime.hpp -frame_.cpp scopeDesc.hpp - -interpreter.hpp entry_.hpp - -interpreterFrame_.hpp bytecodeInterpreter.hpp -interpreterFrame_.hpp methodOop.hpp -interpreterFrame_.hpp stack_.hpp -interpreterFrame_.hpp thread.hpp - -interpreterRT_.cpp stack_.inline.hpp - -sharkFrame_.hpp methodOop.hpp -sharkFrame_.hpp stack_.hpp - -stack_.hpp sizes.hpp - -stack_.inline.hpp stack_.hpp -stack_.inline.hpp thread.hpp - -stack_.cpp interpreterRuntime.hpp -stack_.cpp stack_.hpp -stack_.cpp stack_.inline.hpp - -stubGenerator_.cpp stack_.inline.hpp - -thread.hpp stack_.hpp diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/abstractInterpreter.hpp --- a/src/share/vm/interpreter/abstractInterpreter.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/abstractInterpreter.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,35 @@ * */ +#ifndef SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP +#define SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP + +#include "code/stubs.hpp" +#include "interpreter/bytecodes.hpp" +#include "runtime/vmThread.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_ARCH_MODEL_x86_32 +# include "interp_masm_x86_32.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_x86_64 +# include "interp_masm_x86_64.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_sparc +# include "interp_masm_sparc.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_zero +# include "interp_masm_zero.hpp" +#endif +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif + // This file contains the platform-independent parts // of the abstract interpreter and the abstract interpreter generator. @@ -256,3 +285,5 @@ public: AbstractInterpreterGenerator(StubQueue* _code); }; + +#endif // SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/bytecode.cpp --- a/src/share/vm/interpreter/bytecode.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/bytecode.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,8 +22,15 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecode.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecode.hpp" +#include "interpreter/linkResolver.hpp" +#include "oops/constantPoolOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/fieldType.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/signature.hpp" // Implementation of Bytecode diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/bytecode.hpp --- a/src/share/vm/interpreter/bytecode.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/bytecode.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,22 @@ * */ +#ifndef SHARE_VM_INTERPRETER_BYTECODE_HPP +#define SHARE_VM_INTERPRETER_BYTECODE_HPP + +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.hpp" +#include "oops/methodOop.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif + // Base class for different kinds of abstractions working // relative to an objects 'this' pointer. @@ -431,3 +447,5 @@ DEBUG_ONLY(b->verify()); return b; } + +#endif // SHARE_VM_INTERPRETER_BYTECODE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/bytecodeHistogram.cpp --- a/src/share/vm/interpreter/bytecodeHistogram.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/bytecodeHistogram.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_bytecodeHistogram.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/os.hpp" +#include "utilities/growableArray.hpp" // ------------------------------------------------------------------------------------------------ // Non-product code diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/bytecodeHistogram.hpp --- a/src/share/vm/interpreter/bytecodeHistogram.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/bytecodeHistogram.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP +#define SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP + +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.hpp" + // BytecodeCounter counts the number of bytecodes executed class BytecodeCounter: AllStatic { @@ -90,3 +96,5 @@ // Profile printing static void print(float cutoff = 0.01F) PRODUCT_RETURN; // cutoff in percent }; + +#endif // SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/bytecodeInterpreter.cpp --- a/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,10 +22,46 @@ * */ +// no precompiled headers +#include "classfile/vmSymbols.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/resourceArea.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/threadCritical.hpp" +#include "utilities/exceptions.hpp" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "orderAccess_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_sparc +# include "orderAccess_linux_sparc.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_zero +# include "orderAccess_linux_zero.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "orderAccess_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_sparc +# include "orderAccess_solaris_sparc.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_windows_x86 +# include "orderAccess_windows_x86.inline.hpp" +#endif + // no precompiled headers -#include "incls/_bytecodeInterpreter.cpp.incl" - #ifdef CC_INTERP /* diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/bytecodeInterpreter.hpp --- a/src/share/vm/interpreter/bytecodeInterpreter.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/bytecodeInterpreter.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -22,6 +22,26 @@ * */ +#ifndef SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP +#define SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP + +#include "memory/allocation.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/frame.hpp" +#include "runtime/globals.hpp" +#include "utilities/globalDefinitions.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif + #ifdef CC_INTERP // CVM definitions find hotspot equivalents... @@ -558,8 +578,19 @@ #endif // PRODUCT // Platform fields/methods -# include "incls/_bytecodeInterpreter_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "bytecodeInterpreter_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytecodeInterpreter_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytecodeInterpreter_zero.hpp" +#endif + }; // BytecodeInterpreter #endif // CC_INTERP + +#endif // SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/bytecodeInterpreter.inline.hpp --- a/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp Tue Nov 30 18:10:20 2010 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP +#define SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP + +#include "interpreter/bytecodeInterpreter.hpp" +#include "runtime/stubRoutines.hpp" + // This file holds platform-independent bodies of inline functions for the C++ based interpreter #ifdef CC_INTERP @@ -37,5 +43,16 @@ #endif // Platform dependent data manipulation -# include "incls/_bytecodeInterpreter_pd.inline.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "bytecodeInterpreter_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytecodeInterpreter_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytecodeInterpreter_zero.inline.hpp" +#endif + #endif // CC_INTERP + +#endif // SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP diff -r c7db7adb83b4 -r 2ca799d83d3c src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl --- a/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl Tue Nov 30 18:07:18 2010 -0800 +++ b/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl Tue Nov 30 18:10:20 2010 -0800 @@ -1,6 +1,6 @@