Commit | Line | Data |
---|---|---|
3be80aae VG |
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 | ||
9df62f05 CG |
14 | #define ASM_NL ` /* use '`' to mark new line in macro */ |
15 | ||
3be80aae VG |
16 | /* Can't use the ENTRY macro in linux/linkage.h |
17 | * gas considers ';' as comment vs. newline | |
18 | */ | |
19 | .macro ARC_ENTRY name | |
20 | .global \name | |
21 | .align 4 | |
22 | \name: | |
23 | .endm | |
24 | ||
25 | .macro ARC_EXIT name | |
26 | #define ASM_PREV_SYM_ADDR(name) .-##name | |
27 | .size \ name, ASM_PREV_SYM_ADDR(\name) | |
28 | .endm | |
29 | ||
8b5850f8 VG |
30 | /* annotation for data we want in DCCM - if enabled in .config */ |
31 | .macro ARCFP_DATA nm | |
32 | #ifdef CONFIG_ARC_HAS_DCCM | |
33 | .section .data.arcfp | |
34 | #else | |
35 | .section .data | |
36 | #endif | |
37 | .global \nm | |
38 | .endm | |
39 | ||
40 | /* annotation for data we want in DCCM - if enabled in .config */ | |
41 | .macro ARCFP_CODE | |
42 | #ifdef CONFIG_ARC_HAS_ICCM | |
43 | .section .text.arcfp, "ax",@progbits | |
44 | #else | |
45 | .section .text, "ax",@progbits | |
46 | #endif | |
47 | .endm | |
48 | ||
49 | #else /* !__ASSEMBLY__ */ | |
50 | ||
51 | #ifdef CONFIG_ARC_HAS_ICCM | |
52 | #define __arcfp_code __attribute__((__section__(".text.arcfp"))) | |
53 | #else | |
54 | #define __arcfp_code __attribute__((__section__(".text"))) | |
55 | #endif | |
56 | ||
57 | #ifdef CONFIG_ARC_HAS_DCCM | |
58 | #define __arcfp_data __attribute__((__section__(".data.arcfp"))) | |
59 | #else | |
60 | #define __arcfp_data __attribute__((__section__(".data"))) | |
61 | #endif | |
62 | ||
3be80aae VG |
63 | #endif /* __ASSEMBLY__ */ |
64 | ||
65 | #endif |