mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 18:39:34 +08:00
gas: sframe: testsuite: add testcase for .cfi_b_key_frame
This is actually a composite test that checks SFrame unwind information generation for both the .cfi_negate_ra_state and .cfi_b_key_frame directives on aarch64. ChangeLog: * testsuite/gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.d: New test. * testsuite/gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.s: Likewise. * testsuite/gas/cfi-sframe/cfi-sframe.exp: Run new test.
This commit is contained in:
@ -0,0 +1,27 @@
|
|||||||
|
#as: --gsframe
|
||||||
|
#objdump: --sframe=.sframe
|
||||||
|
#name: SFrame cfi_b_key_frame and cfi_negate_ra_state composite test
|
||||||
|
#...
|
||||||
|
Contents of the SFrame section .sframe:
|
||||||
|
|
||||||
|
Header :
|
||||||
|
|
||||||
|
Version: SFRAME_VERSION_1
|
||||||
|
Flags: NONE
|
||||||
|
Num FDEs: 2
|
||||||
|
Num FREs: 6
|
||||||
|
|
||||||
|
Function Index :
|
||||||
|
func idx \[0\]: pc = 0x0, size = 12 bytes
|
||||||
|
STARTPC + CFA + FP + RA +
|
||||||
|
0+0000 +sp\+0 +u +u +
|
||||||
|
0+0004 +sp\+0 +u +u\[s\] +
|
||||||
|
0+0008 +sp\+16 +c-16 +c-8\[s\] +
|
||||||
|
|
||||||
|
func idx \[1\]: pc = 0x0, size = 20 bytes, pauth = B key
|
||||||
|
STARTPC + CFA + FP + RA +
|
||||||
|
0+0000 +sp\+0 +u +u +
|
||||||
|
0+0004 +sp\+0 +u +u\[s\] +
|
||||||
|
0+0008 +sp\+16 +c-16 +c-8\[s\] +
|
||||||
|
|
||||||
|
#pass
|
@ -0,0 +1,36 @@
|
|||||||
|
## same as aarch64/pac_ab_key.s
|
||||||
|
.arch armv8-a
|
||||||
|
.text
|
||||||
|
.align 2
|
||||||
|
.global _Z5foo_av
|
||||||
|
.type _Z5foo_av, %function
|
||||||
|
_Z5foo_av:
|
||||||
|
.LFB0:
|
||||||
|
.cfi_startproc
|
||||||
|
hint 25 // paciasp
|
||||||
|
.cfi_window_save
|
||||||
|
stp x29, x30, [sp, -16]!
|
||||||
|
.cfi_def_cfa_offset 16
|
||||||
|
.cfi_offset 29, -16
|
||||||
|
.cfi_offset 30, -8
|
||||||
|
ret
|
||||||
|
.cfi_endproc
|
||||||
|
.LFE0:
|
||||||
|
.size _Z5foo_av, .-_Z5foo_av
|
||||||
|
.align 2
|
||||||
|
.global _Z5foo_bv
|
||||||
|
.type _Z5foo_bv, %function
|
||||||
|
_Z5foo_bv:
|
||||||
|
.LFB1:
|
||||||
|
.cfi_startproc
|
||||||
|
.cfi_b_key_frame
|
||||||
|
hint 27 // pacibsp
|
||||||
|
.cfi_window_save
|
||||||
|
stp x29, x30, [sp, -16]!
|
||||||
|
.cfi_def_cfa_offset 16
|
||||||
|
.cfi_offset 29, -16
|
||||||
|
.cfi_offset 30, -8
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
ret
|
||||||
|
.cfi_endproc
|
@ -97,4 +97,5 @@ if { [istarget "x86_64-*-*"] && [gas_sframe_check] } then {
|
|||||||
if { [istarget "aarch64*-*-*"] && [gas_sframe_check] } then {
|
if { [istarget "aarch64*-*-*"] && [gas_sframe_check] } then {
|
||||||
run_dump_test "cfi-sframe-aarch64-1"
|
run_dump_test "cfi-sframe-aarch64-1"
|
||||||
run_dump_test "cfi-sframe-aarch64-2"
|
run_dump_test "cfi-sframe-aarch64-2"
|
||||||
|
run_dump_test "cfi-sframe-aarch64-pac-ab-key-1"
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user