9 struct tdesc_feature *feature;
12 tdesc_type *element_type;
13 element_type = tdesc_named_type (feature,
"ieee_double");
14 tdesc_create_vector (feature,
"v2d", element_type, 2);
16 element_type = tdesc_named_type (feature,
"uint64");
17 tdesc_create_vector (feature,
"v2u", element_type, 2);
19 element_type = tdesc_named_type (feature,
"int64");
20 tdesc_create_vector (feature,
"v2i", element_type, 2);
22 element_type = tdesc_named_type (feature,
"ieee_single");
23 tdesc_create_vector (feature,
"v4f", element_type, 4);
25 element_type = tdesc_named_type (feature,
"uint32");
26 tdesc_create_vector (feature,
"v4u", element_type, 4);
28 element_type = tdesc_named_type (feature,
"int32");
29 tdesc_create_vector (feature,
"v4i", element_type, 4);
31 element_type = tdesc_named_type (feature,
"ieee_half");
32 tdesc_create_vector (feature,
"v8f", element_type, 8);
34 element_type = tdesc_named_type (feature,
"uint16");
35 tdesc_create_vector (feature,
"v8u", element_type, 8);
37 element_type = tdesc_named_type (feature,
"int16");
38 tdesc_create_vector (feature,
"v8i", element_type, 8);
40 element_type = tdesc_named_type (feature,
"bfloat16");
41 tdesc_create_vector (feature,
"v8bf16", element_type, 8);
43 element_type = tdesc_named_type (feature,
"uint8");
44 tdesc_create_vector (feature,
"v16u", element_type, 16);
46 element_type = tdesc_named_type (feature,
"int8");
47 tdesc_create_vector (feature,
"v16i", element_type, 16);
49 element_type = tdesc_named_type (feature,
"uint128");
50 tdesc_create_vector (feature,
"v1u", element_type, 1);
52 element_type = tdesc_named_type (feature,
"int128");
53 tdesc_create_vector (feature,
"v1i", element_type, 1);
55 tdesc_type_with_fields *type_with_fields;
56 type_with_fields = tdesc_create_union (feature,
"vnd");
57 tdesc_type *field_type;
58 field_type = tdesc_named_type (feature,
"v2d");
59 tdesc_add_field (type_with_fields,
"f", field_type);
60 field_type = tdesc_named_type (feature,
"v2u");
61 tdesc_add_field (type_with_fields,
"u", field_type);
62 field_type = tdesc_named_type (feature,
"v2i");
63 tdesc_add_field (type_with_fields,
"s", field_type);
65 type_with_fields = tdesc_create_union (feature,
"vns");
66 field_type = tdesc_named_type (feature,
"v4f");
67 tdesc_add_field (type_with_fields,
"f", field_type);
68 field_type = tdesc_named_type (feature,
"v4u");
69 tdesc_add_field (type_with_fields,
"u", field_type);
70 field_type = tdesc_named_type (feature,
"v4i");
71 tdesc_add_field (type_with_fields,
"s", field_type);
73 type_with_fields = tdesc_create_union (feature,
"vnh");
74 field_type = tdesc_named_type (feature,
"v8bf16");
75 tdesc_add_field (type_with_fields,
"bf", field_type);
76 field_type = tdesc_named_type (feature,
"v8f");
77 tdesc_add_field (type_with_fields,
"f", field_type);
78 field_type = tdesc_named_type (feature,
"v8u");
79 tdesc_add_field (type_with_fields,
"u", field_type);
80 field_type = tdesc_named_type (feature,
"v8i");
81 tdesc_add_field (type_with_fields,
"s", field_type);
83 type_with_fields = tdesc_create_union (feature,
"vnb");
84 field_type = tdesc_named_type (feature,
"v16u");
85 tdesc_add_field (type_with_fields,
"u", field_type);
86 field_type = tdesc_named_type (feature,
"v16i");
87 tdesc_add_field (type_with_fields,
"s", field_type);
89 type_with_fields = tdesc_create_union (feature,
"vnq");
90 field_type = tdesc_named_type (feature,
"v1u");
91 tdesc_add_field (type_with_fields,
"u", field_type);
92 field_type = tdesc_named_type (feature,
"v1i");
93 tdesc_add_field (type_with_fields,
"s", field_type);
95 type_with_fields = tdesc_create_union (feature,
"aarch64v");
96 field_type = tdesc_named_type (feature,
"vnd");
97 tdesc_add_field (type_with_fields,
"d", field_type);
98 field_type = tdesc_named_type (feature,
"vns");
99 tdesc_add_field (type_with_fields,
"s", field_type);
100 field_type = tdesc_named_type (feature,
"vnh");
101 tdesc_add_field (type_with_fields,
"h", field_type);
102 field_type = tdesc_named_type (feature,
"vnb");
103 tdesc_add_field (type_with_fields,
"b", field_type);
104 field_type = tdesc_named_type (feature,
"vnq");
105 tdesc_add_field (type_with_fields,
"q", field_type);
107 type_with_fields = tdesc_create_flags (feature,
"fpsr_flags", 4);
108 tdesc_add_flag (type_with_fields, 0,
"IOC");
109 tdesc_add_flag (type_with_fields, 1,
"DZC");
110 tdesc_add_flag (type_with_fields, 2,
"OFC");
111 tdesc_add_flag (type_with_fields, 3,
"UFC");
112 tdesc_add_flag (type_with_fields, 4,
"IXC");
113 tdesc_add_flag (type_with_fields, 7,
"IDC");
114 tdesc_add_flag (type_with_fields, 27,
"QC");
115 tdesc_add_flag (type_with_fields, 28,
"V");
116 tdesc_add_flag (type_with_fields, 29,
"C");
117 tdesc_add_flag (type_with_fields, 30,
"Z");
118 tdesc_add_flag (type_with_fields, 31,
"N");
120 type_with_fields = tdesc_create_flags (feature,
"fpcr_flags", 4);
121 tdesc_add_flag (type_with_fields, 0,
"FIZ");
122 tdesc_add_flag (type_with_fields, 1,
"AH");
123 tdesc_add_flag (type_with_fields, 2,
"NEP");
124 tdesc_add_flag (type_with_fields, 8,
"IOE");
125 tdesc_add_flag (type_with_fields, 9,
"DZE");
126 tdesc_add_flag (type_with_fields, 10,
"OFE");
127 tdesc_add_flag (type_with_fields, 11,
"UFE");
128 tdesc_add_flag (type_with_fields, 12,
"IXE");
129 tdesc_add_flag (type_with_fields, 13,
"EBF");
130 tdesc_add_flag (type_with_fields, 15,
"IDE");
131 tdesc_add_bitfield (type_with_fields,
"Len", 16, 18);
132 tdesc_add_flag (type_with_fields, 19,
"FZ16");
133 tdesc_add_bitfield (type_with_fields,
"Stride", 20, 21);
134 tdesc_add_bitfield (type_with_fields,
"RMode", 22, 23);
135 tdesc_add_flag (type_with_fields, 24,
"FZ");
136 tdesc_add_flag (type_with_fields, 25,
"DN");
137 tdesc_add_flag (type_with_fields, 26,
"AHP");
140 tdesc_create_reg (feature,
"v0",
regnum++, 1, NULL, 128,
"aarch64v");
141 tdesc_create_reg (feature,
"v1",
regnum++, 1, NULL, 128,
"aarch64v");
142 tdesc_create_reg (feature,
"v2",
regnum++, 1, NULL, 128,
"aarch64v");
143 tdesc_create_reg (feature,
"v3",
regnum++, 1, NULL, 128,
"aarch64v");
144 tdesc_create_reg (feature,
"v4",
regnum++, 1, NULL, 128,
"aarch64v");
145 tdesc_create_reg (feature,
"v5",
regnum++, 1, NULL, 128,
"aarch64v");
146 tdesc_create_reg (feature,
"v6",
regnum++, 1, NULL, 128,
"aarch64v");
147 tdesc_create_reg (feature,
"v7",
regnum++, 1, NULL, 128,
"aarch64v");
148 tdesc_create_reg (feature,
"v8",
regnum++, 1, NULL, 128,
"aarch64v");
149 tdesc_create_reg (feature,
"v9",
regnum++, 1, NULL, 128,
"aarch64v");
150 tdesc_create_reg (feature,
"v10",
regnum++, 1, NULL, 128,
"aarch64v");
151 tdesc_create_reg (feature,
"v11",
regnum++, 1, NULL, 128,
"aarch64v");
152 tdesc_create_reg (feature,
"v12",
regnum++, 1, NULL, 128,
"aarch64v");
153 tdesc_create_reg (feature,
"v13",
regnum++, 1, NULL, 128,
"aarch64v");
154 tdesc_create_reg (feature,
"v14",
regnum++, 1, NULL, 128,
"aarch64v");
155 tdesc_create_reg (feature,
"v15",
regnum++, 1, NULL, 128,
"aarch64v");
156 tdesc_create_reg (feature,
"v16",
regnum++, 1, NULL, 128,
"aarch64v");
157 tdesc_create_reg (feature,
"v17",
regnum++, 1, NULL, 128,
"aarch64v");
158 tdesc_create_reg (feature,
"v18",
regnum++, 1, NULL, 128,
"aarch64v");
159 tdesc_create_reg (feature,
"v19",
regnum++, 1, NULL, 128,
"aarch64v");
160 tdesc_create_reg (feature,
"v20",
regnum++, 1, NULL, 128,
"aarch64v");
161 tdesc_create_reg (feature,
"v21",
regnum++, 1, NULL, 128,
"aarch64v");
162 tdesc_create_reg (feature,
"v22",
regnum++, 1, NULL, 128,
"aarch64v");
163 tdesc_create_reg (feature,
"v23",
regnum++, 1, NULL, 128,
"aarch64v");
164 tdesc_create_reg (feature,
"v24",
regnum++, 1, NULL, 128,
"aarch64v");
165 tdesc_create_reg (feature,
"v25",
regnum++, 1, NULL, 128,
"aarch64v");
166 tdesc_create_reg (feature,
"v26",
regnum++, 1, NULL, 128,
"aarch64v");
167 tdesc_create_reg (feature,
"v27",
regnum++, 1, NULL, 128,
"aarch64v");
168 tdesc_create_reg (feature,
"v28",
regnum++, 1, NULL, 128,
"aarch64v");
169 tdesc_create_reg (feature,
"v29",
regnum++, 1, NULL, 128,
"aarch64v");
170 tdesc_create_reg (feature,
"v30",
regnum++, 1, NULL, 128,
"aarch64v");
171 tdesc_create_reg (feature,
"v31",
regnum++, 1, NULL, 128,
"aarch64v");
172 tdesc_create_reg (feature,
"fpsr",
regnum++, 1, NULL, 32,
"fpsr_flags");
173 tdesc_create_reg (feature,
"fpcr",
regnum++, 1, NULL, 32,
"fpcr_flags");