linkage.h (1484B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 4 */ 5 6#ifndef __ASM_LINKAGE_H 7#define __ASM_LINKAGE_H 8 9#include <asm/dwarf.h> 10 11#ifdef __ASSEMBLY__ 12 13.macro ST2 e, o, off 14#ifdef CONFIG_ARC_HAS_LL64 15 std \e, [sp, \off] 16#else 17 st \e, [sp, \off] 18 st \o, [sp, \off+4] 19#endif 20.endm 21 22.macro LD2 e, o, off 23#ifdef CONFIG_ARC_HAS_LL64 24 ldd \e, [sp, \off] 25#else 26 ld \e, [sp, \off] 27 ld \o, [sp, \off+4] 28#endif 29.endm 30 31#define ASM_NL ` /* use '`' to mark new line in macro */ 32#define __ALIGN .align 4 33#define __ALIGN_STR __stringify(__ALIGN) 34 35/* annotation for data we want in DCCM - if enabled in .config */ 36.macro ARCFP_DATA nm 37#ifdef CONFIG_ARC_HAS_DCCM 38 .section .data.arcfp 39#else 40 .section .data 41#endif 42 .global \nm 43.endm 44 45/* annotation for data we want in DCCM - if enabled in .config */ 46.macro ARCFP_CODE 47#ifdef CONFIG_ARC_HAS_ICCM 48 .section .text.arcfp, "ax",@progbits 49#else 50 .section .text, "ax",@progbits 51#endif 52.endm 53 54#define ENTRY_CFI(name) \ 55 .globl name ASM_NL \ 56 ALIGN ASM_NL \ 57 name: ASM_NL \ 58 CFI_STARTPROC ASM_NL 59 60#define END_CFI(name) \ 61 CFI_ENDPROC ASM_NL \ 62 .size name, .-name 63 64#else /* !__ASSEMBLY__ */ 65 66#ifdef CONFIG_ARC_HAS_ICCM 67#define __arcfp_code __section(".text.arcfp") 68#else 69#define __arcfp_code __section(".text") 70#endif 71 72#ifdef CONFIG_ARC_HAS_DCCM 73#define __arcfp_data __section(".data.arcfp") 74#else 75#define __arcfp_data __section(".data") 76#endif 77 78#endif /* __ASSEMBLY__ */ 79 80#endif