aarch64: Fix redundant check in aut insn generation

During the generation of the epilogue of aarch64(aarch64_expand_epilogue),
the value of crtl->calls_eh_return does not need to be checked again.
This value has been checked during aarch64_return_address_signing_enabled.

gcc/ChangeLog:

	* config/aarch64/aarch64.c (aarch64_expand_epilogue): Remove
	redundant check for calls_eh_return.
	* config/aarch64/aarch64.md (*do_return): Likewise.

Signed-off-by: Dan Li <ashimida@linux.alibaba.com>
This commit is contained in:
Dan Li 2021-11-01 11:04:12 +00:00 committed by Richard Sandiford
parent 4851c80ce8
commit 14d3140405
2 changed files with 2 additions and 7 deletions

View File

@ -9076,13 +9076,9 @@ aarch64_expand_epilogue (bool for_sibcall)
2) The RETAA instruction is not available before ARMv8.3-A, so if we are
generating code for !TARGET_ARMV8_3 we can't use it and must
explicitly authenticate.
3) On an eh_return path we make extra stack adjustments to update the
canonical frame address to be the exception handler's CFA. We want
to authenticate using the CFA of the function which calls eh_return.
*/
if (aarch64_return_address_signing_enabled ()
&& (for_sibcall || !TARGET_ARMV8_3 || crtl->calls_eh_return))
&& (for_sibcall || !TARGET_ARMV8_3))
{
switch (aarch64_ra_sign_key)
{

View File

@ -879,8 +879,7 @@
{
const char *ret = NULL;
if (aarch64_return_address_signing_enabled ()
&& (TARGET_PAUTH)
&& !crtl->calls_eh_return)
&& (TARGET_PAUTH))
{
if (aarch64_ra_sign_key == AARCH64_KEY_B)
ret = "retab";