On Fri, Dec 21, 2018 at 09:00:10AM -0600, Sam Tebbs wrote:
> On 11/9/18 11:04 AM, Sam Tebbs wrote:
 
<snip>

> Attached is an improved patch with "hint" removed from the test scans, 
> pauth_hint_num_a and pauth_hint_num_b merged into pauth_hint_num and the 
> "gcc_assert (cfun->machine->frame.laid_out)" removal reverted since was 
> an unnecessary change.
> 
> OK for trunk?

While the AArch64 parts look OK to me and are buried behind an option so are
relatively safe even though we're late in development, you'll need someone
else to approve the libgcc changes. Especially as you change a generic
routine with an undocumented (?) AArch64-specific change.

Thanks,
James

> 
> gcc/
> 2018-12-21  Sam Tebbs<sam.te...@arm.com>
> 
>       * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
>       AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
>       * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
>       Add autib1716 and pacib1716 initialisation.
>       * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
>       for autib1716 and pacib1716.
>       * config/aarch64/aarch64-protos.h (aarch64_key_type,
>       aarch64_post_cfi_startproc): Define.
>       * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
>       * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): Add
>       check for b-key.
>       * config/aarch64/aarch64.c (aarch64_ra_sign_key,
>       aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
>       * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
>       * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
>       * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
>       UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
>       UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
>       * config/aarch64/aarch64.md (do_return): Add check for b-key.
>       * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
>       pauth_hint_num_a with pauth_hint_num.
>       * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
>       pauth_hint_num_a with pauth_hint_num.
>       * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
>       * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
>       UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
>       * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
>       UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
>       * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
>       UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
>       UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
>       * config/aarch64/iterators.md (pauth_hint_num_a): Replace
>       UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
>       UNSPEC_AUTIA1716 respectively.
>       * config/aarch64/iterators.md (pauth_hint_num_a): Rename to 
> pauth_hint_num
>       and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, 
> UNSPEC_AUTIB1716.
> 
> gcc/testsuite
> 2018-12-21  Sam Tebbs<sam.te...@arm.com>
> 
>       * gcc.target/aarch64/return_address_sign_1.c (dg-final): Replace
>       "autiasp" and "paciasp" with "hint\t29 // autisp" and
>       "hint\t25 // pacisp" respectively.
>       * gcc.target/aarch64/return_address_sign_2.c (dg-final): Replace
>       "paciasp" with "hint\t25 // pacisp".
>       * gcc.target/aarch64/return_address_sign_3.c (dg-final): Replace
>       "paciasp" and "autiasp" with "pacisp" and "autisp" respectively.
>       * gcc.target/aarch64/return_address_sign_b_1.c: New file.
>       * gcc.target/aarch64/return_address_sign_b_2.c: New file.
>       * gcc.target/aarch64/return_address_sign_b_3.c: New file.
>       * gcc.target/aarch64/return_address_sign_b_exception.c: New file.
>       * gcc.target/aarch64/return_address_sign_builtin.c: New file
> 
> libgcc/
> 2018-12-21  Sam Tebbs<sam.te...@arm.com>
> 
>       * config/aarch64/aarch64-unwind.h (aarch64_cie_signed_with_b_key): New
>       function.
>       * config/aarch64/aarch64-unwind.h (aarch64_post_extract_frame_addr,
>       aarch64_post_frob_eh_handler_addr): Add check for b-key.
>       * unwind-dw2-fde.c (get_cie_encoding): Add check for 'B' in augmentation
>       string.
>       * unwind-dw2.c (extract_cie_info): Add check for 'B' in augmentation
>       string.
> 

Reply via email to