xref: /linux/arch/x86/kernel/ibt_selftest.S (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
1*c6cfcbd8SJosh Poimboeuf/* SPDX-License-Identifier: GPL-2.0 */
2*c6cfcbd8SJosh Poimboeuf#include <linux/linkage.h>
3*c6cfcbd8SJosh Poimboeuf#include <linux/objtool.h>
4*c6cfcbd8SJosh Poimboeuf#include <asm/nospec-branch.h>
5*c6cfcbd8SJosh Poimboeuf
6*c6cfcbd8SJosh PoimboeufSYM_CODE_START(ibt_selftest_noendbr)
7*c6cfcbd8SJosh Poimboeuf	ANNOTATE_NOENDBR
8*c6cfcbd8SJosh Poimboeuf	UNWIND_HINT_FUNC
9*c6cfcbd8SJosh Poimboeuf	/* #CP handler sets %ax to 0 */
10*c6cfcbd8SJosh Poimboeuf	RET
11*c6cfcbd8SJosh PoimboeufSYM_CODE_END(ibt_selftest_noendbr)
12*c6cfcbd8SJosh Poimboeuf
13*c6cfcbd8SJosh PoimboeufSYM_FUNC_START(ibt_selftest)
14*c6cfcbd8SJosh Poimboeuf	lea ibt_selftest_noendbr(%rip), %rax
15*c6cfcbd8SJosh Poimboeuf	ANNOTATE_RETPOLINE_SAFE
16*c6cfcbd8SJosh Poimboeuf	jmp *%rax
17*c6cfcbd8SJosh PoimboeufSYM_FUNC_END(ibt_selftest)
18