1/* 2 * Copyright (C) 2018-2022 Intel Corporation. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7.macro retpoline_thunk reg:req 8 9.align 8 10.global __x86_indirect_thunk_\reg 11__x86_indirect_thunk_\reg: 12 call 22f 1311: 14 pause 15 lfence 16 jmp 11b 1722: 18 mov %\reg, (%rsp) 19 ret 20.endm 21 22.section .retpoline_thunk, "ax" 23 24 retpoline_thunk rax 25 retpoline_thunk rbx 26 retpoline_thunk rcx 27 retpoline_thunk rdx 28 retpoline_thunk rdi 29 retpoline_thunk rsi 30 retpoline_thunk rbp 31 retpoline_thunk r8 32 retpoline_thunk r9 33 retpoline_thunk r10 34 retpoline_thunk r11 35 retpoline_thunk r12 36 retpoline_thunk r13 37 retpoline_thunk r14 38 retpoline_thunk r15 39