changeset 4975:dfa7c9a45d8e

Merge.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 15:25:39 +0100
parents ab906cea36f7 (current diff) 27397872945f (diff)
children 8f01f899bccd
files clean domake
diffstat 5 files changed, 14 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/clean	Mon Feb 27 15:15:59 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-#!/bin/bash
-pushd make
-LANG=C ARCH_DATA_MODEL=64 HOTSPOT_BUILD_JOBS=16 make clean
-popd
-
--- a/domake	Mon Feb 27 15:15:59 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-mxtools/mx make
-mxtools/mx --debug make
-
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/target/amd64/AMD64LIRGenerator.java	Mon Feb 27 15:15:59 2012 +0100
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/target/amd64/AMD64LIRGenerator.java	Mon Feb 27 15:25:39 2012 +0100
@@ -153,15 +153,20 @@
                 scale = target().sizeInBytes(location.getValueKind());
             }
             if (isConstant(index)) {
-                displacement += asConstant(index).asLong() * scale;
-                index = CiValue.IllegalValue;
+                long newDisplacement = displacement + asConstant(index).asLong() * scale;
+                // only use the constant index if the resulting displacement fits into a 32 bit offset
+                if (NumUtil.isInt(newDisplacement)) {
+                    displacement = newDisplacement;
+                    index = CiValue.IllegalValue;
+                } else {
+                    // create a temporary variable for the index, the pointer load cannot handle a constant index
+                    CiValue newIndex = newVariable(CiKind.Long);
+                    emitMove(index, newIndex);
+                    index = newIndex;
+                }
             }
         }
 
-        if (!NumUtil.isInt(displacement)) {
-            // Currently it's not worth handling this case.
-            throw new CiBailout("integer overflow when computing constant displacement");
-        }
         return new CiAddress(location.getValueKind(), base, index, CiAddress.Scale.fromInt(scale), (int) displacement);
     }
 
--- a/hotspot/.cproject	Mon Feb 27 15:15:59 2012 +0100
+++ b/hotspot/.cproject	Mon Feb 27 15:25:39 2012 +0100
@@ -20,7 +20,7 @@
 					<folderInfo id="cdt.managedbuild.toolchain.gnu.solaris.base.945602881.305678577" name="/" resourcePath="">
 						<toolChain id="cdt.managedbuild.toolchain.gnu.base.1866612258" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
 							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.2075405295" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
-							<builder arguments="${workspace_loc:/hotspot}/../domake" autoBuildTarget="jvmg1" buildPath="${workspace_loc:/hotspot}/.." cleanBuildTarget="clean" command="bash" enableAutoBuild="true" enableCleanBuild="false" enabledIncrementalBuild="false" id="cdt.managedbuild.target.gnu.builder.base.81453037" incrementalBuildTarget="jvmg1" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelizationNumber="1" superClass="cdt.managedbuild.target.gnu.builder.base">
+							<builder arguments="${workspace_loc:/hotspot}/../mxtool/mx build" autoBuildTarget="debug" buildPath="${workspace_loc:/hotspot}/.." cleanBuildTarget="clean" command="bash" enableAutoBuild="true" enableCleanBuild="false" enabledIncrementalBuild="false" id="cdt.managedbuild.target.gnu.builder.base.81453037" incrementalBuildTarget="jvmg1" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelizationNumber="1" superClass="cdt.managedbuild.target.gnu.builder.base">
 								<outputEntries>
 									<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name=""/>
 								</outputEntries>
--- a/hotspot/.project	Mon Feb 27 15:15:59 2012 +0100
+++ b/hotspot/.project	Mon Feb 27 15:25:39 2012 +0100
@@ -23,11 +23,11 @@
 				</dictionary>
 				<dictionary>
 					<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
-					<value>jvmg1</value>
+					<value>debug</value>
 				</dictionary>
 				<dictionary>
 					<key>org.eclipse.cdt.make.core.buildArguments</key>
-					<value>${workspace_loc:/hotspot}/../domake</value>
+					<value>${workspace_loc:/hotspot}/../mxtool/mx build</value>
 				</dictionary>
 				<dictionary>
 					<key>org.eclipse.cdt.make.core.buildCommand</key>