AArch64: 128bit views for SVE registers
authorAlan Hayward <alan.hayward@arm.com>
Thu, 28 Mar 2019 12:14:09 +0000 (12:14 +0000)
committerAlan Hayward <alan.hayward@arm.com>
Thu, 28 Mar 2019 12:14:09 +0000 (12:14 +0000)
SVE can view Z registers as 128bit values using .q prefix.

Add this view to the SVE feature.

gdb/ChangeLog:

* features/aarch64-sve.c (create_feature_aarch64_sve): Add q view.

gdb/ChangeLog
gdb/features/aarch64-sve.c

index 0c658e2cfe80bd266cff6216f5fad69593ac48ca..0a1a335726b3cf5e280374d0923a67b26bf4e99f 100644 (file)
@@ -1,3 +1,7 @@
+2019-03-28  Alan Hayward  <alan.hayward@arm.com>
+
+       * features/aarch64-sve.c (create_feature_aarch64_sve): Add q view.
+
 2019-03-24  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
            Tom Tromey  <tromey@adacore.com>
 
index aa2ac7a3c5b51fbcc0264c31113c05c7dda10320..2166b4bb0718d4652ae2a926d543f5b12f18bf3c 100644 (file)
@@ -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);
 
@@ -61,6 +67,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);
@@ -90,6 +102,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");
This page took 0.0297230000000001 seconds and 4 git commands to generate.