Blame SOURCES/gdb-rhbz1182151-ibm-z13-07of22.patch

01917d
commit 446899e472025a04017064f5172105cec70eb357
01917d
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
01917d
Date:   Mon Mar 2 10:57:39 2015 +0100
01917d
01917d
    S390: Add target descriptions for vector register sets
01917d
    
01917d
    The IBM z13 has new vector registers v0-v31 which are presented by the
01917d
    Linux kernel as two additional register sets.  This patch adds XML
01917d
    descriptions and the respective autogenerated .c and .dat files for
01917d
    S390 targets with this feature.  Note that supported combinations
01917d
    include targets with and without a transactional execution facility.
01917d
    
01917d
    gdb/ChangeLog:
01917d
    
01917d
    	* features/s390-tevx-linux64.xml: New file.
01917d
    	* features/s390-vx-linux64.xml: New file.
01917d
    	* features/s390-vx.xml: New file.
01917d
    	* features/s390x-tevx-linux64.xml: New file.
01917d
    	* features/s390x-vx-linux64.xml: New file.
01917d
    	* features/Makefile (WHICH): Add s390-vx-linux64,
01917d
    	s390x-vx-linux64, s390-tevx-linux64, and s390x-tevx-linux64.
01917d
    	(s390-vx-linux64-expedite, s390-tevx-linux64-expedite)
01917d
    	(s390x-vx-linux64-expedite, s390x-tevx-linux64-expedite): New
01917d
    	macros.
01917d
    	* features/s390-tevx-linux64.c: New generated file.
01917d
    	* features/s390-vx-linux64.c: Likewise.
01917d
    	* features/s390x-tevx-linux64.c: Likewise.
01917d
    	* features/s390x-vx-linux64.c: Likewise.
01917d
    	* regformats/s390-tevx-linux64.dat: Likewise.
01917d
    	* regformats/s390-vx-linux64.dat: Likewise.
01917d
    	* regformats/s390x-tevx-linux64.dat: Likewise.
01917d
    	* regformats/s390x-vx-linux64.dat: Likewise.
01917d
    
01917d
    gdb/doc/ChangeLog:
01917d
    
01917d
    	* gdb.texinfo (S/390 and System z Features): Describe new feature
01917d
    	"org.gnu.gdb.s390.vx".
01917d
01917d
### a/gdb/ChangeLog
01917d
### b/gdb/ChangeLog
01917d
## -1,3 +1,24 @@
01917d
+2015-03-02  Andreas Arnez  <arnez@linux.vnet.ibm.com>
01917d
+
01917d
+	* features/s390-tevx-linux64.xml: New file.
01917d
+	* features/s390-vx-linux64.xml: New file.
01917d
+	* features/s390-vx.xml: New file.
01917d
+	* features/s390x-tevx-linux64.xml: New file.
01917d
+	* features/s390x-vx-linux64.xml: New file.
01917d
+	* features/Makefile (WHICH): Add s390-vx-linux64,
01917d
+	s390x-vx-linux64, s390-tevx-linux64, and s390x-tevx-linux64.
01917d
+	(s390-vx-linux64-expedite, s390-tevx-linux64-expedite)
01917d
+	(s390x-vx-linux64-expedite, s390x-tevx-linux64-expedite): New
01917d
+	macros.
01917d
+	* features/s390-tevx-linux64.c: New generated file.
01917d
+	* features/s390-vx-linux64.c: Likewise.
01917d
+	* features/s390x-tevx-linux64.c: Likewise.
01917d
+	* features/s390x-vx-linux64.c: Likewise.
01917d
+	* regformats/s390-tevx-linux64.dat: Likewise.
01917d
+	* regformats/s390-vx-linux64.dat: Likewise.
01917d
+	* regformats/s390x-tevx-linux64.dat: Likewise.
01917d
+	* regformats/s390x-vx-linux64.dat: Likewise.
01917d
+
01917d
 2015-02-28  Doug Evans  <xdje42@gmail.com>
01917d
 
01917d
 	* symtab.h (struct symtab) <next>: Fix comment.
01917d
### a/gdb/doc/ChangeLog
01917d
### b/gdb/doc/ChangeLog
01917d
## -1,3 +1,8 @@
01917d
+2015-03-02  Andreas Arnez  <arnez@linux.vnet.ibm.com>
01917d
+
01917d
+	* gdb.texinfo (S/390 and System z Features): Describe new feature
01917d
+	"org.gnu.gdb.s390.vx".
01917d
+
01917d
 2015-02-23  Sergio Durigan Junior  <sergiodj@redhat.com>
01917d
 
01917d
 	PR gdb/18008
01917d
--- a/gdb/doc/gdb.texinfo
01917d
+++ b/gdb/doc/gdb.texinfo
01917d
@@ -39933,6 +39933,14 @@ The @samp{org.gnu.gdb.s390.tdb} feature is optional.  It should
01917d
 contain the 64-bit registers @samp{tdb0}, @samp{tac}, @samp{tct},
01917d
 @samp{atia}, and @samp{tr0} through @samp{tr15}.
01917d
 
01917d
+The @samp{org.gnu.gdb.s390.vx} feature is optional.  It should contain
01917d
+64-bit wide registers @samp{v0l} through @samp{v15l}, which will be
01917d
+combined by @value{GDBN} with the floating point registers @samp{f0}
01917d
+through @samp{f15} to present the 128-bit wide vector registers
01917d
+@samp{v0} through @samp{v15}.  In addition, this feature should
01917d
+contain the 128-bit wide vector registers @samp{v16} through
01917d
+@samp{v31}.
01917d
+
01917d
 @node TIC6x Features
01917d
 @subsection TMS320C6x Features
01917d
 @cindex target descriptions, TIC6x features
01917d
--- a/gdb/features/Makefile
01917d
+++ b/gdb/features/Makefile
01917d
@@ -68,7 +68,8 @@ WHICH = aarch64 \
01917d
 	s390-linux32 s390-linux64 s390x-linux64 \
