xref: /linux/arch/parisc/include/asm/linkage.h (revision c6ed444fd6fffaaf2e3857d926ed18bf3df81e8e)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ASM_PARISC_LINKAGE_H
3 #define __ASM_PARISC_LINKAGE_H
4 
5 #include <asm/dwarf.h>
6 
7 #ifndef __ALIGN
8 #define __ALIGN         .align 4
9 #define __ALIGN_STR     ".align 4"
10 #endif
11 
12 /*
13  * In parisc assembly a semicolon marks a comment while a
14  * exclamation mark is used to separate independent lines.
15  */
16 #define ASM_NL	!
17 
18 #ifdef __ASSEMBLY__
19 
20 #define ENTRY(name) \
21 	ALIGN	!\
22 name:		ASM_NL\
23 	.export name
24 
25 #ifdef CONFIG_64BIT
26 #define ENDPROC(name) \
27 	END(name)
28 #else
29 #define ENDPROC(name) \
30 	.type name, @function !\
31 	END(name)
32 #endif
33 
34 #define ENTRY_CFI(name, ...) \
35 	ENTRY(name)	ASM_NL\
36 	.proc		ASM_NL\
37 	.callinfo __VA_ARGS__	ASM_NL\
38 	.entry		ASM_NL\
39 	CFI_STARTPROC
40 
41 #define ENDPROC_CFI(name) \
42 	CFI_ENDPROC	ASM_NL\
43 	.exit		ASM_NL\
44 	.procend	ASM_NL\
45 	ENDPROC(name)
46 
47 #endif /* __ASSEMBLY__ */
48 
49 #endif  /* __ASM_PARISC_LINKAGE_H */
50