diff src/share/vm/utilities/vmError.cpp @ 12075:4b2838704fd5

8021898: Broken JIT compiler optimization for loop unswitching Summary: fix method clone_projs() to clone all related MachProj nodes. Reviewed-by: roland, adlertz
author kvn
date Fri, 16 Aug 2013 14:11:40 -0700
parents 93e6dce53ba7
children 38f750491293
line wrap: on
line diff
--- a/src/share/vm/utilities/vmError.cpp	Fri Aug 16 13:39:26 2013 -0400
+++ b/src/share/vm/utilities/vmError.cpp	Fri Aug 16 14:11:40 2013 -0700
@@ -586,6 +586,13 @@
           while (count++ < StackPrintLimit) {
              fr.print_on_error(st, buf, sizeof(buf));
              st->cr();
+             // Compiled code may use EBP register on x86 so it looks like
+             // non-walkable C frame. Use frame.sender() for java frames.
+             if (_thread && _thread->is_Java_thread() && fr.is_java_frame()) {
+               RegisterMap map((JavaThread*)_thread, false); // No update
+               fr = fr.sender(&map);
+               continue;
+             }
              if (os::is_first_C_frame(&fr)) break;
              fr = os::get_sender_for_C_frame(&fr);
           }