8209996: [PPC64] Fix JFR profiling
authorghaug
Tue, 28 Aug 2018 14:55:06 +0200
changeset 51568 0157a3ab61b1
parent 51567 0c4f2b26849e
child 51569 46ec360a7014
8209996: [PPC64] Fix JFR profiling Reviewed-by: mdoerr, simonis
src/hotspot/cpu/ppc/frame_ppc.cpp
--- a/src/hotspot/cpu/ppc/frame_ppc.cpp	Wed Aug 29 10:46:59 2018 -0400
+++ b/src/hotspot/cpu/ppc/frame_ppc.cpp	Tue Aug 28 14:55:06 2018 +0200
@@ -67,8 +67,8 @@
     return false;
   }
 
-  // Unextended sp must be within the stack and above or equal sp
-  bool unextended_sp_safe = (unextended_sp < thread->stack_base()) && (unextended_sp >= sp);
+  // Unextended sp must be within the stack
+  bool unextended_sp_safe = (unextended_sp < thread->stack_base());
 
   if (!unextended_sp_safe) {
     return false;
@@ -76,9 +76,10 @@
 
   // An fp must be within the stack and above (but not equal) sp.
   bool fp_safe = (fp <= thread->stack_base()) &&  (fp > sp);
-  // an interpreter fp must be within the stack and above (but not equal) sp
-  bool fp_interp_safe = (fp <= thread->stack_base()) &&  (fp > sp) &&
-    ((fp - sp) >= (ijava_state_size + top_ijava_frame_abi_size));
+  // An interpreter fp must be within the stack and above (but not equal) sp.
+  // Moreover, it must be at least the size of the ijava_state structure.
+  bool fp_interp_safe = (fp <= thread->stack_base()) && (fp > sp) &&
+    ((fp - sp) >= ijava_state_size);
 
   // We know sp/unextended_sp are safe, only fp is questionable here