1 /* Assembler macros for ARC. 2 Copyright (C) 2020-2021 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 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 License as 7 published by the Free Software Foundation; either version 2.1 of the 8 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 /* Syntactic details of assembler. 24 ; is not newline but comment, # is also for comment. */ 25 # define ASM_SIZE_DIRECTIVE(name) .size name,.-name 26 27 # define ENTRY(name) \ 28 .align 4 ASM_LINE_SEP \ 29 .globl C_SYMBOL_NAME(name) ASM_LINE_SEP \ 30 .type C_SYMBOL_NAME(name),%function ASM_LINE_SEP \ 31 C_LABEL(name) ASM_LINE_SEP \ 32 cfi_startproc ASM_LINE_SEP \ 33 CALL_MCOUNT 34 35 # undef END 36 # define END(name) \ 37 cfi_endproc ASM_LINE_SEP \ 38 ASM_SIZE_DIRECTIVE(name) 39 40 # ifdef SHARED 41 # define PLTJMP(_x) _x##@plt 42 # else 43 # define PLTJMP(_x) _x 44 # endif 45 46 # define L(label) .L##label 47 48 # define CALL_MCOUNT /* Do nothing for now. */ 49 50 # define STR(reg, rbase, off) st reg, [rbase, off * 4] 51 # define LDR(reg, rbase, off) ld reg, [rbase, off * 4] 52 53 #endif /* __ASSEMBLER__ */ 54