GNU Linux-libre 4.4.299-gnu1
[releases.git] / arch / arc / include / asm / linkage.h
1 /*
2  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8
9 #ifndef __ASM_LINKAGE_H
10 #define __ASM_LINKAGE_H
11
12 #ifdef __ASSEMBLY__
13
14 #define ASM_NL           `      /* use '`' to mark new line in macro */
15 #define __ALIGN         .align 4
16 #define __ALIGN_STR     __stringify(__ALIGN)
17
18 /* annotation for data we want in DCCM - if enabled in .config */
19 .macro ARCFP_DATA nm
20 #ifdef CONFIG_ARC_HAS_DCCM
21         .section .data.arcfp
22 #else
23         .section .data
24 #endif
25         .global \nm
26 .endm
27
28 /* annotation for data we want in DCCM - if enabled in .config */
29 .macro ARCFP_CODE
30 #ifdef CONFIG_ARC_HAS_ICCM
31         .section .text.arcfp, "ax",@progbits
32 #else
33         .section .text, "ax",@progbits
34 #endif
35 .endm
36
37 #else   /* !__ASSEMBLY__ */
38
39 #ifdef CONFIG_ARC_HAS_ICCM
40 #define __arcfp_code __attribute__((__section__(".text.arcfp")))
41 #else
42 #define __arcfp_code __attribute__((__section__(".text")))
43 #endif
44
45 #ifdef CONFIG_ARC_HAS_DCCM
46 #define __arcfp_data __attribute__((__section__(".data.arcfp")))
47 #else
48 #define __arcfp_data __attribute__((__section__(".data")))
49 #endif
50
51 #endif /* __ASSEMBLY__ */
52
53 #endif