Commit | Line | Data |
---|---|---|
d2912cb1 | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
3be80aae VG |
2 | /* |
3 | * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) | |
3be80aae VG |
4 | */ |
5 | ||
6 | #ifndef __ASM_LINKAGE_H | |
7 | #define __ASM_LINKAGE_H | |
8 | ||
5a205a32 VG |
9 | #include <asm/dwarf.h> |
10 | ||
3be80aae VG |
11 | #ifdef __ASSEMBLY__ |
12 | ||
a4880801 VG |
13 | .macro ST2 e, o, off |
14 | #ifdef CONFIG_ARC_HAS_LL64 | |
15 | std \e, [sp, \off] | |
16 | #else | |
17 | st \e, [sp, \off] | |
18 | st \o, [sp, \off+4] | |
19 | #endif | |
20 | .endm | |
21 | ||
22 | .macro LD2 e, o, off | |
23 | #ifdef CONFIG_ARC_HAS_LL64 | |
24 | ldd \e, [sp, \off] | |
25 | #else | |
26 | ld \e, [sp, \off] | |
27 | ld \o, [sp, \off+4] | |
28 | #endif | |
29 | .endm | |
30 | ||
9df62f05 | 31 | #define ASM_NL ` /* use '`' to mark new line in macro */ |
8d92e992 EP |
32 | #define __ALIGN .align 4 |
33 | #define __ALIGN_STR __stringify(__ALIGN) | |
9df62f05 | 34 | |
8b5850f8 VG |
35 | /* annotation for data we want in DCCM - if enabled in .config */ |
36 | .macro ARCFP_DATA nm | |
37 | #ifdef CONFIG_ARC_HAS_DCCM | |
38 | .section .data.arcfp | |
39 | #else | |
40 | .section .data | |
41 | #endif | |
42 | .global \nm | |
43 | .endm | |
44 | ||
45 | /* annotation for data we want in DCCM - if enabled in .config */ | |
46 | .macro ARCFP_CODE | |
47 | #ifdef CONFIG_ARC_HAS_ICCM | |
48 | .section .text.arcfp, "ax",@progbits | |
49 | #else | |
50 | .section .text, "ax",@progbits | |
51 | #endif | |
52 | .endm | |
53 | ||
5a205a32 VG |
54 | #define ENTRY_CFI(name) \ |
55 | .globl name ASM_NL \ | |
56 | ALIGN ASM_NL \ | |
57 | name: ASM_NL \ | |
58 | CFI_STARTPROC ASM_NL | |
59 | ||
60 | #define END_CFI(name) \ | |
61 | CFI_ENDPROC ASM_NL \ | |
62 | .size name, .-name | |
63 | ||
8b5850f8 VG |
64 | #else /* !__ASSEMBLY__ */ |
65 | ||
66 | #ifdef CONFIG_ARC_HAS_ICCM | |
33def849 | 67 | #define __arcfp_code __section(".text.arcfp") |
8b5850f8 | 68 | #else |
33def849 | 69 | #define __arcfp_code __section(".text") |
8b5850f8 VG |
70 | #endif |
71 | ||
72 | #ifdef CONFIG_ARC_HAS_DCCM | |
33def849 | 73 | #define __arcfp_data __section(".data.arcfp") |
8b5850f8 | 74 | #else |
33def849 | 75 | #define __arcfp_data __section(".data") |
8b5850f8 VG |
76 | #endif |
77 | ||
3be80aae VG |
78 | #endif /* __ASSEMBLY__ */ |
79 | ||
80 | #endif |