8#ifndef ZEPHYR_INCLUDE_TOOLCHAIN_MWDT_H_
9#define ZEPHYR_INCLUDE_TOOLCHAIN_MWDT_H_
11#ifndef ZEPHYR_INCLUDE_TOOLCHAIN_H_
12#error Please do not include toolchain-specific headers directly, use <zephyr/toolchain.h> instead
16#if defined(_ASMLANGUAGE)
23#ifdef __MW_ASM_RV_MACRO__
24.macro section_var_mwdt, section, symbol
25 .section \section().\symbol,
"aw"
29.macro section_func_mwdt, section, symbol
30 .section \section().\symbol,
"ax"
37.macro section_subsec_func_mwdt, section, subsection, symbol
38 .section \section().\subsection, "ax"
43.macro section_var_mwdt, section, symbol
44 .section .\§ion\&.\&symbol,
"aw"
48.macro section_func_mwdt, section, symbol
49 .section .\§ion\&.\&symbol,
"ax"
56.macro section_subsec_func_mwdt, section, subsection, symbol
57 .section .\§ion\&.\&subsection, "ax"
63#define SECTION_VAR(sect, sym) section_var_mwdt sect, sym
64#define SECTION_FUNC(sect, sym) section_func_mwdt sect, sym
65#define SECTION_SUBSEC_FUNC(sect, subsec, sym) \
66 section_subsec_func_mwdt sect, subsec, sym
68#ifdef __MW_ASM_RV_MACRO__
69.macro glbl_text_mwdt, symbol
71 .type \symbol, @function
74.macro glbl_data_mwdt, symbol
76 .type \symbol, @
object
79.macro weak_data_mwdt, symbol
81 .type \symbol, @
object
84.macro weak_text_mwdt, symbol
86 .type \symbol, @function
89.macro glbl_text_mwdt, symbol
91 .type symbol, @function
94.macro glbl_data_mwdt, symbol
99.macro weak_data_mwdt, symbol
101 .type symbol, @
object
104.macro weak_text_mwdt, symbol
106 .type symbol, @function
110#define GTEXT(sym) glbl_text_mwdt sym
111#define GDATA(sym) glbl_data_mwdt sym
112#define WDATA(sym) weak_data_mwdt sym
113#define WTEXT(sym) weak_text_mwdt sym
118#ifndef _SSIZE_T_DEFINED
119#define _SSIZE_T_DEFINED
127#ifdef CONFIG_NEWLIB_LIBC
128 #error "ARC MWDT doesn't support building with CONFIG_NEWLIB_LIBC as it doesn't have newlib"
131#ifdef CONFIG_NATIVE_APPLICATION
132 #error "ARC MWDT doesn't support building Zephyr as an native application"
136#define __no_optimization __attribute__((optnone))
137#define __fallthrough __attribute__((fallthrough))
139#define TOOLCHAIN_HAS_C_GENERIC 1
140#define TOOLCHAIN_HAS_C_AUTO_TYPE 1
145#if defined(__cplusplus) && (__cplusplus >= 201103L)
146#define BUILD_ASSERT(EXPR, MSG...) static_assert(EXPR, "" MSG)
147#elif defined(__cplusplus)
149#define BUILD_ASSERT(EXPR, MSG...)
151#define BUILD_ASSERT(EXPR, MSG...) _Static_assert((EXPR), "" MSG)
154#define __builtin_arc_nop() _nop()
Common toolchain abstraction.
GCC toolchain abstraction.
__SIZE_TYPE__ ssize_t
Definition: types.h:28