Merge branch 'work.splice_read' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.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 #include <asm/dwarf.h>
13
14 #ifdef __ASSEMBLY__
15
16 #define ASM_NL           `      /* use '`' to mark new line in macro */
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 #define ENTRY_CFI(name)         \
38         .globl name ASM_NL      \
39         ALIGN ASM_NL            \
40         name: ASM_NL            \
41         CFI_STARTPROC ASM_NL
42
43 #define END_CFI(name)           \
44         CFI_ENDPROC ASM_NL      \
45         .size name, .-name
46
47 #else   /* !__ASSEMBLY__ */
48
49 #ifdef CONFIG_ARC_HAS_ICCM
50 #define __arcfp_code __attribute__((__section__(".text.arcfp")))
51 #else
52 #define __arcfp_code __attribute__((__section__(".text")))
53 #endif
54
55 #ifdef CONFIG_ARC_HAS_DCCM
56 #define __arcfp_data __attribute__((__section__(".data.arcfp")))
57 #else
58 #define __arcfp_data __attribute__((__section__(".data")))
59 #endif
60
61 #endif /* __ASSEMBLY__ */
62
63 #endif