gcc/libgcc
Sam Tebbs 8fc16d7252 [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key
gcc/
2019-05-29  Sam Tebbs  <sam.tebbs@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_handle_standard_branch_protection,
	aarch64_handle_pac_ret_protection): Set default sign key to A.
	* config/aarch64/aarch64.c (aarch64_expand_epilogue,
	aarch64_expand_prologue): 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.
	* doc/invoke.texi (-mbranch-protection): Add b-key type.
	* config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
	UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.

gcc/testsuite
2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>

	* 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_ab_exception.c: New file.
	* gcc.target/aarch64/return_address_sign_builtin.c: New file

libgcc/
2019-05-29  Sam Tebbs  <sam.tebbs@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.
	* config/aarch64/aarch64-unwind-h (aarch64_post_extract_frame_addr,
	aarch64_post_frob_eh_handler_addr, aarch64_post_frob_update_context):
	Rename RA_A_SIGNED_BIT to RA_SIGNED_BIT.
	* 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.
	(RA_A_SIGNED_BIT): Rename to RA_SIGNED_BIT.

From-SVN: r271735
2019-05-29 09:22:17 +00:00
..
config [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key 2019-05-29 09:22:17 +00:00
soft-fp soft-fp: Update soft-fp from glibc 2019-05-17 07:37:39 -07:00
ChangeLog [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key 2019-05-29 09:22:17 +00:00
config.host Remove obsolete Solaris 10 support 2019-05-14 17:17:23 +00:00
config.in re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace) 2018-02-28 09:59:15 +01:00
configure Remove obsolete Solaris 10 support 2019-05-14 17:17:23 +00:00
configure.ac Remove obsolete Solaris 10 support 2019-05-14 17:17:23 +00:00
crtstuff.c Update copyright years. 2019-01-01 13:31:55 +01:00
dfp-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
dfp-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
divmod.c Update copyright years. 2019-01-01 13:31:55 +01:00
empty.mk
emutls.c Update copyright years. 2019-01-01 13:31:55 +01:00
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c Update copyright years. 2019-01-01 13:31:55 +01:00
find-symver.awk Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-obj.mk
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
fp-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
gbl-ctors.h Update copyright years. 2019-01-01 13:31:55 +01:00
gcov.h Update copyright years. 2019-01-01 13:31:55 +01:00
gen-fixed.sh
generic-morestack-thread.c PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
generic-morestack.c PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
generic-morestack.h Update copyright years. 2019-01-01 13:31:55 +01:00
gstdint.h
gthr-posix.h PR c/88546 - Copy attribute unusable for weakrefs 2019-01-04 17:57:30 -07:00
gthr-single.h Update copyright years. 2019-01-01 13:31:55 +01:00
gthr.h Update copyright years. 2019-01-01 13:31:55 +01:00
libgcc-std.ver.in Update copyright years. 2019-01-01 13:31:55 +01:00
libgcc2.c extend.texi (__clear_cache): Correct signature. 2019-02-21 16:23:12 -07:00
libgcc2.h extend.texi (__clear_cache): Correct signature. 2019-02-21 16:23:12 -07:00
libgcov-driver-system.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov-driver.c Update error message prefix in libgcov profiling. 2019-01-18 11:31:45 +00:00
libgcov-interface.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov-merge.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov-profiler.c Bump version of __gcov_indirect_call_profiler function as there was ABI change. 2019-01-18 11:32:53 +00:00
libgcov-util.c trans.c (check_inlining_for_nested_subprog): Quote reserved names. 2019-05-17 11:55:43 -06:00
libgcov.h Bump version of __gcov_indirect_call_profiler function as there was ABI change. 2019-01-18 11:32:53 +00:00
Makefile.in Bump version of __gcov_indirect_call_profiler function as there was ABI change. 2019-01-18 11:32:53 +00:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh Update copyright years. 2019-01-01 13:31:55 +01:00
mkmap-flat.awk Update copyright years. 2019-01-01 13:31:55 +01:00
mkmap-symver.awk PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
offloadstuff.c Update copyright years. 2019-01-01 13:31:55 +01:00
shared-object.mk
siditi-object.mk
static-object.mk
sync.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivhi3.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmod.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmodhi4.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmodsi4.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-arm-common.inc Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-c.c re PR target/89093 (C++ exception handling clobbers d8 VFP register) 2019-04-23 12:03:41 +02:00
unwind-compat.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-compat.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde-dip.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde.c [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key 2019-05-29 09:22:17 +00:00
unwind-dw2-fde.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2.c [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key 2019-05-29 09:22:17 +00:00
unwind-dw2.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-generic.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-pe.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-seh.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-sjlj.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind.inc Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_end.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_end_preinit.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_start.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_start_preinit.c Update copyright years. 2019-01-01 13:31:55 +01:00