hotspot/src/share/vm/opto/addnode.cpp
changeset 346 e13ccc474a28
parent 205 4069fc169258
child 670 ddf3e9583f2f
--- a/hotspot/src/share/vm/opto/addnode.cpp	Wed Mar 26 12:25:06 2008 -0700
+++ b/hotspot/src/share/vm/opto/addnode.cpp	Fri Mar 28 09:00:39 2008 -0700
@@ -70,9 +70,14 @@
 
   // Convert "Load+x" into "x+Load".
   // Now check for loads
-  if( in2->is_Load() ) return false;
-  // Left is a Load and Right is not; move it right.
-  if( in1->is_Load() ) {
+  if (in2->is_Load()) {
+    if (!in1->is_Load()) {
+      // already x+Load to return
+      return false;
+    }
+    // both are loads, so fall through to sort inputs by idx
+  } else if( in1->is_Load() ) {
+    // Left is a Load and Right is not; move it right.
     add->swap_edges(1, 2);
     return true;
   }