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 54