]> git.ipfire.org Git - people/ms/gcc.git/commit
AArch64: Add UNSPECV_PATCHABLE_AREA [PR98776]
authorSebastian Pop <spop@amazon.com>
Wed, 30 Nov 2022 19:45:24 +0000 (19:45 +0000)
committerSebastian Pop <spop@amazon.com>
Thu, 15 Dec 2022 15:12:13 +0000 (15:12 +0000)
commit7525c9d7e72ac3818e08fe7aa98396bd41e4ec8c
tree4392fb176f7506b78c1f8d67c0c5305f1506b5b9
parent6b8f4f74307250e10812579676e0ddc19ad69b9a
AArch64: Add UNSPECV_PATCHABLE_AREA [PR98776]

Currently patchable area is at the wrong place on AArch64.  It is placed
immediately after function label, before .cfi_startproc.  This patch
adds UNSPECV_PATCHABLE_AREA for pseudo patchable area instruction and
modifies aarch64_print_patchable_function_entry to avoid placing
patchable area before .cfi_startproc.

gcc/
PR target/98776
* config/aarch64/aarch64-protos.h (aarch64_output_patchable_area):
Declared.
* config/aarch64/aarch64.cc (aarch64_print_patchable_function_entry):
Emit an UNSPECV_PATCHABLE_AREA pseudo instruction.
(aarch64_output_patchable_area): New.
* config/aarch64/aarch64.md (UNSPECV_PATCHABLE_AREA): New.
(patchable_area): Define.

gcc/testsuite/
PR target/98776
* gcc.target/aarch64/pr98776.c: New.
* gcc.target/aarch64/pr92424-2.c: Adjust pattern.
* gcc.target/aarch64/pr92424-3.c: Adjust pattern.
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.cc
gcc/config/aarch64/aarch64.md
gcc/testsuite/gcc.target/aarch64/pr92424-2.c
gcc/testsuite/gcc.target/aarch64/pr92424-3.c
gcc/testsuite/gcc.target/aarch64/pr98776.c [new file with mode: 0644]