xref: /optee_os/lib/libutee/arch/arm/utee_syscalls_a64.S (revision 78b7c7c7653f8bff42fe44d31a79d7f6bbfd4d47)
1/* SPDX-License-Identifier: BSD-2-Clause */
2/*
3 * Copyright (c) 2015, Linaro Limited
4 * All rights reserved.
5 */
6
7#include <tee_syscall_numbers.h>
8#include <asm.S>
9
10        .section .text
11
12        .macro UTEE_SYSCALL name, scn, num_args
13	FUNC \name , :
14
15	.if \num_args > TEE_SVC_MAX_ARGS || \num_args > 8
16	.error "Too many arguments for syscall"
17	.endif
18        mov     x8, #(\scn)
19        svc #0
20        ret
21        END_FUNC \name
22        .endm
23
24	FUNC utee_panic, :
25	stp	x29, x30, [sp, #-16]!
26	mov	x1, sp
27	bl	__utee_panic
28	/* Not reached */
29	END_FUNC utee_panic
30
31#include "utee_syscalls_asm.S"
32
33