[BOLT][AArch64] Add rseq test (#174413)

This commit is contained in:
Paschalis Mpeis 2026-01-07 09:10:48 +00:00 committed by GitHub
parent c55c2ab806
commit 164cfda88e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

36
bolt/test/AArch64/rseq.s Normal file
View file

@ -0,0 +1,36 @@
## Check that llvm-bolt avoids optimization of functions referenced from
## __rseq_cs section, i.e. containing critical sections and abort handlers used
## by restartable sequences in tcmalloc.
# RUN: %clang %cflags %s -o %t -nostdlib -no-pie -Wl,-q
# RUN: llvm-bolt %t -o %t.bolt --print-cfg 2>&1 | FileCheck %s
# RUN: %clang %cflags %s -o %t.pie -nostdlib -pie -Wl,-q
# RUN: llvm-bolt %t.pie -o %t.pie.bolt 2>&1 | FileCheck %s
# CHECK: restartable sequence reference detected in _start
# CHECK: restartable sequence reference detected in __rseq_abort
.text
.reloc 0, R_AARCH64_NONE
.global _start
.type _start, %function
_start:
stp x29, x30, [sp, #-16]!
mov x29, sp
.L1:
ldp x29, x30, [sp], #16
.L2:
ret
.size _start, .-_start
.section __rseq_abort, "ax"
## Signature for rseq abort IP. Unmarked in the symbol table.
.long 0xd428bc00 // RSEQ_SIG_CODE, BRK #0x45E0
.L3:
b .L2
.section __rseq_cs, "aw"
.balign 32
.quad .L1
.quad .L3