On 08/01/19 11:38, Sam Tebbs wrote:

On 1/7/19 6:28 PM, James Greenhalgh wrote:
> 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

Thanks James, CC'ing Ian Lance Taylor.


Jeff, could you help with reviewing the libgcc changes please?
I believe the latest version was posted at:
https://gcc.gnu.org/ml/gcc-patches/2018-12/msg01569.html

Thanks,
Kyrill

The documentation relevant to the libgcc change is expected to be
published in the near future.

>
>> 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