# HG changeset patch # User Thomas Wuerthinger # Date 1273674640 -7200 # Node ID d0753a2746337b494d2884147fbb813bf7cc0877 # Parent b30a2cd5e3a2e1d9dc7493f6389a1414d218b6df# Parent a50d2a8d726e327a72c3abea395bcb84c924d858 Merge diff -r b30a2cd5e3a2 -r d0753a274633 create64.cmd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/create64.cmd Wed May 12 16:30:40 2010 +0200 @@ -0,0 +1,14 @@ +set HotSpotMksHome=C:\cygwin\bin +set JAVA_HOME=%cd%\java +set ORIG_PATH=%PATH% +set path=%JAVA_HOME%\bin;%path%;C:\cygwin\bin + +set OrigPath=%cd% +cd make\windows + +mkdir %OrigPath%\work +call create.bat %OrigPath% %OrigPath%\work %OrigPath%\java + +set PATH=%ORIG_PATH% +cd %OrigPath% +pause diff -r b30a2cd5e3a2 -r d0753a274633 make/windows/create.bat --- a/make/windows/create.bat Wed May 12 16:29:41 2010 +0200 +++ b/make/windows/create.bat Wed May 12 16:30:40 2010 +0200 @@ -43,6 +43,8 @@ if %errorlevel% == 0 goto isia64 cl 2>&1 | grep "AMD64" >NUL if %errorlevel% == 0 goto amd64 +cl 2>&1 | grep "x64" >NUL +if %errorlevel% == 0 goto amd64 set ARCH=x86 set BUILDARCH=i486 set Platform_arch=x86 diff -r b30a2cd5e3a2 -r d0753a274633 make/windows/makefiles/vm.make diff -r b30a2cd5e3a2 -r d0753a274633 src/share/tools/MakeDeps/BuildConfig.java --- a/src/share/tools/MakeDeps/BuildConfig.java Wed May 12 16:29:41 2010 +0200 +++ b/src/share/tools/MakeDeps/BuildConfig.java Wed May 12 16:30:40 2010 +0200 @@ -242,12 +242,22 @@ void initDefaultDefines(Vector defines) { Vector sysDefines = new Vector(); - sysDefines.add("WIN32"); + if( Util.os().equals("Win32")) { + sysDefines.add("WIN32"); + sysDefines.add("HOTSPOT_LIB_ARCH=\\\"i386\\\""); + } else { + sysDefines.add("_AMD64_"); + sysDefines.add("AMD64"); + sysDefines.add("_WIN64"); + sysDefines.add("_LP64"); + if (System.getenv("MSC_VER") != null) + sysDefines.add("MSC_VER=" + System.getenv("MSC_VER")); + sysDefines.add("HOTSPOT_LIB_ARCH=\\\"amd64\\\""); + } sysDefines.add("_WINDOWS"); sysDefines.add("HOTSPOT_BUILD_USER="+System.getProperty("user.name")); sysDefines.add("HOTSPOT_BUILD_TARGET=\\\""+get("Build")+"\\\""); sysDefines.add("_JNI_IMPLEMENTATION_"); - sysDefines.add("HOTSPOT_LIB_ARCH=\\\"i386\\\""); sysDefines.addAll(defines); diff -r b30a2cd5e3a2 -r d0753a274633 src/share/tools/MakeDeps/MakeDeps.java --- a/src/share/tools/MakeDeps/MakeDeps.java Wed May 12 16:29:41 2010 +0200 +++ b/src/share/tools/MakeDeps/MakeDeps.java Wed May 12 16:30:40 2010 +0200 @@ -1,3 +1,6 @@ +import java.util.Map; +import java.util.Map.Entry; + /* * Copyright 1999-2001 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. diff -r b30a2cd5e3a2 -r d0753a274633 src/share/tools/MakeDeps/Util.java --- a/src/share/tools/MakeDeps/Util.java Wed May 12 16:29:41 2010 +0200 +++ b/src/share/tools/MakeDeps/Util.java Wed May 12 16:30:40 2010 +0200 @@ -23,6 +23,7 @@ */ import java.util.*; +import java.util.Map.Entry; import java.io.File; public class Util { @@ -84,5 +85,25 @@ } static String sep = File.separator; - static String os = "Win32"; //System.getProperty("os.name"); + + private static String _os; + + static String os() { + if( _os==null) { + + for(Map.Entry entry: System.getenv().entrySet()) + if("PLATFORM_ARCH_MODEL".equals(entry.getKey().toUpperCase())) { + String archModel = entry.getValue(); + if("x86_32".equals(archModel)) + _os = "Win32"; + else if("x86_64".equals(archModel)) + _os = "x64"; + else + throw new RuntimeException("Unsupported PLATFORM_ARCH_MODEL " + archModel); + return _os; + } + throw new RuntimeException("PLATFORM_ARCH_MODEL not specified"); + } + return _os; + } } diff -r b30a2cd5e3a2 -r d0753a274633 src/share/tools/MakeDeps/WinGammaPlatformVC6.java --- a/src/share/tools/MakeDeps/WinGammaPlatformVC6.java Wed May 12 16:29:41 2010 +0200 +++ b/src/share/tools/MakeDeps/WinGammaPlatformVC6.java Wed May 12 16:30:40 2010 +0200 @@ -286,6 +286,6 @@ } String makeCfgName(String flavourBuild) { - return "vm - "+ Util.os + " " + flavourBuild; + return "vm - "+ "Win32" + " " + flavourBuild; } } diff -r b30a2cd5e3a2 -r d0753a274633 src/share/tools/MakeDeps/WinGammaPlatformVC7.java --- a/src/share/tools/MakeDeps/WinGammaPlatformVC7.java Wed May 12 16:29:41 2010 +0200 +++ b/src/share/tools/MakeDeps/WinGammaPlatformVC7.java Wed May 12 16:30:40 2010 +0200 @@ -51,7 +51,7 @@ ); startTag("Platforms", null); - tag("Platform", new String[] {"Name", Util.os}); + tag("Platform", new String[] {"Name", Util.os()}); endTag("Platforms"); startTag("Configurations", null); @@ -469,7 +469,7 @@ "PreprocessorDefinitions", "NDEBUG", "MkTypLibCompatible", "TRUE", "SuppressStartupBanner", "TRUE", - "TargetEnvironment", "1", + "TargetEnvironment", Util.os().equals("Win32") ? "1" : "3", "TypeLibraryName", cfg.get("OutputDir") + Util.sep + "vm.tlb", "HeaderFileName", "" } @@ -611,7 +611,7 @@ addAttr(rv, "BaseAddress", "0x8000000"); addAttr(rv, "ImportLibrary", outDir+Util.sep+"jvm.lib"); // Set /MACHINE option. 1 is machineX86 - addAttr(rv, "TargetMachine", "1"); + addAttr(rv, "TargetMachine", Util.os().equals("Win32") ? "1" : "17"); return rv; } @@ -689,6 +689,6 @@ } String makeCfgName(String flavourBuild) { - return flavourBuild + "|" + Util.os; + return flavourBuild + "|" + Util.os(); } } diff -r b30a2cd5e3a2 -r d0753a274633 src/share/tools/MakeDeps/WinGammaPlatformVC8.java --- a/src/share/tools/MakeDeps/WinGammaPlatformVC8.java Wed May 12 16:29:41 2010 +0200 +++ b/src/share/tools/MakeDeps/WinGammaPlatformVC8.java Wed May 12 16:30:40 2010 +0200 @@ -41,6 +41,8 @@ addAttr(rv, "UsePrecompiledHeader", "2"); // Set /EHsc- option. 0 is cppExceptionHandlingNo addAttr(rv, "ExceptionHandling", "0"); + // Parallel compilation + addAttr(rv, "AdditionalOptions", "/MP"); return rv; } diff -r b30a2cd5e3a2 -r d0753a274633 src/share/vm/c1/c1_LIRGenerator.cpp --- a/src/share/vm/c1/c1_LIRGenerator.cpp Wed May 12 16:29:41 2010 +0200 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp Wed May 12 16:30:40 2010 +0200 @@ -2427,7 +2427,7 @@ // Load CallSite object from constant pool cache. __ oop2reg(cpcache->constant_encoding(), tmp); - __ load(new LIR_Address(tmp, call_site_offset, T_OBJECT), tmp); + __ load(new LIR_Address(tmp, (int)call_site_offset, T_OBJECT), tmp); // Load target MethodHandle from CallSite object. __ load(new LIR_Address(tmp, java_dyn_CallSite::target_offset_in_bytes(), T_OBJECT), receiver); diff -r b30a2cd5e3a2 -r d0753a274633 src/share/vm/gc_implementation/g1/heapRegion.cpp --- a/src/share/vm/gc_implementation/g1/heapRegion.cpp Wed May 12 16:29:41 2010 +0200 +++ b/src/share/vm/gc_implementation/g1/heapRegion.cpp Wed May 12 16:30:40 2010 +0200 @@ -290,7 +290,7 @@ // Recalculate the region size to make sure it's a power of // 2. This means that region_size is the largest power of 2 that's // <= what we've calculated so far. - region_size = 1 << region_size_log; + region_size = ((uintx)1) << region_size_log; // Now make sure that we don't go over or under our limits. if (region_size < MIN_REGION_SIZE) {