18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef __ASM_PARISC_LINKAGE_H
38c2ecf20Sopenharmony_ci#define __ASM_PARISC_LINKAGE_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <asm/dwarf.h>
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#ifndef __ALIGN
88c2ecf20Sopenharmony_ci#define __ALIGN         .align 4
98c2ecf20Sopenharmony_ci#define __ALIGN_STR     ".align 4"
108c2ecf20Sopenharmony_ci#endif
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci/*
138c2ecf20Sopenharmony_ci * In parisc assembly a semicolon marks a comment while a
148c2ecf20Sopenharmony_ci * exclamation mark is used to separate independent lines.
158c2ecf20Sopenharmony_ci */
168c2ecf20Sopenharmony_ci#define ASM_NL	!
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci#ifdef __ASSEMBLY__
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#define ENTRY(name) \
218c2ecf20Sopenharmony_ci	ALIGN	!\
228c2ecf20Sopenharmony_ciname:		ASM_NL\
238c2ecf20Sopenharmony_ci	.export name
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci#define ENTRY_CFI(name, ...) \
268c2ecf20Sopenharmony_ci	ENTRY(name)	ASM_NL\
278c2ecf20Sopenharmony_ci	.proc		ASM_NL\
288c2ecf20Sopenharmony_ci	.callinfo __VA_ARGS__	ASM_NL\
298c2ecf20Sopenharmony_ci	.entry		ASM_NL\
308c2ecf20Sopenharmony_ci	CFI_STARTPROC
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci#define ENDPROC_CFI(name) \
338c2ecf20Sopenharmony_ci	CFI_ENDPROC	ASM_NL\
348c2ecf20Sopenharmony_ci	.exit		ASM_NL\
358c2ecf20Sopenharmony_ci	.procend	ASM_NL\
368c2ecf20Sopenharmony_ci	ENDPROC(name)
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci#endif /* __ASSEMBLY__ */
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci#endif  /* __ASM_PARISC_LINKAGE_H */
41