xref: /optee_os/lib/libutils/ext/include/asm.S (revision 827be46c173f31c57006af70ca3a15a5b1a7fba3)
11bb92983SJerome Forissier/* SPDX-License-Identifier: BSD-2-Clause */
2a0fdab65SJens Wiklander/*
3a0fdab65SJens Wiklander * Copyright (c) 2014, STMicroelectronics International N.V.
4a0fdab65SJens Wiklander */
5a0fdab65SJens Wiklander
6*827be46cSJerome Forissier#if defined(CFG_UNWIND)
7*827be46cSJerome Forissier#define UNWIND(...) __VA_ARGS__
8*827be46cSJerome Forissier#else
9*827be46cSJerome Forissier#define UNWIND(...)
10*827be46cSJerome Forissier#endif
11*827be46cSJerome Forissier
120095acfcSJens Wiklander	.macro FUNC name colon section=default
130095acfcSJens Wiklander	.ifc	\section\(),default
148473540dSJens Wiklander	.section .text.\name
150095acfcSJens Wiklander	.else
160095acfcSJens Wiklander	.section \section , "ax" , %progbits
170095acfcSJens Wiklander	.endif
18a0fdab65SJens Wiklander	.global \name
19a0fdab65SJens Wiklander	.type \name , %function
20ff7c2da6SJerome Forissier	.balign 4
21a0fdab65SJens Wiklander	\name \colon
22a0fdab65SJens Wiklander	.endm
23a0fdab65SJens Wiklander
24a0fdab65SJens Wiklander	.macro DATA name colon
25a0fdab65SJens Wiklander	.global \name
26a0fdab65SJens Wiklander	.type \name , %object
27a0fdab65SJens Wiklander	\name \colon
28a0fdab65SJens Wiklander	.endm
29a0fdab65SJens Wiklander
300095acfcSJens Wiklander	.macro LOCAL_FUNC name colon section=default
310095acfcSJens Wiklander	.ifc	\section\(),default
328473540dSJens Wiklander	.section .text.\name
330095acfcSJens Wiklander	.else
340095acfcSJens Wiklander	.section \section , "ax" , %progbits
350095acfcSJens Wiklander	.endif
36a0fdab65SJens Wiklander	.type \name , %function
37ff7c2da6SJerome Forissier	.balign 4
38a0fdab65SJens Wiklander	\name \colon
39a0fdab65SJens Wiklander	.endm
40a0fdab65SJens Wiklander
41a0fdab65SJens Wiklander	.macro LOCAL_DATA name colon
42a0fdab65SJens Wiklander	.type \name , %object
43a0fdab65SJens Wiklander	\name \colon
44a0fdab65SJens Wiklander	.endm
45a0fdab65SJens Wiklander
46a0fdab65SJens Wiklander	.macro END_DATA name
47a0fdab65SJens Wiklander	.size \name , .-\name
48a0fdab65SJens Wiklander	.endm
49a0fdab65SJens Wiklander
50a0fdab65SJens Wiklander	.macro END_FUNC name
51a0fdab65SJens Wiklander	.size \name , .-\name
52a0fdab65SJens Wiklander	.endm
53