1 /* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: 2 Original: aarch64-fpu.xml */ 3 4 #include "common/tdesc.h" 5 6 static int 7 create_feature_aarch64_fpu (struct target_desc *result, long regnum) 8 { 9 struct tdesc_feature *feature; 10 11 feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.fpu"); 12 tdesc_type *element_type; 13 element_type = tdesc_named_type (feature, "ieee_double"); 14 tdesc_create_vector (feature, "v2d", element_type, 2); 15 16 element_type = tdesc_named_type (feature, "uint64"); 17 tdesc_create_vector (feature, "v2u", element_type, 2); 18 19 element_type = tdesc_named_type (feature, "int64"); 20 tdesc_create_vector (feature, "v2i", element_type, 2); 21 22 element_type = tdesc_named_type (feature, "ieee_single"); 23 tdesc_create_vector (feature, "v4f", element_type, 4); 24 25 element_type = tdesc_named_type (feature, "uint32"); 26 tdesc_create_vector (feature, "v4u", element_type, 4); 27 28 element_type = tdesc_named_type (feature, "int32"); 29 tdesc_create_vector (feature, "v4i", element_type, 4); 30 31 element_type = tdesc_named_type (feature, "uint16"); 32 tdesc_create_vector (feature, "v8u", element_type, 8); 33 34 element_type = tdesc_named_type (feature, "int16"); 35 tdesc_create_vector (feature, "v8i", element_type, 8); 36 37 element_type = tdesc_named_type (feature, "uint8"); 38 tdesc_create_vector (feature, "v16u", element_type, 16); 39 40 element_type = tdesc_named_type (feature, "int8"); 41 tdesc_create_vector (feature, "v16i", element_type, 16); 42 43 element_type = tdesc_named_type (feature, "uint128"); 44 tdesc_create_vector (feature, "v1u", element_type, 1); 45 46 element_type = tdesc_named_type (feature, "int128"); 47 tdesc_create_vector (feature, "v1i", element_type, 1); 48 49 tdesc_type_with_fields *type_with_fields; 50 type_with_fields = tdesc_create_union (feature, "vnd"); 51 tdesc_type *field_type; 52 field_type = tdesc_named_type (feature, "v2d"); 53 tdesc_add_field (type_with_fields, "f", field_type); 54 field_type = tdesc_named_type (feature, "v2u"); 55 tdesc_add_field (type_with_fields, "u", field_type); 56 field_type = tdesc_named_type (feature, "v2i"); 57 tdesc_add_field (type_with_fields, "s", field_type); 58 59 type_with_fields = tdesc_create_union (feature, "vns"); 60 field_type = tdesc_named_type (feature, "v4f"); 61 tdesc_add_field (type_with_fields, "f", field_type); 62 field_type = tdesc_named_type (feature, "v4u"); 63 tdesc_add_field (type_with_fields, "u", field_type); 64 field_type = tdesc_named_type (feature, "v4i"); 65 tdesc_add_field (type_with_fields, "s", field_type); 66 67 type_with_fields = tdesc_create_union (feature, "vnh"); 68 field_type = tdesc_named_type (feature, "v8u"); 69 tdesc_add_field (type_with_fields, "u", field_type); 70 field_type = tdesc_named_type (feature, "v8i"); 71 tdesc_add_field (type_with_fields, "s", field_type); 72 73 type_with_fields = tdesc_create_union (feature, "vnb"); 74 field_type = tdesc_named_type (feature, "v16u"); 75 tdesc_add_field (type_with_fields, "u", field_type); 76 field_type = tdesc_named_type (feature, "v16i"); 77 tdesc_add_field (type_with_fields, "s", field_type); 78 79 type_with_fields = tdesc_create_union (feature, "vnq"); 80 field_type = tdesc_named_type (feature, "v1u"); 81 tdesc_add_field (type_with_fields, "u", field_type); 82 field_type = tdesc_named_type (feature, "v1i"); 83 tdesc_add_field (type_with_fields, "s", field_type); 84 85 type_with_fields = tdesc_create_union (feature, "aarch64v"); 86 field_type = tdesc_named_type (feature, "vnd"); 87 tdesc_add_field (type_with_fields, "d", field_type); 88 field_type = tdesc_named_type (feature, "vns"); 89 tdesc_add_field (type_with_fields, "s", field_type); 90 field_type = tdesc_named_type (feature, "vnh"); 91 tdesc_add_field (type_with_fields, "h", field_type); 92 field_type = tdesc_named_type (feature, "vnb"); 93 tdesc_add_field (type_with_fields, "b", field_type); 94 field_type = tdesc_named_type (feature, "vnq"); 95 tdesc_add_field (type_with_fields, "q", field_type); 96 97 regnum = 34; 98 tdesc_create_reg (feature, "v0", regnum++, 1, NULL, 128, "aarch64v"); 99 tdesc_create_reg (feature, "v1", regnum++, 1, NULL, 128, "aarch64v"); 100 tdesc_create_reg (feature, "v2", regnum++, 1, NULL, 128, "aarch64v"); 101 tdesc_create_reg (feature, "v3", regnum++, 1, NULL, 128, "aarch64v"); 102 tdesc_create_reg (feature, "v4", regnum++, 1, NULL, 128, "aarch64v"); 103 tdesc_create_reg (feature, "v5", regnum++, 1, NULL, 128, "aarch64v"); 104 tdesc_create_reg (feature, "v6", regnum++, 1, NULL, 128, "aarch64v"); 105 tdesc_create_reg (feature, "v7", regnum++, 1, NULL, 128, "aarch64v"); 106 tdesc_create_reg (feature, "v8", regnum++, 1, NULL, 128, "aarch64v"); 107 tdesc_create_reg (feature, "v9", regnum++, 1, NULL, 128, "aarch64v"); 108 tdesc_create_reg (feature, "v10", regnum++, 1, NULL, 128, "aarch64v"); 109 tdesc_create_reg (feature, "v11", regnum++, 1, NULL, 128, "aarch64v"); 110 tdesc_create_reg (feature, "v12", regnum++, 1, NULL, 128, "aarch64v"); 111 tdesc_create_reg (feature, "v13", regnum++, 1, NULL, 128, "aarch64v"); 112 tdesc_create_reg (feature, "v14", regnum++, 1, NULL, 128, "aarch64v"); 113 tdesc_create_reg (feature, "v15", regnum++, 1, NULL, 128, "aarch64v"); 114 tdesc_create_reg (feature, "v16", regnum++, 1, NULL, 128, "aarch64v"); 115 tdesc_create_reg (feature, "v17", regnum++, 1, NULL, 128, "aarch64v"); 116 tdesc_create_reg (feature, "v18", regnum++, 1, NULL, 128, "aarch64v"); 117 tdesc_create_reg (feature, "v19", regnum++, 1, NULL, 128, "aarch64v"); 118 tdesc_create_reg (feature, "v20", regnum++, 1, NULL, 128, "aarch64v"); 119 tdesc_create_reg (feature, "v21", regnum++, 1, NULL, 128, "aarch64v"); 120 tdesc_create_reg (feature, "v22", regnum++, 1, NULL, 128, "aarch64v"); 121 tdesc_create_reg (feature, "v23", regnum++, 1, NULL, 128, "aarch64v"); 122 tdesc_create_reg (feature, "v24", regnum++, 1, NULL, 128, "aarch64v"); 123 tdesc_create_reg (feature, "v25", regnum++, 1, NULL, 128, "aarch64v"); 124 tdesc_create_reg (feature, "v26", regnum++, 1, NULL, 128, "aarch64v"); 125 tdesc_create_reg (feature, "v27", regnum++, 1, NULL, 128, "aarch64v"); 126 tdesc_create_reg (feature, "v28", regnum++, 1, NULL, 128, "aarch64v"); 127 tdesc_create_reg (feature, "v29", regnum++, 1, NULL, 128, "aarch64v"); 128 tdesc_create_reg (feature, "v30", regnum++, 1, NULL, 128, "aarch64v"); 129 tdesc_create_reg (feature, "v31", regnum++, 1, NULL, 128, "aarch64v"); 130 tdesc_create_reg (feature, "fpsr", regnum++, 1, NULL, 32, "int"); 131 tdesc_create_reg (feature, "fpcr", regnum++, 1, NULL, 32, "int"); 132 return regnum; 133 } 134