changeset 9599:ffbb0a365039

Merge.
author Doug Simon <doug.simon@oracle.com>
date Tue, 07 May 2013 11:37:23 +0200
parents 0fc67e300471 (current diff) 08af000f4b69 (diff)
children 20c09d314168
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java src/share/vm/graal/graalCompilerToVM.cpp
diffstat 4 files changed, 13 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java	Tue May 07 11:07:14 2013 +0200
+++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java	Tue May 07 11:37:23 2013 +0200
@@ -2134,7 +2134,7 @@
         if (isByte(value)) {
             emitByte(0x6B);
             emitByte(0xC0 | encode);
-            emitByte(value);
+            emitByte(value & 0xFF);
         } else {
             emitByte(0x69);
             emitByte(0xC0 | encode);
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java	Tue May 07 11:07:14 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java	Tue May 07 11:37:23 2013 +0200
@@ -34,7 +34,7 @@
 
     // os information, register layout, code generation, ...
     public boolean cAssertions;
-    public boolean windowsOs;
+    public final boolean windowsOs = System.getProperty("os.name", "").startsWith("Windows");
     public int codeEntryAlignment;
     public boolean verifyOops;
     public boolean ciTime;
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ObjectEqualsNode.java	Tue May 07 11:07:14 2013 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ObjectEqualsNode.java	Tue May 07 11:37:23 2013 +0200
@@ -77,9 +77,16 @@
         boolean xVirtual = stateX != null && stateX.getState() == EscapeState.Virtual;
         boolean yVirtual = stateY != null && stateY.getState() == EscapeState.Virtual;
 
-        if (xVirtual ^ yVirtual) {
-            // one of them is virtual: they can never be the same objects
-            tool.replaceWithValue(LogicConstantNode.contradiction(graph()));
+        if (xVirtual && !yVirtual) {
+            if (stateX.getVirtualObject().hasIdentity()) {
+                // one of them is virtual: they can never be the same objects
+                tool.replaceWithValue(LogicConstantNode.contradiction(graph()));
+            }
+        } else if (!xVirtual && yVirtual) {
+            if (stateY.getVirtualObject().hasIdentity()) {
+                // one of them is virtual: they can never be the same objects
+                tool.replaceWithValue(LogicConstantNode.contradiction(graph()));
+            }
         } else if (xVirtual && yVirtual) {
             boolean xIdentity = stateX.getVirtualObject().hasIdentity();
             boolean yIdentity = stateY.getVirtualObject().hasIdentity();
--- a/src/share/vm/graal/graalCompilerToVM.cpp	Tue May 07 11:07:14 2013 +0200
+++ b/src/share/vm/graal/graalCompilerToVM.cpp	Tue May 07 11:37:23 2013 +0200
@@ -643,11 +643,7 @@
 #define set_int_array(name, value) do { env->SetObjectField(config, getFieldID(env, config, name, "[I"), value); } while (0)
 
   guarantee(HeapWordSize == sizeof(char*), "Graal assumption that HeadWordSize == machine word size is wrong");
-#ifdef _WIN64
-  set_boolean("windowsOs", true);
-#else
-  set_boolean("windowsOs", false);
-#endif
+
   set_boolean("cAssertions", DEBUG_ONLY(true) NOT_DEBUG(false));
   set_boolean("verifyOops", VerifyOops);
   set_boolean("ciTime", CITime);