diff src/share/vm/c1/c1_Canonicalizer.cpp @ 6133:c8289830e172

7172843: C1: fix "assert(has_printable_bci()) failed: _printable_bci should have been set" Reviewed-by: twisti Contributed-by: Krystal Mok <sajia@taobao.com>
author twisti
date Wed, 30 May 2012 12:17:07 -0700
parents 701a83c86f28
children 8f37087fc13f
line wrap: on
line diff
--- a/src/share/vm/c1/c1_Canonicalizer.cpp	Fri May 25 11:39:13 2012 -0700
+++ b/src/share/vm/c1/c1_Canonicalizer.cpp	Wed May 30 12:17:07 2012 -0700
@@ -42,6 +42,11 @@
   // the instruction stream (because the instruction list is embedded
   // in the instructions).
   if (canonical() != x) {
+#ifndef PRODUCT
+    if (!x->has_printable_bci()) {
+      x->set_printable_bci(bci());
+    }
+#endif
     if (PrintCanonicalization) {
       PrintValueVisitor do_print_value;
       canonical()->input_values_do(&do_print_value);
@@ -677,8 +682,8 @@
                 return;
             }
           }
+          set_bci(cmp->state_before()->bci());
           set_canonical(canon);
-          set_bci(cmp->state_before()->bci());
         }
       }
     } else if (l->as_InstanceOf() != NULL) {