diff src/share/vm/opto/coalesce.cpp @ 295:ea18057223c4

6732194: Data corruption dependent on -server/-client/-Xbatch Summary: rematerializing nodes results in incorrect inputs Reviewed-by: rasbold
author never
date Mon, 18 Aug 2008 23:17:51 -0700
parents a61af66fc99e
children 9ee9cf798b59
line wrap: on
line diff
--- a/src/share/vm/opto/coalesce.cpp	Thu Aug 14 10:15:29 2008 -0700
+++ b/src/share/vm/opto/coalesce.cpp	Mon Aug 18 23:17:51 2008 -0700
@@ -604,8 +604,8 @@
   // If both are single def, then src_def powers one live range
   // and def_copy powers the other.  After merging, src_def powers
   // the combined live range.
-  lrgs(lr1)._def = (lrgs(lr1)._def == NodeSentinel ||
-                        lrgs(lr2)._def == NodeSentinel )
+  lrgs(lr1)._def = (lrgs(lr1).is_multidef() ||
+                        lrgs(lr2).is_multidef() )
     ? NodeSentinel : src_def;
   lrgs(lr2)._def = NULL;    // No def for lrg 2
   lrgs(lr2).Clear();        // Force empty mask for LRG 2