[gcc(refs/users/wschmidt/heads/dd2)] rs6000: Don't emit hashst/hashchk with zero offset

William Schmidt wschmidt@gcc.gnu.org
Fri Mar 19 22:03:12 GMT 2021


https://gcc.gnu.org/g:ef4c458c0bff291a9c390fca48c1aa747ad28218

commit ef4c458c0bff291a9c390fca48c1aa747ad28218
Author: Bill Schmidt <wschmidt@linux.ibm.com>
Date:   Fri Mar 19 17:02:48 2021 -0500

    rs6000: Don't emit hashst/hashchk with zero offset
    
    2021-03-18  Bill Schmidt  <wschmidt@linux.ibm.com>
    
    gcc/
            * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Check
            rop_check_size.
            (rs6000_emit_epilogue): Likewise.

Diff:
---
 gcc/config/rs6000/rs6000-logue.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/config/rs6000/rs6000-logue.c b/gcc/config/rs6000/rs6000-logue.c
index a58a926dae1..ebfcf3300c1 100644
--- a/gcc/config/rs6000/rs6000-logue.c
+++ b/gcc/config/rs6000/rs6000-logue.c
@@ -3279,7 +3279,7 @@ rs6000_emit_prologue (void)
     }
 
   /* The ROP hash store must occur before a stack frame is created.  */
-  if (TARGET_POWER10 && rs6000_rop_protect && info->push_p)
+  if (TARGET_POWER10 && rs6000_rop_protect && info->rop_check_size != 0)
     {
       gcc_assert (DEFAULT_ABI == ABI_ELFv2);
       rtx stack_ptr = gen_rtx_REG (Pmode, STACK_POINTER_REGNUM);
@@ -5023,8 +5023,8 @@ rs6000_emit_epilogue (enum epilogue_type epilogue_type)
 
   /* The ROP hash check must occur after the stack pointer is restored,
      and is not performed for a sibcall.  */
-  if (TARGET_POWER10 && rs6000_rop_protect
-      && info->push_p && epilogue_type != EPILOGUE_TYPE_SIBCALL)
+  if (TARGET_POWER10 && rs6000_rop_protect && info->rop_check_size != 0
+      && epilogue_type != EPILOGUE_TYPE_SIBCALL)
     {
       gcc_assert (DEFAULT_ABI == ABI_ELFv2);
       rtx stack_ptr = gen_rtx_REG (Pmode, STACK_POINTER_REGNUM);


More information about the Gcc-cvs mailing list