9 struct tdesc_feature *feature;
12 tdesc_type *element_type;
13 element_type = tdesc_named_type (feature,
"bfloat16");
14 tdesc_create_vector (feature,
"v8bf16", element_type, 8);
16 element_type = tdesc_named_type (feature,
"ieee_half");
17 tdesc_create_vector (feature,
"v8h", element_type, 8);
19 element_type = tdesc_named_type (feature,
"ieee_single");
20 tdesc_create_vector (feature,
"v4f", element_type, 4);
22 element_type = tdesc_named_type (feature,
"ieee_double");
23 tdesc_create_vector (feature,
"v2d", element_type, 2);
25 element_type = tdesc_named_type (feature,
"int8");
26 tdesc_create_vector (feature,
"v16i8", element_type, 16);
28 element_type = tdesc_named_type (feature,
"int16");
29 tdesc_create_vector (feature,
"v8i16", element_type, 8);
31 element_type = tdesc_named_type (feature,
"int32");
32 tdesc_create_vector (feature,
"v4i32", element_type, 4);
34 element_type = tdesc_named_type (feature,
"int64");
35 tdesc_create_vector (feature,
"v2i64", element_type, 2);
37 tdesc_type_with_fields *type_with_fields;
38 type_with_fields = tdesc_create_union (feature,
"vec128");
39 tdesc_type *field_type;
40 field_type = tdesc_named_type (feature,
"v8bf16");
41 tdesc_add_field (type_with_fields,
"v8_bfloat16", field_type);
42 field_type = tdesc_named_type (feature,
"v8h");
43 tdesc_add_field (type_with_fields,
"v8_half", field_type);
44 field_type = tdesc_named_type (feature,
"v4f");
45 tdesc_add_field (type_with_fields,
"v4_float", field_type);
46 field_type = tdesc_named_type (feature,
"v2d");
47 tdesc_add_field (type_with_fields,
"v2_double", field_type);
48 field_type = tdesc_named_type (feature,
"v16i8");
49 tdesc_add_field (type_with_fields,
"v16_int8", field_type);
50 field_type = tdesc_named_type (feature,
"v8i16");
51 tdesc_add_field (type_with_fields,
"v8_int16", field_type);
52 field_type = tdesc_named_type (feature,
"v4i32");
53 tdesc_add_field (type_with_fields,
"v4_int32", field_type);
54 field_type = tdesc_named_type (feature,
"v2i64");
55 tdesc_add_field (type_with_fields,
"v2_int64", field_type);
56 field_type = tdesc_named_type (feature,
"uint128");
57 tdesc_add_field (type_with_fields,
"uint128", field_type);
59 type_with_fields = tdesc_create_flags (feature,
"i386_mxcsr", 4);
60 tdesc_add_flag (type_with_fields, 0,
"IE");
61 tdesc_add_flag (type_with_fields, 1,
"DE");
62 tdesc_add_flag (type_with_fields, 2,
"ZE");
63 tdesc_add_flag (type_with_fields, 3,
"OE");
64 tdesc_add_flag (type_with_fields, 4,
"UE");
65 tdesc_add_flag (type_with_fields, 5,
"PE");
66 tdesc_add_flag (type_with_fields, 6,
"DAZ");
67 tdesc_add_flag (type_with_fields, 7,
"IM");
68 tdesc_add_flag (type_with_fields, 8,
"DM");
69 tdesc_add_flag (type_with_fields, 9,
"ZM");
70 tdesc_add_flag (type_with_fields, 10,
"OM");
71 tdesc_add_flag (type_with_fields, 11,
"UM");
72 tdesc_add_flag (type_with_fields, 12,
"PM");
73 tdesc_add_flag (type_with_fields, 15,
"FZ");
76 tdesc_create_reg (feature,
"xmm0",
regnum++, 1, NULL, 128,
"vec128");
77 tdesc_create_reg (feature,
"xmm1",
regnum++, 1, NULL, 128,
"vec128");
78 tdesc_create_reg (feature,
"xmm2",
regnum++, 1, NULL, 128,
"vec128");
79 tdesc_create_reg (feature,
"xmm3",
regnum++, 1, NULL, 128,
"vec128");
80 tdesc_create_reg (feature,
"xmm4",
regnum++, 1, NULL, 128,
"vec128");
81 tdesc_create_reg (feature,
"xmm5",
regnum++, 1, NULL, 128,
"vec128");
82 tdesc_create_reg (feature,
"xmm6",
regnum++, 1, NULL, 128,
"vec128");
83 tdesc_create_reg (feature,
"xmm7",
regnum++, 1, NULL, 128,
"vec128");
84 tdesc_create_reg (feature,
"mxcsr",
regnum++, 1,
"vector", 32,
"i386_mxcsr");