xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/sgx/call.S (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Worker/* SPDX-License-Identifier: GPL-2.0 */
2*053f45beSAndroid Build Coastguard Worker/**
3*053f45beSAndroid Build Coastguard Worker* Copyright(c) 2016-20 Intel Corporation.
4*053f45beSAndroid Build Coastguard Worker*/
5*053f45beSAndroid Build Coastguard Worker
6*053f45beSAndroid Build Coastguard Worker	.text
7*053f45beSAndroid Build Coastguard Worker
8*053f45beSAndroid Build Coastguard Worker	.global sgx_enter_enclave
9*053f45beSAndroid Build Coastguard Workersgx_enter_enclave:
10*053f45beSAndroid Build Coastguard Worker	.cfi_startproc
11*053f45beSAndroid Build Coastguard Worker	push	%r15
12*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	8
13*053f45beSAndroid Build Coastguard Worker	.cfi_rel_offset		%r15, 0
14*053f45beSAndroid Build Coastguard Worker	push	%r14
15*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	8
16*053f45beSAndroid Build Coastguard Worker	.cfi_rel_offset		%r14, 0
17*053f45beSAndroid Build Coastguard Worker	push	%r13
18*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	8
19*053f45beSAndroid Build Coastguard Worker	.cfi_rel_offset		%r13, 0
20*053f45beSAndroid Build Coastguard Worker	push	%r12
21*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	8
22*053f45beSAndroid Build Coastguard Worker	.cfi_rel_offset		%r12, 0
23*053f45beSAndroid Build Coastguard Worker	push	%rbx
24*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	8
25*053f45beSAndroid Build Coastguard Worker	.cfi_rel_offset		%rbx, 0
26*053f45beSAndroid Build Coastguard Worker	push	$0
27*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	8
28*053f45beSAndroid Build Coastguard Worker	push	0x38(%rsp)
29*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	8
30*053f45beSAndroid Build Coastguard Worker	call	*vdso_sgx_enter_enclave(%rip)
31*053f45beSAndroid Build Coastguard Worker	add	$0x10, %rsp
32*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	-0x10
33*053f45beSAndroid Build Coastguard Worker	pop	%rbx
34*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	-8
35*053f45beSAndroid Build Coastguard Worker	pop	%r12
36*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	-8
37*053f45beSAndroid Build Coastguard Worker	pop	%r13
38*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	-8
39*053f45beSAndroid Build Coastguard Worker	pop	%r14
40*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	-8
41*053f45beSAndroid Build Coastguard Worker	pop	%r15
42*053f45beSAndroid Build Coastguard Worker	.cfi_adjust_cfa_offset	-8
43*053f45beSAndroid Build Coastguard Worker	ret
44*053f45beSAndroid Build Coastguard Worker	.cfi_endproc
45