• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #define __ALIGN		.align 4
18 #define __ALIGN_STR	__stringify(__ALIGN)
19 
20 /* annotation for data we want in DCCM - if enabled in .config */
21 .macro ARCFP_DATA nm
22 #ifdef CONFIG_ARC_HAS_DCCM
23 	.section .data.arcfp
24 #else
25 	.section .data
26 #endif
27 	.global \nm
28 .endm
29 
30 /* annotation for data we want in DCCM - if enabled in .config */
31 .macro ARCFP_CODE
32 #ifdef CONFIG_ARC_HAS_ICCM
33 	.section .text.arcfp, "ax",@progbits
34 #else
35 	.section .text, "ax",@progbits
36 #endif
37 .endm
38 
39 #define ENTRY_CFI(name)		\
40 	.globl name ASM_NL	\
41 	ALIGN ASM_NL 		\
42 	name: ASM_NL		\
43 	CFI_STARTPROC ASM_NL
44 
45 #define END_CFI(name) 		\
46 	CFI_ENDPROC ASM_NL	\
47 	.size name, .-name
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 
63 #endif /* __ASSEMBLY__ */
64 
65 #endif
66