01917d
 	s390-linux32v1 s390-linux64v1 s390x-linux64v1 \
01917d
 	s390-linux32v2 s390-linux64v2 s390x-linux64v2 \
01917d
-	s390-te-linux64 s390x-te-linux64 \
01917d
+	s390-te-linux64 s390x-te-linux64 s390-vx-linux64 s390x-vx-linux64 \
01917d
+	s390-tevx-linux64 s390x-tevx-linux64 \
01917d
 	tic6x-c64xp tic6x-c64x tic6x-c62x \
01917d
 	tic6x-c64xp-linux tic6x-c64x-linux tic6x-c62x-linux
01917d
 
01917d
@@ -115,10 +116,14 @@ s390-linux64-expedite = r14l,r15l,pswa
01917d
 s390-linux64v1-expedite = r14l,r15l,pswa
01917d
 s390-linux64v2-expedite = r14l,r15l,pswa
01917d
 s390-te-linux64-expedite = r14l,r15l,pswa
01917d
+s390-vx-linux64-expedite = r14l,r15l,pswa
01917d
+s390-tevx-linux64-expedite = r14l,r15l,pswa
01917d
 s390x-linux64-expedite = r14,r15,pswa
01917d
 s390x-linux64v1-expedite = r14,r15,pswa
01917d
 s390x-linux64v2-expedite = r14,r15,pswa
01917d
 s390x-te-linux64-expedite = r14,r15,pswa
01917d
+s390x-vx-linux64-expedite = r14,r15,pswa
01917d
+s390x-tevx-linux64-expedite = r14,r15,pswa
01917d
 tic6x-c64xp-expedite = A15,PC
01917d
 tic6x-c64x-expedite = A15,PC
