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