summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/arm64/bti/trampoline.S
blob: 09beb3f361f15bfc08f1e43625ed3c9b27105bf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 2019  Arm Limited
 * Original author: Dave Martin <Dave.Martin@arm.com>
 */

#include "assembler.h"

startfn call_using_br_x0
	bti	c
	br	x0
endfn

startfn call_using_br_x16
	bti	c
	mov	x16, x0
	br	x16
endfn

startfn call_using_blr
	paciasp
	stp	x29, x30, [sp, #-16]!
	blr	x0
	ldp	x29, x30, [sp], #16
	autiasp
	ret
endfn

emit_aarch64_feature_1_and