01917d
 tic6x-c62x-expedite = A15,PC
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390-tevx-linux64.c
01917d
@@ -0,0 +1,188 @@
01917d
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
01917d
+  Original: s390-tevx-linux64.xml */
01917d
+
01917d
+#include "defs.h"
01917d
+#include "osabi.h"
01917d
+#include "target-descriptions.h"
01917d
+
01917d
+struct target_desc *tdesc_s390_tevx_linux64;
01917d
+static void
01917d
+initialize_tdesc_s390_tevx_linux64 (void)
01917d
+{
01917d
+  struct target_desc *result = allocate_target_description ();
01917d
+  struct tdesc_feature *feature;
01917d
+  struct tdesc_type *field_type;
01917d
+  struct tdesc_type *type;
01917d
+
01917d
+  set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
01917d
+  tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r0h", 2, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r0l", 3, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r1h", 4, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r1l", 5, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r2h", 6, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r2l", 7, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r3h", 8, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r3l", 9, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r4h", 10, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r4l", 11, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r5h", 12, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r5l", 13, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r6h", 14, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r6l", 15, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r7h", 16, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r7l", 17, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r8h", 18, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r8l", 19, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r9h", 20, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r9l", 21, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r10h", 22, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r10l", 23, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r11h", 24, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r11l", 25, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r12h", 26, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r12l", 27, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r13h", 28, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r13l", 29, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r14h", 30, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r14l", 31, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r15h", 32, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r15l", 33, 1, "lower", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
01917d
+  tdesc_create_reg (feature, "acr0", 34, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr1", 35, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr2", 36, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr3", 37, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr4", 38, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr5", 39, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr6", 40, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr7", 41, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr8", 42, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr9", 43, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr10", 44, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr11", 45, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr12", 46, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr13", 47, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr14", 48, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr15", 49, 1, "access", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
01917d
+  tdesc_create_reg (feature, "fpc", 50, 1, "float", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "f0", 51, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f1", 52, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f2", 53, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f3", 54, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f4", 55, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f5", 56, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f6", 57, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f7", 58, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f8", 59, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f9", 60, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f10", 61, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f11", 62, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f12", 63, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f13", 64, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f14", 65, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f15", 66, 1, "float", 64, "ieee_double");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
01917d
+  tdesc_create_reg (feature, "orig_r2", 67, 1, "system", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "last_break", 68, 0, "system", 32, "code_ptr");
01917d
+  tdesc_create_reg (feature, "system_call", 69, 1, "system", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.tdb");
01917d
+  tdesc_create_reg (feature, "tdb0", 70, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tac", 71, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tct", 72, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "atia", 73, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr0", 74, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr1", 75, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr2", 76, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr3", 77, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr4", 78, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr5", 79, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr6", 80, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr7", 81, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr8", 82, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr9", 83, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr10", 84, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr11", 85, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr12", 86, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr13", 87, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr14", 88, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr15", 89, 1, "tdb", 64, "uint64");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
01917d
+  field_type = tdesc_named_type (feature, "ieee_single");
01917d
+  tdesc_create_vector (feature, "v4f", field_type, 4);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "ieee_double");
01917d
+  tdesc_create_vector (feature, "v2d", field_type, 2);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int8");
01917d
+  tdesc_create_vector (feature, "v16i8", field_type, 16);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int16");
01917d
+  tdesc_create_vector (feature, "v8i16", field_type, 8);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int32");
01917d
+  tdesc_create_vector (feature, "v4i32", field_type, 4);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int64");
01917d
+  tdesc_create_vector (feature, "v2i64", field_type, 2);
01917d
+
01917d
+  type = tdesc_create_union (feature, "vec128");
01917d
+  field_type = tdesc_named_type (feature, "v4f");
01917d
+  tdesc_add_field (type, "v4_float", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v2d");
01917d
+  tdesc_add_field (type, "v2_double", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v16i8");
01917d
+  tdesc_add_field (type, "v16_int8", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v8i16");
01917d
+  tdesc_add_field (type, "v8_int16", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v4i32");
01917d
+  tdesc_add_field (type, "v4_int32", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v2i64");
01917d
+  tdesc_add_field (type, "v2_int64", field_type);
01917d
+  field_type = tdesc_named_type (feature, "uint128");
01917d
+  tdesc_add_field (type, "uint128", field_type);
01917d
+
01917d
+  tdesc_create_reg (feature, "v0l", 90, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v1l", 91, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v2l", 92, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v3l", 93, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v4l", 94, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v5l", 95, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v6l", 96, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v7l", 97, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v8l", 98, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v9l", 99, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v10l", 100, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v11l", 101, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v12l", 102, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v13l", 103, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v14l", 104, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v15l", 105, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v16", 106, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v17", 107, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v18", 108, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v19", 109, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v20", 110, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v21", 111, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v22", 112, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v23", 113, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v24", 114, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v25", 115, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v26", 116, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v27", 117, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v28", 118, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v29", 119, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v30", 120, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v31", 121, 1, NULL, 128, "vec128");
01917d
+
01917d
+  tdesc_s390_tevx_linux64 = result;
01917d
+}
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390-tevx-linux64.xml
01917d
@@ -0,0 +1,26 @@
01917d
+
01917d
+
01917d
+
01917d
+     Copying and distribution of this file, with or without modification,
01917d
+     are permitted in any medium without royalty provided the copyright
01917d
+     notice and this notice are preserved.  -->
01917d
+
01917d
+
01917d
+     in z/Architecture mode.  -->
01917d
+
01917d
+
01917d
+<target>
01917d
+  <architecture>s390:31-bit</architecture>
01917d
+  <xi:include href="s390-core64.xml"/>
01917d
+  <xi:include href="s390-acr.xml"/>
01917d
+  <xi:include href="s390-fpr.xml"/>
01917d
+
01917d
+  <feature name="org.gnu.gdb.s390.linux">
01917d
+    <reg name="orig_r2" bitsize="32" type="uint32" group="system"/>
01917d
+    <reg name="last_break" bitsize="32" type="code_ptr" group="system" save-restore="no"/>
01917d
+    <reg name="system_call" bitsize="32" type="uint32" group="system"/>
01917d
+  </feature>
01917d
+
01917d
+  <xi:include href="s390-tdb.xml"/>
01917d
+  <xi:include href="s390-vx.xml"/>
01917d
+</target>
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390-vx-linux64.c
01917d
@@ -0,0 +1,166 @@
01917d
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
01917d
+  Original: s390-vx-linux64.xml */
01917d
+
01917d
+#include "defs.h"
01917d
+#include "osabi.h"
01917d
+#include "target-descriptions.h"
01917d
+
01917d
+struct target_desc *tdesc_s390_vx_linux64;
01917d
+static void
01917d
+initialize_tdesc_s390_vx_linux64 (void)
01917d
+{
01917d
+  struct target_desc *result = allocate_target_description ();
01917d
+  struct tdesc_feature *feature;
01917d
+  struct tdesc_type *field_type;
01917d
+  struct tdesc_type *type;
01917d
+
01917d
+  set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
01917d
+  tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r0h", 2, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r0l", 3, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r1h", 4, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r1l", 5, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r2h", 6, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r2l", 7, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r3h", 8, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r3l", 9, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r4h", 10, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r4l", 11, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r5h", 12, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r5l", 13, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r6h", 14, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r6l", 15, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r7h", 16, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r7l", 17, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r8h", 18, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r8l", 19, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r9h", 20, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r9l", 21, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r10h", 22, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r10l", 23, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r11h", 24, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r11l", 25, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r12h", 26, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r12l", 27, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r13h", 28, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r13l", 29, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r14h", 30, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r14l", 31, 1, "lower", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r15h", 32, 1, "upper", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "r15l", 33, 1, "lower", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
01917d
+  tdesc_create_reg (feature, "acr0", 34, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr1", 35, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr2", 36, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr3", 37, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr4", 38, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr5", 39, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr6", 40, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr7", 41, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr8", 42, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr9", 43, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr10", 44, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr11", 45, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr12", 46, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr13", 47, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr14", 48, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr15", 49, 1, "access", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
01917d
+  tdesc_create_reg (feature, "fpc", 50, 1, "float", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "f0", 51, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f1", 52, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f2", 53, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f3", 54, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f4", 55, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f5", 56, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f6", 57, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f7", 58, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f8", 59, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f9", 60, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f10", 61, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f11", 62, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f12", 63, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f13", 64, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f14", 65, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f15", 66, 1, "float", 64, "ieee_double");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
01917d
+  tdesc_create_reg (feature, "orig_r2", 67, 1, "system", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "last_break", 68, 0, "system", 32, "code_ptr");
01917d
+  tdesc_create_reg (feature, "system_call", 69, 1, "system", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
01917d
+  field_type = tdesc_named_type (feature, "ieee_single");
01917d
+  tdesc_create_vector (feature, "v4f", field_type, 4);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "ieee_double");
01917d
+  tdesc_create_vector (feature, "v2d", field_type, 2);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int8");
01917d
+  tdesc_create_vector (feature, "v16i8", field_type, 16);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int16");
01917d
+  tdesc_create_vector (feature, "v8i16", field_type, 8);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int32");
01917d
+  tdesc_create_vector (feature, "v4i32", field_type, 4);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int64");
01917d
+  tdesc_create_vector (feature, "v2i64", field_type, 2);
01917d
+
01917d
+  type = tdesc_create_union (feature, "vec128");
01917d
+  field_type = tdesc_named_type (feature, "v4f");
01917d
+  tdesc_add_field (type, "v4_float", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v2d");
01917d
+  tdesc_add_field (type, "v2_double", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v16i8");
01917d
+  tdesc_add_field (type, "v16_int8", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v8i16");
01917d
+  tdesc_add_field (type, "v8_int16", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v4i32");
01917d
+  tdesc_add_field (type, "v4_int32", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v2i64");
01917d
+  tdesc_add_field (type, "v2_int64", field_type);
01917d
+  field_type = tdesc_named_type (feature, "uint128");
01917d
+  tdesc_add_field (type, "uint128", field_type);
01917d
+
01917d
+  tdesc_create_reg (feature, "v0l", 70, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v1l", 71, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v2l", 72, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v3l", 73, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v4l", 74, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v5l", 75, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v6l", 76, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v7l", 77, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v8l", 78, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v9l", 79, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v10l", 80, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v11l", 81, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v12l", 82, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v13l", 83, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v14l", 84, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v15l", 85, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v16", 86, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v17", 87, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v18", 88, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v19", 89, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v20", 90, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v21", 91, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v22", 92, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v23", 93, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v24", 94, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v25", 95, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v26", 96, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v27", 97, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v28", 98, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v29", 99, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v30", 100, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v31", 101, 1, NULL, 128, "vec128");
01917d
+
01917d
+  tdesc_s390_vx_linux64 = result;
01917d
+}
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390-vx-linux64.xml
01917d
@@ -0,0 +1,25 @@
01917d
+
01917d
+
01917d
+
01917d
+     Copying and distribution of this file, with or without modification,
01917d
+     are permitted in any medium without royalty provided the copyright
01917d
+     notice and this notice are preserved.  -->
01917d
+
01917d
+
01917d
+     in z/Architecture mode.  -->
01917d
+
01917d
+
01917d
+<target>
01917d
+  <architecture>s390:31-bit</architecture>
01917d
+  <xi:include href="s390-core64.xml"/>
01917d
+  <xi:include href="s390-acr.xml"/>
01917d
+  <xi:include href="s390-fpr.xml"/>
01917d
+
01917d
+  <feature name="org.gnu.gdb.s390.linux">
01917d
+    <reg name="orig_r2" bitsize="32" type="uint32" group="system"/>
01917d
+    <reg name="last_break" bitsize="32" type="code_ptr" group="system" save-restore="no"/>
01917d
+    <reg name="system_call" bitsize="32" type="uint32" group="system"/>
01917d
+  </feature>
01917d
+
01917d
+  <xi:include href="s390-vx.xml"/>
01917d
+</target>
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390-vx.xml
01917d
@@ -0,0 +1,59 @@
01917d
+
01917d
+
01917d
+
01917d
+     Copying and distribution of this file, with or without modification,
01917d
+     are permitted in any medium without royalty provided the copyright
01917d
+     notice and this notice are preserved.  -->
01917d
+
01917d
+
01917d
+<feature name="org.gnu.gdb.s390.vx">
01917d
+  <vector id="v4f" type="ieee_single" count="4"/>
01917d
+  <vector id="v2d" type="ieee_double" count="2"/>
01917d
+  <vector id="v16i8" type="int8" count="16"/>
01917d
+  <vector id="v8i16" type="int16" count="8"/>
01917d
+  <vector id="v4i32" type="int32" count="4"/>
01917d
+  <vector id="v2i64" type="int64" count="2"/>
01917d
+  <union id="vec128">
01917d
+    <field name="v4_float" type="v4f"/>
01917d
+    <field name="v2_double" type="v2d"/>
01917d
+    <field name="v16_int8" type="v16i8"/>
01917d
+    <field name="v8_int16" type="v8i16"/>
01917d
+    <field name="v4_int32" type="v4i32"/>
01917d
+    <field name="v2_int64" type="v2i64"/>
01917d
+    <field name="uint128" type="uint128"/>
01917d
+  </union>
01917d
+
01917d
+  <reg name="v0l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v1l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v2l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v3l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v4l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v5l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v6l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v7l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v8l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v9l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v10l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v11l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v12l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v13l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v14l" bitsize="64" type="uint64"/>
01917d
+  <reg name="v15l" bitsize="64" type="uint64"/>
01917d
+
01917d
+  <reg name="v16" bitsize="128" type="vec128"/>
01917d
+  <reg name="v17" bitsize="128" type="vec128"/>
01917d
+  <reg name="v18" bitsize="128" type="vec128"/>
01917d
+  <reg name="v19" bitsize="128" type="vec128"/>
01917d
+  <reg name="v20" bitsize="128" type="vec128"/>
01917d
+  <reg name="v21" bitsize="128" type="vec128"/>
01917d
+  <reg name="v22" bitsize="128" type="vec128"/>
01917d
+  <reg name="v23" bitsize="128" type="vec128"/>
01917d
+  <reg name="v24" bitsize="128" type="vec128"/>
01917d
+  <reg name="v25" bitsize="128" type="vec128"/>
01917d
+  <reg name="v26" bitsize="128" type="vec128"/>
01917d
+  <reg name="v27" bitsize="128" type="vec128"/>
01917d
+  <reg name="v28" bitsize="128" type="vec128"/>
01917d
+  <reg name="v29" bitsize="128" type="vec128"/>
01917d
+  <reg name="v30" bitsize="128" type="vec128"/>
01917d
+  <reg name="v31" bitsize="128" type="vec128"/>
01917d
+</feature>
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390x-tevx-linux64.c
01917d
@@ -0,0 +1,172 @@
01917d
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
01917d
+  Original: s390x-tevx-linux64.xml */
01917d
+
01917d
+#include "defs.h"
01917d
+#include "osabi.h"
01917d
+#include "target-descriptions.h"
01917d
+
01917d
+struct target_desc *tdesc_s390x_tevx_linux64;
01917d
+static void
01917d
+initialize_tdesc_s390x_tevx_linux64 (void)
01917d
+{
01917d
+  struct target_desc *result = allocate_target_description ();
01917d
+  struct tdesc_feature *feature;
01917d
+  struct tdesc_type *field_type;
01917d
+  struct tdesc_type *type;
01917d
+
01917d
+  set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
01917d
+  tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r0", 2, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r1", 3, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r2", 4, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r3", 5, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r4", 6, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r5", 7, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r6", 8, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r7", 9, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r8", 10, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r9", 11, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r10", 12, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r11", 13, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r12", 14, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r13", 15, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r14", 16, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r15", 17, 1, "general", 64, "uint64");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
01917d
+  tdesc_create_reg (feature, "acr0", 18, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr1", 19, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr2", 20, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr3", 21, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr4", 22, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr5", 23, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr6", 24, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr7", 25, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr8", 26, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr9", 27, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr10", 28, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr11", 29, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr12", 30, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr13", 31, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr14", 32, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr15", 33, 1, "access", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
01917d
+  tdesc_create_reg (feature, "fpc", 34, 1, "float", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "f0", 35, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f1", 36, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f2", 37, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f3", 38, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f4", 39, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f5", 40, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f6", 41, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f7", 42, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f8", 43, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f9", 44, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f10", 45, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f11", 46, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f12", 47, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f13", 48, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f14", 49, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f15", 50, 1, "float", 64, "ieee_double");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
01917d
+  tdesc_create_reg (feature, "orig_r2", 51, 1, "system", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "last_break", 52, 0, "system", 64, "code_ptr");
01917d
+  tdesc_create_reg (feature, "system_call", 53, 1, "system", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.tdb");
01917d
+  tdesc_create_reg (feature, "tdb0", 54, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tac", 55, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tct", 56, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "atia", 57, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr0", 58, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr1", 59, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr2", 60, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr3", 61, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr4", 62, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr5", 63, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr6", 64, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr7", 65, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr8", 66, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr9", 67, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr10", 68, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr11", 69, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr12", 70, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr13", 71, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr14", 72, 1, "tdb", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "tr15", 73, 1, "tdb", 64, "uint64");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
01917d
+  field_type = tdesc_named_type (feature, "ieee_single");
01917d
+  tdesc_create_vector (feature, "v4f", field_type, 4);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "ieee_double");
01917d
+  tdesc_create_vector (feature, "v2d", field_type, 2);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int8");
01917d
+  tdesc_create_vector (feature, "v16i8", field_type, 16);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int16");
01917d
+  tdesc_create_vector (feature, "v8i16", field_type, 8);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int32");
01917d
+  tdesc_create_vector (feature, "v4i32", field_type, 4);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int64");
01917d
+  tdesc_create_vector (feature, "v2i64", field_type, 2);
01917d
+
01917d
+  type = tdesc_create_union (feature, "vec128");
01917d
+  field_type = tdesc_named_type (feature, "v4f");
01917d
+  tdesc_add_field (type, "v4_float", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v2d");
01917d
+  tdesc_add_field (type, "v2_double", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v16i8");
01917d
+  tdesc_add_field (type, "v16_int8", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v8i16");
01917d
+  tdesc_add_field (type, "v8_int16", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v4i32");
01917d
+  tdesc_add_field (type, "v4_int32", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v2i64");
01917d
+  tdesc_add_field (type, "v2_int64", field_type);
01917d
+  field_type = tdesc_named_type (feature, "uint128");
01917d
+  tdesc_add_field (type, "uint128", field_type);
01917d
+
01917d
+  tdesc_create_reg (feature, "v0l", 74, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v1l", 75, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v2l", 76, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v3l", 77, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v4l", 78, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v5l", 79, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v6l", 80, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v7l", 81, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v8l", 82, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v9l", 83, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v10l", 84, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v11l", 85, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v12l", 86, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v13l", 87, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v14l", 88, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v15l", 89, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v16", 90, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v17", 91, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v18", 92, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v19", 93, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v20", 94, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v21", 95, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v22", 96, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v23", 97, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v24", 98, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v25", 99, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v26", 100, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v27", 101, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v28", 102, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v29", 103, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v30", 104, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v31", 105, 1, NULL, 128, "vec128");
01917d
+
01917d
+  tdesc_s390x_tevx_linux64 = result;
01917d
+}
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390x-tevx-linux64.xml
01917d
@@ -0,0 +1,25 @@
01917d
+
01917d
+
01917d
+
01917d
+     Copying and distribution of this file, with or without modification,
01917d
+     are permitted in any medium without royalty provided the copyright
01917d
+     notice and this notice are preserved.  -->
01917d
+
01917d
+
01917d
+
01917d
+
01917d
+<target>
01917d
+  <architecture>s390:64-bit</architecture>
01917d
+  <xi:include href="s390x-core64.xml"/>
01917d
+  <xi:include href="s390-acr.xml"/>
01917d
+  <xi:include href="s390-fpr.xml"/>
01917d
+
01917d
+  <feature name="org.gnu.gdb.s390.linux">
01917d
+    <reg name="orig_r2" bitsize="64" type="uint64" group="system"/>
01917d
+    <reg name="last_break" bitsize="64" type="code_ptr" group="system" save-restore="no"/>
01917d
+    <reg name="system_call" bitsize="32" type="uint32" group="system"/>
01917d
+  </feature>
01917d
+
01917d
+  <xi:include href="s390-tdb.xml"/>
01917d
+  <xi:include href="s390-vx.xml"/>
01917d
+</target>
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390x-vx-linux64.c
01917d
@@ -0,0 +1,150 @@
01917d
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
01917d
+  Original: s390x-vx-linux64.xml */
01917d
+
01917d
+#include "defs.h"
01917d
+#include "osabi.h"
01917d
+#include "target-descriptions.h"
01917d
+
01917d
+struct target_desc *tdesc_s390x_vx_linux64;
01917d
+static void
01917d
+initialize_tdesc_s390x_vx_linux64 (void)
01917d
+{
01917d
+  struct target_desc *result = allocate_target_description ();
01917d
+  struct tdesc_feature *feature;
01917d
+  struct tdesc_type *field_type;
01917d
+  struct tdesc_type *type;
01917d
+
01917d
+  set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
01917d
+  tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r0", 2, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r1", 3, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r2", 4, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r3", 5, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r4", 6, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r5", 7, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r6", 8, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r7", 9, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r8", 10, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r9", 11, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r10", 12, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r11", 13, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r12", 14, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r13", 15, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r14", 16, 1, "general", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "r15", 17, 1, "general", 64, "uint64");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
01917d
+  tdesc_create_reg (feature, "acr0", 18, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr1", 19, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr2", 20, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr3", 21, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr4", 22, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr5", 23, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr6", 24, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr7", 25, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr8", 26, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr9", 27, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr10", 28, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr11", 29, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr12", 30, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr13", 31, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr14", 32, 1, "access", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "acr15", 33, 1, "access", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
01917d
+  tdesc_create_reg (feature, "fpc", 34, 1, "float", 32, "uint32");
01917d
+  tdesc_create_reg (feature, "f0", 35, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f1", 36, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f2", 37, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f3", 38, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f4", 39, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f5", 40, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f6", 41, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f7", 42, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f8", 43, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f9", 44, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f10", 45, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f11", 46, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f12", 47, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f13", 48, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f14", 49, 1, "float", 64, "ieee_double");
01917d
+  tdesc_create_reg (feature, "f15", 50, 1, "float", 64, "ieee_double");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
01917d
+  tdesc_create_reg (feature, "orig_r2", 51, 1, "system", 64, "uint64");
01917d
+  tdesc_create_reg (feature, "last_break", 52, 0, "system", 64, "code_ptr");
01917d
+  tdesc_create_reg (feature, "system_call", 53, 1, "system", 32, "uint32");
01917d
+
01917d
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
01917d
+  field_type = tdesc_named_type (feature, "ieee_single");
01917d
+  tdesc_create_vector (feature, "v4f", field_type, 4);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "ieee_double");
01917d
+  tdesc_create_vector (feature, "v2d", field_type, 2);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int8");
01917d
+  tdesc_create_vector (feature, "v16i8", field_type, 16);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int16");
01917d
+  tdesc_create_vector (feature, "v8i16", field_type, 8);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int32");
01917d
+  tdesc_create_vector (feature, "v4i32", field_type, 4);
01917d
+
01917d
+  field_type = tdesc_named_type (feature, "int64");
01917d
+  tdesc_create_vector (feature, "v2i64", field_type, 2);
01917d
+
01917d
+  type = tdesc_create_union (feature, "vec128");
01917d
+  field_type = tdesc_named_type (feature, "v4f");
01917d
+  tdesc_add_field (type, "v4_float", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v2d");
01917d
+  tdesc_add_field (type, "v2_double", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v16i8");
01917d
+  tdesc_add_field (type, "v16_int8", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v8i16");
01917d
+  tdesc_add_field (type, "v8_int16", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v4i32");
01917d
+  tdesc_add_field (type, "v4_int32", field_type);
01917d
+  field_type = tdesc_named_type (feature, "v2i64");
01917d
+  tdesc_add_field (type, "v2_int64", field_type);
01917d
+  field_type = tdesc_named_type (feature, "uint128");
01917d
+  tdesc_add_field (type, "uint128", field_type);
01917d
+
01917d
+  tdesc_create_reg (feature, "v0l", 54, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v1l", 55, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v2l", 56, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v3l", 57, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v4l", 58, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v5l", 59, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v6l", 60, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v7l", 61, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v8l", 62, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v9l", 63, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v10l", 64, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v11l", 65, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v12l", 66, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v13l", 67, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v14l", 68, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v15l", 69, 1, NULL, 64, "uint64");
01917d
+  tdesc_create_reg (feature, "v16", 70, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v17", 71, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v18", 72, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v19", 73, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v20", 74, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v21", 75, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v22", 76, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v23", 77, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v24", 78, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v25", 79, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v26", 80, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v27", 81, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v28", 82, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v29", 83, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v30", 84, 1, NULL, 128, "vec128");
01917d
+  tdesc_create_reg (feature, "v31", 85, 1, NULL, 128, "vec128");
01917d
+
01917d
+  tdesc_s390x_vx_linux64 = result;
01917d
+}
01917d
--- /dev/null
01917d
+++ b/gdb/features/s390x-vx-linux64.xml
01917d
@@ -0,0 +1,24 @@
01917d
+
01917d
+
01917d
+
01917d
+     Copying and distribution of this file, with or without modification,
01917d
+     are permitted in any medium without royalty provided the copyright
01917d
+     notice and this notice are preserved.  -->
01917d
+
01917d
+
01917d
+
01917d
+
01917d
+<target>
01917d
+  <architecture>s390:64-bit</architecture>
01917d
+  <xi:include href="s390x-core64.xml"/>
01917d
+  <xi:include href="s390-acr.xml"/>
01917d
+  <xi:include href="s390-fpr.xml"/>
01917d
+
01917d
+  <feature name="org.gnu.gdb.s390.linux">
01917d
+    <reg name="orig_r2" bitsize="64" type="uint64" group="system"/>
01917d
+    <reg name="last_break" bitsize="64" type="code_ptr" group="system" save-restore="no"/>
01917d
+    <reg name="system_call" bitsize="32" type="uint32" group="system"/>
01917d
+  </feature>
01917d
+
01917d
+  <xi:include href="s390-vx.xml"/>
01917d
+</target>
01917d
--- /dev/null
01917d
+++ b/gdb/regformats/s390-tevx-linux64.dat
01917d
@@ -0,0 +1,127 @@
01917d
+# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
01917d
+# Generated from: s390-tevx-linux64.xml
01917d
+name:s390_tevx_linux64
01917d
+xmltarget:s390-tevx-linux64.xml
01917d
+expedite:r14l,r15l,pswa
01917d
+32:pswm
01917d
+32:pswa
01917d
+32:r0h
01917d
+32:r0l
01917d
+32:r1h
01917d
+32:r1l
01917d
+32:r2h
01917d
+32:r2l
01917d
+32:r3h
01917d
+32:r3l
01917d
+32:r4h
01917d
+32:r4l
01917d
+32:r5h
01917d
+32:r5l
01917d
+32:r6h
01917d
+32:r6l
01917d
+32:r7h
01917d
+32:r7l
01917d
+32:r8h
01917d
+32:r8l
01917d
+32:r9h
01917d
+32:r9l
01917d
+32:r10h
01917d
+32:r10l
01917d
+32:r11h
01917d
+32:r11l
01917d
+32:r12h
01917d
+32:r12l
01917d
+32:r13h
01917d
+32:r13l
01917d
+32:r14h
01917d
+32:r14l
01917d
+32:r15h
01917d
+32:r15l
01917d
+32:acr0
01917d
+32:acr1
01917d
+32:acr2
01917d
+32:acr3
01917d
+32:acr4
01917d
+32:acr5
01917d
+32:acr6
01917d
+32:acr7
01917d
+32:acr8
01917d
+32:acr9
01917d
+32:acr10
01917d
+32:acr11
01917d
+32:acr12
01917d
+32:acr13
01917d
+32:acr14
01917d
+32:acr15
01917d
+32:fpc
01917d
+64:f0
01917d
+64:f1
01917d
+64:f2
01917d
+64:f3
01917d
+64:f4
01917d
+64:f5
01917d
+64:f6
01917d
+64:f7
01917d
+64:f8
01917d
+64:f9
01917d
+64:f10
01917d
+64:f11
01917d
+64:f12
01917d
+64:f13
01917d
+64:f14
01917d
+64:f15
01917d
+32:orig_r2
01917d
+32:last_break
01917d
+32:system_call
01917d
+64:tdb0
01917d
+64:tac
01917d
+64:tct
01917d
+64:atia
01917d
+64:tr0
01917d
+64:tr1
01917d
+64:tr2
01917d
+64:tr3
01917d
+64:tr4
01917d
+64:tr5
01917d
+64:tr6
01917d
+64:tr7
01917d
+64:tr8
01917d
+64:tr9
01917d
+64:tr10
01917d
+64:tr11
01917d
+64:tr12
01917d
+64:tr13
01917d
+64:tr14
01917d
+64:tr15
01917d
+64:v0l
01917d
+64:v1l
01917d
+64:v2l
01917d
+64:v3l
01917d
+64:v4l
01917d
+64:v5l
01917d
+64:v6l
01917d
+64:v7l
01917d
+64:v8l
01917d
+64:v9l
01917d
+64:v10l
01917d
+64:v11l
01917d
+64:v12l
01917d
+64:v13l
01917d
+64:v14l
01917d
+64:v15l
01917d
+128:v16
01917d
+128:v17
01917d
+128:v18
01917d
+128:v19
01917d
+128:v20
01917d
+128:v21
01917d
+128:v22
01917d
+128:v23
01917d
+128:v24
01917d
+128:v25
01917d
+128:v26
01917d
+128:v27
01917d
+128:v28
01917d
+128:v29
01917d
+128:v30
01917d
+128:v31
01917d
--- /dev/null
01917d
+++ b/gdb/regformats/s390-vx-linux64.dat
01917d
@@ -0,0 +1,107 @@
01917d
+# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
01917d
+# Generated from: s390-vx-linux64.xml
01917d
+name:s390_vx_linux64
01917d
+xmltarget:s390-vx-linux64.xml
01917d
+expedite:r14l,r15l,pswa
01917d
+32:pswm
01917d
+32:pswa
01917d
+32:r0h
01917d
+32:r0l
01917d
+32:r1h
01917d
+32:r1l
01917d
+32:r2h
01917d
+32:r2l
01917d
+32:r3h
01917d
+32:r3l
01917d
+32:r4h
01917d
+32:r4l
01917d
+32:r5h
01917d
+32:r5l
01917d
+32:r6h
01917d
+32:r6l
01917d
+32:r7h
01917d
+32:r7l
01917d
+32:r8h
01917d
+32:r8l
01917d
+32:r9h
01917d
+32:r9l
01917d
+32:r10h
01917d
+32:r10l
01917d
+32:r11h
01917d
+32:r11l
01917d
+32:r12h
01917d
+32:r12l
01917d
+32:r13h
01917d
+32:r13l
01917d
+32:r14h
01917d
+32:r14l
01917d
+32:r15h
01917d
+32:r15l
01917d
+32:acr0
01917d
+32:acr1
01917d
+32:acr2
01917d
+32:acr3
01917d
+32:acr4
01917d
+32:acr5
01917d
+32:acr6
01917d
+32:acr7
01917d
+32:acr8
01917d
+32:acr9
01917d
+32:acr10
01917d
+32:acr11
01917d
+32:acr12
01917d
+32:acr13
01917d
+32:acr14
01917d
+32:acr15
01917d
+32:fpc
01917d
+64:f0
01917d
+64:f1
01917d
+64:f2
01917d
+64:f3
01917d
+64:f4
01917d
+64:f5
01917d
+64:f6
01917d
+64:f7
01917d
+64:f8
01917d
+64:f9
01917d
+64:f10
01917d
+64:f11
01917d
+64:f12
01917d
+64:f13
01917d
+64:f14
01917d
+64:f15
01917d
+32:orig_r2
01917d
+32:last_break
01917d
+32:system_call
01917d
+64:v0l
01917d
+64:v1l
01917d
+64:v2l
01917d
+64:v3l
01917d
+64:v4l
01917d
+64:v5l
01917d
+64:v6l
01917d
+64:v7l
01917d
+64:v8l
01917d
+64:v9l
01917d
+64:v10l
01917d
+64:v11l
01917d
+64:v12l
01917d
+64:v13l
01917d
+64:v14l
01917d
+64:v15l
01917d
+128:v16
01917d
+128:v17
01917d
+128:v18
01917d
+128:v19
01917d
+128:v20
01917d
+128:v21
01917d
+128:v22
01917d
+128:v23
01917d
+128:v24
01917d
+128:v25
01917d
+128:v26
01917d
+128:v27
01917d
+128:v28
01917d
+128:v29
01917d
+128:v30
01917d
+128:v31
01917d
--- /dev/null
01917d
+++ b/gdb/regformats/s390x-tevx-linux64.dat
01917d
@@ -0,0 +1,111 @@
01917d
+# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
01917d
+# Generated from: s390x-tevx-linux64.xml
01917d
+name:s390x_tevx_linux64
01917d
+xmltarget:s390x-tevx-linux64.xml
01917d
+expedite:r14,r15,pswa
01917d
+64:pswm
01917d
+64:pswa
01917d
+64:r0
01917d
+64:r1
01917d
+64:r2
01917d
+64:r3
01917d
+64:r4
01917d
+64:r5
01917d
+64:r6
01917d
+64:r7
01917d
+64:r8
01917d
+64:r9
01917d
+64:r10
01917d
+64:r11
01917d
+64:r12
01917d
+64:r13
01917d
+64:r14
01917d
+64:r15
01917d
+32:acr0
01917d
+32:acr1
01917d
+32:acr2
01917d
+32:acr3
01917d
+32:acr4
01917d
+32:acr5
01917d
+32:acr6
01917d
+32:acr7
01917d
+32:acr8
01917d
+32:acr9
01917d
+32:acr10
01917d
+32:acr11
01917d
+32:acr12
01917d
+32:acr13
01917d
+32:acr14
01917d
+32:acr15
01917d
+32:fpc
01917d
+64:f0
01917d
+64:f1
01917d
+64:f2
01917d
+64:f3
01917d
+64:f4
01917d
+64:f5
01917d
+64:f6
01917d
+64:f7
01917d
+64:f8
01917d
+64:f9
01917d
+64:f10
01917d
+64:f11
01917d
+64:f12
01917d
+64:f13
01917d
+64:f14
01917d
+64:f15
01917d
+64:orig_r2
01917d
+64:last_break
01917d
+32:system_call
01917d
+64:tdb0
01917d
+64:tac
01917d
+64:tct
01917d
+64:atia
01917d
+64:tr0
01917d
+64:tr1
01917d
+64:tr2
01917d
+64:tr3
01917d
+64:tr4
01917d
+64:tr5
01917d
+64:tr6
01917d
+64:tr7
01917d
+64:tr8
01917d
+64:tr9
01917d
+64:tr10
01917d
+64:tr11
01917d
+64:tr12
01917d
+64:tr13
01917d
+64:tr14
01917d
+64:tr15
01917d
+64:v0l
01917d
+64:v1l
01917d
+64:v2l
01917d
+64:v3l
01917d
+64:v4l
01917d
+64:v5l
01917d
+64:v6l
01917d
+64:v7l
01917d
+64:v8l
01917d
+64:v9l
01917d
+64:v10l
01917d
+64:v11l
01917d
+64:v12l
01917d
+64:v13l
01917d
+64:v14l
01917d
+64:v15l
01917d
+128:v16
01917d
+128:v17
01917d
+128:v18
01917d
+128:v19
01917d
+128:v20
01917d
+128:v21
01917d
+128:v22
01917d
+128:v23
01917d
+128:v24
01917d
+128:v25
01917d
+128:v26
01917d
+128:v27
01917d
+128:v28
01917d
+128:v29
01917d
+128:v30
01917d
+128:v31
01917d
--- /dev/null
01917d
+++ b/gdb/regformats/s390x-vx-linux64.dat
01917d
@@ -0,0 +1,91 @@
01917d
+# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
01917d
+# Generated from: s390x-vx-linux64.xml
01917d
+name:s390x_vx_linux64
01917d
+xmltarget:s390x-vx-linux64.xml
01917d
+expedite:r14,r15,pswa
01917d
+64:pswm
01917d
+64:pswa
01917d
+64:r0
01917d
+64:r1
01917d
+64:r2
01917d
+64:r3
01917d
+64:r4
01917d
+64:r5
01917d
+64:r6
01917d
+64:r7
01917d
+64:r8
01917d
+64:r9
01917d
+64:r10
01917d
+64:r11
01917d
+64:r12
01917d
+64:r13
01917d
+64:r14
01917d
+64:r15
01917d
+32:acr0
01917d
+32:acr1
01917d
+32:acr2
01917d
+32:acr3
01917d
+32:acr4
01917d
+32:acr5
01917d
+32:acr6
01917d
+32:acr7
01917d
+32:acr8
01917d
+32:acr9
01917d
+32:acr10
01917d
+32:acr11
01917d
+32:acr12
01917d
+32:acr13
01917d
+32:acr14
01917d
+32:acr15
01917d
+32:fpc
01917d
+64:f0
01917d
+64:f1
01917d
+64:f2
01917d
+64:f3
01917d
+64:f4
01917d
+64:f5
01917d
+64:f6
01917d
+64:f7
01917d
+64:f8
01917d
+64:f9
01917d
+64:f10
01917d
+64:f11
01917d
+64:f12
01917d
+64:f13
01917d
+64:f14
01917d
+64:f15
01917d
+64:orig_r2
01917d
+64:last_break
01917d
+32:system_call
01917d
+64:v0l
01917d
+64:v1l
01917d
+64:v2l
01917d
+64:v3l
01917d
+64:v4l
01917d
+64:v5l
01917d
+64:v6l
01917d
+64:v7l
01917d
+64:v8l
01917d
+64:v9l
01917d
+64:v10l
01917d
+64:v11l
01917d
+64:v12l
01917d
+64:v13l
01917d
+64:v14l
01917d
+64:v15l
01917d
+128:v16
01917d
+128:v17
01917d
+128:v18
01917d
+128:v19
01917d
+128:v20
01917d
+128:v21
01917d
+128:v22
01917d
+128:v23
01917d
+128:v24
01917d
+128:v25
01917d
+128:v26
01917d
+128:v27
01917d
+128:v28
01917d
+128:v29
01917d
+128:v30
01917d
+128:v31