• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "symbol.h"
2 #include "target.h"
3 #include "machine.h"
4 #include "builtin.h"
5 
6 
init_nios2(const struct target * self)7 static void init_nios2(const struct target *self)
8 {
9 	fast16_ctype = &int_ctype;
10 	ufast16_ctype = &uint_ctype;
11 	fast32_ctype = &int_ctype;
12 	ufast32_ctype = &uint_ctype;
13 }
14 
predefine_nios2(const struct target * self)15 static void predefine_nios2(const struct target *self)
16 {
17 	predefine("__NIOS2", 1, "1");
18 	predefine("__NIOS2__", 1, "1");
19 	predefine("__nios2", 1, "1");
20 	predefine("__nios2__", 1, "1");
21 
22 	if (arch_big_endian) {
23 		predefine("__nios2_big_endian", 1, "1");
24 		predefine("__nios2_big_endian__", 1, "1");
25 	} else {
26 		predefine("__nios2_little_endian", 1, "1");
27 		predefine("__nios2_little_endian__", 1, "1");
28 	}
29 }
30 
31 static const struct builtin_fn builtins_nios2[] = {
32 	{ "__builtin_rdctl", &int_ctype, 0, { &int_ctype }},
33 	{ "__builtin_wrctl", &void_ctype, 0, { &int_ctype, &int_ctype }},
34 	{ "__builtin_custom_ini", &int_ctype, 0, { &int_ctype }},
35 	{ }
36 };
37 
38 const struct target target_nios2 = {
39 	.mach = MACH_NIOS2,
40 	.bitness = ARCH_LP32,
41 
42 	.bits_in_longdouble = 64,
43 
44 	.init = init_nios2,
45 	.predefine = predefine_nios2,
46 	.builtins = builtins_nios2,
47 };
48