Merge
This commit is contained in:
commit
3adb76fbc1
@ -96,3 +96,4 @@ a12a9e78df8a9d534da0b4a244ed68f0de0bd58e jdk7-b118
|
||||
661360bef6ccad6c119f067f5829b207de80c936 jdk7-b119
|
||||
366ff0b6d2151595629806b033e2e1497e3a55d4 jdk7-b120
|
||||
2c2d4f88637b488014c37e1a2eb401f68bca8838 jdk7-b121
|
||||
f1591eed71f64f6eba79fb7426f5616cc4dfea73 jdk7-b122
|
||||
|
2
README
2
README
@ -26,6 +26,6 @@ Simple Build Instructions:
|
||||
gnumake all
|
||||
The resulting JDK image should be found in build/*/j2sdk-image
|
||||
|
||||
where gnumake is GNU make 3.78.1 or newer, /usr/bin/make on Linux and
|
||||
where gnumake is GNU make 3.81 or newer, /usr/bin/make on Linux and
|
||||
/usr/sfw/bin/gmake or /opt/sfw/bin/gmake on Solaris.
|
||||
|
||||
|
@ -524,7 +524,7 @@
|
||||
A few notes about using GNU make:
|
||||
<ul>
|
||||
<li>
|
||||
In general, you need GNU make version 3.78.1 or newer.
|
||||
In general, you need GNU make version 3.81 or newer.
|
||||
</li>
|
||||
<li>
|
||||
Place the location of the GNU make binary in the <tt>PATH</tt>.
|
||||
|
@ -134,3 +134,5 @@ bdbc48857210a509b3c50a3291ecb9dd6a72e016 jdk7-b115
|
||||
5484e7c53fa7da5e869902437ee08a9ae10c1c69 jdk7-b119
|
||||
f5603a6e50422046ebc0d2f1671d55cb8f1bf1e9 jdk7-b120
|
||||
3f3653ab7af8dc1ddb9fa75dad56bf94f89e81a8 jdk7-b121
|
||||
3a548dc9cb456110ca8fc1514441a8c3bda0014d jdk7-b122
|
||||
5484e7c53fa7da5e869902437ee08a9ae10c1c69 hs20-b03
|
||||
|
@ -121,15 +121,13 @@ static bool process_get_lwp_regs(struct ps_prochandle* ph, pid_t pid, struct use
|
||||
#define ptrace_getregs(request, pid, addr, data) ptrace(request, pid, data, addr)
|
||||
#endif
|
||||
|
||||
#ifdef _LP64
|
||||
#ifdef PTRACE_GETREGS64
|
||||
#if defined(_LP64) && defined(PTRACE_GETREGS64)
|
||||
#define PTRACE_GETREGS_REQ PTRACE_GETREGS64
|
||||
#endif
|
||||
#else
|
||||
#if defined(PTRACE_GETREGS) || defined(PT_GETREGS)
|
||||
#elif defined(PTRACE_GETREGS)
|
||||
#define PTRACE_GETREGS_REQ PTRACE_GETREGS
|
||||
#elif defined(PT_GETREGS)
|
||||
#define PTRACE_GETREGS_REQ PT_GETREGS
|
||||
#endif
|
||||
#endif /* _LP64 */
|
||||
|
||||
#ifdef PTRACE_GETREGS_REQ
|
||||
if (ptrace_getregs(PTRACE_GETREGS_REQ, pid, user, NULL) < 0) {
|
||||
|
@ -60,10 +60,7 @@ public class ConstantPool extends Oop implements ClassConstants {
|
||||
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();
|
||||
}
|
||||
@ -83,10 +80,7 @@ public class ConstantPool extends Oop implements ClassConstants {
|
||||
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;
|
||||
|
||||
@ -296,20 +290,23 @@ public class ConstantPool extends Oop implements ClassConstants {
|
||||
}
|
||||
|
||||
/** Lookup for multi-operand (InvokeDynamic) entries. */
|
||||
public int[] getMultiOperandsAt(int i) {
|
||||
public short[] getBootstrapSpecifierAt(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
|
||||
if (getTagAt(i).value() == JVM_CONSTANT_InvokeDynamicTrans)
|
||||
return null;
|
||||
int bsmSpec = extractLowShortFromInt(this.getIntAt(i));
|
||||
TypeArray operands = getOperands();
|
||||
if (operands == null) return null; // safety first
|
||||
int length = operands.getIntAt(countPos);
|
||||
int[] values = new int[length];
|
||||
for (int j = 0; j < length; j++) {
|
||||
values[j] = operands.getIntAt(basePos+j);
|
||||
int basePos = VM.getVM().buildIntFromShorts(operands.getShortAt(bsmSpec * 2 + 0),
|
||||
operands.getShortAt(bsmSpec * 2 + 1));
|
||||
int argv = basePos + INDY_ARGV_OFFSET;
|
||||
int argc = operands.getShortAt(basePos + INDY_ARGC_OFFSET);
|
||||
int endPos = argv + argc;
|
||||
short[] values = new short[endPos - basePos];
|
||||
for (int j = 0; j < values.length; j++) {
|
||||
values[j] = operands.getShortAt(basePos+j);
|
||||
}
|
||||
return values;
|
||||
}
|
||||
@ -334,6 +331,7 @@ public class ConstantPool extends Oop implements ClassConstants {
|
||||
case JVM_CONSTANT_MethodHandle: return "JVM_CONSTANT_MethodHandle";
|
||||
case JVM_CONSTANT_MethodType: return "JVM_CONSTANT_MethodType";
|
||||
case JVM_CONSTANT_InvokeDynamic: return "JVM_CONSTANT_InvokeDynamic";
|
||||
case JVM_CONSTANT_InvokeDynamicTrans: return "JVM_CONSTANT_InvokeDynamic/transitional";
|
||||
case JVM_CONSTANT_Invalid: return "JVM_CONSTANT_Invalid";
|
||||
case JVM_CONSTANT_UnresolvedClass: return "JVM_CONSTANT_UnresolvedClass";
|
||||
case JVM_CONSTANT_UnresolvedClassInError: return "JVM_CONSTANT_UnresolvedClassInError";
|
||||
@ -393,6 +391,7 @@ public class ConstantPool extends Oop implements ClassConstants {
|
||||
case JVM_CONSTANT_MethodHandle:
|
||||
case JVM_CONSTANT_MethodType:
|
||||
case JVM_CONSTANT_InvokeDynamic:
|
||||
case JVM_CONSTANT_InvokeDynamicTrans:
|
||||
visitor.doInt(new IntField(new NamedFieldIdentifier(nameForTag(ctag)), indexOffset(index), true), true);
|
||||
break;
|
||||
}
|
||||
@ -556,19 +555,16 @@ public class ConstantPool extends Oop implements ClassConstants {
|
||||
break;
|
||||
}
|
||||
|
||||
case JVM_CONSTANT_InvokeDynamicTrans:
|
||||
case JVM_CONSTANT_InvokeDynamic: {
|
||||
dos.writeByte(cpConstType);
|
||||
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
|
||||
+ ", argc = " + argumentCount);
|
||||
int value = getIntAt(ci);
|
||||
short bsmIndex = (short) extractLowShortFromInt(value);
|
||||
short nameAndTypeIndex = (short) extractHighShortFromInt(value);
|
||||
dos.writeShort(bsmIndex);
|
||||
dos.writeShort(nameAndTypeIndex);
|
||||
if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " + bsmIndex
|
||||
+ ", N&T = " + nameAndTypeIndex);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -321,13 +321,16 @@ public class ClassWriter implements /* imports */ ClassConstants
|
||||
break;
|
||||
}
|
||||
|
||||
case JVM_CONSTANT_InvokeDynamicTrans:
|
||||
case JVM_CONSTANT_InvokeDynamic: {
|
||||
dos.writeByte(cpConstType);
|
||||
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));
|
||||
int value = cpool.getIntAt(ci);
|
||||
short bsmIndex = (short) extractLowShortFromInt(value);
|
||||
short nameAndTypeIndex = (short) extractHighShortFromInt(value);
|
||||
dos.writeShort(bsmIndex);
|
||||
dos.writeShort(nameAndTypeIndex);
|
||||
if (DEBUG) debugMessage("CP[" + ci + "] = INDY bsm = " +
|
||||
bsmIndex + ", N&T = " + nameAndTypeIndex);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -460,7 +460,8 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
private String genListOfShort(int[] values) {
|
||||
private String genListOfShort(short[] values) {
|
||||
if (values == null || values.length == 0) return "";
|
||||
Formatter buf = new Formatter(genHTML);
|
||||
buf.append('[');
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
@ -594,9 +595,11 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
|
||||
buf.cell(Integer.toString(cpool.getIntAt(index)));
|
||||
break;
|
||||
|
||||
case JVM_CONSTANT_InvokeDynamicTrans:
|
||||
case JVM_CONSTANT_InvokeDynamic:
|
||||
buf.cell("JVM_CONSTANT_InvokeDynamic");
|
||||
buf.cell(genListOfShort(cpool.getMultiOperandsAt(index)));
|
||||
buf.cell(genLowHighShort(cpool.getIntAt(index)) +
|
||||
genListOfShort(cpool.getBootstrapSpecifierAt(index)));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -40,7 +40,7 @@ public class ConstantTag {
|
||||
private static int JVM_CONSTANT_NameAndType = 12;
|
||||
private static int JVM_CONSTANT_MethodHandle = 15; // JSR 292
|
||||
private static int JVM_CONSTANT_MethodType = 16; // JSR 292
|
||||
// static int JVM_CONSTANT_InvokeDynamicTrans = 17; // JSR 292, only occurs in old class files
|
||||
private static int JVM_CONSTANT_InvokeDynamicTrans = 17; // JSR 292, only occurs in old class files
|
||||
private static int JVM_CONSTANT_InvokeDynamic = 18; // JSR 292
|
||||
private static int JVM_CONSTANT_Invalid = 0; // For bad value initialization
|
||||
private static int JVM_CONSTANT_UnresolvedClass = 100; // Temporary tag until actual use
|
||||
@ -67,6 +67,8 @@ public class ConstantTag {
|
||||
this.tag = tag;
|
||||
}
|
||||
|
||||
public int value() { return tag; }
|
||||
|
||||
public boolean isKlass() { return tag == JVM_CONSTANT_Class; }
|
||||
public boolean isField () { return tag == JVM_CONSTANT_Fieldref; }
|
||||
public boolean isMethod() { return tag == JVM_CONSTANT_Methodref; }
|
||||
@ -81,6 +83,7 @@ public class ConstantTag {
|
||||
public boolean isMethodHandle() { return tag == JVM_CONSTANT_MethodHandle; }
|
||||
public boolean isMethodType() { return tag == JVM_CONSTANT_MethodType; }
|
||||
public boolean isInvokeDynamic() { return tag == JVM_CONSTANT_InvokeDynamic; }
|
||||
public boolean isInvokeDynamicTrans() { return tag == JVM_CONSTANT_InvokeDynamicTrans; }
|
||||
|
||||
public boolean isInvalid() { return tag == JVM_CONSTANT_Invalid; }
|
||||
|
||||
|
@ -101,15 +101,14 @@ ifndef HOTSPOT_RELEASE_VERSION
|
||||
endif
|
||||
|
||||
ifdef HOTSPOT_BUILD_VERSION
|
||||
# specified in command line (PRT build)
|
||||
# specified in command line
|
||||
else
|
||||
ifdef JPRT_BUILD_VERSION
|
||||
# JPR build
|
||||
HOTSPOT_BUILD_VERSION=$(JPRT_BUILD_VERSION)
|
||||
else
|
||||
ifdef COOKED_BUILD_NUMBER
|
||||
ifdef COOKED_BUILD_NUMBER
|
||||
# JRE build
|
||||
HOTSPOT_BUILD_VERSION=
|
||||
HOTSPOT_BUILD_VERSION=
|
||||
else
|
||||
ifdef USER_RELEASE_SUFFIX
|
||||
HOTSPOT_BUILD_VERSION=internal-$(USER_RELEASE_SUFFIX)
|
||||
else
|
||||
HOTSPOT_BUILD_VERSION=internal
|
||||
endif
|
||||
|
@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2010
|
||||
|
||||
HS_MAJOR_VER=20
|
||||
HS_MINOR_VER=0
|
||||
HS_BUILD_NUMBER=03
|
||||
HS_BUILD_NUMBER=04
|
||||
|
||||
JDK_MAJOR_VER=1
|
||||
JDK_MINOR_VER=7
|
||||
|
@ -25,9 +25,6 @@
|
||||
# JPRT rule to build this workspace
|
||||
|
||||
JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
|
||||
ifdef JPRT_BUILD_VERSION
|
||||
MILESTONE=$(JPRT_BUILD_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME),windows)
|
||||
ZIPFLAGS=-q
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -42,16 +42,14 @@ SOURCE.AD = $(OUTDIR)/$(OS)_$(Platform_arch_model).ad
|
||||
SOURCES.AD = $(GAMMADIR)/src/cpu/$(ARCH)/vm/$(Platform_arch_model).ad \
|
||||
$(GAMMADIR)/src/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad
|
||||
|
||||
Src_Dirs += $(GAMMADIR)/src/share/vm/adlc
|
||||
|
||||
EXEC = $(OUTDIR)/adlc
|
||||
|
||||
# set VPATH so make knows where to look for source files
|
||||
Src_Dirs_V = ${Src_Dirs} $(GENERATED)/incls
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
|
||||
# set INCLUDES for C preprocessor
|
||||
Src_Dirs_I = ${Src_Dirs} $(GENERATED)
|
||||
Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED)
|
||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||
|
||||
# set flags for adlc compilation
|
||||
|
@ -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
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
# If we're cross compiling use that path for nm
|
||||
if [ "$ALT_COMPILER_PATH" != "" ]; then
|
||||
if [ "$CROSS_COMPILE_ARCH" != "" ]; then
|
||||
NM=$ALT_COMPILER_PATH/nm
|
||||
else
|
||||
NM=nm
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -37,7 +37,7 @@
|
||||
# OS_FAMILY - operating system
|
||||
# VARIANT - core, compiler1, compiler2, or tiered
|
||||
# HOTSPOT_RELEASE_VERSION - <major>.<minor>-b<nn> (11.0-b07)
|
||||
# HOTSPOT_BUILD_VERSION - internal, PRTjob ID, JPRTjob ID
|
||||
# HOTSPOT_BUILD_VERSION - internal, internal-$(USER_RELEASE_SUFFIX) or empty
|
||||
# JRE_RELEASE_VERSION - <major>.<minor>.<micro> (1.7.0)
|
||||
#
|
||||
# Builds the directory trees with makefiles plus some convenience files in
|
||||
@ -113,7 +113,7 @@ endif
|
||||
COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE))
|
||||
|
||||
SIMPLE_DIRS = \
|
||||
$(PLATFORM_DIR)/generated/incls \
|
||||
$(PLATFORM_DIR)/generated/dependencies \
|
||||
$(PLATFORM_DIR)/generated/adfiles \
|
||||
$(PLATFORM_DIR)/generated/jvmtifiles
|
||||
|
||||
@ -124,7 +124,7 @@ SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
|
||||
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
|
||||
|
||||
BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make sa.make \
|
||||
env.sh env.csh .dbxrc test_gamma
|
||||
env.sh env.csh jdkpath.sh .dbxrc test_gamma
|
||||
|
||||
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
|
||||
ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
|
||||
@ -197,11 +197,27 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
|
||||
echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
|
||||
echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
|
||||
echo; \
|
||||
echo "Src_Dirs = \\"; \
|
||||
echo "# Used for platform dispatching"; \
|
||||
echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \
|
||||
echo "CFLAGS += \$$(TARGET_DEFINES)"; \
|
||||
echo; \
|
||||
echo "Src_Dirs_V = \\"; \
|
||||
sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \
|
||||
echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
|
||||
echo; \
|
||||
echo "Src_Dirs_I = \\"; \
|
||||
echo "\$$(GAMMADIR)/src/share/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/share/vm/prims \\"; \
|
||||
echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
|
||||
[ -n "$(CFLAGS_BROWSE)" ] && \
|
||||
echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
|
||||
[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
|
||||
@ -302,6 +318,13 @@ env.csh: env.sh
|
||||
sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=/setenv \1 /p' $?; \
|
||||
) > $@
|
||||
|
||||
jdkpath.sh: $(BUILDTREE_MAKE)
|
||||
@echo Creating $@ ...
|
||||
$(QUIETLY) ( \
|
||||
$(BUILDTREE_COMMENT); \
|
||||
echo "JDK=${JAVA_HOME}"; \
|
||||
) > $@
|
||||
|
||||
.dbxrc: $(BUILDTREE_MAKE)
|
||||
@echo Creating $@ ...
|
||||
$(QUIETLY) ( \
|
||||
|
@ -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_<arch>.*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.
|
||||
|
@ -25,7 +25,9 @@
|
||||
#------------------------------------------------------------------------
|
||||
# CC, CPP & AS
|
||||
|
||||
ifdef ALT_COMPILER_PATH
|
||||
# When cross-compiling the ALT_COMPILER_PATH points
|
||||
# to the cross-compilation toolset
|
||||
ifdef CROSS_COMPILE_ARCH
|
||||
CPP = $(ALT_COMPILER_PATH)/g++
|
||||
CC = $(ALT_COMPILER_PATH)/gcc
|
||||
else
|
||||
@ -42,9 +44,13 @@ CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
|
||||
|
||||
# check for precompiled headers support
|
||||
ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0"
|
||||
# Allow the user to turn off precompiled headers from the command line.
|
||||
ifneq ($(USE_PRECOMPILED_HEADER),0)
|
||||
USE_PRECOMPILED_HEADER=1
|
||||
PRECOMPILED_HEADER_DIR=.
|
||||
PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch
|
||||
PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp
|
||||
PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@ -144,6 +150,16 @@ ifneq "$(shell expr \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) = 3 \) \)
|
||||
OPT_CFLAGS/mulnode.o += -O0
|
||||
endif
|
||||
|
||||
# Flags for generating make dependency flags.
|
||||
ifneq ("${CC_VER_MAJOR}", "2")
|
||||
DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d)
|
||||
endif
|
||||
|
||||
# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
|
||||
ifneq ($(USE_PRECOMPILED_HEADER),1)
|
||||
CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
|
||||
endif
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
# Linker flags
|
||||
|
||||
|
@ -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)
|
||||
|
@ -37,11 +37,10 @@ JvmtiOutDir = $(GENERATED)/jvmtifiles
|
||||
|
||||
JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims
|
||||
InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter
|
||||
Src_Dirs += $(JvmtiSrcDir)
|
||||
|
||||
# set VPATH so make knows where to look for source files
|
||||
Src_Dirs_V = ${Src_Dirs}
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_V += $(JvmtiSrcDir)
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
|
||||
JvmtiGeneratedNames = \
|
||||
jvmtiEnv.hpp \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,19 +24,23 @@
|
||||
|
||||
# Rules to build gamma launcher, used by vm.make
|
||||
|
||||
# gamma[_g]: launcher
|
||||
|
||||
LAUNCHER_SCRIPT = hotspot
|
||||
LAUNCHER = gamma
|
||||
LAUNCHER_G = $(LAUNCHER)$(G_SUFFIX)
|
||||
|
||||
LAUNCHERDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/launcher
|
||||
LAUNCHERFLAGS = $(ARCHFLAG) \
|
||||
LAUNCHERDIR := $(GAMMADIR)/src/os/posix/launcher
|
||||
LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
|
||||
LAUNCHERFLAGS := $(ARCHFLAG) \
|
||||
-I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
|
||||
-I$(LAUNCHERDIR_SHARE) \
|
||||
-DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
|
||||
-DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
|
||||
-DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
|
||||
-DARCH=\"$(LIBARCH)\" \
|
||||
-DGAMMA \
|
||||
-DLAUNCHER_TYPE=\"gamma\" \
|
||||
-DLINK_INTO_$(LINK_INTO)
|
||||
-DLINK_INTO_$(LINK_INTO) \
|
||||
$(TARGET_DEFINES)
|
||||
|
||||
ifeq ($(LINK_INTO),AOUT)
|
||||
LAUNCHER.o = launcher.o $(JVM_OBJ_FILES)
|
||||
@ -55,22 +59,35 @@ LINK_LAUNCHER = $(LINK.c)
|
||||
LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK)
|
||||
LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
|
||||
|
||||
launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c
|
||||
$(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS)
|
||||
LAUNCHER_OUT = launcher
|
||||
|
||||
launcher.c:
|
||||
@echo Generating $@
|
||||
$(QUIETLY) { \
|
||||
echo '#define debug launcher_debug'; \
|
||||
echo '#include "java.c"'; \
|
||||
echo '#include "java_md.c"'; \
|
||||
} > $@
|
||||
SUFFIXES += .d
|
||||
|
||||
SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
|
||||
SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
|
||||
|
||||
OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
|
||||
|
||||
DEPFILES := $(patsubst %.o,%.d,$(OBJS))
|
||||
-include $(DEPFILES)
|
||||
|
||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
|
||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
||||
|
||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
||||
|
||||
$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
||||
$(QUIETLY) echo Linking launcher...
|
||||
$(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK)
|
||||
$(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(OBJS) $(LIBS_LAUNCHER)
|
||||
$(QUIETLY) $(LINK_LAUNCHER/POST_HOOK)
|
||||
|
||||
$(LAUNCHER): $(LAUNCHER_SCRIPT)
|
||||
|
||||
$(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script
|
||||
$(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@
|
||||
$(QUIETLY) chmod +x $@
|
||||
|
||||
$(LAUNCHER): $(LAUNCHER.o) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
||||
$(QUIETLY) { \
|
||||
echo Linking launcher...; \
|
||||
$(LINK_LAUNCHER/PRE_HOOK) \
|
||||
$(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(LAUNCHER.o) $(LIBS_LAUNCHER); \
|
||||
$(LINK_LAUNCHER/POST_HOOK) \
|
||||
[ -f $(LAUNCHER_G) ] || { ln -s $@ $(LAUNCHER_G); }; \
|
||||
}
|
||||
|
@ -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=
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -151,20 +151,20 @@ ifdef LP64
|
||||
%.o: %.cpp
|
||||
@echo Compiling $<
|
||||
$(QUIETLY) $(REMOVE_TARGET)
|
||||
$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
|
||||
$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
||||
else
|
||||
%.o: %.cpp
|
||||
@echo Compiling $<
|
||||
$(QUIETLY) $(REMOVE_TARGET)
|
||||
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
|
||||
$(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \
|
||||
$(COMPILE.CC) -o $@ $< $(COMPILE_DONE))
|
||||
$(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
|
||||
$(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
|
||||
endif
|
||||
|
||||
%.o: %.s
|
||||
@echo Assembling $<
|
||||
$(QUIETLY) $(REMOVE_TARGET)
|
||||
$(QUIETLY) $(AS.S) -o $@ $< $(COMPILE_DONE)
|
||||
$(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
||||
|
||||
%.s: %.cpp
|
||||
@echo Generating assembly for $<
|
||||
|
@ -55,10 +55,12 @@ endif
|
||||
# if $(AGENT_DIR) does not exist, we don't build SA
|
||||
# also, we don't build SA on Itanium, PPC, ARM or zero.
|
||||
|
||||
checkAndBuildSA:
|
||||
$(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "arm" -a "$(SRCARCH)" != "ppc" -a "$(SRCARCH)" != "zero" ] ; then \
|
||||
$(MAKE) -f vm.make $(LIBSAPROC); \
|
||||
fi
|
||||
ifneq ($(wildcard $(AGENT_DIR)),)
|
||||
ifneq ($(filter-out ia64 arm ppc zero,$(SRCARCH)),)
|
||||
BUILDLIBSAPROC = $(LIBSAPROC)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
|
||||
|
||||
@ -81,10 +83,10 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
|
||||
-lthread_db
|
||||
$(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); }
|
||||
|
||||
install_saproc: checkAndBuildSA
|
||||
install_saproc: $(BUILDLIBSAPROC)
|
||||
$(QUIETLY) if [ -e $(LIBSAPROC) ] ; then \
|
||||
echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \
|
||||
cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \
|
||||
fi
|
||||
|
||||
.PHONY: checkAndBuildSA install_saproc
|
||||
.PHONY: install_saproc
|
||||
|
@ -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
|
||||
|
||||
|
@ -74,6 +74,14 @@ CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@))
|
||||
OPT_CFLAGS+=-xO4
|
||||
OPT_CFLAGS/NOOPT=-xO0
|
||||
|
||||
# Flags for creating the dependency files.
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
|
||||
DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d)
|
||||
endif
|
||||
|
||||
# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
|
||||
CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
# Linker flags
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
# -generate sa-jdi.jar (JDI binding to core files)
|
||||
|
||||
# It assumes the following flags are set:
|
||||
# CFLAGS Platform_file, Src_Dirs, SYSDEFS, AOUT, Obj_Files
|
||||
# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Obj_Files
|
||||
|
||||
# -- D. Ungar (5/97) from a file by Bill Bush
|
||||
|
||||
@ -45,10 +45,6 @@ VM = $(GAMMADIR)/src/share/vm
|
||||
Plat_File = $(Platform_file)
|
||||
CDG = cd $(GENERATED);
|
||||
|
||||
# Pick up MakeDeps' sources and definitions
|
||||
include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/makedeps.make
|
||||
MakeDepsClass = MakeDeps.class
|
||||
|
||||
ifdef USE_PRECOMPILED_HEADER
|
||||
PrecompiledOption = -DUSE_PRECOMPILED_HEADER
|
||||
UpdatePCH = $(MAKE) -f vm.make $(PRECOMPILED_HEADER) $(MFLAGS)
|
||||
@ -57,33 +53,7 @@ UpdatePCH = \# precompiled header is not used
|
||||
PrecompiledOption =
|
||||
endif
|
||||
|
||||
MakeDeps = $(RUN.JAVA) $(PrecompiledOption) -classpath $(GENERATED) MakeDeps
|
||||
|
||||
Include_DBs/GC = $(VM)/includeDB_gc \
|
||||
$(VM)/includeDB_gc_parallel \
|
||||
$(VM)/gc_implementation/includeDB_gc_parallelScavenge \
|
||||
$(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \
|
||||
$(VM)/gc_implementation/includeDB_gc_parNew \
|
||||
$(VM)/gc_implementation/includeDB_gc_g1 \
|
||||
$(VM)/gc_implementation/includeDB_gc_serial \
|
||||
$(VM)/gc_implementation/includeDB_gc_shared
|
||||
|
||||
Include_DBs/CORE = $(VM)/includeDB_core $(Include_DBs/GC) \
|
||||
$(VM)/includeDB_jvmti \
|
||||
$(VM)/includeDB_features
|
||||
Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1
|
||||
Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2
|
||||
Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 $(VM)/includeDB_compiler2
|
||||
Include_DBs/ZERO = $(Include_DBs/CORE) $(VM)/includeDB_zero
|
||||
Include_DBs/SHARK = $(Include_DBs/ZERO) $(VM)/includeDB_shark
|
||||
Include_DBs = $(Include_DBs/$(TYPE))
|
||||
|
||||
Cached_plat = $(GENERATED)/platform.current
|
||||
Cached_db = $(GENERATED)/includeDB.current
|
||||
|
||||
Incremental_Lists = $(Cached_db)
|
||||
# list generation also creates $(GENERATED)/$(Cached_plat)
|
||||
|
||||
|
||||
AD_Dir = $(GENERATED)/adfiles
|
||||
ADLC = $(AD_Dir)/adlc
|
||||
@ -102,7 +72,7 @@ adjust-mflags = $(GENERATED)/adjust-mflags
|
||||
MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"`
|
||||
|
||||
|
||||
# default target: make makeDeps, update lists, make vm
|
||||
# default target: update lists, make vm
|
||||
# done in stages to force sequential order with parallel make
|
||||
#
|
||||
|
||||
@ -110,39 +80,18 @@ default: vm_build_preliminaries the_vm
|
||||
@echo All done.
|
||||
|
||||
# This is an explicit dependency for the sake of parallel makes.
|
||||
vm_build_preliminaries: checks $(Incremental_Lists) $(AD_Files_If_Required) jvmti_stuff sa_stuff
|
||||
vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff
|
||||
@# We need a null action here, so implicit rules don't get consulted.
|
||||
|
||||
# make makeDeps: (and zap the cached db files to force a nonincremental run)
|
||||
|
||||
$(GENERATED)/$(MakeDepsClass): $(MakeDepsSources)
|
||||
@$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources)
|
||||
@echo Removing $(Incremental_Lists) to force regeneration.
|
||||
@rm -f $(Incremental_Lists)
|
||||
@$(CDG) echo >$(Cached_plat)
|
||||
|
||||
# make incremental_lists, if cached files out of date, run makeDeps
|
||||
|
||||
$(Incremental_Lists): $(Include_DBs) $(Plat_File) $(GENERATED)/$(MakeDepsClass)
|
||||
$(CDG) cat $(Include_DBs) > $(GENERATED)/includeDB
|
||||
$(CDG) if [ ! -r incls ] ; then \
|
||||
mkdir incls ; \
|
||||
fi
|
||||
$(CDG) (echo $(CDG) echo $(MakeDeps) diffs UnixPlatform $(Cached_plat) $(Cached_db) $(Plat_File) $(GENERATED)/includeDB $(MakeDepsOptions)) > makeDeps.sh
|
||||
$(CDG) $(REMOTE) sh $(GENERATED)/makeDeps.sh
|
||||
$(CDG) cp includeDB $(Cached_db)
|
||||
$(Cached_plat): $(Plat_File)
|
||||
$(CDG) cp $(Plat_File) $(Cached_plat)
|
||||
|
||||
# symbolic target for command lines
|
||||
lists: $(Incremental_Lists)
|
||||
@: lists are now up to date
|
||||
|
||||
# make AD files as necessary
|
||||
ad_stuff: $(Incremental_Lists) $(adjust-mflags)
|
||||
ad_stuff: $(Cached_plat) $(adjust-mflags)
|
||||
@$(MAKE) -f adlc.make $(MFLAGS-adjusted)
|
||||
|
||||
# generate JVMTI files from the spec
|
||||
jvmti_stuff: $(Incremental_Lists) $(adjust-mflags)
|
||||
jvmti_stuff: $(Cached_plat) $(adjust-mflags)
|
||||
@$(MAKE) -f jvmti.make $(MFLAGS-adjusted)
|
||||
|
||||
# generate SA jar files and native header
|
||||
@ -169,7 +118,7 @@ the_vm: vm_build_preliminaries $(adjust-mflags)
|
||||
install: the_vm
|
||||
@$(MAKE) -f vm.make install
|
||||
|
||||
# next rules support "make foo.[oi]"
|
||||
# next rules support "make foo.[ois]"
|
||||
|
||||
%.o %.i %.s:
|
||||
$(UpdatePCH)
|
||||
@ -179,7 +128,6 @@ install: the_vm
|
||||
# this should force everything to be rebuilt
|
||||
clean:
|
||||
rm -f $(GENERATED)/*.class
|
||||
$(MAKE) $(MFLAGS) $(GENERATED)/$(MakeDepsClass)
|
||||
$(MAKE) -f vm.make $(MFLAGS) clean
|
||||
|
||||
# just in case it doesn't, this should do it
|
||||
|
@ -35,9 +35,10 @@ default: build
|
||||
# Defs
|
||||
|
||||
GENERATED = ../generated
|
||||
DEP_DIR = $(GENERATED)/dependencies
|
||||
|
||||
# read a generated file defining the set of .o's and the .o .h dependencies
|
||||
include $(GENERATED)/Dependencies
|
||||
# reads the generated files defining the set of .o's and the .o .h dependencies
|
||||
-include $(DEP_DIR)/*.d
|
||||
|
||||
# read machine-specific adjustments (%%% should do this via buildtree.make?)
|
||||
ifeq ($(ZERO_BUILD), true)
|
||||
@ -47,16 +48,16 @@ else
|
||||
endif
|
||||
|
||||
# set VPATH so make knows where to look for source files
|
||||
# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
|
||||
# The incls directory contains generated header file lists for inclusion.
|
||||
# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
|
||||
# The adfiles directory contains ad_<arch>.[ch]pp.
|
||||
# The jvmtifiles directory contains jvmti*.[ch]pp
|
||||
Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
|
||||
# set INCLUDES for C preprocessor
|
||||
Src_Dirs_I = $(PRECOMPILED_HEADER_DIR) $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)
|
||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||
# set INCLUDES for C preprocessor.
|
||||
Src_Dirs_I += $(GENERATED)
|
||||
# The order is important for the precompiled headers to work.
|
||||
INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
|
||||
|
||||
ifeq (${VERSION}, debug)
|
||||
SYMFLAG = -g
|
||||
@ -118,6 +119,64 @@ JVM = jvm
|
||||
LIBJVM = lib$(JVM).so
|
||||
LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
|
||||
|
||||
CORE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \))
|
||||
CORE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm
|
||||
CORE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm
|
||||
CORE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm
|
||||
CORE_PATHS += $(GENERATED)/jvmtifiles
|
||||
|
||||
COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1
|
||||
|
||||
COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto
|
||||
COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt
|
||||
COMPILER2_PATHS += $(GENERATED)/adfiles
|
||||
|
||||
# Include dirs per type.
|
||||
Src_Dirs/CORE := $(CORE_PATHS)
|
||||
Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS)
|
||||
Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS)
|
||||
Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS)
|
||||
Src_Dirs/ZERO := $(CORE_PATHS)
|
||||
Src_Dirs/SHARK := $(CORE_PATHS)
|
||||
Src_Dirs := $(Src_Dirs/$(TYPE))
|
||||
|
||||
COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\*
|
||||
COMPILER1_SPECIFIC_FILES := c1_\*
|
||||
SHARK_SPECIFIC_FILES := shark
|
||||
ZERO_SPECIFIC_FILES := zero
|
||||
|
||||
# Always exclude these.
|
||||
Src_Files_EXCLUDE := jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp
|
||||
|
||||
# Exclude per type.
|
||||
Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
|
||||
Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
|
||||
Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
|
||||
Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
|
||||
Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
|
||||
Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES)
|
||||
|
||||
Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE))
|
||||
|
||||
# Special handling of arch model.
|
||||
ifeq ($(Platform_arch_model), x86_32)
|
||||
Src_Files_EXCLUDE += \*x86_64\*
|
||||
endif
|
||||
ifeq ($(Platform_arch_model), x86_64)
|
||||
Src_Files_EXCLUDE += \*x86_32\*
|
||||
endif
|
||||
|
||||
# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
|
||||
define findsrc
|
||||
$(notdir $(shell find $(1)/. ! -name . -prune \
|
||||
-a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
|
||||
-a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \)))
|
||||
endef
|
||||
|
||||
Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e)))
|
||||
|
||||
Obj_Files = $(sort $(addsuffix .o,$(basename $(Src_Files))))
|
||||
|
||||
JVM_OBJ_FILES = $(Obj_Files)
|
||||
|
||||
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
|
||||
@ -180,10 +239,10 @@ endif
|
||||
LINK_VM = $(LINK_LIB.c)
|
||||
|
||||
# rule for building precompiled header
|
||||
$(PRECOMPILED_HEADER): $(Precompiled_Files)
|
||||
$(PRECOMPILED_HEADER):
|
||||
$(QUIETLY) echo Generating precompiled header $@
|
||||
$(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)/incls
|
||||
$(QUIETLY) $(COMPILE.CC) -x c++-header -c $(GENERATED)/incls/_precompiled.incl -o $@ $(COMPILE_DONE)
|
||||
$(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
|
||||
$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
|
||||
|
||||
# making the library:
|
||||
|
||||
@ -252,7 +311,7 @@ include $(MAKEFILES_DIR)/saproc.make
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) checkAndBuildSA
|
||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
|
||||
|
||||
install: install_jvm install_jsig install_saproc
|
||||
|
||||
|
@ -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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -42,16 +42,14 @@ SOURCE.AD = $(OUTDIR)/$(OS)_$(Platform_arch_model).ad
|
||||
SOURCES.AD = $(GAMMADIR)/src/cpu/$(ARCH)/vm/$(Platform_arch_model).ad \
|
||||
$(GAMMADIR)/src/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad
|
||||
|
||||
Src_Dirs += $(GAMMADIR)/src/share/vm/adlc
|
||||
|
||||
EXEC = $(OUTDIR)/adlc
|
||||
|
||||
# set VPATH so make knows where to look for source files
|
||||
Src_Dirs_V = ${Src_Dirs} $(GENERATED)/incls
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
|
||||
# set INCLUDES for C preprocessor
|
||||
Src_Dirs_I = ${Src_Dirs} $(GENERATED)
|
||||
Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED)
|
||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||
|
||||
# set flags for adlc compilation
|
||||
|
@ -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.
|
||||
#
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -37,7 +37,7 @@
|
||||
# OS_FAMILY - operating system
|
||||
# VARIANT - core, compiler1, compiler2, or tiered
|
||||
# HOTSPOT_RELEASE_VERSION - <major>.<minor>-b<nn> (11.0-b07)
|
||||
# HOTSPOT_BUILD_VERSION - internal, PRTjob ID, JPRTjob ID
|
||||
# HOTSPOT_BUILD_VERSION - internal, internal-$(USER_RELEASE_SUFFIX) or empty
|
||||
# JRE_RELEASE_VERSION - <major>.<minor>.<micro> (1.7.0)
|
||||
#
|
||||
# Builds the directory trees with makefiles plus some convenience files in
|
||||
@ -106,7 +106,7 @@ endif
|
||||
COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE))
|
||||
|
||||
SIMPLE_DIRS = \
|
||||
$(PLATFORM_DIR)/generated/incls \
|
||||
$(PLATFORM_DIR)/generated/dependencies \
|
||||
$(PLATFORM_DIR)/generated/adfiles \
|
||||
$(PLATFORM_DIR)/generated/jvmtifiles
|
||||
|
||||
@ -117,7 +117,7 @@ SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
|
||||
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
|
||||
|
||||
BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make sa.make \
|
||||
env.ksh env.csh .dbxrc test_gamma
|
||||
env.ksh env.csh jdkpath.sh .dbxrc test_gamma
|
||||
|
||||
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
|
||||
ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
|
||||
@ -191,11 +191,27 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
|
||||
echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
|
||||
echo "$(LP64_SETTING/$(DATA_MODE))"; \
|
||||
echo; \
|
||||
echo "Src_Dirs = \\"; \
|
||||
echo "# Used for platform dispatching"; \
|
||||
echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \
|
||||
echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \
|
||||
echo "CFLAGS += \$$(TARGET_DEFINES)"; \
|
||||
echo; \
|
||||
echo "Src_Dirs_V = \\"; \
|
||||
sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \
|
||||
echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
|
||||
echo; \
|
||||
echo "Src_Dirs_I = \\"; \
|
||||
echo "\$$(GAMMADIR)/src/share/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/share/vm/prims \\"; \
|
||||
echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \
|
||||
echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \
|
||||
[ -n "$(CFLAGS_BROWSE)" ] && \
|
||||
echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
|
||||
[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
|
||||
@ -298,6 +314,13 @@ env.csh: env.ksh
|
||||
sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=/setenv \1 /p' $?; \
|
||||
) > $@
|
||||
|
||||
jdkpath.sh: $(BUILDTREE_MAKE)
|
||||
@echo Creating $@ ...
|
||||
$(QUIETLY) ( \
|
||||
$(BUILDTREE_COMMENT); \
|
||||
echo "JDK=${JAVA_HOME}"; \
|
||||
) > $@
|
||||
|
||||
.dbxrc: $(BUILDTREE_MAKE)
|
||||
@echo Creating $@ ...
|
||||
$(QUIETLY) ( \
|
||||
|
@ -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_<arch>.*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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -63,8 +63,6 @@ endif
|
||||
|
||||
# making libjvm_db
|
||||
|
||||
INCLS = $(GENERATED)/incls
|
||||
|
||||
# Use mapfile with libjvm_db.so
|
||||
LIBJVM_DB_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jvm_db
|
||||
LFLAGS_JVM_DB += $(MAPFLAG:FILENAME=$(LIBJVM_DB_MAPFILE))
|
||||
@ -114,7 +112,7 @@ LFLAGS_GENOFFS += -mt -xnolib -norunpath
|
||||
endif
|
||||
|
||||
lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
|
||||
$(INCLS)/_vmStructs.cpp.incl $(LIBJVM.o)
|
||||
$(LIBJVM.o)
|
||||
$(QUIETLY) $(CCC) $(CPPFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
|
||||
$(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc
|
||||
|
||||
@ -161,6 +159,27 @@ $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \
|
||||
$(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d
|
||||
$(QUIETLY) cat $^ > $@
|
||||
|
||||
DTraced_Files = ciEnv.o \
|
||||
classLoadingService.o \
|
||||
compileBroker.o \
|
||||
hashtable.o \
|
||||
instanceKlass.o \
|
||||
java.o \
|
||||
jni.o \
|
||||
jvm.o \
|
||||
memoryManager.o \
|
||||
nmethod.o \
|
||||
objectMonitor.o \
|
||||
runtimeService.o \
|
||||
sharedRuntime.o \
|
||||
synchronizer.o \
|
||||
thread.o \
|
||||
unsafe.o \
|
||||
vmThread.o \
|
||||
vmCMSOperations.o \
|
||||
vmPSOperations.o \
|
||||
vmGCOperations.o \
|
||||
|
||||
# Dtrace is available, so we build $(DTRACE.o)
|
||||
$(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files)
|
||||
@echo Compiling $(DTRACE).d
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -47,9 +47,13 @@ $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
|
||||
|
||||
# check for precompiled headers support
|
||||
ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0"
|
||||
# Allow the user to turn off precompiled headers from the command line.
|
||||
ifneq ($(USE_PRECOMPILED_HEADER),0)
|
||||
USE_PRECOMPILED_HEADER=1
|
||||
PRECOMPILED_HEADER_DIR=.
|
||||
PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch
|
||||
PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp
|
||||
PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@ -131,6 +135,17 @@ OPT_CFLAGS/bytecodeInterpreter.o += -fno-expensive-optimizations
|
||||
endif
|
||||
|
||||
OPT_CFLAGS/NOOPT=-O0
|
||||
|
||||
# Flags for generating make dependency flags.
|
||||
ifneq ("${CC_VER_MAJOR}", "2")
|
||||
DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d)
|
||||
endif
|
||||
|
||||
# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
|
||||
ifneq ($(USE_PRECOMPILED_HEADER),1)
|
||||
CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
|
||||
endif
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
# Linker flags
|
||||
|
||||
|
@ -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.
|
||||
|
@ -36,11 +36,10 @@ JvmtiOutDir = $(GENERATED)/jvmtifiles
|
||||
|
||||
JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims
|
||||
InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter
|
||||
Src_Dirs += $(JvmtiSrcDir)
|
||||
|
||||
# set VPATH so make knows where to look for source files
|
||||
Src_Dirs_V = ${Src_Dirs}
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_V += $(JvmtiSrcDir)
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
|
||||
JvmtiGeneratedNames = \
|
||||
jvmtiEnv.hpp \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,18 +24,22 @@
|
||||
|
||||
# Rules to build gamma launcher, used by vm.make
|
||||
|
||||
# gamma[_g]: launcher
|
||||
LAUNCHER_SCRIPT = hotspot
|
||||
LAUNCHER = gamma
|
||||
LAUNCHER_G = $(LAUNCHER)$(G_SUFFIX)
|
||||
|
||||
LAUNCHERDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/launcher
|
||||
LAUNCHERDIR = $(GAMMADIR)/src/os/posix/launcher
|
||||
LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
|
||||
LAUNCHERFLAGS = $(ARCHFLAG) \
|
||||
-I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
|
||||
-I$(LAUNCHERDIR_SHARE) \
|
||||
-DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
|
||||
-DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
|
||||
-DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
|
||||
-DARCH=\"$(LIBARCH)\" \
|
||||
-DGAMMA \
|
||||
-DLAUNCHER_TYPE=\"gamma\" \
|
||||
-DLINK_INTO_$(LINK_INTO)
|
||||
-DLINK_INTO_$(LINK_INTO) \
|
||||
$(TARGET_DEFINES)
|
||||
|
||||
ifeq ($(LINK_INTO),AOUT)
|
||||
LAUNCHER.o = launcher.o $(JVM_OBJ_FILES)
|
||||
@ -68,24 +72,37 @@ ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
#LAUNCHERFLAGS += -W0,-noglobal
|
||||
endif # Platform_compiler == sparcWorks
|
||||
|
||||
launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c
|
||||
$(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS)
|
||||
LAUNCHER_OUT = launcher
|
||||
|
||||
launcher.c:
|
||||
@echo Generating $@
|
||||
$(QUIETLY) { \
|
||||
echo '#define debug launcher_debug'; \
|
||||
echo '#include "java.c"'; \
|
||||
echo '#include "java_md.c"'; \
|
||||
} > $@
|
||||
SUFFIXES += .d
|
||||
|
||||
$(LAUNCHER): $(LAUNCHER.o) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
||||
SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
|
||||
SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
|
||||
|
||||
OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
|
||||
|
||||
DEPFILES := $(patsubst %.o,%.d,$(OBJS))
|
||||
-include $(DEPFILES)
|
||||
|
||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
|
||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
||||
|
||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
||||
|
||||
$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
||||
ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
|
||||
@echo Linking launcher...
|
||||
$(QUIETLY) echo Linking launcher...
|
||||
$(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK)
|
||||
$(QUIETLY) \
|
||||
$(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(LAUNCHER.o) $(LIBS_LAUNCHER)
|
||||
$(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(OBJS) $(LIBS_LAUNCHER)
|
||||
$(QUIETLY) $(LINK_LAUNCHER/POST_HOOK)
|
||||
[ -f $(LAUNCHER_G) ] || ln -s $@ $(LAUNCHER_G)
|
||||
endif # filter -sbfast -xsbfast
|
||||
|
||||
$(LAUNCHER): $(LAUNCHER_SCRIPT)
|
||||
|
||||
$(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script
|
||||
$(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@
|
||||
$(QUIETLY) chmod +x $@
|
||||
|
||||
|
@ -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=
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -151,14 +151,14 @@ ifdef LP64
|
||||
%.o: %.cpp
|
||||
@echo Compiling $<
|
||||
$(QUIETLY) $(REMOVE_TARGET)
|
||||
$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
|
||||
$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
||||
else
|
||||
%.o: %.cpp
|
||||
@echo Compiling $<
|
||||
$(QUIETLY) $(REMOVE_TARGET)
|
||||
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
|
||||
$(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \
|
||||
$(COMPILE.CC) -o $@ $< $(COMPILE_DONE))
|
||||
$(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
|
||||
$(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
|
||||
endif
|
||||
|
||||
%.o: %.s
|
||||
|
@ -44,10 +44,9 @@ DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC)
|
||||
|
||||
# if $(AGENT_DIR) does not exist, we don't build SA
|
||||
|
||||
checkAndBuildSA:
|
||||
$(QUIETLY) if [ -d $(AGENT_DIR) ] ; then \
|
||||
$(MAKE) -f vm.make $(LIBSAPROC); \
|
||||
fi
|
||||
ifneq ($(wildcard $(AGENT_DIR)),)
|
||||
BUILDLIBSAPROC = $(LIBSAPROC)
|
||||
endif
|
||||
|
||||
SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE))
|
||||
|
||||
@ -75,10 +74,10 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
|
||||
-ldl -ldemangle -lthread -lc
|
||||
[ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); }
|
||||
|
||||
install_saproc: checkAndBuildSA
|
||||
install_saproc: $(BULDLIBSAPROC)
|
||||
$(QUIETLY) if [ -f $(LIBSAPROC) ] ; then \
|
||||
echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \
|
||||
cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \
|
||||
fi
|
||||
|
||||
.PHONY: checkAndBuildSA install_saproc
|
||||
.PHONY: install_saproc
|
||||
|
@ -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,15 @@ OPT_CFLAGS/SLOWER=-xO3
|
||||
OPT_CFLAGS/O2=-xO2
|
||||
OPT_CFLAGS/NOOPT=-xO1
|
||||
|
||||
#################################################
|
||||
# Flags for creating the dependency files.
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
|
||||
DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d)
|
||||
endif
|
||||
|
||||
# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
|
||||
CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
|
||||
|
||||
################################################
|
||||
# Begin current (>=5.9) Forte compiler options #
|
||||
#################################################
|
||||
|
||||
|
@ -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")
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -31,7 +31,7 @@
|
||||
# -generate sa-jdi.jar (JDI binding to core files)
|
||||
|
||||
# It assumes the following flags are set:
|
||||
# CFLAGS Platform_file, Src_Dirs, SYSDEFS, AOUT, Jvm_Obj_Files
|
||||
# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Jvm_Obj_Files
|
||||
|
||||
# -- D. Ungar (5/97) from a file by Bill Bush
|
||||
|
||||
@ -44,42 +44,7 @@ VM = $(GAMMADIR)/src/share/vm
|
||||
Plat_File = $(Platform_file)
|
||||
CDG = cd $(GENERATED);
|
||||
|
||||
# Pick up MakeDeps' sources and definitions
|
||||
include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/makedeps.make
|
||||
MakeDepsClass = MakeDeps.class
|
||||
MakeDeps = $(RUN.JAVA) -classpath . MakeDeps
|
||||
|
||||
Include_DBs/GC = $(VM)/includeDB_gc \
|
||||
$(VM)/includeDB_gc_parallel \
|
||||
$(VM)/gc_implementation/includeDB_gc_parallelScavenge \
|
||||
$(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \
|
||||
$(VM)/gc_implementation/includeDB_gc_parNew \
|
||||
$(VM)/gc_implementation/includeDB_gc_g1 \
|
||||
$(VM)/gc_implementation/includeDB_gc_serial \
|
||||
$(VM)/gc_implementation/includeDB_gc_shared
|
||||
|
||||
|
||||
Include_DBs/KERNEL = $(VM)/includeDB_core $(VM)/includeDB_gc \
|
||||
$(VM)/gc_implementation/includeDB_gc_serial \
|
||||
$(VM)/includeDB_jvmti \
|
||||
$(VM)/includeDB_compiler1
|
||||
|
||||
Include_DBs/CORE = $(VM)/includeDB_core $(Include_DBs/GC) \
|
||||
$(VM)/includeDB_jvmti \
|
||||
$(VM)/includeDB_features
|
||||
Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1
|
||||
Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2
|
||||
Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 \
|
||||
$(VM)/includeDB_compiler2
|
||||
|
||||
Include_DBs = $(Include_DBs/$(TYPE))
|
||||
|
||||
Cached_plat = platform.current
|
||||
Cached_db = includeDB.current
|
||||
|
||||
Incremental_Lists =$(GENERATED)/$(Cached_db)
|
||||
# list generation also creates $(GENERATED)/$(Cached_plat)
|
||||
|
||||
Cached_plat = $(GENERATED)/platform.current
|
||||
|
||||
AD_Dir = $(GENERATED)/adfiles
|
||||
ADLC = $(AD_Dir)/adlc
|
||||
@ -98,7 +63,7 @@ adjust-mflags = $(GENERATED)/adjust-mflags
|
||||
MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"`
|
||||
|
||||
|
||||
# default target: make makeDeps, update lists, make vm
|
||||
# default target: update lists, make vm
|
||||
# done in stages to force sequential order with parallel make
|
||||
#
|
||||
|
||||
@ -106,38 +71,18 @@ default: vm_build_preliminaries the_vm
|
||||
@echo All done.
|
||||
|
||||
# This is an explicit dependency for the sake of parallel makes.
|
||||
vm_build_preliminaries: checks $(Incremental_Lists) $(AD_Files_If_Required) jvmti_stuff sa_stuff
|
||||
vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff
|
||||
@# We need a null action here, so implicit rules don't get consulted.
|
||||
|
||||
# make makeDeps: (and zap the cached db files to force a nonincremental run)
|
||||
|
||||
$(GENERATED)/$(MakeDepsClass): $(MakeDepsSources)
|
||||
@$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources)
|
||||
@echo Removing $(Incremental_Lists) to force regeneration.
|
||||
@rm -f $(Incremental_Lists)
|
||||
@$(CDG) echo >$(Cached_plat)
|
||||
|
||||
# make incremental_lists, if cached files out of date, run makeDeps
|
||||
|
||||
$(Incremental_Lists): $(Include_DBs) $(Plat_File) $(GENERATED)/$(MakeDepsClass)
|
||||
$(CDG) cat $(Include_DBs) > includeDB
|
||||
$(CDG) if [ ! -r incls ] ; then \
|
||||
mkdir incls ; \
|
||||
fi
|
||||
$(CDG) $(MakeDeps) diffs UnixPlatform $(Cached_plat) $(Cached_db) $(Plat_File) includeDB $(MakeDepsOptions)
|
||||
$(CDG) cp includeDB $(Cached_db)
|
||||
$(CDG) cp $(Plat_File) $(Cached_plat)
|
||||
|
||||
# symbolic target for command lines
|
||||
lists: $(Incremental_Lists)
|
||||
@: lists are now up to date
|
||||
$(Cached_plat): $(Plat_File)
|
||||
$(CDG) cp $(Plat_File) $(Cached_plat)
|
||||
|
||||
# make AD files as necessary
|
||||
ad_stuff: $(Incremental_Lists) $(adjust-mflags)
|
||||
ad_stuff: $(Cached_plat) $(adjust-mflags)
|
||||
@$(MAKE) -f adlc.make $(MFLAGS-adjusted)
|
||||
|
||||
# generate JVMTI files from the spec
|
||||
jvmti_stuff: $(Incremental_Lists) $(adjust-mflags)
|
||||
jvmti_stuff: $(Cached_plat) $(adjust-mflags)
|
||||
@$(MAKE) -f jvmti.make $(MFLAGS-adjusted)
|
||||
|
||||
# generate SA jar files and native header
|
||||
@ -172,7 +117,6 @@ install: the_vm
|
||||
# this should force everything to be rebuilt
|
||||
clean:
|
||||
rm -f $(GENERATED)/*.class
|
||||
$(MAKE) $(MFLAGS) $(GENERATED)/$(MakeDepsClass)
|
||||
$(MAKE) -f vm.make $(MFLAGS) clean
|
||||
|
||||
# just in case it doesn't, this should do it
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,23 +35,23 @@ default: build
|
||||
# Defs
|
||||
|
||||
GENERATED = ../generated
|
||||
DEP_DIR = $(GENERATED)/dependencies
|
||||
|
||||
# read a generated file defining the set of .o's and the .o .h dependencies
|
||||
include $(GENERATED)/Dependencies
|
||||
# reads the generated files defining the set of .o's and the .o .h dependencies
|
||||
-include $(DEP_DIR)/*.d
|
||||
|
||||
# read machine-specific adjustments (%%% should do this via buildtree.make?)
|
||||
include $(MAKEFILES_DIR)/$(BUILDARCH).make
|
||||
|
||||
# set VPATH so make knows where to look for source files
|
||||
# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
|
||||
# The incls directory contains generated header file lists for inclusion.
|
||||
# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
|
||||
# The adfiles directory contains ad_<arch>.[ch]pp.
|
||||
# The jvmtifiles directory contains jvmti*.[ch]pp
|
||||
Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles
|
||||
VPATH += $(Src_Dirs_V:%=%:)
|
||||
|
||||
# set INCLUDES for C preprocessor
|
||||
Src_Dirs_I = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)
|
||||
Src_Dirs_I += $(GENERATED)
|
||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||
|
||||
ifeq (${VERSION}, debug)
|
||||
@ -106,17 +106,17 @@ ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 505), 1)
|
||||
# Not sure what the 'designed for' comment is referring too above.
|
||||
# The order may not be too significant anymore, but I have placed this
|
||||
# older libm before libCrun, just to make sure it's found and used first.
|
||||
LIBS += -lsocket -lsched -ldl $(LIBM) -lCrun -lthread -ldoor -lc
|
||||
LIBS += -lsocket -lsched -ldl $(LIBM) -lCrun -lthread -ldoor -lc -ldemangle
|
||||
else
|
||||
ifeq ($(COMPILER_REV_NUMERIC), 502)
|
||||
# SC6.1 has it's own libm.so: specifying anything else provokes a name conflict.
|
||||
LIBS += -ldl -lthread -lsocket -lm -lsched -ldoor
|
||||
LIBS += -ldl -lthread -lsocket -lm -lsched -ldoor -ldemangle
|
||||
else
|
||||
LIBS += -ldl -lthread -lsocket $(LIBM) -lsched -ldoor
|
||||
LIBS += -ldl -lthread -lsocket $(LIBM) -lsched -ldoor -ldemangle
|
||||
endif # 502
|
||||
endif # 505
|
||||
else
|
||||
LIBS += -lsocket -lsched -ldl $(LIBM) -lthread -lc
|
||||
LIBS += -lsocket -lsched -ldl $(LIBM) -lthread -lc -ldemangle
|
||||
endif # sparcWorks
|
||||
|
||||
# By default, link the *.o into the library, not the executable.
|
||||
@ -135,6 +135,64 @@ JVM = jvm
|
||||
LIBJVM = lib$(JVM).so
|
||||
LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
|
||||
|
||||
CORE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \))
|
||||
CORE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm
|
||||
CORE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm
|
||||
CORE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm
|
||||
CORE_PATHS += $(GENERATED)/jvmtifiles
|
||||
|
||||
COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1
|
||||
|
||||
COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto
|
||||
COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt
|
||||
COMPILER2_PATHS += $(GENERATED)/adfiles
|
||||
|
||||
# Include dirs per type.
|
||||
Src_Dirs/CORE := $(CORE_PATHS)
|
||||
Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS)
|
||||
Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS)
|
||||
Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS)
|
||||
Src_Dirs/ZERO := $(CORE_PATHS)
|
||||
Src_Dirs/SHARK := $(CORE_PATHS)
|
||||
Src_Dirs := $(Src_Dirs/$(TYPE))
|
||||
|
||||
COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\*
|
||||
COMPILER1_SPECIFIC_FILES := c1_\*
|
||||
SHARK_SPECIFIC_FILES := shark
|
||||
ZERO_SPECIFIC_FILES := zero
|
||||
|
||||
# Always exclude these.
|
||||
Src_Files_EXCLUDE := dtrace jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp
|
||||
|
||||
# Exclude per type.
|
||||
Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
|
||||
Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
|
||||
Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
|
||||
Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
|
||||
Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
|
||||
Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES)
|
||||
|
||||
Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE))
|
||||
|
||||
# Special handling of arch model.
|
||||
ifeq ($(Platform_arch_model), x86_32)
|
||||
Src_Files_EXCLUDE += \*x86_64\*
|
||||
endif
|
||||
ifeq ($(Platform_arch_model), x86_64)
|
||||
Src_Files_EXCLUDE += \*x86_32\*
|
||||
endif
|
||||
|
||||
# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
|
||||
define findsrc
|
||||
$(notdir $(shell find $(1)/. ! -name . -prune \
|
||||
-a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
|
||||
-a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \)))
|
||||
endef
|
||||
|
||||
Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e)))
|
||||
|
||||
Obj_Files = $(sort $(addsuffix .o,$(basename $(Src_Files))))
|
||||
|
||||
JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS)
|
||||
|
||||
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
|
||||
@ -205,7 +263,7 @@ include $(MAKEFILES_DIR)/saproc.make
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) checkAndBuildSA dtraceCheck
|
||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) $(BUILDLIBSAPROC) dtraceCheck
|
||||
|
||||
install: install_jvm install_jsig install_saproc
|
||||
|
||||
|
@ -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 <flavor> core %HotSpotWorkSpace% <jdk_dir>
|
||||
To build the 'compiler2' version (debug || optimized)
|
||||
%HotSpotWorkSpace%\build\windows\build <flavor> compiler2 %HotSpotWorkSpace% <jdk_dir>
|
||||
|
||||
where <jdk_dir> 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 <CR> (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 <type> { <workspace> <buildspace> <productbindest> <debugbindest> }
|
||||
where type is one of core, compiler1, compiler2. If you leave off the
|
||||
"<workspace> <buildspace> <productbindest> <debugbindest>" 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 <CR> (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 <cr> or testlook help <cr> 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%/<flavor> (which ideally is in the path) and run
|
||||
HotJava: h java <flags> (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
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -45,6 +45,9 @@ fi
|
||||
echo "EXPORTS" > vm1.def
|
||||
|
||||
AWK="$MKS_HOME/awk.exe"
|
||||
if [ ! -e $AWK ]; then
|
||||
AWK="$MKS_HOME/gawk.exe"
|
||||
fi
|
||||
GREP="$MKS_HOME/grep.exe"
|
||||
SORT="$MKS_HOME/sort.exe"
|
||||
UNIQ="$MKS_HOME/uniq.exe"
|
||||
@ -57,7 +60,7 @@ if [ "x$1" != "x" ]; then
|
||||
LINK_VER="$1"
|
||||
fi
|
||||
|
||||
if [ "x$LINK_VER" != "x800" -a "x$LINK_VER" != "x900" ]; then
|
||||
if [ "x$LINK_VER" != "x800" -a "x$LINK_VER" != "x900" -a "x$LINK_VER" != "x1000" ]; then
|
||||
$DUMPBIN /symbols *.obj | "$GREP" "??_7.*@@6B@" | "$GREP" -v "type_info" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
|
||||
else
|
||||
# Can't use pipes when calling cl.exe or link.exe from IDE. Using transit file vm3.def
|
||||
|
@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
REM
|
||||
REM Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
REM Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
REM
|
||||
REM This code is free software; you can redistribute it and/or modify it
|
||||
@ -26,11 +26,8 @@ REM
|
||||
REM This is the interactive build setup script (as opposed to the batch
|
||||
REM build execution script). It creates $HotSpotBuildSpace if necessary,
|
||||
REM copies the appropriate files out of $HotSpotWorkSpace into it, and
|
||||
REM builds and runs MakeDeps in it. This has the side-effect of creating
|
||||
REM builds and runs ProjectCreator in it. This has the side-effect of creating
|
||||
REM the vm.vcproj file in the buildspace, which is then used in Visual C++.
|
||||
REM
|
||||
REM The generated project file depends upon the include databases. If
|
||||
REM those are changed then MakeDeps is rerun.
|
||||
|
||||
REM
|
||||
REM Since we don't have uname and we could be cross-compiling,
|
||||
@ -39,6 +36,20 @@ REM
|
||||
REM Note: Running this batch file from the Windows command shell requires
|
||||
REM that "grep" be accessible on the PATH. An MKS install does this.
|
||||
REM
|
||||
|
||||
cl 2>NUL >NUL
|
||||
if %errorlevel% == 0 goto nexttest
|
||||
echo Make sure cl.exe is in your PATH before running this script.
|
||||
goto end
|
||||
|
||||
:nexttest
|
||||
grep -V 2>NUL >NUL
|
||||
if %errorlevel% == 0 goto testit
|
||||
echo Make sure grep.exe is in your PATH before running this script. Either cygwin or MKS should work.
|
||||
goto end
|
||||
|
||||
|
||||
:testit
|
||||
cl 2>&1 | grep "IA-64" >NUL
|
||||
if %errorlevel% == 0 goto isia64
|
||||
cl 2>&1 | grep "AMD64" >NUL
|
||||
@ -47,37 +58,40 @@ set ARCH=x86
|
||||
set BUILDARCH=i486
|
||||
set Platform_arch=x86
|
||||
set Platform_arch_model=x86_32
|
||||
goto end
|
||||
goto done
|
||||
:amd64
|
||||
set ARCH=x86
|
||||
set BUILDARCH=amd64
|
||||
set Platform_arch=x86
|
||||
set Platform_arch_model=x86_64
|
||||
goto end
|
||||
goto done
|
||||
:isia64
|
||||
set ARCH=ia64
|
||||
set BUILDARCH=ia64
|
||||
set Platform_arch=ia64
|
||||
set Platform_arch_model=ia64
|
||||
:end
|
||||
:done
|
||||
|
||||
setlocal
|
||||
|
||||
if "%1" == "" goto usage
|
||||
|
||||
if not "%4" == "" goto usage
|
||||
if not "%2" == "" goto usage
|
||||
|
||||
REM Set HotSpotWorkSpace to the directy two steps above this script
|
||||
for %%i in ("%~dp0..") do ( set HotSpotWorkSpace=%%~dpi)
|
||||
set HotSpotBuildRoot=%HotSpotWorkSpace%build
|
||||
set HotSpotBuildSpace=%HotSpotBuildRoot%\vs
|
||||
set HotSpotJDKDist=%1
|
||||
|
||||
set HotSpotWorkSpace=%1
|
||||
set HotSpotBuildSpace=%2
|
||||
set HotSpotJDKDist=%3
|
||||
|
||||
REM figure out MSC version
|
||||
for /F %%i in ('sh %HotSpotWorkSpace%/make/windows/get_msc_ver.sh') do set %%i
|
||||
|
||||
echo **************************************************************
|
||||
set ProjectFile=vm.vcproj
|
||||
set ProjectFile=jvm.vcproj
|
||||
if "%MSC_VER%" == "1200" (
|
||||
set ProjectFile=vm.dsp
|
||||
set ProjectFile=jvm.dsp
|
||||
echo Will generate VC6 project {unsupported}
|
||||
) else (
|
||||
if "%MSC_VER%" == "1400" (
|
||||
@ -86,10 +100,16 @@ echo Will generate VC8 {Visual Studio 2005}
|
||||
if "%MSC_VER%" == "1500" (
|
||||
echo Will generate VC9 {Visual Studio 2008}
|
||||
) else (
|
||||
if "%MSC_VER%" == "1600" (
|
||||
echo Detected Visual Studio 2010, but
|
||||
echo will generate VC9 {Visual Studio 2008}
|
||||
echo Use conversion wizard in VS 2010.
|
||||
) else (
|
||||
echo Will generate VC7 project {Visual Studio 2003 .NET}
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
echo %ProjectFile%
|
||||
echo **************************************************************
|
||||
|
||||
@ -121,6 +141,8 @@ goto usage
|
||||
|
||||
:test3
|
||||
if not "%HOTSPOTMKSHOME%" == "" goto makedir
|
||||
if exist c:\cygwin\bin set HOTSPOTMKSHOME=c:\cygwin\bin
|
||||
if not "%HOTSPOTMKSHOME%" == "" goto makedir
|
||||
echo Warning: please set variable HOTSPOTMKSHOME to place where
|
||||
echo your MKS/Cygwin installation is
|
||||
echo.
|
||||
@ -136,21 +158,24 @@ echo HotSpotJDKDist=%HotSpotJDKDist%
|
||||
REM This is now safe to do.
|
||||
:copyfiles
|
||||
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
|
||||
if NOT EXIST %HotSpotBuildSpace%\%%i mkdir %HotSpotBuildSpace%\%%i
|
||||
copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\ > NUL
|
||||
if NOT EXIST %HotSpotBuildSpace%\%%i\generated mkdir %HotSpotBuildSpace%\%%i\generated
|
||||
copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\generated > NUL
|
||||
)
|
||||
|
||||
REM force regneration of ProjectFile
|
||||
if exist %HotSpotBuildSpace%\%ProjectFile% del %HotSpotBuildSpace%\%ProjectFile%
|
||||
|
||||
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
|
||||
|
||||
echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make
|
||||
echo -- %%i --
|
||||
echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make
|
||||
echo # Changing a variable below and then deleting %ProjectFile% will cause >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo # %ProjectFile% to be regenerated with the new values. Changing the >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo. >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo Variant=%%i >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo WorkSpace=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo HOTSPOTBUILDROOT=%HotSpotBuildRoot% >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo ARCH=%ARCH% >> %HotSpotBuildSpace%\%%i\local.make
|
||||
@ -158,28 +183,36 @@ echo BUILDARCH=%BUILDARCH% >> %HotSpotBuildSpace%\%%i\local.m
|
||||
echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make
|
||||
echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make
|
||||
|
||||
REM build config specific stuff
|
||||
for /D %%j in (debug, fastdebug, product) do (
|
||||
if NOT EXIST %HotSpotBuildSpace%\%%i\%%j mkdir %HotSpotBuildSpace%\%%i\%%j
|
||||
)
|
||||
|
||||
pushd %HotSpotBuildSpace%\%%i
|
||||
pushd %HotSpotBuildSpace%\%%i\generated
|
||||
nmake /nologo
|
||||
popd
|
||||
|
||||
)
|
||||
|
||||
pushd %HotSpotBuildRoot%
|
||||
|
||||
REM It doesn't matter which variant we use here, "compiler1" is as good as any of the others - we need the common variables
|
||||
nmake /nologo /F %HotSpotWorkSpace%/make/windows/projectfiles/common/Makefile LOCAL_MAKE=%HotSpotBuildSpace%\compiler1\local.make %HotSpotBuildRoot%/%ProjectFile%
|
||||
|
||||
popd
|
||||
|
||||
goto end
|
||||
|
||||
:usage
|
||||
echo Usage: create HotSpotWorkSpace HotSpotBuildSpace HotSpotJDKDist
|
||||
echo Usage: create HotSpotJDKDist
|
||||
echo.
|
||||
echo This is the interactive build setup script (as opposed to the batch
|
||||
echo build execution script). It creates HotSpotBuildSpace if necessary,
|
||||
echo copies the appropriate files out of HotSpotWorkSpace into it, and
|
||||
echo builds and runs MakeDeps in it. This has the side-effect of creating
|
||||
echo This is the VS build setup script (as opposed to the batch
|
||||
echo build execution script). It creates a build directory if necessary,
|
||||
echo copies the appropriate files out of the workspace into it, and
|
||||
echo builds and runs ProjectCreator in it. This has the side-effect of creating
|
||||
echo the %ProjectFile% file in the build space, which is then used in Visual C++.
|
||||
echo The HotSpotJDKDist defines place where JVM binaries should be placed.
|
||||
echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
|
||||
echo.
|
||||
echo The generated project file depends upon the include databases. If
|
||||
echo those are changed then MakeDeps is rerun.
|
||||
echo The HotSpotJDKDist defines the JDK that should be used when running the JVM.
|
||||
echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
|
||||
echo.
|
||||
echo NOTE that it is now NOT safe to modify any of the files in the build
|
||||
echo space, since they may be overwritten whenever this script is run or
|
||||
|
128
hotspot/make/windows/create_obj_files.sh
Normal file
128
hotspot/make/windows/create_obj_files.sh
Normal file
@ -0,0 +1,128 @@
|
||||
#
|
||||
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
# Note that we currently do not have a way to set HotSpotMksHome in
|
||||
# the batch build, but so far this has not seemed to be a problem. The
|
||||
# reason this environment variable is necessary is that it seems that
|
||||
# Windows truncates very long PATHs when executing shells like MKS's
|
||||
# sh, and it has been found that sometimes `which sh` fails.
|
||||
|
||||
if [ "x$HotSpotMksHome" != "x" ]; then
|
||||
TOOL_DIR="$HotSpotMksHome"
|
||||
else
|
||||
# HotSpotMksHome is not set so use the directory that contains "sh".
|
||||
# This works with both MKS and Cygwin.
|
||||
SH=`which sh`
|
||||
TOOL_DIR=`dirname "$SH"`
|
||||
fi
|
||||
|
||||
DIRNAME="$TOOL_DIR/dirname"
|
||||
FIND="$TOOL_DIR/find"
|
||||
|
||||
TYPE=$1
|
||||
Platform_arch=$2
|
||||
Platform_arch_model=$3
|
||||
Platform_os_family=windows
|
||||
Platform_os_arch=windows_$Platform_arch
|
||||
|
||||
WorkSpace=$4
|
||||
GENERATED=$5
|
||||
|
||||
BASE_PATHS="` $FIND ${WorkSpace}/src/share/vm ! -name vm -prune -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)`"
|
||||
BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/share/vm/gc_implementation/shared"
|
||||
BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os/${Platform_os_family}/vm"
|
||||
BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/cpu/${Platform_arch}/vm"
|
||||
BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os_cpu/${Platform_os_arch}/vm"
|
||||
BASE_PATHS="${BASE_PATHS} ${GENERATED}/jvmtifiles"
|
||||
|
||||
CORE_PATHS="${BASE_PATHS}"
|
||||
# shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS.
|
||||
CORE_PATHS="${CORE_PATHS} `$FIND ${WorkSpace}/src/share/vm/gc_implementation ! -name gc_implementation -prune -type d \! -name shared`"
|
||||
|
||||
COMPILER1_PATHS="${WorkSpace}/src/share/vm/c1"
|
||||
|
||||
COMPILER2_PATHS="${WorkSpace}/src/share/vm/opto"
|
||||
COMPILER2_PATHS="${COMPILER2_PATHS} ${WorkSpace}/src/share/vm/libadt"
|
||||
COMPILER2_PATHS="${COMPILER2_PATHS} ${GENERATED}/adfiles"
|
||||
|
||||
# Include dirs per type.
|
||||
case "${TYPE}" in
|
||||
"core") Src_Dirs="${CORE_PATHS}" ;;
|
||||
"kernel") Src_Dirs="${BASE_PATHS} ${COMPILER1_PATHS}" ;;
|
||||
"compiler1") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS}" ;;
|
||||
"compiler2") Src_Dirs="${CORE_PATHS} ${COMPILER2_PATHS}" ;;
|
||||
"tiered") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS} ${COMPILER2_PATHS}" ;;
|
||||
"zero") Src_Dirs="${CORE_PATHS}" ;;
|
||||
"shark") Src_Dirs="${CORE_PATHS}" ;;
|
||||
esac
|
||||
|
||||
COMPILER2_SPECIFIC_FILES="opto libadt bcEscapeAnalyzer.cpp chaitin* c2_* runtime_*"
|
||||
COMPILER1_SPECIFIC_FILES="c1_*"
|
||||
SHARK_SPECIFIC_FILES="shark"
|
||||
ZERO_SPECIFIC_FILES="zero"
|
||||
|
||||
# These files need to be excluded when building the kernel target.
|
||||
KERNEL_EXCLUDED_FILES="attachListener.cpp attachListener_windows.cpp dump.cpp dump_${Platform_arch_model}.cpp forte.cpp fprofiler.cpp heapDumper.cpp heapInspection.cpp jniCheck.cpp jvmtiCodeBlobEvents.cpp jvmtiExtensions.cpp jvmtiImpl.cpp jvmtiRawMonitor.cpp jvmtiTagMap.cpp jvmtiTrace.cpp restore.cpp serialize.cpp vmStructs.cpp g1MemoryPool.cpp psMemoryPool.cpp gcAdaptivePolicyCounters.cpp concurrentGCThread.cpp mutableNUMASpace.cpp allocationStats.cpp gSpaceCounters.cpp immutableSpace.cpp mutableSpace.cpp spaceCounters.cpp yieldingWorkgroup.cpp"
|
||||
|
||||
# Always exclude these.
|
||||
Src_Files_EXCLUDE="jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp"
|
||||
|
||||
# Exclude per type.
|
||||
case "${TYPE}" in
|
||||
"core") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;;
|
||||
"kernel") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ${KERNEL_EXCLUDED_FILES} ciTypeFlow.cpp" ;;
|
||||
"compiler1") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;;
|
||||
"compiler2") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;;
|
||||
"tiered") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;;
|
||||
"zero") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;;
|
||||
"shark") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES}" ;;
|
||||
esac
|
||||
|
||||
# Special handling of arch model.
|
||||
case "${Platform_arch_model}" in
|
||||
"x86_32") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_64*" ;;
|
||||
"x86_64") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_32*" ;;
|
||||
esac
|
||||
|
||||
# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
|
||||
function findsrc {
|
||||
$FIND ${1}/. ! -name . -prune \
|
||||
-a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
|
||||
-a \! \( -name ${Src_Files_EXCLUDE// / -o -name } \) \
|
||||
| sed 's/.*\/\(.*\)/\1/';
|
||||
}
|
||||
|
||||
Src_Files=
|
||||
for e in ${Src_Dirs}; do
|
||||
Src_Files="${Src_Files}`findsrc ${e}` "
|
||||
done
|
||||
|
||||
Obj_Files=
|
||||
for e in ${Src_Files}; do
|
||||
Obj_Files="${Obj_Files}${e%\.[!.]*}.obj "
|
||||
done
|
||||
|
||||
echo Obj_Files=${Obj_Files}
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,7 +22,6 @@
|
||||
#
|
||||
#
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/compile.make
|
||||
|
||||
# Rules for building adlc.exe
|
||||
|
||||
@ -46,27 +45,16 @@ ADLCFLAGS=-q -T -D_LP64
|
||||
ADLCFLAGS=-q -T -U_LP64
|
||||
!endif
|
||||
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE
|
||||
ADLC_CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE
|
||||
|
||||
CPP_INCLUDE_DIRS=\
|
||||
/I "..\generated" \
|
||||
/I "$(WorkSpace)\src\share\vm\compiler" \
|
||||
/I "$(WorkSpace)\src\share\vm\code" \
|
||||
/I "$(WorkSpace)\src\share\vm\interpreter" \
|
||||
/I "$(WorkSpace)\src\share\vm\classfile" \
|
||||
/I "$(WorkSpace)\src\share\vm\asm" \
|
||||
/I "$(WorkSpace)\src\share\vm\memory" \
|
||||
/I "$(WorkSpace)\src\share\vm\oops" \
|
||||
/I "$(WorkSpace)\src\share\vm\prims" \
|
||||
/I "$(WorkSpace)\src\share\vm\runtime" \
|
||||
/I "$(WorkSpace)\src\share\vm\utilities" \
|
||||
/I "$(WorkSpace)\src\share\vm\libadt" \
|
||||
/I "$(WorkSpace)\src\share\vm\opto" \
|
||||
/I "$(WorkSpace)\src\os\windows\vm" \
|
||||
/I "..\generated" \
|
||||
/I "$(WorkSpace)\src\share\vm" \
|
||||
/I "$(WorkSpace)\src\os\windows\vm" \
|
||||
/I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm"
|
||||
|
||||
# NOTE! If you add any files here, you must also update GENERATED_NAMES_IN_INCL
|
||||
# and MakeDepsIDEOptions in makedeps.make.
|
||||
# NOTE! If you add any files here, you must also update GENERATED_NAMES_IN_DIR
|
||||
# and ProjectCreatorIDEOptions in projectcreator.make.
|
||||
GENERATED_NAMES=\
|
||||
ad_$(Platform_arch_model).cpp \
|
||||
ad_$(Platform_arch_model).hpp \
|
||||
@ -81,24 +69,24 @@ GENERATED_NAMES=\
|
||||
dfa_$(Platform_arch_model).cpp
|
||||
|
||||
# NOTE! This must be kept in sync with GENERATED_NAMES
|
||||
GENERATED_NAMES_IN_INCL=\
|
||||
incls/ad_$(Platform_arch_model).cpp \
|
||||
incls/ad_$(Platform_arch_model).hpp \
|
||||
incls/ad_$(Platform_arch_model)_clone.cpp \
|
||||
incls/ad_$(Platform_arch_model)_expand.cpp \
|
||||
incls/ad_$(Platform_arch_model)_format.cpp \
|
||||
incls/ad_$(Platform_arch_model)_gen.cpp \
|
||||
incls/ad_$(Platform_arch_model)_misc.cpp \
|
||||
incls/ad_$(Platform_arch_model)_peephole.cpp \
|
||||
incls/ad_$(Platform_arch_model)_pipeline.cpp \
|
||||
incls/adGlobals_$(Platform_arch_model).hpp \
|
||||
incls/dfa_$(Platform_arch_model).cpp
|
||||
GENERATED_NAMES_IN_DIR=\
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model).cpp \
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model).hpp \
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model)_clone.cpp \
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model)_expand.cpp \
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model)_format.cpp \
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model)_gen.cpp \
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model)_misc.cpp \
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model)_peephole.cpp \
|
||||
$(AdlcOutDir)\ad_$(Platform_arch_model)_pipeline.cpp \
|
||||
$(AdlcOutDir)\adGlobals_$(Platform_arch_model).hpp \
|
||||
$(AdlcOutDir)\dfa_$(Platform_arch_model).cpp
|
||||
|
||||
{$(WorkSpace)\src\share\vm\adlc}.cpp.obj::
|
||||
$(CPP) $(CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
|
||||
$(CPP) $(ADLC_CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
|
||||
|
||||
{$(WorkSpace)\src\share\vm\opto}.cpp.obj::
|
||||
$(CPP) $(CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
|
||||
$(CPP) $(ADLC_CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
|
||||
|
||||
adlc.exe: main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj filebuff.obj \
|
||||
forms.obj formsopt.obj formssel.obj opcodes.obj output_c.obj output_h.obj
|
||||
@ -110,10 +98,12 @@ adlc.exe: main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj filebuf
|
||||
$(MT) /manifest $@.manifest /outputresource:$@;#1
|
||||
!endif
|
||||
|
||||
$(GENERATED_NAMES_IN_INCL): $(Platform_arch_model).ad adlc.exe includeDB.current
|
||||
$(GENERATED_NAMES_IN_DIR): $(Platform_arch_model).ad adlc.exe
|
||||
rm -f $(GENERATED_NAMES)
|
||||
if exist $(AdlcOutDir) rmdir /s /q $(AdlcOutDir)
|
||||
mkdir $(AdlcOutDir)
|
||||
$(ADLC) $(ADLCFLAGS) $(Platform_arch_model).ad
|
||||
mv $(GENERATED_NAMES) incls/
|
||||
mv $(GENERATED_NAMES) $(AdlcOutDir)/
|
||||
|
||||
$(Platform_arch_model).ad: $(WorkSpace)/src/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad $(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm/windows_$(Platform_arch_model).ad
|
||||
rm -f $(Platform_arch_model).ad
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -80,6 +80,20 @@ CPP_FLAGS=$(CPP_FLAGS) /D "IA32"
|
||||
CPP=ARCH_ERROR
|
||||
!endif
|
||||
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS"
|
||||
|
||||
# Must specify this for sharedRuntimeTrig.cpp
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN"
|
||||
|
||||
# Used for platform dispatching
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_FAMILY_windows
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_$(Platform_arch)
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_MODEL_$(Platform_arch_model)
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_windows_$(Platform_arch)
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_MODEL_windows_$(Platform_arch_model)
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_COMPILER_visCPP
|
||||
|
||||
|
||||
# MSC_VER is a 4 digit number that tells us what compiler is being used
|
||||
# and is generated when the local.make file is created by build.make
|
||||
# via the script get_msc_ver.sh
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -28,7 +28,12 @@ AOUT=$(HS_FNAME)
|
||||
SAWINDBG=sawindbg.dll
|
||||
GENERATED=../generated
|
||||
|
||||
default:: _build_pch_file.obj $(AOUT) checkAndBuildSA
|
||||
# Allow the user to turn off precompiled headers from the command line.
|
||||
!if "$(USE_PRECOMPILED_HEADER)" != "0"
|
||||
BUILD_PCH_FILE=_build_pch_file.obj
|
||||
!endif
|
||||
|
||||
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
|
||||
|
||||
!include ../local.make
|
||||
!include compile.make
|
||||
@ -38,15 +43,15 @@ CPP_FLAGS=$(CPP_FLAGS) $(DEBUG_OPT_OPTION)
|
||||
!include $(WorkSpace)/make/windows/makefiles/vm.make
|
||||
!include local.make
|
||||
|
||||
!include $(GENERATED)/Dependencies
|
||||
|
||||
HS_BUILD_ID=$(HS_BUILD_VER)-debug
|
||||
|
||||
# Force resources to be rebuilt every time
|
||||
$(Res_Files): FORCE
|
||||
|
||||
$(AOUT): $(Res_Files) $(Obj_Files)
|
||||
vm.def: $(Obj_Files)
|
||||
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
||||
|
||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||
$(LINK) @<<
|
||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||
<<
|
||||
@ -59,3 +64,4 @@ $(AOUT): $(Res_Files) $(Obj_Files)
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -28,7 +28,12 @@ AOUT=$(HS_FNAME)
|
||||
SAWINDBG=sawindbg.dll
|
||||
GENERATED=../generated
|
||||
|
||||
default:: _build_pch_file.obj $(AOUT) checkAndBuildSA
|
||||
# Allow the user to turn off precompiled headers from the command line.
|
||||
!if "$(USE_PRECOMPILED_HEADER)" != "0"
|
||||
BUILD_PCH_FILE=_build_pch_file.obj
|
||||
!endif
|
||||
|
||||
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
|
||||
|
||||
!include ../local.make
|
||||
!include compile.make
|
||||
@ -38,15 +43,15 @@ CPP_FLAGS=$(CPP_FLAGS) $(FASTDEBUG_OPT_OPTION)
|
||||
!include $(WorkSpace)/make/windows/makefiles/vm.make
|
||||
!include local.make
|
||||
|
||||
!include $(GENERATED)/Dependencies
|
||||
|
||||
HS_BUILD_ID=$(HS_BUILD_VER)-fastdebug
|
||||
|
||||
# Force resources to be rebuilt every time
|
||||
$(Res_Files): FORCE
|
||||
|
||||
$(AOUT): $(Res_Files) $(Obj_Files)
|
||||
vm.def: $(Obj_Files)
|
||||
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
||||
|
||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||
$(LINK) @<<
|
||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||
<<
|
||||
@ -57,6 +62,6 @@ $(AOUT): $(Res_Files) $(Obj_Files)
|
||||
$(MT) /manifest $@.manifest /outputresource:$@;#2
|
||||
!endif
|
||||
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,7 +23,7 @@
|
||||
#
|
||||
|
||||
!include ../local.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/makedeps.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/projectcreator.make
|
||||
!include local.make
|
||||
|
||||
# Pick up rules for building JVMTI (JSR-163)
|
||||
@ -33,68 +33,25 @@ JvmtiOutDir=jvmtifiles
|
||||
# Pick up rules for building SA
|
||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||
|
||||
AdlcOutDir=adfiles
|
||||
|
||||
!if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered")
|
||||
default:: includeDB.current Dependencies incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp $(JvmtiGeneratedFiles)
|
||||
default:: $(AdlcOutDir)/ad_$(Platform_arch_model).cpp $(AdlcOutDir)/dfa_$(Platform_arch_model).cpp $(JvmtiGeneratedFiles) buildobjfiles
|
||||
!else
|
||||
default:: includeDB.current Dependencies $(JvmtiGeneratedFiles)
|
||||
default:: $(JvmtiGeneratedFiles) buildobjfiles
|
||||
!endif
|
||||
|
||||
# core plus serial gc
|
||||
IncludeDBs_base=$(WorkSpace)/src/share/vm/includeDB_core \
|
||||
$(WorkSpace)/src/share/vm/includeDB_jvmti \
|
||||
$(WorkSpace)/src/share/vm/includeDB_gc \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_serial
|
||||
buildobjfiles:
|
||||
@ sh $(WorkSpace)/make/windows/create_obj_files.sh $(Variant) $(Platform_arch) $(Platform_arch_model) $(WorkSpace) . > objfiles.make
|
||||
|
||||
# parallel gc
|
||||
IncludeDBs_gc= $(WorkSpace)/src/share/vm/includeDB_gc_parallel \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_shared \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parNew \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_g1
|
||||
|
||||
IncludeDBs_core=$(IncludeDBs_base) $(IncludeDBs_gc) \
|
||||
$(WorkSpace)/src/share/vm/includeDB_features
|
||||
|
||||
!if "$(Variant)" == "core"
|
||||
IncludeDBs=$(IncludeDBs_core)
|
||||
!endif
|
||||
|
||||
!if "$(Variant)" == "kernel"
|
||||
IncludeDBs=$(IncludeDBs_base) $(WorkSpace)/src/share/vm/includeDB_compiler1
|
||||
!endif
|
||||
|
||||
!if "$(Variant)" == "compiler1"
|
||||
IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler1
|
||||
!endif
|
||||
|
||||
|
||||
!if "$(Variant)" == "compiler2"
|
||||
IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler2
|
||||
!endif
|
||||
|
||||
!if "$(Variant)" == "tiered"
|
||||
IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler1 \
|
||||
$(WorkSpace)/src/share/vm/includeDB_compiler2
|
||||
!endif
|
||||
|
||||
# Note we don't generate a Visual C++ project file using MakeDeps for
|
||||
# the batch build.
|
||||
includeDB.current Dependencies: classes/MakeDeps.class $(IncludeDBs)
|
||||
cat $(IncludeDBs) > includeDB
|
||||
if exist incls rmdir /s /q incls
|
||||
mkdir incls
|
||||
$(RUN_JAVA) -Djava.class.path=classes MakeDeps WinGammaPlatform$(VcVersion) $(WorkSpace)/make/windows/platform_$(BUILDARCH) includeDB $(MakeDepsOptions)
|
||||
rm -f includeDB.current
|
||||
cp includeDB includeDB.current
|
||||
|
||||
classes/MakeDeps.class: $(MakeDepsSources)
|
||||
classes/ProjectCreator.class: $(ProjectCreatorSources)
|
||||
if exist classes rmdir /s /q classes
|
||||
mkdir classes
|
||||
$(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -d classes $(MakeDepsSources)
|
||||
$(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\ProjectCreator -d classes $(ProjectCreatorSources)
|
||||
|
||||
!if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered")
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/compile.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/adlc.make
|
||||
|
||||
!endif
|
||||
|
71
hotspot/make/windows/makefiles/launcher.make
Normal file
71
hotspot/make/windows/makefiles/launcher.make
Normal file
@ -0,0 +1,71 @@
|
||||
#
|
||||
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
LAUNCHER_FLAGS=$(CPP_FLAGS) $(ARCHFLAG) \
|
||||
/D FULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
|
||||
/D JDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
|
||||
/D JDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
|
||||
/D GAMMA \
|
||||
/D LAUNCHER_TYPE=\"gamma\" \
|
||||
/D _CRT_SECURE_NO_WARNINGS \
|
||||
/D _CRT_SECURE_NO_DEPRECATE \
|
||||
/D LINK_INTO_LIBJVM \
|
||||
/I $(WorkSpace)\src\os\windows\launcher \
|
||||
/I $(WorkSpace)\src\share\tools\launcher \
|
||||
/I $(WorkSpace)\src\share\vm\prims \
|
||||
/I $(WorkSpace)\src\share\vm \
|
||||
/I $(WorkSpace)\src\cpu\$(Platform_arch)\vm \
|
||||
/I $(WorkSpace)\src\os\windows\vm
|
||||
|
||||
LINK_FLAGS=/manifest $(HS_INTERNAL_NAME).lib kernel32.lib user32.lib /nologo /machine:$(MACHINE) /map /debug /subsystem:console
|
||||
|
||||
!if "$(COMPILER_NAME)" == "VS2005"
|
||||
# This VS2005 compiler has /GS as a default and requires bufferoverflowU.lib
|
||||
# on the link command line, otherwise we get missing __security_check_cookie
|
||||
# externals at link time. Even with /GS-, you need bufferoverflowU.lib.
|
||||
BUFFEROVERFLOWLIB = bufferoverflowU.lib
|
||||
LINK_FLAGS = $(LINK_FLAGS) $(BUFFEROVERFLOWLIB)
|
||||
!endif
|
||||
|
||||
LAUNCHERDIR = $(WorkSpace)/src/os/windows/launcher
|
||||
LAUNCHERDIR_SHARE = $(WorkSpace)/src/share/tools/launcher
|
||||
|
||||
OUTDIR = launcher
|
||||
|
||||
{$(LAUNCHERDIR)}.c{$(OUTDIR)}.obj:
|
||||
-mkdir $(OUTDIR) 2>NUL >NUL
|
||||
$(CPP) $(LAUNCHER_FLAGS) /c /Fo$@ $<
|
||||
|
||||
{$(LAUNCHERDIR_SHARE)}.c{$(OUTDIR)}.obj:
|
||||
-mkdir $(OUTDIR) 2>NUL >NUL
|
||||
$(CPP) $(LAUNCHER_FLAGS) /c /Fo$@ $<
|
||||
|
||||
$(OUTDIR)\*.obj: $(LAUNCHERDIR)\*.c $(LAUNCHERDIR)\*.h $(LAUNCHERDIR_SHARE)\*.c $(LAUNCHERDIR_SHARE)\*.h
|
||||
|
||||
launcher: $(OUTDIR)\java.obj $(OUTDIR)\java_md.obj $(OUTDIR)\jli_util.obj
|
||||
echo $(JAVA_HOME) > jdkpath.txt
|
||||
$(LINK) $(LINK_FLAGS) /out:hotspot.exe $**
|
||||
|
||||
|
@ -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
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,7 +27,12 @@ HS_FNAME=$(HS_INTERNAL_NAME).dll
|
||||
AOUT=$(HS_FNAME)
|
||||
GENERATED=../generated
|
||||
|
||||
default:: _build_pch_file.obj $(AOUT) checkAndBuildSA
|
||||
# Allow the user to turn off precompiled headers from the command line.
|
||||
!if "$(USE_PRECOMPILED_HEADER)" != "0"
|
||||
BUILD_PCH_FILE=_build_pch_file.obj
|
||||
!endif
|
||||
|
||||
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
|
||||
|
||||
!include ../local.make
|
||||
!include compile.make
|
||||
@ -41,8 +46,6 @@ RC_FLAGS=$(RC_FLAGS) /D "NDEBUG"
|
||||
!include $(WorkSpace)/make/windows/makefiles/vm.make
|
||||
!include local.make
|
||||
|
||||
!include $(GENERATED)/Dependencies
|
||||
|
||||
HS_BUILD_ID=$(HS_BUILD_VER)
|
||||
|
||||
# Force resources to be rebuilt every time
|
||||
@ -55,8 +58,10 @@ $(AOUT): $(Res_Files) $(Obj_Files)
|
||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib $(Obj_Files) $(Res_Files)
|
||||
<<
|
||||
!else
|
||||
$(AOUT): $(Res_Files) $(Obj_Files)
|
||||
vm.def: $(Obj_Files)
|
||||
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
||||
|
||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||
$(LINK) @<<
|
||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||
<<
|
||||
@ -70,3 +75,4 @@ $(AOUT): $(Res_Files) $(Obj_Files)
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
||||
|
235
hotspot/make/windows/makefiles/projectcreator.make
Normal file
235
hotspot/make/windows/makefiles/projectcreator.make
Normal file
@ -0,0 +1,235 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
#
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/rules.make
|
||||
|
||||
# This is used externally by both batch and IDE builds, so can't
|
||||
# reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE,
|
||||
# HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables.
|
||||
#
|
||||
# NOTE: unfortunately the ProjectCreatorSources list must be kept
|
||||
# synchronized between this and the Solaris version
|
||||
# (make/solaris/makefiles/projectcreator.make).
|
||||
|
||||
ProjectCreatorSources=\
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTree.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTreeNode.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\FileFormatException.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\Macro.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\MacroDefinitions.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\ProjectCreator.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatform.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC6.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC7.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC8.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC9.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\Util.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\BuildConfig.java \
|
||||
$(WorkSpace)\src\share\tools\ProjectCreator\ArgsParser.java
|
||||
|
||||
# This is only used internally
|
||||
ProjectCreatorIncludesPRIVATE=\
|
||||
-relativeInclude src\share\vm \
|
||||
-relativeInclude src\share\vm\prims \
|
||||
-relativeInclude src\os\windows\vm \
|
||||
-relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \
|
||||
-relativeInclude src\cpu\$(Platform_arch)\vm \
|
||||
-absoluteInclude $(HOTSPOTBUILDSPACE)/%f/generated \
|
||||
-ignorePath $(HOTSPOTBUILDSPACE)/%f/generated \
|
||||
-ignorePath src\share\vm\adlc \
|
||||
-ignorePath src\share\vm\shark
|
||||
|
||||
# This is referenced externally by both the IDE and batch builds
|
||||
ProjectCreatorOptions=
|
||||
|
||||
# This is used externally, but only by the IDE builds, so we can
|
||||
# reference environment variables which aren't defined in the batch
|
||||
# build process.
|
||||
|
||||
ProjectCreatorIDEOptions = \
|
||||
-useToGeneratePch java.cpp \
|
||||
-disablePch os_windows.cpp \
|
||||
-disablePch os_windows_$(Platform_arch).cpp \
|
||||
-disablePch osThread_windows.cpp \
|
||||
-disablePch bytecodeInterpreter.cpp \
|
||||
-disablePch bytecodeInterpreterWithChecks.cpp \
|
||||
-disablePch getThread_windows_$(Platform_arch).cpp \
|
||||
-disablePch_compiler2 opcodes.cpp
|
||||
|
||||
# Common options for the IDE builds for core, c1, and c2
|
||||
ProjectCreatorIDEOptions=\
|
||||
$(ProjectCreatorIDEOptions) \
|
||||
-sourceBase $(HOTSPOTWORKSPACE) \
|
||||
-buildBase $(HOTSPOTBUILDSPACE)\%f\%b \
|
||||
-startAt src \
|
||||
-compiler $(VcVersion) \
|
||||
-projectFileName $(HOTSPOTBUILDROOT)\$(ProjectFile) \
|
||||
-jdkTargetRoot $(HOTSPOTJDKDIST) \
|
||||
-define ALIGN_STACK_FRAMES \
|
||||
-define VM_LITTLE_ENDIAN \
|
||||
-prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \
|
||||
-postbuild "" "Building hotspot.exe..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) nmake -f $(HOTSPOTWORKSPACE)\make\windows\projectfiles\common\Makefile LOCAL_MAKE=$(HOTSPOTBUILDSPACE)\%f\local.make JAVA_HOME=$(HOTSPOTJDKDIST) launcher" \
|
||||
-ignoreFile jsig.c \
|
||||
-ignoreFile jvmtiEnvRecommended.cpp \
|
||||
-ignoreFile jvmtiEnvStub.cpp \
|
||||
-ignoreFile globalDefinitions_gcc.hpp \
|
||||
-ignoreFile globalDefinitions_sparcWorks.hpp \
|
||||
-ignoreFile version.rc \
|
||||
-ignoreFile Xusage.txt \
|
||||
-define TARGET_ARCH_x86 \
|
||||
-define TARGET_OS_ARCH_windows_x86 \
|
||||
-define TARGET_OS_FAMILY_windows \
|
||||
-define TARGET_COMPILER_visCPP \
|
||||
$(ProjectCreatorIncludesPRIVATE)
|
||||
|
||||
# Add in build-specific options
|
||||
!if "$(BUILDARCH)" == "i486"
|
||||
ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
-define IA32 \
|
||||
-ignorePath x86_64 \
|
||||
-define TARGET_ARCH_MODEL_x86_32
|
||||
!else
|
||||
ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
-ignorePath x86_32 \
|
||||
-define TARGET_ARCH_MODEL_x86_64
|
||||
!endif
|
||||
|
||||
ProjectCreatorIDEOptionsIgnoreCompiler1=\
|
||||
-ignorePath_TARGET c1_
|
||||
|
||||
ProjectCreatorIDEOptionsIgnoreCompiler2=\
|
||||
-ignorePath_TARGET src/share/vm/opto \
|
||||
-ignorePath_TARGET src/share/vm/libadt \
|
||||
-ignorePath_TARGET adfiles \
|
||||
-ignoreFile_TARGET bcEscapeAnalyzer.cpp \
|
||||
-ignoreFile_TARGET bcEscapeAnalyzer.hpp \
|
||||
-ignorePath_TARGET chaitin \
|
||||
-ignorePath_TARGET c2_ \
|
||||
-ignorePath_TARGET runtime_ \
|
||||
-ignoreFile_TARGET ciTypeFlow.cpp \
|
||||
-ignoreFile_TARGET ciTypeFlow.hpp \
|
||||
-ignoreFile_TARGET $(Platform_arch_model).ad
|
||||
|
||||
##################################################
|
||||
# Without compiler(core) specific options
|
||||
##################################################
|
||||
ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
$(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=core) \
|
||||
$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=core)
|
||||
|
||||
##################################################
|
||||
# JKERNEL specific options
|
||||
##################################################
|
||||
ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
-define_kernel KERNEL \
|
||||
$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=kernel) \
|
||||
-ignorePath_kernel src/share/vm/gc_implementation/parallelScavenge \
|
||||
-ignorePath_kernel src/share/vm/gc_implementation/parNew \
|
||||
-ignorePath_kernel src/share/vm/gc_implementation/concurrentMarkSweep \
|
||||
-ignorePath_kernel src/share/vm/gc_implementation/g1 \
|
||||
-ignoreFile_kernel attachListener.cpp \
|
||||
-ignoreFile_kernel attachListener_windows.cpp \
|
||||
-ignoreFile_kernel dump.cpp \
|
||||
-ignoreFile_kernel dump_$(Platform_arch_model).cpp \
|
||||
-ignoreFile_kernel forte.cpp \
|
||||
-ignoreFile_kernel fprofiler.cpp \
|
||||
-ignoreFile_kernel heapDumper.cpp \
|
||||
-ignoreFile_kernel heapInspection.cpp \
|
||||
-ignoreFile_kernel jniCheck.cpp \
|
||||
-ignoreFile_kernel jvmtiCodeBlobEvents.cpp \
|
||||
-ignoreFile_kernel jvmtiExtensions.cpp \
|
||||
-ignoreFile_kernel jvmtiImpl.cpp \
|
||||
-ignoreFile_kernel jvmtiRawMonitor.cpp \
|
||||
-ignoreFile_kernel jvmtiTagMap.cpp \
|
||||
-ignoreFile_kernel jvmtiTrace.cpp \
|
||||
-ignoreFile_kernel jvmtiTrace.hpp \
|
||||
-ignoreFile_kernel restore.cpp \
|
||||
-ignoreFile_kernel serialize.cpp \
|
||||
-ignoreFile_kernel vmStructs.cpp \
|
||||
-ignoreFile_kernel g1MemoryPool.cpp \
|
||||
-ignoreFile_kernel g1MemoryPool.hpp \
|
||||
-ignoreFile_kernel psMemoryPool.cpp \
|
||||
-ignoreFile_kernel psMemoryPool.hpp \
|
||||
-ignoreFile_kernel gcAdaptivePolicyCounters.cpp \
|
||||
-ignoreFile_kernel concurrentGCThread.cpp \
|
||||
-ignoreFile_kernel mutableNUMASpace.cpp \
|
||||
-ignoreFile_kernel ciTypeFlow.cpp \
|
||||
-ignoreFile_kernel ciTypeFlow.hpp \
|
||||
-ignoreFile_kernel oop.pcgc.inline.hpp \
|
||||
-ignoreFile_kernel oop.psgc.inline.hpp \
|
||||
-ignoreFile_kernel allocationStats.cpp \
|
||||
-ignoreFile_kernel allocationStats.hpp \
|
||||
-ignoreFile_kernel concurrentGCThread.hpp \
|
||||
-ignoreFile_kernel gSpaceCounters.cpp \
|
||||
-ignoreFile_kernel gSpaceCounters.hpp \
|
||||
-ignoreFile_kernel gcAdaptivePolicyCounters.hpp \
|
||||
-ignoreFile_kernel immutableSpace.cpp \
|
||||
-ignoreFile_kernel mutableNUMASpace.hpp \
|
||||
-ignoreFile_kernel mutableSpace.cpp \
|
||||
-ignoreFile_kernel spaceCounters.cpp \
|
||||
-ignoreFile_kernel spaceCounters.hpp \
|
||||
-ignoreFile_kernel yieldingWorkgroup.cpp \
|
||||
-ignoreFile_kernel yieldingWorkgroup.hpp \
|
||||
-ignorePath_kernel vmStructs_ \
|
||||
-ignoreFile_kernel $(Platform_arch_model).ad \
|
||||
-additionalFile_kernel gcTaskManager.hpp
|
||||
|
||||
##################################################
|
||||
# Client(C1) compiler specific options
|
||||
##################################################
|
||||
ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
-define_compiler1 COMPILER1 \
|
||||
$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1)
|
||||
|
||||
##################################################
|
||||
# Server(C2) compiler specific options
|
||||
##################################################
|
||||
#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make.
|
||||
ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
-define_compiler2 COMPILER2 \
|
||||
-additionalFile_compiler2 $(Platform_arch_model).ad \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).cpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).hpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_clone.cpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_expand.cpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_format.cpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_gen.cpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_misc.cpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_peephole.cpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_pipeline.cpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles adGlobals_$(Platform_arch_model).hpp \
|
||||
-additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles dfa_$(Platform_arch_model).cpp \
|
||||
$(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=compiler2)
|
||||
|
||||
# Add in the jvmti (JSR-163) options
|
||||
# NOTE: do not pull in jvmtiEnvRecommended.cpp. This file is generated
|
||||
# so the programmer can diff it with jvmtiEnv.cpp to be sure the
|
||||
# code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java).
|
||||
# If so, they would then check it in as a new version of jvmtiEnv.cpp.
|
||||
ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
-additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnv.hpp \
|
||||
-additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnter.cpp \
|
||||
-additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnterTrace.cpp \
|
||||
-additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmti.h \
|
||||
-additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles bytecodeInterpreterWithChecks.cpp
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -48,7 +48,7 @@ BOOT_TARGET_CLASS_VERSION=6
|
||||
JAVAC_FLAGS=-g -encoding ascii
|
||||
BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
|
||||
|
||||
ProjectFile=vm.vcproj
|
||||
ProjectFile=jvm.vcproj
|
||||
|
||||
!if "$(MSC_VER)" == "1200"
|
||||
|
||||
@ -63,6 +63,11 @@ VcVersion=VC8
|
||||
|
||||
VcVersion=VC9
|
||||
|
||||
!elseif "$(MSC_VER)" == "1600"
|
||||
|
||||
# for compatibility - we don't yet have a ProjectCreator for VC10
|
||||
VcVersion=VC9
|
||||
|
||||
!else
|
||||
|
||||
VcVersion=VC7
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,6 +25,8 @@
|
||||
# Resource file containing VERSIONINFO
|
||||
Res_Files=.\version.res
|
||||
|
||||
!include ..\generated\objfiles.make
|
||||
|
||||
!ifdef RELEASE
|
||||
!ifdef DEVELOP
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D "DEBUG"
|
||||
@ -69,10 +71,7 @@ CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\""
|
||||
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS" $(CPP_INCLUDE_DIRS)
|
||||
|
||||
# Must specify this for sharedRuntimeTrig.cpp
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN"
|
||||
CPP_FLAGS=$(CPP_FLAGS) $(CPP_INCLUDE_DIRS)
|
||||
|
||||
# Define that so jni.h is on correct side
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D "_JNI_IMPLEMENTATION_"
|
||||
@ -94,6 +93,8 @@ AGCT_EXPORT=/export:AsyncGetCallTrace
|
||||
!endif
|
||||
!endif
|
||||
|
||||
# If you modify exports below please do the corresponding changes in
|
||||
# src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
|
||||
LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
|
||||
/export:JNI_GetDefaultJavaVMInitArgs \
|
||||
/export:JNI_CreateJavaVM \
|
||||
@ -111,37 +112,24 @@ LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
|
||||
/export:JVM_InitAgentProperties
|
||||
|
||||
CPP_INCLUDE_DIRS=\
|
||||
/I "..\generated" \
|
||||
/I "..\generated\jvmtifiles" \
|
||||
/I "$(WorkSpace)\src\share\vm\c1" \
|
||||
/I "$(WorkSpace)\src\share\vm\compiler" \
|
||||
/I "$(WorkSpace)\src\share\vm\code" \
|
||||
/I "$(WorkSpace)\src\share\vm\interpreter" \
|
||||
/I "$(WorkSpace)\src\share\vm\ci" \
|
||||
/I "$(WorkSpace)\src\share\vm\classfile" \
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\shared"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\parNew"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\g1"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_interface"\
|
||||
/I "$(WorkSpace)\src\share\vm\asm" \
|
||||
/I "$(WorkSpace)\src\share\vm\memory" \
|
||||
/I "$(WorkSpace)\src\share\vm\oops" \
|
||||
/I "$(WorkSpace)\src\share\vm\prims" \
|
||||
/I "$(WorkSpace)\src\share\vm\runtime" \
|
||||
/I "$(WorkSpace)\src\share\vm\services" \
|
||||
/I "$(WorkSpace)\src\share\vm\utilities" \
|
||||
/I "$(WorkSpace)\src\share\vm\libadt" \
|
||||
/I "$(WorkSpace)\src\share\vm\opto" \
|
||||
/I "$(WorkSpace)\src\os\windows\vm" \
|
||||
/I "..\generated" \
|
||||
/I "$(WorkSpace)\src\share\vm" \
|
||||
/I "$(WorkSpace)\src\share\vm\prims" \
|
||||
/I "$(WorkSpace)\src\os\windows\vm" \
|
||||
/I "$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm" \
|
||||
/I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm"
|
||||
|
||||
CPP_USE_PCH=/Fp"vm.pch" /Yu"incls/_precompiled.incl"
|
||||
CPP_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER
|
||||
|
||||
!if "$(USE_PRECOMPILED_HEADER)" != "0"
|
||||
CPP_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp"
|
||||
!else
|
||||
CPP_USE_PCH=$(CPP_DONT_USE_PCH)
|
||||
!endif
|
||||
|
||||
# Where to find the source code for the virtual machine
|
||||
VM_PATH=../generated/incls
|
||||
VM_PATH=../generated
|
||||
VM_PATH=$(VM_PATH);../generated/adfiles
|
||||
VM_PATH=$(VM_PATH);../generated/jvmtifiles
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler
|
||||
@ -173,31 +161,31 @@ VM_PATH={$(VM_PATH)}
|
||||
# Special case files not using precompiled header files.
|
||||
|
||||
c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
|
||||
$(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
|
||||
|
||||
os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp
|
||||
$(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
|
||||
|
||||
os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
|
||||
$(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
|
||||
|
||||
osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
|
||||
$(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
|
||||
|
||||
conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
|
||||
$(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
|
||||
|
||||
getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
|
||||
$(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
|
||||
|
||||
opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp
|
||||
$(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
|
||||
|
||||
bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
|
||||
$(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
|
||||
|
||||
bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
|
||||
$(CPP) $(CPP_FLAGS) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
|
||||
|
||||
# Default rules for the Virtual Machine
|
||||
{$(WorkSpace)\src\share\vm\c1}.cpp.obj::
|
||||
@ -280,11 +268,14 @@ bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWi
|
||||
{..\generated\incls}.cpp.obj::
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
||||
|
||||
{..\generated\adfiles}.cpp.obj::
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
||||
|
||||
{..\generated\jvmtifiles}.cpp.obj::
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
||||
|
||||
default::
|
||||
|
||||
_build_pch_file.obj:
|
||||
@echo #include "incls/_precompiled.incl" > ../generated/_build_pch_file.cpp
|
||||
$(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"incls/_precompiled.incl" /c ../generated/_build_pch_file.cpp
|
||||
@echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp
|
||||
$(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,6 +22,11 @@
|
||||
#
|
||||
#
|
||||
|
||||
!ifdef LOCAL_MAKE
|
||||
!include $(LOCAL_MAKE)
|
||||
!endif
|
||||
|
||||
|
||||
WorkSpace=$(HOTSPOTWORKSPACE)
|
||||
|
||||
!ifdef ALT_BOOTDIR
|
||||
@ -32,74 +37,39 @@ BootStrapDir=$(BOOTDIR)
|
||||
!else
|
||||
!ifdef JAVA_HOME
|
||||
BootStrapDir=$(JAVA_HOME)
|
||||
!else
|
||||
!ifdef HOTSPOTJDKDIST
|
||||
BootStrapDir=$(HOTSPOTJDKDIST)
|
||||
!endif
|
||||
!endif
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/makedeps.make
|
||||
|
||||
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/projectcreator.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/compile.make
|
||||
|
||||
# Pick up rules for building JVMTI (JSR-163)
|
||||
JvmtiOutDir=$(HOTSPOTBUILDSPACE)\jvmtifiles
|
||||
JvmtiOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\jvmtifiles
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/jvmti.make
|
||||
|
||||
Platform=$(HOTSPOTWORKSPACE)/make/windows/platform_$(BUILDARCH)
|
||||
|
||||
default:: $(AdditionalTargets) $(JvmtiGeneratedFiles)
|
||||
|
||||
IncludeDBs_base=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_core \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_jvmti \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_serial
|
||||
|
||||
# Parallel gc files
|
||||
IncludeDBs_gc=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc_parallel \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_shared \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parNew \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_g1
|
||||
|
||||
|
||||
IncludeDBs_kernel =$(IncludeDBs_base) \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1
|
||||
|
||||
IncludeDBs_core =$(IncludeDBs_base) $(IncludeDBs_gc) \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_features
|
||||
|
||||
IncludeDBs_compiler1=$(IncludeDBs_core) \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1
|
||||
|
||||
IncludeDBs_compiler2=$(IncludeDBs_core) \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler2
|
||||
|
||||
IncludeDBs_tiered=$(IncludeDBs_core) \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1 \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler2
|
||||
|
||||
|
||||
!if "$(Variant)" == "compiler1"
|
||||
IncludeDBs = $(IncludeDBs_compiler1)
|
||||
!endif
|
||||
|
||||
!if "$(Variant)" == "compiler2"
|
||||
IncludeDBs = $(IncludeDBs_compiler2)
|
||||
# Pick up rules for building adlc
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make
|
||||
!endif
|
||||
|
||||
!if "$(Variant)" == "tiered"
|
||||
IncludeDBs = $(IncludeDBs_tiered)
|
||||
# Pick up rules for building adlc
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make
|
||||
!endif
|
||||
|
||||
!if "$(Variant)" == "core"
|
||||
IncludeDBs = $(IncludeDBs_core)
|
||||
!endif
|
||||
HS_INTERNAL_NAME=jvm
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/launcher.make
|
||||
|
||||
!if "$(Variant)" == "kernel"
|
||||
IncludeDBs = $(IncludeDBs_kernel)
|
||||
!endif
|
||||
default:: $(AdditionalTargets) $(JvmtiGeneratedFiles)
|
||||
|
||||
!include $(HOTSPOTWORKSPACE)/make/hotspot_version
|
||||
|
||||
@ -108,7 +78,11 @@ HOTSPOT_RELEASE_VERSION="$(HOTSPOT_RELEASE_VERSION)"
|
||||
!else
|
||||
HOTSPOT_RELEASE_VERSION="$(HS_MAJOR_VER).$(HS_MINOR_VER)-b$(HS_BUILD_NUMBER)"
|
||||
!endif
|
||||
!if "$(USER_RELEASE_SUFFIX)" != ""
|
||||
HOTSPOT_BUILD_VERSION$(HOTSPOT_BUILD_VERSION) = internal-$(USER_RELEASE_SUFFIX)
|
||||
!else
|
||||
HOTSPOT_BUILD_VERSION$(HOTSPOT_BUILD_VERSION) = internal
|
||||
!endif
|
||||
!if "$(HOTSPOT_BUILD_VERSION)" != ""
|
||||
HOTSPOT_RELEASE_VERSION="$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)"
|
||||
!endif
|
||||
@ -130,55 +104,22 @@ HOTSPOT_VM_DISTRO="OpenJDK"
|
||||
!endif
|
||||
!endif
|
||||
|
||||
MakeDepsIDEOptions = $(MakeDepsIDEOptions) \
|
||||
-includeDB_kernel $(HOTSPOTBUILDSPACE)\includeDB_kernel \
|
||||
-includeDB_core $(HOTSPOTBUILDSPACE)\includeDB_core \
|
||||
-includeDB_compiler1 $(HOTSPOTBUILDSPACE)\includeDB_compiler1 \
|
||||
-includeDB_compiler2 $(HOTSPOTBUILDSPACE)\includeDB_compiler2 \
|
||||
-includeDB_tiered $(HOTSPOTBUILDSPACE)\includeDB_tiered \
|
||||
ProjectCreatorIDEOptions = $(ProjectCreatorIDEOptions) \
|
||||
-platform $(Platform) \
|
||||
-define HOTSPOT_RELEASE_VERSION=\\\"$(HOTSPOT_RELEASE_VERSION)\\\" \
|
||||
-define JRE_RELEASE_VERSION=\\\"$(JRE_RELEASE_VERSION)\\\" \
|
||||
-define HOTSPOT_VM_DISTRO=\\\"$(HOTSPOT_VM_DISTRO)\\\"
|
||||
|
||||
incls:
|
||||
@mkdir incls
|
||||
|
||||
includeDB.current $(ProjectFile) Dependencies: local.make $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class \
|
||||
$(IncludeDBs) incls
|
||||
@rm -f includeDB $(HOTSPOTBUILDSPACE)\includeDB_kernel \
|
||||
$(HOTSPOTBUILDSPACE)\includeDB_core \
|
||||
$(HOTSPOTBUILDSPACE)\includeDB_compiler1 \
|
||||
$(HOTSPOTBUILDSPACE)\includeDB_compiler2 \
|
||||
$(HOTSPOTBUILDSPACE)\includeDB_tiered
|
||||
@cat $(IncludeDBs_kernel) > $(HOTSPOTBUILDSPACE)\includeDB_kernel
|
||||
@cat $(IncludeDBs_core) > $(HOTSPOTBUILDSPACE)\includeDB_core
|
||||
@cat $(IncludeDBs_compiler1) > $(HOTSPOTBUILDSPACE)\includeDB_compiler1
|
||||
@cat $(IncludeDBs_compiler2) > $(HOTSPOTBUILDSPACE)\includeDB_compiler2
|
||||
@cat $(IncludeDBs_tiered) > $(HOTSPOTBUILDSPACE)\includeDB_tiered
|
||||
@echo java.cpp jni.h > includeDB
|
||||
@$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes MakeDeps diffs WinGammaPlatform$(VcVersion) \
|
||||
$(Platform) includeDB.current $(Platform) includeDB $(MakeDepsOptions) $(MakeDepsIDEOptions)
|
||||
@rm -f includeDB.current
|
||||
@cp includeDB includeDB.current
|
||||
|
||||
lists: $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class FORCE
|
||||
@if exist incls rmdir /s /q incls
|
||||
@rm -f includeDB
|
||||
@cat $(IncludeDBs) > includeDB
|
||||
@mkdir incls
|
||||
@$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes MakeDeps WinGammaPlatform$(VcVersion) \
|
||||
$(Platform) includeDB $(MakeDepsOptions) $(MakeDepsIDEOptions)
|
||||
@rm -f includeDB.current
|
||||
@cp includeDB includeDB.current
|
||||
$(HOTSPOTBUILDROOT)/$(ProjectFile): $(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class
|
||||
@$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes ProjectCreator WinGammaPlatform$(VcVersion) $(ProjectCreatorIDEOptions)
|
||||
|
||||
clean:
|
||||
@rm -rf incls $(HOTSPOTBUILDSPACE)/classes
|
||||
@rm -f includeDB includeDB.current $(ProjectFile) Dependencies
|
||||
@rm -rf $(HOTSPOTBUILDSPACE)/classes
|
||||
@rm -r ../$(ProjectFile)
|
||||
|
||||
$(HOTSPOTBUILDSPACE)/classes/MakeDeps.class: $(MakeDepsSources)
|
||||
$(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class: $(ProjectCreatorSources)
|
||||
@if exist $(HOTSPOTBUILDSPACE)\classes rmdir /s /q $(HOTSPOTBUILDSPACE)\classes
|
||||
@mkdir $(HOTSPOTBUILDSPACE)\classes
|
||||
@$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources)
|
||||
@$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\ProjectCreator -d $(HOTSPOTBUILDSPACE)/classes $(ProjectCreatorSources)
|
||||
|
||||
FORCE:
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,7 +22,6 @@
|
||||
#
|
||||
#
|
||||
|
||||
Variant=compiler1
|
||||
!include local.make
|
||||
!include ../local.make
|
||||
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
|
||||
|
@ -2,6 +2,6 @@
|
||||
; This .DEF file is a placeholder for one which is automatically
|
||||
; generated during the build process. See
|
||||
; make\windows\build_vm_def.sh and
|
||||
; make\windows\makefiles\makedeps.make (esp. the "-prelink"
|
||||
; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
|
||||
; options).
|
||||
;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,8 +22,8 @@
|
||||
#
|
||||
#
|
||||
|
||||
Variant=compiler2
|
||||
!include local.make
|
||||
AdditionalTargets=incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp
|
||||
!include ../local.make
|
||||
AdlcOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\adfiles
|
||||
AdditionalTargets=$(AdlcOutDir)\ad_$(Platform_arch_model).cpp $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp
|
||||
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
|
||||
|
@ -2,6 +2,6 @@
|
||||
; This .DEF file is a placeholder for one which is automatically
|
||||
; generated during the build process. See
|
||||
; make\windows\build_vm_def.sh and
|
||||
; make\windows\makefiles\makedeps.make (esp. the "-prelink"
|
||||
; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
|
||||
; options).
|
||||
;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,7 +22,6 @@
|
||||
#
|
||||
#
|
||||
|
||||
Variant=core
|
||||
!include local.make
|
||||
!include ../local.make
|
||||
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
|
||||
|
@ -2,6 +2,6 @@
|
||||
; This .DEF file is a placeholder for one which is automatically
|
||||
; generated during the build process. See
|
||||
; make\windows\build_vm_def.sh and
|
||||
; make\windows\makefiles\makedeps.make (esp. the "-prelink"
|
||||
; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
|
||||
; options).
|
||||
;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2007, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,7 +22,6 @@
|
||||
#
|
||||
#
|
||||
|
||||
Variant=compiler1
|
||||
!include local.make
|
||||
!include ../local.make
|
||||
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
|
||||
|
@ -2,6 +2,6 @@
|
||||
; This .DEF file is a placeholder for one which is automatically
|
||||
; generated during the build process. See
|
||||
; make\windows\build_vm_def.sh and
|
||||
; make\windows\makefiles\makedeps.make (esp. the "-prelink"
|
||||
; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
|
||||
; options).
|
||||
;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,8 +22,8 @@
|
||||
#
|
||||
#
|
||||
|
||||
Variant=tiered
|
||||
!include local.make
|
||||
AdditionalTargets=incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp
|
||||
!include ../local.make
|
||||
AdlcOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\adfiles
|
||||
AdditionalTargets=$(AdlcOutDir)\ad_$(Platform_arch_model).cpp $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp
|
||||
|
||||
!include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
|
||||
|
@ -2,6 +2,6 @@
|
||||
; This .DEF file is a placeholder for one which is automatically
|
||||
; generated during the build process. See
|
||||
; make\windows\build_vm_def.sh and
|
||||
; make\windows\makefiles\makedeps.make (esp. the "-prelink"
|
||||
; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
|
||||
; options).
|
||||
;
|
||||
|
@ -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.
|
||||
@ -893,10 +909,10 @@ void MacroAssembler::verify_thread() {
|
||||
#if defined(COMPILER2) && !defined(_LP64)
|
||||
// Save & restore possible 64-bit Long arguments in G-regs
|
||||
sllx(L0,32,G2); // Move old high G1 bits high in G2
|
||||
sllx(G1, 0,G1); // Clear current high G1 bits
|
||||
srl(G1, 0,G1); // Clear current high G1 bits
|
||||
or3 (G1,G2,G1); // Recover 64-bit G1
|
||||
sllx(L6,32,G2); // Move old high G4 bits high in G2
|
||||
sllx(G4, 0,G4); // Clear current high G4 bits
|
||||
srl(G4, 0,G4); // Clear current high G4 bits
|
||||
or3 (G4,G2,G4); // Recover 64-bit G4
|
||||
#endif
|
||||
restore(O0, 0, G2_thread);
|
||||
@ -1427,6 +1443,45 @@ void MacroAssembler::set64(jlong value, Register d, Register tmp) {
|
||||
}
|
||||
}
|
||||
|
||||
int MacroAssembler::size_of_set64(jlong value) {
|
||||
v9_dep();
|
||||
|
||||
int hi = (int)(value >> 32);
|
||||
int lo = (int)(value & ~0);
|
||||
int count = 0;
|
||||
|
||||
// (Matcher::isSimpleConstant64 knows about the following optimizations.)
|
||||
if (Assembler::is_simm13(lo) && value == lo) {
|
||||
count++;
|
||||
} else if (hi == 0) {
|
||||
count++;
|
||||
if (low10(lo) != 0)
|
||||
count++;
|
||||
}
|
||||
else if (hi == -1) {
|
||||
count += 2;
|
||||
}
|
||||
else if (lo == 0) {
|
||||
if (Assembler::is_simm13(hi)) {
|
||||
count++;
|
||||
} else {
|
||||
count++;
|
||||
if (low10(hi) != 0)
|
||||
count++;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
else {
|
||||
count += 2;
|
||||
if (low10(hi) != 0)
|
||||
count++;
|
||||
if (low10(lo) != 0)
|
||||
count++;
|
||||
count += 2;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
// compute size in bytes of sparc frame, given
|
||||
// number of extraWords
|
||||
int MacroAssembler::total_frame_size_in_bytes(int extraWords) {
|
||||
|
@ -22,6 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
|
||||
#define CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
|
||||
|
||||
class BiasedLockingCounters;
|
||||
|
||||
// <sys/trap.h> promises that the system will not use traps 16-31
|
||||
@ -1618,6 +1621,10 @@ public:
|
||||
|
||||
void sub( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(sub_op3 ) | rs1(s1) | rs2(s2) ); }
|
||||
void sub( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(sub_op3 ) | rs1(s1) | immed(true) | simm(simm13a, 13) ); }
|
||||
|
||||
// Note: offset is added to s2.
|
||||
inline void sub(Register s1, RegisterOrConstant s2, Register d, int offset = 0);
|
||||
|
||||
void subcc( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(sub_op3 | cc_bit_op3 ) | rs1(s1) | rs2(s2) ); }
|
||||
void subcc( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(sub_op3 | cc_bit_op3 ) | rs1(s1) | immed(true) | simm(simm13a, 13) ); }
|
||||
void subc( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(subc_op3 ) | rs1(s1) | rs2(s2) ); }
|
||||
@ -1795,6 +1802,7 @@ class MacroAssembler: public Assembler {
|
||||
// branches that use right instruction for v8 vs. v9
|
||||
inline void br( Condition c, bool a, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
|
||||
inline void br( Condition c, bool a, Predict p, Label& L );
|
||||
|
||||
inline void fb( Condition c, bool a, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
|
||||
inline void fb( Condition c, bool a, Predict p, Label& L );
|
||||
|
||||
@ -1891,6 +1899,9 @@ public:
|
||||
void patchable_set(intptr_t value, Register d);
|
||||
void set64(jlong value, Register d, Register tmp);
|
||||
|
||||
// Compute size of set64.
|
||||
static int size_of_set64(jlong value);
|
||||
|
||||
// sign-extend 32 to 64
|
||||
inline void signx( Register s, Register d ) { sra( s, G0, d); }
|
||||
inline void signx( Register d ) { sra( d, G0, d); }
|
||||
@ -2500,3 +2511,5 @@ class SkipIfEqual : public StackObj {
|
||||
// On RISC, there's no benefit to verifying instruction boundaries.
|
||||
inline bool AbstractAssembler::pd_check_instruction_mark() { return false; }
|
||||
#endif
|
||||
|
||||
#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
|
||||
|
@ -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);
|
||||
@ -320,6 +328,11 @@ inline void Assembler::stcsr( int crd, Register s1, int simm13a) { v8_only();
|
||||
inline void Assembler::stdcq( int crd, Register s1, Register s2) { v8_only(); emit_long( op(ldst_op) | fcn(crd) | op3(stdcq_op3) | rs1(s1) | rs2(s2) ); }
|
||||
inline void Assembler::stdcq( int crd, Register s1, int simm13a) { v8_only(); emit_data( op(ldst_op) | fcn(crd) | op3(stdcq_op3) | rs1(s1) | immed(true) | simm(simm13a, 13)); }
|
||||
|
||||
inline void Assembler::sub(Register s1, RegisterOrConstant s2, Register d, int offset) {
|
||||
if (s2.is_register()) sub(s1, s2.as_register(), d);
|
||||
else { sub(s1, s2.as_constant() + offset, d); offset = 0; }
|
||||
if (offset != 0) sub(d, offset, d);
|
||||
}
|
||||
|
||||
// pp 231
|
||||
|
||||
@ -822,3 +835,5 @@ inline void MacroAssembler::membar( Membar_mask_bits const7a ) {
|
||||
Assembler::ldstub(SP, 0, G0);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP
|
||||
|
@ -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
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,6 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP
|
||||
#define CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP
|
||||
|
||||
// Platform specific for C++ based Interpreter
|
||||
#define LOTS_OF_REGS /* Lets interpreter use plenty of registers */
|
||||
|
||||
@ -97,3 +100,5 @@ public:
|
||||
((VMJavaVal64*)(addr))->d)
|
||||
#define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \
|
||||
((VMJavaVal64*)(addr))->l)
|
||||
|
||||
#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,6 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP
|
||||
#define CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP
|
||||
|
||||
// Inline interpreter functions for sparc
|
||||
|
||||
inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { return op1 + op2; }
|
||||
@ -331,3 +334,5 @@ class u8_converter {
|
||||
}
|
||||
};
|
||||
#endif /* ALIGN_CONVERTER */
|
||||
|
||||
#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP
|
||||
|
@ -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() {
|
||||
|
@ -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
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,6 +22,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_BYTES_SPARC_HPP
|
||||
#define CPU_SPARC_VM_BYTES_SPARC_HPP
|
||||
|
||||
#include "memory/allocation.hpp"
|
||||
|
||||
class Bytes: AllStatic {
|
||||
public:
|
||||
// Efficient reading and writing of unaligned unsigned data in platform-specific byte ordering
|
||||
@ -155,3 +160,5 @@ class Bytes: AllStatic {
|
||||
// 1.15 98/10/05 16:30:21 bytes_i486.hpp
|
||||
// 1.17 99/06/22 16:37:35 bytes_i486.hpp
|
||||
//End
|
||||
|
||||
#endif // CPU_SPARC_VM_BYTES_SPARC_HPP
|
||||
|
@ -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()->
|
||||
|
||||
@ -424,7 +434,7 @@ void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
|
||||
|
||||
Register pre_val_reg = pre_val()->as_register();
|
||||
|
||||
ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false);
|
||||
ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
|
||||
if (__ is_in_wdisp16_range(_continuation)) {
|
||||
__ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
|
||||
pre_val_reg, _continuation);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,6 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_C1_DEFS_SPARC_HPP
|
||||
#define CPU_SPARC_VM_C1_DEFS_SPARC_HPP
|
||||
|
||||
// native word offsets from memory address (big endian)
|
||||
enum {
|
||||
pd_lo_word_offset_in_bytes = BytesPerInt,
|
||||
@ -65,3 +68,5 @@ enum {
|
||||
enum {
|
||||
pd_float_saved_as_double = false
|
||||
};
|
||||
|
||||
#endif // CPU_SPARC_VM_C1_DEFS_SPARC_HPP
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -22,6 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
|
||||
#define CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
|
||||
|
||||
public:
|
||||
|
||||
enum {
|
||||
@ -151,3 +154,8 @@
|
||||
|
||||
static bool is_caller_save_register (LIR_Opr reg);
|
||||
static bool is_caller_save_register (Register r);
|
||||
|
||||
static int nof_caller_save_cpu_regs() { return pd_nof_caller_save_cpu_regs_frame_map; }
|
||||
static int last_cpu_reg() { return pd_last_cpu_reg; }
|
||||
|
||||
#endif // CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
|
||||
|
@ -22,8 +22,20 @@
|
||||
*
|
||||
*/
|
||||
|
||||
# include "incls/_precompiled.incl"
|
||||
# include "incls/_c1_LIRAssembler_sparc.cpp.incl"
|
||||
#include "precompiled.hpp"
|
||||
#include "c1/c1_Compilation.hpp"
|
||||
#include "c1/c1_LIRAssembler.hpp"
|
||||
#include "c1/c1_MacroAssembler.hpp"
|
||||
#include "c1/c1_Runtime1.hpp"
|
||||
#include "c1/c1_ValueStack.hpp"
|
||||
#include "ci/ciArrayKlass.hpp"
|
||||
#include "ci/ciInstance.hpp"
|
||||
#include "gc_interface/collectedHeap.hpp"
|
||||
#include "memory/barrierSet.hpp"
|
||||
#include "memory/cardTableModRefBS.hpp"
|
||||
#include "nativeInst_sparc.hpp"
|
||||
#include "oops/objArrayKlass.hpp"
|
||||
#include "runtime/sharedRuntime.hpp"
|
||||
|
||||
#define __ _masm->
|
||||
|
||||
@ -88,6 +100,11 @@ bool LIR_Assembler::is_single_instruction(LIR_Op* op) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (UseCompressedOops) {
|
||||
if (dst->is_address() && !dst->is_stack() && (dst->type() == T_OBJECT || dst->type() == T_ARRAY)) return false;
|
||||
if (src->is_address() && !src->is_stack() && (src->type() == T_OBJECT || src->type() == T_ARRAY)) return false;
|
||||
}
|
||||
|
||||
if (dst->is_register()) {
|
||||
if (src->is_address() && Assembler::is_simm13(src->as_address_ptr()->disp())) {
|
||||
return !PatchALot;
|
||||
@ -241,7 +258,7 @@ void LIR_Assembler::emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst
|
||||
int offset_offset = java_lang_String::offset_offset_in_bytes(); // first character position
|
||||
int count_offset = java_lang_String:: count_offset_in_bytes();
|
||||
|
||||
__ ld_ptr(str0, value_offset, tmp0);
|
||||
__ load_heap_oop(str0, value_offset, tmp0);
|
||||
__ ld(str0, offset_offset, tmp2);
|
||||
__ add(tmp0, arrayOopDesc::base_offset_in_bytes(T_CHAR), tmp0);
|
||||
__ ld(str0, count_offset, str0);
|
||||
@ -250,7 +267,7 @@ void LIR_Assembler::emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst
|
||||
// str1 may be null
|
||||
add_debug_info_for_null_check_here(info);
|
||||
|
||||
__ ld_ptr(str1, value_offset, tmp1);
|
||||
__ load_heap_oop(str1, value_offset, tmp1);
|
||||
__ add(tmp0, tmp2, tmp0);
|
||||
|
||||
__ ld(str1, offset_offset, tmp2);
|
||||
@ -754,7 +771,7 @@ void LIR_Assembler::ic_call(LIR_OpJavaCall* op) {
|
||||
|
||||
void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
|
||||
add_debug_info_for_null_check_here(op->info());
|
||||
__ ld_ptr(O0, oopDesc::klass_offset_in_bytes(), G3_scratch);
|
||||
__ load_klass(O0, G3_scratch);
|
||||
if (__ is_simm13(op->vtable_offset())) {
|
||||
__ ld_ptr(G3_scratch, op->vtable_offset(), G5_method);
|
||||
} else {
|
||||
@ -768,138 +785,17 @@ void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
|
||||
// the peephole pass fills the delay slot
|
||||
}
|
||||
|
||||
|
||||
// load with 32-bit displacement
|
||||
int LIR_Assembler::load(Register s, int disp, Register d, BasicType ld_type, CodeEmitInfo *info) {
|
||||
int load_offset = code_offset();
|
||||
if (Assembler::is_simm13(disp)) {
|
||||
if (info != NULL) add_debug_info_for_null_check_here(info);
|
||||
switch(ld_type) {
|
||||
case T_BOOLEAN: // fall through
|
||||
case T_BYTE : __ ldsb(s, disp, d); break;
|
||||
case T_CHAR : __ lduh(s, disp, d); break;
|
||||
case T_SHORT : __ ldsh(s, disp, d); break;
|
||||
case T_INT : __ ld(s, disp, d); break;
|
||||
case T_ADDRESS:// fall through
|
||||
case T_ARRAY : // fall through
|
||||
case T_OBJECT: __ ld_ptr(s, disp, d); break;
|
||||
default : ShouldNotReachHere();
|
||||
}
|
||||
} else {
|
||||
__ set(disp, O7);
|
||||
if (info != NULL) add_debug_info_for_null_check_here(info);
|
||||
load_offset = code_offset();
|
||||
switch(ld_type) {
|
||||
case T_BOOLEAN: // fall through
|
||||
case T_BYTE : __ ldsb(s, O7, d); break;
|
||||
case T_CHAR : __ lduh(s, O7, d); break;
|
||||
case T_SHORT : __ ldsh(s, O7, d); break;
|
||||
case T_INT : __ ld(s, O7, d); break;
|
||||
case T_ADDRESS:// fall through
|
||||
case T_ARRAY : // fall through
|
||||
case T_OBJECT: __ ld_ptr(s, O7, d); break;
|
||||
default : ShouldNotReachHere();
|
||||
}
|
||||
}
|
||||
if (ld_type == T_ARRAY || ld_type == T_OBJECT) __ verify_oop(d);
|
||||
return load_offset;
|
||||
}
|
||||
|
||||
|
||||
// store with 32-bit displacement
|
||||
void LIR_Assembler::store(Register value, Register base, int offset, BasicType type, CodeEmitInfo *info) {
|
||||
if (Assembler::is_simm13(offset)) {
|
||||
if (info != NULL) add_debug_info_for_null_check_here(info);
|
||||
switch (type) {
|
||||
case T_BOOLEAN: // fall through
|
||||
case T_BYTE : __ stb(value, base, offset); break;
|
||||
case T_CHAR : __ sth(value, base, offset); break;
|
||||
case T_SHORT : __ sth(value, base, offset); break;
|
||||
case T_INT : __ stw(value, base, offset); break;
|
||||
case T_ADDRESS:// fall through
|
||||
case T_ARRAY : // fall through
|
||||
case T_OBJECT: __ st_ptr(value, base, offset); break;
|
||||
default : ShouldNotReachHere();
|
||||
}
|
||||
} else {
|
||||
__ set(offset, O7);
|
||||
if (info != NULL) add_debug_info_for_null_check_here(info);
|
||||
switch (type) {
|
||||
case T_BOOLEAN: // fall through
|
||||
case T_BYTE : __ stb(value, base, O7); break;
|
||||
case T_CHAR : __ sth(value, base, O7); break;
|
||||
case T_SHORT : __ sth(value, base, O7); break;
|
||||
case T_INT : __ stw(value, base, O7); break;
|
||||
case T_ADDRESS:// fall through
|
||||
case T_ARRAY : //fall through
|
||||
case T_OBJECT: __ st_ptr(value, base, O7); break;
|
||||
default : ShouldNotReachHere();
|
||||
}
|
||||
}
|
||||
// Note: Do the store before verification as the code might be patched!
|
||||
if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(value);
|
||||
}
|
||||
|
||||
|
||||
// load float with 32-bit displacement
|
||||
void LIR_Assembler::load(Register s, int disp, FloatRegister d, BasicType ld_type, CodeEmitInfo *info) {
|
||||
FloatRegisterImpl::Width w;
|
||||
switch(ld_type) {
|
||||
case T_FLOAT : w = FloatRegisterImpl::S; break;
|
||||
case T_DOUBLE: w = FloatRegisterImpl::D; break;
|
||||
default : ShouldNotReachHere();
|
||||
}
|
||||
|
||||
if (Assembler::is_simm13(disp)) {
|
||||
if (info != NULL) add_debug_info_for_null_check_here(info);
|
||||
if (disp % BytesPerLong != 0 && w == FloatRegisterImpl::D) {
|
||||
__ ldf(FloatRegisterImpl::S, s, disp + BytesPerWord, d->successor());
|
||||
__ ldf(FloatRegisterImpl::S, s, disp , d);
|
||||
} else {
|
||||
__ ldf(w, s, disp, d);
|
||||
}
|
||||
} else {
|
||||
__ set(disp, O7);
|
||||
if (info != NULL) add_debug_info_for_null_check_here(info);
|
||||
__ ldf(w, s, O7, d);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// store float with 32-bit displacement
|
||||
void LIR_Assembler::store(FloatRegister value, Register base, int offset, BasicType type, CodeEmitInfo *info) {
|
||||
FloatRegisterImpl::Width w;
|
||||
switch(type) {
|
||||
case T_FLOAT : w = FloatRegisterImpl::S; break;
|
||||
case T_DOUBLE: w = FloatRegisterImpl::D; break;
|
||||
default : ShouldNotReachHere();
|
||||
}
|
||||
|
||||
if (Assembler::is_simm13(offset)) {
|
||||
if (info != NULL) add_debug_info_for_null_check_here(info);
|
||||
if (w == FloatRegisterImpl::D && offset % BytesPerLong != 0) {
|
||||
__ stf(FloatRegisterImpl::S, value->successor(), base, offset + BytesPerWord);
|
||||
__ stf(FloatRegisterImpl::S, value , base, offset);
|
||||
} else {
|
||||
__ stf(w, value, base, offset);
|
||||
}
|
||||
} else {
|
||||
__ set(offset, O7);
|
||||
if (info != NULL) add_debug_info_for_null_check_here(info);
|
||||
__ stf(w, value, O7, base);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int LIR_Assembler::store(LIR_Opr from_reg, Register base, int offset, BasicType type, bool unaligned) {
|
||||
int LIR_Assembler::store(LIR_Opr from_reg, Register base, int offset, BasicType type, bool wide, bool unaligned) {
|
||||
int store_offset;
|
||||
if (!Assembler::is_simm13(offset + (type == T_LONG) ? wordSize : 0)) {
|
||||
assert(!unaligned, "can't handle this");
|
||||
// for offsets larger than a simm13 we setup the offset in O7
|
||||
__ set(offset, O7);
|
||||
store_offset = store(from_reg, base, O7, type);
|
||||
store_offset = store(from_reg, base, O7, type, wide);
|
||||
} else {
|
||||
if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(from_reg->as_register());
|
||||
if (type == T_ARRAY || type == T_OBJECT) {
|
||||
__ verify_oop(from_reg->as_register());
|
||||
}
|
||||
store_offset = code_offset();
|
||||
switch (type) {
|
||||
case T_BOOLEAN: // fall through
|
||||
@ -922,9 +818,22 @@ int LIR_Assembler::store(LIR_Opr from_reg, Register base, int offset, BasicType
|
||||
__ stw(from_reg->as_register_hi(), base, offset + hi_word_offset_in_bytes);
|
||||
#endif
|
||||
break;
|
||||
case T_ADDRESS:// fall through
|
||||
case T_ADDRESS:
|
||||
__ st_ptr(from_reg->as_register(), base, offset);
|
||||
break;
|
||||
case T_ARRAY : // fall through
|
||||
case T_OBJECT: __ st_ptr(from_reg->as_register(), base, offset); break;
|
||||
case T_OBJECT:
|
||||
{
|
||||
if (UseCompressedOops && !wide) {
|
||||
__ encode_heap_oop(from_reg->as_register(), G3_scratch);
|
||||
store_offset = code_offset();
|
||||
__ stw(G3_scratch, base, offset);
|
||||
} else {
|
||||
__ st_ptr(from_reg->as_register(), base, offset);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case T_FLOAT : __ stf(FloatRegisterImpl::S, from_reg->as_float_reg(), base, offset); break;
|
||||
case T_DOUBLE:
|
||||
{
|
||||
@ -946,8 +855,10 @@ int LIR_Assembler::store(LIR_Opr from_reg, Register base, int offset, BasicType
|
||||
}
|
||||
|
||||
|
||||
int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicType type) {
|
||||
if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(from_reg->as_register());
|
||||
int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicType type, bool wide) {
|
||||
if (type == T_ARRAY || type == T_OBJECT) {
|
||||
__ verify_oop(from_reg->as_register());
|
||||
}
|
||||
int store_offset = code_offset();
|
||||
switch (type) {
|
||||
case T_BOOLEAN: // fall through
|
||||
@ -963,9 +874,21 @@ int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicTy
|
||||
__ std(from_reg->as_register_hi(), base, disp);
|
||||
#endif
|
||||
break;
|
||||
case T_ADDRESS:// fall through
|
||||
case T_ADDRESS:
|
||||
__ st_ptr(from_reg->as_register(), base, disp);
|
||||
break;
|
||||
case T_ARRAY : // fall through
|
||||
case T_OBJECT: __ st_ptr(from_reg->as_register(), base, disp); break;
|
||||
case T_OBJECT:
|
||||
{
|
||||
if (UseCompressedOops && !wide) {
|
||||
__ encode_heap_oop(from_reg->as_register(), G3_scratch);
|
||||
store_offset = code_offset();
|
||||
__ stw(G3_scratch, base, disp);
|
||||
} else {
|
||||
__ st_ptr(from_reg->as_register(), base, disp);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case T_FLOAT : __ stf(FloatRegisterImpl::S, from_reg->as_float_reg(), base, disp); break;
|
||||
case T_DOUBLE: __ stf(FloatRegisterImpl::D, from_reg->as_double_reg(), base, disp); break;
|
||||
default : ShouldNotReachHere();
|
||||
@ -974,14 +897,14 @@ int LIR_Assembler::store(LIR_Opr from_reg, Register base, Register disp, BasicTy
|
||||
}
|
||||
|
||||
|
||||
int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType type, bool unaligned) {
|
||||
int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType type, bool wide, bool unaligned) {
|
||||
int load_offset;
|
||||
if (!Assembler::is_simm13(offset + (type == T_LONG) ? wordSize : 0)) {
|
||||
assert(base != O7, "destroying register");
|
||||
assert(!unaligned, "can't handle this");
|
||||
// for offsets larger than a simm13 we setup the offset in O7
|
||||
__ set(offset, O7);
|
||||
load_offset = load(base, O7, to_reg, type);
|
||||
load_offset = load(base, O7, to_reg, type, wide);
|
||||
} else {
|
||||
load_offset = code_offset();
|
||||
switch(type) {
|
||||
@ -1018,9 +941,18 @@ int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType typ
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case T_ADDRESS:// fall through
|
||||
case T_ADDRESS: __ ld_ptr(base, offset, to_reg->as_register()); break;
|
||||
case T_ARRAY : // fall through
|
||||
case T_OBJECT: __ ld_ptr(base, offset, to_reg->as_register()); break;
|
||||
case T_OBJECT:
|
||||
{
|
||||
if (UseCompressedOops && !wide) {
|
||||
__ lduw(base, offset, to_reg->as_register());
|
||||
__ decode_heap_oop(to_reg->as_register());
|
||||
} else {
|
||||
__ ld_ptr(base, offset, to_reg->as_register());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case T_FLOAT: __ ldf(FloatRegisterImpl::S, base, offset, to_reg->as_float_reg()); break;
|
||||
case T_DOUBLE:
|
||||
{
|
||||
@ -1036,23 +968,34 @@ int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType typ
|
||||
}
|
||||
default : ShouldNotReachHere();
|
||||
}
|
||||
if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(to_reg->as_register());
|
||||
if (type == T_ARRAY || type == T_OBJECT) {
|
||||
__ verify_oop(to_reg->as_register());
|
||||
}
|
||||
}
|
||||
return load_offset;
|
||||
}
|
||||
|
||||
|
||||
int LIR_Assembler::load(Register base, Register disp, LIR_Opr to_reg, BasicType type) {
|
||||
int LIR_Assembler::load(Register base, Register disp, LIR_Opr to_reg, BasicType type, bool wide) {
|
||||
int load_offset = code_offset();
|
||||
switch(type) {
|
||||
case T_BOOLEAN: // fall through
|
||||
case T_BYTE : __ ldsb(base, disp, to_reg->as_register()); break;
|
||||
case T_CHAR : __ lduh(base, disp, to_reg->as_register()); break;
|
||||
case T_SHORT : __ ldsh(base, disp, to_reg->as_register()); break;
|
||||
case T_INT : __ ld(base, disp, to_reg->as_register()); break;
|
||||
case T_ADDRESS:// fall through
|
||||
case T_BYTE : __ ldsb(base, disp, to_reg->as_register()); break;
|
||||
case T_CHAR : __ lduh(base, disp, to_reg->as_register()); break;
|
||||
case T_SHORT : __ ldsh(base, disp, to_reg->as_register()); break;
|
||||
case T_INT : __ ld(base, disp, to_reg->as_register()); break;
|
||||
case T_ADDRESS: __ ld_ptr(base, disp, to_reg->as_register()); break;
|
||||
case T_ARRAY : // fall through
|
||||
case T_OBJECT: __ ld_ptr(base, disp, to_reg->as_register()); break;
|
||||
case T_OBJECT:
|
||||
{
|
||||
if (UseCompressedOops && !wide) {
|
||||
__ lduw(base, disp, to_reg->as_register());
|
||||
__ decode_heap_oop(to_reg->as_register());
|
||||
} else {
|
||||
__ ld_ptr(base, disp, to_reg->as_register());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case T_FLOAT: __ ldf(FloatRegisterImpl::S, base, disp, to_reg->as_float_reg()); break;
|
||||
case T_DOUBLE: __ ldf(FloatRegisterImpl::D, base, disp, to_reg->as_double_reg()); break;
|
||||
case T_LONG :
|
||||
@ -1066,61 +1009,17 @@ int LIR_Assembler::load(Register base, Register disp, LIR_Opr to_reg, BasicType
|
||||
break;
|
||||
default : ShouldNotReachHere();
|
||||
}
|
||||
if (type == T_ARRAY || type == T_OBJECT) __ verify_oop(to_reg->as_register());
|
||||
if (type == T_ARRAY || type == T_OBJECT) {
|
||||
__ verify_oop(to_reg->as_register());
|
||||
}
|
||||
return load_offset;
|
||||
}
|
||||
|
||||
|
||||
// load/store with an Address
|
||||
void LIR_Assembler::load(const Address& a, Register d, BasicType ld_type, CodeEmitInfo *info, int offset) {
|
||||
load(a.base(), a.disp() + offset, d, ld_type, info);
|
||||
}
|
||||
|
||||
|
||||
void LIR_Assembler::store(Register value, const Address& dest, BasicType type, CodeEmitInfo *info, int offset) {
|
||||
store(value, dest.base(), dest.disp() + offset, type, info);
|
||||
}
|
||||
|
||||
|
||||
// loadf/storef with an Address
|
||||
void LIR_Assembler::load(const Address& a, FloatRegister d, BasicType ld_type, CodeEmitInfo *info, int offset) {
|
||||
load(a.base(), a.disp() + offset, d, ld_type, info);
|
||||
}
|
||||
|
||||
|
||||
void LIR_Assembler::store(FloatRegister value, const Address& dest, BasicType type, CodeEmitInfo *info, int offset) {
|
||||
store(value, dest.base(), dest.disp() + offset, type, info);
|
||||
}
|
||||
|
||||
|
||||
// load/store with an Address
|
||||
void LIR_Assembler::load(LIR_Address* a, Register d, BasicType ld_type, CodeEmitInfo *info) {
|
||||
load(as_Address(a), d, ld_type, info);
|
||||
}
|
||||
|
||||
|
||||
void LIR_Assembler::store(Register value, LIR_Address* dest, BasicType type, CodeEmitInfo *info) {
|
||||
store(value, as_Address(dest), type, info);
|
||||
}
|
||||
|
||||
|
||||
// loadf/storef with an Address
|
||||
void LIR_Assembler::load(LIR_Address* a, FloatRegister d, BasicType ld_type, CodeEmitInfo *info) {
|
||||
load(as_Address(a), d, ld_type, info);
|
||||
}
|
||||
|
||||
|
||||
void LIR_Assembler::store(FloatRegister value, LIR_Address* dest, BasicType type, CodeEmitInfo *info) {
|
||||
store(value, as_Address(dest), type, info);
|
||||
}
|
||||
|
||||
|
||||
void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) {
|
||||
LIR_Const* c = src->as_constant_ptr();
|
||||
switch (c->type()) {
|
||||
case T_INT:
|
||||
case T_FLOAT:
|
||||
case T_ADDRESS: {
|
||||
case T_FLOAT: {
|
||||
Register src_reg = O7;
|
||||
int value = c->as_jint_bits();
|
||||
if (value == 0) {
|
||||
@ -1132,6 +1031,18 @@ void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) {
|
||||
__ stw(src_reg, addr.base(), addr.disp());
|
||||
break;
|
||||
}
|
||||
case T_ADDRESS: {
|
||||
Register src_reg = O7;
|
||||
int value = c->as_jint_bits();
|
||||
if (value == 0) {
|
||||
src_reg = G0;
|
||||
} else {
|
||||
__ set(value, O7);
|
||||
}
|
||||
Address addr = frame_map()->address_for_slot(dest->single_stack_ix());
|
||||
__ st_ptr(src_reg, addr.base(), addr.disp());
|
||||
break;
|
||||
}
|
||||
case T_OBJECT: {
|
||||
Register src_reg = O7;
|
||||
jobject2reg(c->as_jobject(), src_reg);
|
||||
@ -1166,14 +1077,12 @@ void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) {
|
||||
}
|
||||
|
||||
|
||||
void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info ) {
|
||||
void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info, bool wide) {
|
||||
LIR_Const* c = src->as_constant_ptr();
|
||||
LIR_Address* addr = dest->as_address_ptr();
|
||||
Register base = addr->base()->as_pointer_register();
|
||||
int offset = -1;
|
||||
|
||||
if (info != NULL) {
|
||||
add_debug_info_for_null_check_here(info);
|
||||
}
|
||||
switch (c->type()) {
|
||||
case T_INT:
|
||||
case T_FLOAT:
|
||||
@ -1187,10 +1096,10 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
|
||||
}
|
||||
if (addr->index()->is_valid()) {
|
||||
assert(addr->disp() == 0, "must be zero");
|
||||
store(tmp, base, addr->index()->as_pointer_register(), type);
|
||||
offset = store(tmp, base, addr->index()->as_pointer_register(), type, wide);
|
||||
} else {
|
||||
assert(Assembler::is_simm13(addr->disp()), "can't handle larger addresses");
|
||||
store(tmp, base, addr->disp(), type);
|
||||
offset = store(tmp, base, addr->disp(), type, wide, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1200,21 +1109,21 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
|
||||
assert(Assembler::is_simm13(addr->disp()) &&
|
||||
Assembler::is_simm13(addr->disp() + 4), "can't handle larger addresses");
|
||||
|
||||
Register tmp = O7;
|
||||
LIR_Opr tmp = FrameMap::O7_opr;
|
||||
int value_lo = c->as_jint_lo_bits();
|
||||
if (value_lo == 0) {
|
||||
tmp = G0;
|
||||
tmp = FrameMap::G0_opr;
|
||||
} else {
|
||||
__ set(value_lo, O7);
|
||||
}
|
||||
store(tmp, base, addr->disp() + lo_word_offset_in_bytes, T_INT);
|
||||
offset = store(tmp, base, addr->disp() + lo_word_offset_in_bytes, T_INT, wide, false);
|
||||
int value_hi = c->as_jint_hi_bits();
|
||||
if (value_hi == 0) {
|
||||
tmp = G0;
|
||||
tmp = FrameMap::G0_opr;
|
||||
} else {
|
||||
__ set(value_hi, O7);
|
||||
}
|
||||
store(tmp, base, addr->disp() + hi_word_offset_in_bytes, T_INT);
|
||||
offset = store(tmp, base, addr->disp() + hi_word_offset_in_bytes, T_INT, wide, false);
|
||||
break;
|
||||
}
|
||||
case T_OBJECT: {
|
||||
@ -1229,10 +1138,10 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
|
||||
// handle either reg+reg or reg+disp address
|
||||
if (addr->index()->is_valid()) {
|
||||
assert(addr->disp() == 0, "must be zero");
|
||||
store(tmp, base, addr->index()->as_pointer_register(), type);
|
||||
offset = store(tmp, base, addr->index()->as_pointer_register(), type, wide);
|
||||
} else {
|
||||
assert(Assembler::is_simm13(addr->disp()), "can't handle larger addresses");
|
||||
store(tmp, base, addr->disp(), type);
|
||||
offset = store(tmp, base, addr->disp(), type, wide, false);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -1240,6 +1149,10 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
|
||||
default:
|
||||
Unimplemented();
|
||||
}
|
||||
if (info != NULL) {
|
||||
assert(offset != -1, "offset should've been set");
|
||||
add_debug_info_for_null_check(offset, info);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1324,7 +1237,7 @@ void LIR_Assembler::const2reg(LIR_Opr src, LIR_Opr dest, LIR_PatchCode patch_cod
|
||||
assert(to_reg->is_single_cpu(), "Must be a cpu register.");
|
||||
|
||||
__ set(const_addrlit, O7);
|
||||
load(O7, 0, to_reg->as_register(), T_INT);
|
||||
__ ld(O7, 0, to_reg->as_register());
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1417,7 +1330,7 @@ Address LIR_Assembler::as_Address_lo(LIR_Address* addr) {
|
||||
|
||||
|
||||
void LIR_Assembler::mem2reg(LIR_Opr src_opr, LIR_Opr dest, BasicType type,
|
||||
LIR_PatchCode patch_code, CodeEmitInfo* info, bool unaligned) {
|
||||
LIR_PatchCode patch_code, CodeEmitInfo* info, bool wide, bool unaligned) {
|
||||
|
||||
LIR_Address* addr = src_opr->as_address_ptr();
|
||||
LIR_Opr to_reg = dest;
|
||||
@ -1463,16 +1376,15 @@ void LIR_Assembler::mem2reg(LIR_Opr src_opr, LIR_Opr dest, BasicType type,
|
||||
|
||||
assert(disp_reg != noreg || Assembler::is_simm13(disp_value), "should have set this up");
|
||||
if (disp_reg == noreg) {
|
||||
offset = load(src, disp_value, to_reg, type, unaligned);
|
||||
offset = load(src, disp_value, to_reg, type, wide, unaligned);
|
||||
} else {
|
||||
assert(!unaligned, "can't handle this");
|
||||
offset = load(src, disp_reg, to_reg, type);
|
||||
offset = load(src, disp_reg, to_reg, type, wide);
|
||||
}
|
||||
|
||||
if (patch != NULL) {
|
||||
patching_epilog(patch, patch_code, src, info);
|
||||
}
|
||||
|
||||
if (info != NULL) add_debug_info_for_null_check(offset, info);
|
||||
}
|
||||
|
||||
@ -1506,7 +1418,7 @@ void LIR_Assembler::stack2reg(LIR_Opr src, LIR_Opr dest, BasicType type) {
|
||||
}
|
||||
|
||||
bool unaligned = (addr.disp() - STACK_BIAS) % 8 != 0;
|
||||
load(addr.base(), addr.disp(), dest, dest->type(), unaligned);
|
||||
load(addr.base(), addr.disp(), dest, dest->type(), true /*wide*/, unaligned);
|
||||
}
|
||||
|
||||
|
||||
@ -1518,7 +1430,7 @@ void LIR_Assembler::reg2stack(LIR_Opr from_reg, LIR_Opr dest, BasicType type, bo
|
||||
addr = frame_map()->address_for_slot(dest->double_stack_ix());
|
||||
}
|
||||
bool unaligned = (addr.disp() - STACK_BIAS) % 8 != 0;
|
||||
store(from_reg, addr.base(), addr.disp(), from_reg->type(), unaligned);
|
||||
store(from_reg, addr.base(), addr.disp(), from_reg->type(), true /*wide*/, unaligned);
|
||||
}
|
||||
|
||||
|
||||
@ -1566,7 +1478,7 @@ void LIR_Assembler::reg2reg(LIR_Opr from_reg, LIR_Opr to_reg) {
|
||||
|
||||
void LIR_Assembler::reg2mem(LIR_Opr from_reg, LIR_Opr dest, BasicType type,
|
||||
LIR_PatchCode patch_code, CodeEmitInfo* info, bool pop_fpu_stack,
|
||||
bool unaligned) {
|
||||
bool wide, bool unaligned) {
|
||||
LIR_Address* addr = dest->as_address_ptr();
|
||||
|
||||
Register src = addr->base()->as_pointer_register();
|
||||
@ -1610,10 +1522,10 @@ void LIR_Assembler::reg2mem(LIR_Opr from_reg, LIR_Opr dest, BasicType type,
|
||||
|
||||
assert(disp_reg != noreg || Assembler::is_simm13(disp_value), "should have set this up");
|
||||
if (disp_reg == noreg) {
|
||||
offset = store(from_reg, src, disp_value, type, unaligned);
|
||||
offset = store(from_reg, src, disp_value, type, wide, unaligned);
|
||||
} else {
|
||||
assert(!unaligned, "can't handle this");
|
||||
offset = store(from_reg, src, disp_reg, type);
|
||||
offset = store(from_reg, src, disp_reg, type, wide);
|
||||
}
|
||||
|
||||
if (patch != NULL) {
|
||||
@ -2172,13 +2084,13 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
|
||||
// make sure src and dst are non-null and load array length
|
||||
if (flags & LIR_OpArrayCopy::src_null_check) {
|
||||
__ tst(src);
|
||||
__ br(Assembler::equal, false, Assembler::pn, *stub->entry());
|
||||
__ brx(Assembler::equal, false, Assembler::pn, *stub->entry());
|
||||
__ delayed()->nop();
|
||||
}
|
||||
|
||||
if (flags & LIR_OpArrayCopy::dst_null_check) {
|
||||
__ tst(dst);
|
||||
__ br(Assembler::equal, false, Assembler::pn, *stub->entry());
|
||||
__ brx(Assembler::equal, false, Assembler::pn, *stub->entry());
|
||||
__ delayed()->nop();
|
||||
}
|
||||
|
||||
@ -2220,10 +2132,18 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
|
||||
}
|
||||
|
||||
if (flags & LIR_OpArrayCopy::type_check) {
|
||||
__ ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp);
|
||||
__ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
__ cmp(tmp, tmp2);
|
||||
__ br(Assembler::notEqual, false, Assembler::pt, *stub->entry());
|
||||
if (UseCompressedOops) {
|
||||
// We don't need decode because we just need to compare
|
||||
__ lduw(src, oopDesc::klass_offset_in_bytes(), tmp);
|
||||
__ lduw(dst, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
__ cmp(tmp, tmp2);
|
||||
__ br(Assembler::notEqual, false, Assembler::pt, *stub->entry());
|
||||
} else {
|
||||
__ ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp);
|
||||
__ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
__ cmp(tmp, tmp2);
|
||||
__ brx(Assembler::notEqual, false, Assembler::pt, *stub->entry());
|
||||
}
|
||||
__ delayed()->nop();
|
||||
}
|
||||
|
||||
@ -2238,20 +2158,44 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
|
||||
// but not necessarily exactly of type default_type.
|
||||
Label known_ok, halt;
|
||||
jobject2reg(op->expected_type()->constant_encoding(), tmp);
|
||||
__ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
if (basic_type != T_OBJECT) {
|
||||
__ cmp(tmp, tmp2);
|
||||
__ br(Assembler::notEqual, false, Assembler::pn, halt);
|
||||
__ delayed()->ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
__ cmp(tmp, tmp2);
|
||||
__ br(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->nop();
|
||||
if (UseCompressedOops) {
|
||||
// tmp holds the default type. It currently comes uncompressed after the
|
||||
// load of a constant, so encode it.
|
||||
__ encode_heap_oop(tmp);
|
||||
// load the raw value of the dst klass, since we will be comparing
|
||||
// uncompressed values directly.
|
||||
__ lduw(dst, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
if (basic_type != T_OBJECT) {
|
||||
__ cmp(tmp, tmp2);
|
||||
__ br(Assembler::notEqual, false, Assembler::pn, halt);
|
||||
// load the raw value of the src klass.
|
||||
__ delayed()->lduw(src, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
__ cmp(tmp, tmp2);
|
||||
__ br(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->nop();
|
||||
} else {
|
||||
__ cmp(tmp, tmp2);
|
||||
__ br(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->cmp(src, dst);
|
||||
__ brx(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->nop();
|
||||
}
|
||||
} else {
|
||||
__ cmp(tmp, tmp2);
|
||||
__ br(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->cmp(src, dst);
|
||||
__ br(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->nop();
|
||||
__ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
if (basic_type != T_OBJECT) {
|
||||
__ cmp(tmp, tmp2);
|
||||
__ brx(Assembler::notEqual, false, Assembler::pn, halt);
|
||||
__ delayed()->ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp2);
|
||||
__ cmp(tmp, tmp2);
|
||||
__ brx(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->nop();
|
||||
} else {
|
||||
__ cmp(tmp, tmp2);
|
||||
__ brx(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->cmp(src, dst);
|
||||
__ brx(Assembler::equal, false, Assembler::pn, known_ok);
|
||||
__ delayed()->nop();
|
||||
}
|
||||
}
|
||||
__ bind(halt);
|
||||
__ stop("incorrect type information in arraycopy");
|
||||
@ -2459,7 +2403,7 @@ void LIR_Assembler::type_profile_helper(Register mdo, int mdo_offset_bias,
|
||||
Label next_test;
|
||||
Address recv_addr(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_offset(i)) -
|
||||
mdo_offset_bias);
|
||||
load(recv_addr, tmp1, T_OBJECT);
|
||||
__ ld_ptr(recv_addr, tmp1);
|
||||
__ br_notnull(tmp1, false, Assembler::pt, next_test);
|
||||
__ delayed()->nop();
|
||||
__ st_ptr(recv, recv_addr);
|
||||
@ -2475,11 +2419,8 @@ void LIR_Assembler::type_profile_helper(Register mdo, int mdo_offset_bias,
|
||||
|
||||
void LIR_Assembler::setup_md_access(ciMethod* method, int bci,
|
||||
ciMethodData*& md, ciProfileData*& data, int& mdo_offset_bias) {
|
||||
md = method->method_data();
|
||||
if (md == NULL) {
|
||||
bailout("out of memory building methodDataOop");
|
||||
return;
|
||||
}
|
||||
md = method->method_data_or_null();
|
||||
assert(md != NULL, "Sanity");
|
||||
data = md->bci_to_data(bci);
|
||||
assert(data != NULL, "need data for checkcast");
|
||||
assert(data->is_ReceiverTypeData(), "need ReceiverTypeData for type check");
|
||||
@ -2551,7 +2492,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
|
||||
|
||||
// get object class
|
||||
// not a safepoint as obj null check happens earlier
|
||||
load(obj, oopDesc::klass_offset_in_bytes(), klass_RInfo, T_OBJECT, NULL);
|
||||
__ load_klass(obj, klass_RInfo);
|
||||
if (op->fast_check()) {
|
||||
assert_different_registers(klass_RInfo, k_RInfo);
|
||||
__ cmp(k_RInfo, klass_RInfo);
|
||||
@ -2593,7 +2534,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
|
||||
__ set(mdo_offset_bias, tmp1);
|
||||
__ add(mdo, tmp1, mdo);
|
||||
}
|
||||
load(Address(obj, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
|
||||
__ load_klass(obj, recv);
|
||||
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, success);
|
||||
// Jump over the failure case
|
||||
__ ba(false, *success);
|
||||
@ -2662,11 +2603,12 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
|
||||
__ br_null(value, false, Assembler::pn, done);
|
||||
__ delayed()->nop();
|
||||
}
|
||||
load(array, oopDesc::klass_offset_in_bytes(), k_RInfo, T_OBJECT, op->info_for_exception());
|
||||
load(value, oopDesc::klass_offset_in_bytes(), klass_RInfo, T_OBJECT, NULL);
|
||||
add_debug_info_for_null_check_here(op->info_for_exception());
|
||||
__ load_klass(array, k_RInfo);
|
||||
__ load_klass(value, klass_RInfo);
|
||||
|
||||
// get instance klass
|
||||
load(k_RInfo, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc), k_RInfo, T_OBJECT, NULL);
|
||||
__ ld_ptr(Address(k_RInfo, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc)), k_RInfo);
|
||||
// perform the fast part of the checking logic
|
||||
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, O7, success_target, failure_target, NULL);
|
||||
|
||||
@ -2688,7 +2630,7 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
|
||||
__ set(mdo_offset_bias, tmp1);
|
||||
__ add(mdo, tmp1, mdo);
|
||||
}
|
||||
load(Address(value, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
|
||||
__ load_klass(value, recv);
|
||||
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, &done);
|
||||
__ ba(false, done);
|
||||
__ delayed()->nop();
|
||||
@ -2769,14 +2711,17 @@ void LIR_Assembler::emit_compare_and_swap(LIR_OpCompareAndSwap* op) {
|
||||
Register t2 = op->tmp2()->as_register();
|
||||
__ mov(cmp_value, t1);
|
||||
__ mov(new_value, t2);
|
||||
#ifdef _LP64
|
||||
if (op->code() == lir_cas_obj) {
|
||||
__ casx(addr, t1, t2);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
if (UseCompressedOops) {
|
||||
__ encode_heap_oop(t1);
|
||||
__ encode_heap_oop(t2);
|
||||
__ cas(addr, t1, t2);
|
||||
} else {
|
||||
__ cas_ptr(addr, t1, t2);
|
||||
}
|
||||
} else {
|
||||
__ cas(addr, t1, t2);
|
||||
}
|
||||
__ cmp(t1, t2);
|
||||
} else {
|
||||
Unimplemented();
|
||||
@ -2873,11 +2818,8 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
|
||||
int bci = op->profiled_bci();
|
||||
|
||||
// Update counter for all call types
|
||||
ciMethodData* md = method->method_data();
|
||||
if (md == NULL) {
|
||||
bailout("out of memory building methodDataOop");
|
||||
return;
|
||||
}
|
||||
ciMethodData* md = method->method_data_or_null();
|
||||
assert(md != NULL, "Sanity");
|
||||
ciProfileData* data = md->bci_to_data(bci);
|
||||
assert(data->is_CounterData(), "need CounterData for calls");
|
||||
assert(op->mdo()->is_single_cpu(), "mdo must be allocated");
|
||||
@ -2954,7 +2896,7 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
load(Address(recv, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
|
||||
__ load_klass(recv, recv);
|
||||
Label update_done;
|
||||
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, &update_done);
|
||||
// Receiver did not match any saved receiver and there is no empty row for it.
|
||||
@ -3148,7 +3090,7 @@ void LIR_Assembler::volatile_move_op(LIR_Opr src, LIR_Opr dest, BasicType type,
|
||||
} else {
|
||||
// use normal move for all other volatiles since they don't need
|
||||
// special handling to remain atomic.
|
||||
move_op(src, dest, type, lir_patch_none, info, false, false);
|
||||
move_op(src, dest, type, lir_patch_none, info, false, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
|
||||
#define CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
|
||||
|
||||
private:
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -37,33 +40,11 @@
|
||||
// and then a load or store is emitted with ([O7] + [d]).
|
||||
//
|
||||
|
||||
// some load/store variants return the code_offset for proper positioning of debug info for null checks
|
||||
int store(LIR_Opr from_reg, Register base, int offset, BasicType type, bool wide, bool unaligned);
|
||||
int store(LIR_Opr from_reg, Register base, Register disp, BasicType type, bool wide);
|
||||
|
||||
// load/store with 32 bit displacement
|
||||
int load(Register s, int disp, Register d, BasicType ld_type, CodeEmitInfo* info = NULL);
|
||||
void store(Register value, Register base, int offset, BasicType type, CodeEmitInfo *info = NULL);
|
||||
|
||||
// loadf/storef with 32 bit displacement
|
||||
void load(Register s, int disp, FloatRegister d, BasicType ld_type, CodeEmitInfo* info = NULL);
|
||||
void store(FloatRegister d, Register s1, int disp, BasicType st_type, CodeEmitInfo* info = NULL);
|
||||
|
||||
// convienence methods for calling load/store with an Address
|
||||
void load(const Address& a, Register d, BasicType ld_type, CodeEmitInfo* info = NULL, int offset = 0);
|
||||
void store(Register d, const Address& a, BasicType st_type, CodeEmitInfo* info = NULL, int offset = 0);
|
||||
void load(const Address& a, FloatRegister d, BasicType ld_type, CodeEmitInfo* info = NULL, int offset = 0);
|
||||
void store(FloatRegister d, const Address& a, BasicType st_type, CodeEmitInfo* info = NULL, int offset = 0);
|
||||
|
||||
// convienence methods for calling load/store with an LIR_Address
|
||||
void load(LIR_Address* a, Register d, BasicType ld_type, CodeEmitInfo* info = NULL);
|
||||
void store(Register d, LIR_Address* a, BasicType st_type, CodeEmitInfo* info = NULL);
|
||||
void load(LIR_Address* a, FloatRegister d, BasicType ld_type, CodeEmitInfo* info = NULL);
|
||||
void store(FloatRegister d, LIR_Address* a, BasicType st_type, CodeEmitInfo* info = NULL);
|
||||
|
||||
int store(LIR_Opr from_reg, Register base, int offset, BasicType type, bool unaligned = false);
|
||||
int store(LIR_Opr from_reg, Register base, Register disp, BasicType type);
|
||||
|
||||
int load(Register base, int offset, LIR_Opr to_reg, BasicType type, bool unaligned = false);
|
||||
int load(Register base, Register disp, LIR_Opr to_reg, BasicType type);
|
||||
int load(Register base, int offset, LIR_Opr to_reg, BasicType type, bool wide, bool unaligned);
|
||||
int load(Register base, Register disp, LIR_Opr to_reg, BasicType type, bool wide);
|
||||
|
||||
void monitorexit(LIR_Opr obj_opr, LIR_Opr lock_opr, Register hdr, int monitor_no);
|
||||
|
||||
@ -90,3 +71,5 @@ enum {
|
||||
#endif // _LP64
|
||||
exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4),
|
||||
deopt_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4) };
|
||||
|
||||
#endif // CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
|
||||
|
@ -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__)->
|
||||
|
@ -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
|
||||
|
@ -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 @@ inline bool LinearScanWalker::pd_init_regs_for_alloc(Interval* cur) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif // CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP
|
||||
|
@ -22,15 +22,25 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "incls/_precompiled.incl"
|
||||
#include "incls/_c1_MacroAssembler_sparc.cpp.incl"
|
||||
#include "precompiled.hpp"
|
||||
#include "c1/c1_MacroAssembler.hpp"
|
||||
#include "c1/c1_Runtime1.hpp"
|
||||
#include "classfile/systemDictionary.hpp"
|
||||
#include "gc_interface/collectedHeap.hpp"
|
||||
#include "interpreter/interpreter.hpp"
|
||||
#include "oops/arrayOop.hpp"
|
||||
#include "oops/markOop.hpp"
|
||||
#include "runtime/basicLock.hpp"
|
||||
#include "runtime/biasedLocking.hpp"
|
||||
#include "runtime/os.hpp"
|
||||
#include "runtime/stubRoutines.hpp"
|
||||
|
||||
void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) {
|
||||
Label L;
|
||||
const Register temp_reg = G3_scratch;
|
||||
// Note: needs more testing of out-of-line vs. inline slow case
|
||||
verify_oop(receiver);
|
||||
ld_ptr(receiver, oopDesc::klass_offset_in_bytes(), temp_reg);
|
||||
load_klass(receiver, temp_reg);
|
||||
cmp(temp_reg, iCache);
|
||||
brx(Assembler::equal, true, Assembler::pt, L);
|
||||
delayed()->nop();
|
||||
@ -175,9 +185,19 @@ void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register
|
||||
} else {
|
||||
set((intx)markOopDesc::prototype(), t1);
|
||||
}
|
||||
st_ptr(t1 , obj, oopDesc::mark_offset_in_bytes ());
|
||||
st_ptr(klass, obj, oopDesc::klass_offset_in_bytes ());
|
||||
if (len->is_valid()) st(len , obj, arrayOopDesc::length_offset_in_bytes());
|
||||
st_ptr(t1, obj, oopDesc::mark_offset_in_bytes());
|
||||
if (UseCompressedOops) {
|
||||
// Save klass
|
||||
mov(klass, t1);
|
||||
encode_heap_oop_not_null(t1);
|
||||
stw(t1, obj, oopDesc::klass_offset_in_bytes());
|
||||
} else {
|
||||
st_ptr(klass, obj, oopDesc::klass_offset_in_bytes());
|
||||
}
|
||||
if (len->is_valid()) st(len, obj, arrayOopDesc::length_offset_in_bytes());
|
||||
else if (UseCompressedOops) {
|
||||
store_klass_gap(G0, obj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -225,7 +245,7 @@ void C1_MacroAssembler::initialize_object(
|
||||
Register t1, // temp register
|
||||
Register t2 // temp register
|
||||
) {
|
||||
const int hdr_size_in_bytes = instanceOopDesc::base_offset_in_bytes();
|
||||
const int hdr_size_in_bytes = instanceOopDesc::header_size() * HeapWordSize;
|
||||
|
||||
initialize_header(obj, klass, noreg, t1, t2);
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
@ -600,7 +612,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
|
||||
// load the klass and check the has finalizer flag
|
||||
Label register_finalizer;
|
||||
Register t = O1;
|
||||
__ ld_ptr(O0, oopDesc::klass_offset_in_bytes(), t);
|
||||
__ load_klass(O0, t);
|
||||
__ ld(t, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc), t);
|
||||
__ set(JVM_ACC_HAS_FINALIZER, G3);
|
||||
__ andcc(G3, t, G0);
|
||||
|
@ -22,6 +22,12 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
|
||||
#define CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
|
||||
|
||||
#include "utilities/globalDefinitions.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
|
||||
// Sets the default values for platform dependent flags used by the client compiler.
|
||||
// (see c1_globals.hpp)
|
||||
|
||||
@ -61,3 +67,5 @@ define_pd_global(bool, CSEArrayLength, true );
|
||||
define_pd_global(bool, TwoOperandLIRForm, false);
|
||||
|
||||
define_pd_global(intx, SafepointPollOffset, 0 );
|
||||
|
||||
#endif // CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
|
||||
|
@ -22,6 +22,12 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
|
||||
#define CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
|
||||
|
||||
#include "utilities/globalDefinitions.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
|
||||
// Sets the default values for platform dependent flags used by the server compiler.
|
||||
// (see c2_globals.hpp). Alpha-sorted.
|
||||
|
||||
@ -88,3 +94,5 @@ define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M));
|
||||
|
||||
// Ergonomics related flags
|
||||
define_pd_global(bool, NeverActAsServerClassMachine, false);
|
||||
|
||||
#endif // CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
|
||||
|
@ -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
|
||||
|
||||
|
@ -22,6 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
|
||||
#define CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
|
||||
|
||||
private:
|
||||
void pd_initialize() {}
|
||||
|
||||
@ -32,3 +35,5 @@ public:
|
||||
bool is_backward_branch(Label& L) {
|
||||
return L.is_bound() && insts_end() <= locator_address(L.loc());
|
||||
}
|
||||
|
||||
#endif // CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,6 +22,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CPU_SPARC_VM_COPY_SPARC_HPP
|
||||
#define CPU_SPARC_VM_COPY_SPARC_HPP
|
||||
|
||||
// Inline functions for memory copy and fill.
|
||||
|
||||
static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) {
|
||||
@ -186,3 +189,5 @@ static void pd_zero_to_words(HeapWord* tohw, size_t count) {
|
||||
static void pd_zero_to_bytes(void* to, size_t count) {
|
||||
(void)memset(to, 0, count);
|
||||
}
|
||||
|
||||
#endif // CPU_SPARC_VM_COPY_SPARC_HPP
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user