1f08c3bdfSopenharmony_ci#include "symbol.h"
2f08c3bdfSopenharmony_ci#include "target.h"
3f08c3bdfSopenharmony_ci#include "machine.h"
4f08c3bdfSopenharmony_ci
5f08c3bdfSopenharmony_ci
6f08c3bdfSopenharmony_cistatic void init_nds32(const struct target *self)
7f08c3bdfSopenharmony_ci{
8f08c3bdfSopenharmony_ci	fast16_ctype = &int_ctype;
9f08c3bdfSopenharmony_ci	ufast16_ctype = &uint_ctype;
10f08c3bdfSopenharmony_ci	fast32_ctype = &int_ctype;
11f08c3bdfSopenharmony_ci	ufast32_ctype = &uint_ctype;
12f08c3bdfSopenharmony_ci
13f08c3bdfSopenharmony_ci	wchar_ctype = &uint_ctype;
14f08c3bdfSopenharmony_ci}
15f08c3bdfSopenharmony_ci
16f08c3bdfSopenharmony_cistatic void predefine_nds32(const struct target *self)
17f08c3bdfSopenharmony_ci{
18f08c3bdfSopenharmony_ci	predefine("__NDS32__", 1, "1");
19f08c3bdfSopenharmony_ci	predefine("__nds32__", 1, "1");
20f08c3bdfSopenharmony_ci
21f08c3bdfSopenharmony_ci	predefine_weak("__NDS32_E%c__", arch_big_endian ? 'B' : 'L');
22f08c3bdfSopenharmony_ci}
23f08c3bdfSopenharmony_ci
24f08c3bdfSopenharmony_ciconst struct target target_nds32 = {
25f08c3bdfSopenharmony_ci	.mach = MACH_NDS32,
26f08c3bdfSopenharmony_ci	.bitness = ARCH_LP32,
27f08c3bdfSopenharmony_ci	.big_endian = false,
28f08c3bdfSopenharmony_ci
29f08c3bdfSopenharmony_ci	.bits_in_longdouble = 64,
30f08c3bdfSopenharmony_ci
31f08c3bdfSopenharmony_ci	.init = init_nds32,
32f08c3bdfSopenharmony_ci	.predefine = predefine_nds32,
33f08c3bdfSopenharmony_ci};
34