X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=gdb%2Ffeatures%2Faarch64-sve.c;h=9c7f56d80d855044239d65cc4f14281236a7803f;hb=268a13a5a3f7c6b9b6ffc5ac2d1b24eb41f3fbdc;hp=aa2ac7a3c5b51fbcc0264c31113c05c7dda10320;hpb=42a4f53d2bf8938c2aeda9f52be7a20534b214a9;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/features/aarch64-sve.c b/gdb/features/aarch64-sve.c index aa2ac7a3c5..9c7f56d80d 100644 --- a/gdb/features/aarch64-sve.c +++ b/gdb/features/aarch64-sve.c @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "common/tdesc.h" +#include "gdbsupport/tdesc.h" /* This function is NOT auto generated from xml. Create the aarch64 with SVE feature into RESULT, where SCALE is the number of 128 bit chunks in a Z @@ -31,6 +31,12 @@ create_feature_aarch64_sve (struct target_desc *result, long regnum, feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.sve"); + element_type = tdesc_named_type (feature, "uint128"); + tdesc_create_vector (feature, "svevqu", element_type, scale); + + element_type = tdesc_named_type (feature, "int128"); + tdesc_create_vector (feature, "svevqs", element_type, scale); + element_type = tdesc_named_type (feature, "ieee_double"); tdesc_create_vector (feature, "svevdf", element_type, 2 * scale); @@ -49,6 +55,9 @@ create_feature_aarch64_sve (struct target_desc *result, long regnum, element_type = tdesc_named_type (feature, "int32"); tdesc_create_vector (feature, "svevss", element_type, 4 * scale); + element_type = tdesc_named_type (feature, "ieee_half"); + tdesc_create_vector (feature, "svevhf", element_type, 8 * scale); + element_type = tdesc_named_type (feature, "uint16"); tdesc_create_vector (feature, "svevhu", element_type, 8 * scale); @@ -61,6 +70,12 @@ create_feature_aarch64_sve (struct target_desc *result, long regnum, element_type = tdesc_named_type (feature, "int8"); tdesc_create_vector (feature, "svevbs", element_type, 16 * scale); + type_with_fields = tdesc_create_union (feature, "svevnq"); + field_type = tdesc_named_type (feature, "svevqu"); + tdesc_add_field (type_with_fields, "u", field_type); + field_type = tdesc_named_type (feature, "svevqs"); + tdesc_add_field (type_with_fields, "s", field_type); + type_with_fields = tdesc_create_union (feature, "svevnd"); field_type = tdesc_named_type (feature, "svevdf"); tdesc_add_field (type_with_fields, "f", field_type); @@ -78,6 +93,8 @@ create_feature_aarch64_sve (struct target_desc *result, long regnum, tdesc_add_field (type_with_fields, "s", field_type); type_with_fields = tdesc_create_union (feature, "svevnh"); + field_type = tdesc_named_type (feature, "svevhf"); + tdesc_add_field (type_with_fields, "f", field_type); field_type = tdesc_named_type (feature, "svevhu"); tdesc_add_field (type_with_fields, "u", field_type); field_type = tdesc_named_type (feature, "svevhs"); @@ -90,6 +107,8 @@ create_feature_aarch64_sve (struct target_desc *result, long regnum, tdesc_add_field (type_with_fields, "s", field_type); type_with_fields = tdesc_create_union (feature, "svev"); + field_type = tdesc_named_type (feature, "svevnq"); + tdesc_add_field (type_with_fields, "q", field_type); field_type = tdesc_named_type (feature, "svevnd"); tdesc_add_field (type_with_fields, "d", field_type); field_type = tdesc_named_type (feature, "svevns");