# HG changeset patch # User ghaug # Date 1535460906 -7200 # Node ID 4aba9ac9c1949a994e029cfc05f3b71e20717196 # Parent 72c0dded42eda52e2fe5bf56fd68e227435d8acb 8209996: [PPC64] Fix JFR profiling Reviewed-by: mdoerr, simonis diff -r 72c0dded42ed -r 4aba9ac9c194 src/cpu/ppc/vm/frame_ppc.cpp --- a/src/cpu/ppc/vm/frame_ppc.cpp Mon Mar 15 06:25:08 2021 +0000 +++ b/src/cpu/ppc/vm/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