| /* SPDX-License-Identifier: GPL-2.0-only */ | 
 | /* | 
 |  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) | 
 |  */ | 
 |  | 
 | #ifndef __ASM_LINKAGE_H | 
 | #define __ASM_LINKAGE_H | 
 |  | 
 | #include <asm/dwarf.h> | 
 |  | 
 | #ifdef __ASSEMBLY__ | 
 |  | 
 | #define ASM_NL		 `	/* use '`' to mark new line in macro */ | 
 |  | 
 | /* annotation for data we want in DCCM - if enabled in .config */ | 
 | .macro ARCFP_DATA nm | 
 | #ifdef CONFIG_ARC_HAS_DCCM | 
 | 	.section .data.arcfp | 
 | #else | 
 | 	.section .data | 
 | #endif | 
 | 	.global \nm | 
 | .endm | 
 |  | 
 | /* annotation for data we want in DCCM - if enabled in .config */ | 
 | .macro ARCFP_CODE | 
 | #ifdef CONFIG_ARC_HAS_ICCM | 
 | 	.section .text.arcfp, "ax",@progbits | 
 | #else | 
 | 	.section .text, "ax",@progbits | 
 | #endif | 
 | .endm | 
 |  | 
 | #define ENTRY_CFI(name)		\ | 
 | 	.globl name ASM_NL	\ | 
 | 	ALIGN ASM_NL 		\ | 
 | 	name: ASM_NL		\ | 
 | 	CFI_STARTPROC ASM_NL | 
 |  | 
 | #define END_CFI(name) 		\ | 
 | 	CFI_ENDPROC ASM_NL	\ | 
 | 	.size name, .-name | 
 |  | 
 | #else	/* !__ASSEMBLY__ */ | 
 |  | 
 | #ifdef CONFIG_ARC_HAS_ICCM | 
 | #define __arcfp_code __attribute__((__section__(".text.arcfp"))) | 
 | #else | 
 | #define __arcfp_code __attribute__((__section__(".text"))) | 
 | #endif | 
 |  | 
 | #ifdef CONFIG_ARC_HAS_DCCM | 
 | #define __arcfp_data __attribute__((__section__(".data.arcfp"))) | 
 | #else | 
 | #define __arcfp_data __attribute__((__section__(".data"))) | 
 | #endif | 
 |  | 
 | #endif /* __ASSEMBLY__ */ | 
 |  | 
 | #endif |