7122939: TraceBytecodes broken with UseCompressedOops
authorcoleenp
Mon, 19 Dec 2011 15:34:09 -0500
changeset 11253 8d06f82cbd11
parent 11246 ad4fa45ab748
child 11255 7d28e253b4b0
7122939: TraceBytecodes broken with UseCompressedOops Summary: Disable verify_heapbase on sparc if TraceBytecodes because the latter uses r12 as a temp register Reviewed-by: coleenp, phh Contributed-by: Volker Simonis <volker.simonis@gmail.com>
hotspot/src/cpu/x86/vm/assembler_x86.cpp
--- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp	Fri Dec 16 12:46:17 2011 -0800
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp	Mon Dec 19 15:34:09 2011 -0500
@@ -5968,7 +5968,9 @@
   assert(number_of_arguments >= 0   , "cannot have negative number of arguments");
   LP64_ONLY(assert(java_thread == r15_thread, "unexpected register"));
 #ifdef ASSERT
-  LP64_ONLY(if (UseCompressedOops) verify_heapbase("call_VM_base");)
+  // TraceBytecodes does not use r12 but saves it over the call, so don't verify
+  // r12 is the heapbase.
+  LP64_ONLY(if (UseCompressedOops && !TraceBytecodes) verify_heapbase("call_VM_base");)
 #endif // ASSERT
 
   assert(java_thread != oop_result  , "cannot use the same register for java_thread & oop_result");