11bb92983SJerome Forissier/* SPDX-License-Identifier: BSD-2-Clause */ 2f74a4a2bSJens Wiklander/* 3f74a4a2bSJens Wiklander * Copyright (c) 2015, Linaro Limited 4f74a4a2bSJens Wiklander */ 5f74a4a2bSJens Wiklander 6f74a4a2bSJens Wiklander#include <tee_syscall_numbers.h> 7a0fdab65SJens Wiklander#include <asm.S> 8f74a4a2bSJens Wiklander 9f74a4a2bSJens Wiklander .section .text 10f74a4a2bSJens Wiklander 11f74a4a2bSJens Wiklander .macro UTEE_SYSCALL name, scn, num_args 12a0fdab65SJens Wiklander FUNC \name , : 13f74a4a2bSJens Wiklander 14f74a4a2bSJens Wiklander .if \num_args > TEE_SVC_MAX_ARGS || \num_args > 8 15f74a4a2bSJens Wiklander .error "Too many arguments for syscall" 16f74a4a2bSJens Wiklander .endif 170f8adafeSJerome Forissier#if defined(CFG_SYSCALL_WRAPPERS_MCOUNT) && !defined(__LDELF__) 18f93627d9SSumit Garg .if \scn != TEE_SCN_RETURN 19f93627d9SSumit Garg stp x29, x30, [sp, #-80]! 20f93627d9SSumit Garg mov x29, sp 21f93627d9SSumit Garg stp x0, x1, [sp, #16] 22f93627d9SSumit Garg stp x2, x3, [sp, #32] 23f93627d9SSumit Garg stp x4, x5, [sp, #48] 24f93627d9SSumit Garg stp x6, x7, [sp, #64] 25f93627d9SSumit Garg mov x0, x30 26f93627d9SSumit Garg bl _mcount 27f93627d9SSumit Garg ldp x0, x1, [sp, #16] 28f93627d9SSumit Garg ldp x2, x3, [sp, #32] 29f93627d9SSumit Garg ldp x4, x5, [sp, #48] 30f93627d9SSumit Garg ldp x6, x7, [sp, #64] 31f93627d9SSumit Garg ldp x29, x30, [sp], #80 32f93627d9SSumit Garg .endif 33f93627d9SSumit Garg#endif 34f74a4a2bSJens Wiklander mov x8, #(\scn) 35f74a4a2bSJens Wiklander svc #0 36f74a4a2bSJens Wiklander ret 37a0fdab65SJens Wiklander END_FUNC \name 38f74a4a2bSJens Wiklander .endm 39f74a4a2bSJens Wiklander 402c028fdeSJerome Forissier FUNC _utee_panic, : 410e1c6e8eSJerome Forissier stp x29, x30, [sp, #-16]! 420e1c6e8eSJerome Forissier mov x1, sp 430e1c6e8eSJerome Forissier bl __utee_panic 440e1c6e8eSJerome Forissier /* Not reached */ 452c028fdeSJerome Forissier END_FUNC _utee_panic 460e1c6e8eSJerome Forissier 47*9d7dd419Sliushiwei#include <utee_syscalls_asm.S> 48f74a4a2bSJens Wiklander 49181f8492SRuchika GuptaBTI(emit_aarch64_feature_1_and GNU_PROPERTY_AARCH64_FEATURE_1_BTI) 50