1f08c3bdfSopenharmony_ci#include "symbol.h"
2f08c3bdfSopenharmony_ci#include "target.h"
3f08c3bdfSopenharmony_ci#include "machine.h"
4f08c3bdfSopenharmony_ci
5f08c3bdfSopenharmony_ci
6f08c3bdfSopenharmony_cistatic void init_microblaze(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
14f08c3bdfSopenharmony_cistatic void predefine_microblaze(const struct target *self)
15f08c3bdfSopenharmony_ci{
16f08c3bdfSopenharmony_ci	predefine("__MICROBLAZE__", 1, "1");
17f08c3bdfSopenharmony_ci	predefine("__microblaze__", 1, "1");
18f08c3bdfSopenharmony_ci
19f08c3bdfSopenharmony_ci	if (arch_big_endian)
20f08c3bdfSopenharmony_ci		predefine("__MICROBLAZEEB__", 1, "1");
21f08c3bdfSopenharmony_ci	else
22f08c3bdfSopenharmony_ci		predefine("__MICROBLAZEEL__", 1, "1");
23f08c3bdfSopenharmony_ci}
24f08c3bdfSopenharmony_ci
25f08c3bdfSopenharmony_ciconst struct target target_microblaze = {
26f08c3bdfSopenharmony_ci	.mach = MACH_MICROBLAZE,
27f08c3bdfSopenharmony_ci	.bitness = ARCH_LP32,
28f08c3bdfSopenharmony_ci	.big_endian = true,
29f08c3bdfSopenharmony_ci
30f08c3bdfSopenharmony_ci	.bits_in_longdouble = 64,
31f08c3bdfSopenharmony_ci
32f08c3bdfSopenharmony_ci	.init = init_microblaze,
33f08c3bdfSopenharmony_ci	.predefine = predefine_microblaze,
34f08c3bdfSopenharmony_ci};
35