1 /* Copyright (C) 2000-2021 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3      Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
4 
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9 
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14 
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <https://www.gnu.org/licenses/>.  */
18 
19 #include <sysdeps/generic/sysdep.h>
20 
21 #ifdef __ASSEMBLER__
22 
23 /* Macros to help writing .prologue directives in assembly code.  */
24 #define ASM_UNW_PRLG_RP			0x8
25 #define ASM_UNW_PRLG_PFS		0x4
26 #define ASM_UNW_PRLG_PSP		0x2
27 #define ASM_UNW_PRLG_PR			0x1
28 #define ASM_UNW_PRLG_GRSAVE(ninputs)	(32+(ninputs))
29 
30 #define ENTRY(name)				\
31 	.text;					\
32 	.align 32;				\
33 	.proc C_SYMBOL_NAME(name);		\
34 	.global C_SYMBOL_NAME(name);		\
35 	C_LABEL(name)				\
36 	CALL_MCOUNT
37 
38 #define LOCAL_ENTRY(name)			\
39 	.text;					\
40 	.align 32;				\
41 	.proc C_SYMBOL_NAME(name);		\
42 	C_LABEL(name)				\
43 	CALL_MCOUNT
44 
45 #define LEAF(name)				\
46   .text;					\
47   .align 32;					\
48   .proc C_SYMBOL_NAME(name);			\
49   .global name;					\
50   C_LABEL(name)
51 
52 #define LOCAL_LEAF(name)			\
53   .text;					\
54   .align 32;					\
55   .proc C_SYMBOL_NAME(name);			\
56   C_LABEL(name)
57 
58 /* Mark the end of function SYM.  */
59 #undef END
60 #define END(sym)	.endp C_SYMBOL_NAME(sym)
61 
62 #endif /* ASSEMBLER */
63