1f08c3bdfSopenharmony_ci#include "symbol.h"
2f08c3bdfSopenharmony_ci#include "target.h"
3f08c3bdfSopenharmony_ci#include "machine.h"
4f08c3bdfSopenharmony_ci#include "builtin.h"
5f08c3bdfSopenharmony_ci
6f08c3bdfSopenharmony_ci
7f08c3bdfSopenharmony_cistatic void predefine_alpha(const struct target *self)
8f08c3bdfSopenharmony_ci{
9f08c3bdfSopenharmony_ci	predefine("__alpha__", 1, "1");
10f08c3bdfSopenharmony_ci	predefine("__alpha", 1, "1");
11f08c3bdfSopenharmony_ci}
12f08c3bdfSopenharmony_ci
13f08c3bdfSopenharmony_cistatic const struct builtin_fn builtins_alpha[] = {
14f08c3bdfSopenharmony_ci	{ "__builtin_alpha_cmpbge", &long_ctype, 0, { &long_ctype, &long_ctype }},
15f08c3bdfSopenharmony_ci	{ "__builtin_alpha_extbl", &long_ctype, 0, { &long_ctype, &long_ctype }},
16f08c3bdfSopenharmony_ci	{ "__builtin_alpha_extwl", &long_ctype, 0, { &long_ctype, &long_ctype }},
17f08c3bdfSopenharmony_ci	{ "__builtin_alpha_insbl", &long_ctype, 0, { &long_ctype, &long_ctype }},
18f08c3bdfSopenharmony_ci	{ "__builtin_alpha_inslh", &long_ctype, 0, { &long_ctype, &long_ctype }},
19f08c3bdfSopenharmony_ci	{ "__builtin_alpha_insql", &long_ctype, 0, { &long_ctype, &long_ctype }},
20f08c3bdfSopenharmony_ci	{ "__builtin_alpha_inswl", &long_ctype, 0, { &long_ctype, &long_ctype }},
21f08c3bdfSopenharmony_ci	{ }
22f08c3bdfSopenharmony_ci};
23f08c3bdfSopenharmony_ci
24f08c3bdfSopenharmony_ciconst struct target target_alpha = {
25f08c3bdfSopenharmony_ci	.mach = MACH_ALPHA,
26f08c3bdfSopenharmony_ci	.bitness = ARCH_LP64,
27f08c3bdfSopenharmony_ci	.has_int128 = 1,
28f08c3bdfSopenharmony_ci
29f08c3bdfSopenharmony_ci	.bits_in_longdouble = 64,
30f08c3bdfSopenharmony_ci
31f08c3bdfSopenharmony_ci	.predefine = predefine_alpha,
32f08c3bdfSopenharmony_ci	.builtins = builtins_alpha,
33f08c3bdfSopenharmony_ci};
34