[PATCH][gas] Implement .cfi_negate_ra_state directive

Kyrill Tkachov kyrylo.tkachov@foss.arm.com
Thu Dec 5 11:01:00 GMT 2019


This patch implements the .cfi_negate_ra_state to be consistent with
LLVM (https://reviews.llvm.org/D50136). The relevant DWARF code 
DW_CFA_AARCH64_negate_ra_state
is multiplexed on top of DW_CFA_GNU_window_save, as per
https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00753.html

I believe this is the simplest patch implementing this and is needed to
allow users to build, for example, the Linux kernel with Armv8.3-A
pointer authentication support with Clang while using gas as the
assembler, which is a common usecase.

Tested gas aarch64-none-elf.
Ok for master and the release branches?

Thanks,
Kyrill

gas/
2019-12-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     * dw2gencfi.c (cfi_pseudo_table): Add cfi_negate_ra_state.
     * testsuite/gas/aarch64/pac_negate_ra_state.s: New file.
     * testsuite/gas/aarch64/pac_negate_ra_state.d: Likewise.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: gas-negate.patch
Type: text/x-patch
Size: 2325 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20191205/49deafa7/attachment.bin>


More information about the Binutils mailing list