Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / arch / arc / include / asm / linkage.h
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 #define ASM_NL           `      /* use '`' to mark new line in macro */
14
15 /* annotation for data we want in DCCM - if enabled in .config */
16 .macro ARCFP_DATA nm
17 #ifdef CONFIG_ARC_HAS_DCCM
18         .section .data.arcfp
19 #else
20         .section .data
21 #endif
22         .global \nm
23 .endm
24
25 /* annotation for data we want in DCCM - if enabled in .config */
26 .macro ARCFP_CODE
27 #ifdef CONFIG_ARC_HAS_ICCM
28         .section .text.arcfp, "ax",@progbits
29 #else
30         .section .text, "ax",@progbits
31 #endif
32 .endm
33
34 #define ENTRY_CFI(name)         \
35         .globl name ASM_NL      \
36         ALIGN ASM_NL            \
37         name: ASM_NL            \
38         CFI_STARTPROC ASM_NL
39
40 #define END_CFI(name)           \
41         CFI_ENDPROC ASM_NL      \
42         .size name, .-name
43
44 #else   /* !__ASSEMBLY__ */
45
46 #ifdef CONFIG_ARC_HAS_ICCM
47 #define __arcfp_code __attribute__((__section__(".text.arcfp")))
48 #else
49 #define __arcfp_code __attribute__((__section__(".text")))
50 #endif
51
52 #ifdef CONFIG_ARC_HAS_DCCM
53 #define __arcfp_data __attribute__((__section__(".data.arcfp")))
54 #else
55 #define __arcfp_data __attribute__((__section__(".data")))
56 #endif
57
58 #endif /* __ASSEMBLY__ */
59
60 #endif