S390: Add target descriptions for vector register sets

The IBM z13 has new vector registers v0-v31 which are presented by the
Linux kernel as two additional register sets.  This patch adds XML
descriptions and the respective autogenerated .c and .dat files for
S390 targets with this feature.  Note that supported combinations
include targets with and without a transactional execution facility.

gdb/ChangeLog:

	* features/s390-tevx-linux64.xml: New file.
	* features/s390-vx-linux64.xml: New file.
	* features/s390-vx.xml: New file.
	* features/s390x-tevx-linux64.xml: New file.
	* features/s390x-vx-linux64.xml: New file.
	* features/Makefile (WHICH): Add s390-vx-linux64,
	s390x-vx-linux64, s390-tevx-linux64, and s390x-tevx-linux64.
	(s390-vx-linux64-expedite, s390-tevx-linux64-expedite)
	(s390x-vx-linux64-expedite, s390x-tevx-linux64-expedite): New
	macros.
	* features/s390-tevx-linux64.c: New generated file.
	* features/s390-vx-linux64.c: Likewise.
	* features/s390x-tevx-linux64.c: Likewise.
	* features/s390x-vx-linux64.c: Likewise.
	* regformats/s390-tevx-linux64.dat: Likewise.
	* regformats/s390-vx-linux64.dat: Likewise.
	* regformats/s390x-tevx-linux64.dat: Likewise.
	* regformats/s390x-vx-linux64.dat: Likewise.

gdb/doc/ChangeLog:

	* gdb.texinfo (S/390 and System z Features): Describe new feature
	"org.gnu.gdb.s390.vx".
This commit is contained in:
Andreas Arnez 2015-03-02 10:57:39 +01:00 committed by Andreas Krebbel
parent daf220f0a7
commit 446899e472
17 changed files with 1311 additions and 1 deletions

View File

@ -1,3 +1,24 @@
2015-03-02 Andreas Arnez <arnez@linux.vnet.ibm.com>
* features/s390-tevx-linux64.xml: New file.
* features/s390-vx-linux64.xml: New file.
* features/s390-vx.xml: New file.
* features/s390x-tevx-linux64.xml: New file.
* features/s390x-vx-linux64.xml: New file.
* features/Makefile (WHICH): Add s390-vx-linux64,
s390x-vx-linux64, s390-tevx-linux64, and s390x-tevx-linux64.
(s390-vx-linux64-expedite, s390-tevx-linux64-expedite)
(s390x-vx-linux64-expedite, s390x-tevx-linux64-expedite): New
macros.
* features/s390-tevx-linux64.c: New generated file.
* features/s390-vx-linux64.c: Likewise.
* features/s390x-tevx-linux64.c: Likewise.
* features/s390x-vx-linux64.c: Likewise.
* regformats/s390-tevx-linux64.dat: Likewise.
* regformats/s390-vx-linux64.dat: Likewise.
* regformats/s390x-tevx-linux64.dat: Likewise.
* regformats/s390x-vx-linux64.dat: Likewise.
2015-02-28 Doug Evans <xdje42@gmail.com>
* symtab.h (struct symtab) <next>: Fix comment.

View File

@ -1,3 +1,8 @@
2015-03-02 Andreas Arnez <arnez@linux.vnet.ibm.com>
* gdb.texinfo (S/390 and System z Features): Describe new feature
"org.gnu.gdb.s390.vx".
2015-02-23 Sergio Durigan Junior <sergiodj@redhat.com>
PR gdb/18008

View File

@ -39933,6 +39933,14 @@ The @samp{org.gnu.gdb.s390.tdb} feature is optional. It should
contain the 64-bit registers @samp{tdb0}, @samp{tac}, @samp{tct},
@samp{atia}, and @samp{tr0} through @samp{tr15}.
The @samp{org.gnu.gdb.s390.vx} feature is optional. It should contain
64-bit wide registers @samp{v0l} through @samp{v15l}, which will be
combined by @value{GDBN} with the floating point registers @samp{f0}
through @samp{f15} to present the 128-bit wide vector registers
@samp{v0} through @samp{v15}. In addition, this feature should
contain the 128-bit wide vector registers @samp{v16} through
@samp{v31}.
@node TIC6x Features
@subsection TMS320C6x Features
@cindex target descriptions, TIC6x features

View File

@ -68,7 +68,8 @@ WHICH = aarch64 \
s390-linux32 s390-linux64 s390x-linux64 \
s390-linux32v1 s390-linux64v1 s390x-linux64v1 \
s390-linux32v2 s390-linux64v2 s390x-linux64v2 \
s390-te-linux64 s390x-te-linux64 \
s390-te-linux64 s390x-te-linux64 s390-vx-linux64 s390x-vx-linux64 \
s390-tevx-linux64 s390x-tevx-linux64 \
tic6x-c64xp tic6x-c64x tic6x-c62x \
tic6x-c64xp-linux tic6x-c64x-linux tic6x-c62x-linux
@ -115,10 +116,14 @@ s390-linux64-expedite = r14l,r15l,pswa
s390-linux64v1-expedite = r14l,r15l,pswa
s390-linux64v2-expedite = r14l,r15l,pswa
s390-te-linux64-expedite = r14l,r15l,pswa
s390-vx-linux64-expedite = r14l,r15l,pswa
s390-tevx-linux64-expedite = r14l,r15l,pswa
s390x-linux64-expedite = r14,r15,pswa
s390x-linux64v1-expedite = r14,r15,pswa
s390x-linux64v2-expedite = r14,r15,pswa
s390x-te-linux64-expedite = r14,r15,pswa
s390x-vx-linux64-expedite = r14,r15,pswa
s390x-tevx-linux64-expedite = r14,r15,pswa
tic6x-c64xp-expedite = A15,PC
tic6x-c64x-expedite = A15,PC
tic6x-c62x-expedite = A15,PC

View File

@ -0,0 +1,188 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: s390-tevx-linux64.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_s390_tevx_linux64;
static void
initialize_tdesc_s390_tevx_linux64 (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
struct tdesc_type *field_type;
struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
tdesc_create_reg (feature, "r0h", 2, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r0l", 3, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r1h", 4, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r1l", 5, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r2h", 6, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r2l", 7, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r3h", 8, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r3l", 9, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r4h", 10, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r4l", 11, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r5h", 12, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r5l", 13, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r6h", 14, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r6l", 15, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r7h", 16, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r7l", 17, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r8h", 18, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r8l", 19, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r9h", 20, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r9l", 21, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r10h", 22, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r10l", 23, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r11h", 24, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r11l", 25, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r12h", 26, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r12l", 27, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r13h", 28, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r13l", 29, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r14h", 30, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r14l", 31, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r15h", 32, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r15l", 33, 1, "lower", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
tdesc_create_reg (feature, "acr0", 34, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr1", 35, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr2", 36, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr3", 37, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr4", 38, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr5", 39, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr6", 40, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr7", 41, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr8", 42, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr9", 43, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr10", 44, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr11", 45, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr12", 46, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr13", 47, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr14", 48, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr15", 49, 1, "access", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
tdesc_create_reg (feature, "fpc", 50, 1, "float", 32, "uint32");
tdesc_create_reg (feature, "f0", 51, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f1", 52, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f2", 53, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f3", 54, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f4", 55, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f5", 56, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f6", 57, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f7", 58, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f8", 59, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f9", 60, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f10", 61, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f11", 62, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f12", 63, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f13", 64, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f14", 65, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f15", 66, 1, "float", 64, "ieee_double");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
tdesc_create_reg (feature, "orig_r2", 67, 1, "system", 32, "uint32");
tdesc_create_reg (feature, "last_break", 68, 0, "system", 32, "code_ptr");
tdesc_create_reg (feature, "system_call", 69, 1, "system", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.tdb");
tdesc_create_reg (feature, "tdb0", 70, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tac", 71, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tct", 72, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "atia", 73, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr0", 74, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr1", 75, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr2", 76, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr3", 77, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr4", 78, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr5", 79, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr6", 80, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr7", 81, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr8", 82, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr9", 83, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr10", 84, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr11", 85, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr12", 86, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr13", 87, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr14", 88, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr15", 89, 1, "tdb", 64, "uint64");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
tdesc_create_reg (feature, "v0l", 90, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v1l", 91, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v2l", 92, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v3l", 93, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v4l", 94, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v5l", 95, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v6l", 96, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v7l", 97, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v8l", 98, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v9l", 99, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v10l", 100, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v11l", 101, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v12l", 102, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v13l", 103, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v14l", 104, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v15l", 105, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v16", 106, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v17", 107, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v18", 108, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v19", 109, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v20", 110, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v21", 111, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v22", 112, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v23", 113, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v24", 114, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v25", 115, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v26", 116, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v27", 117, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v28", 118, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v29", 119, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v30", 120, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v31", 121, 1, NULL, 128, "vec128");
tdesc_s390_tevx_linux64 = result;
}

View File

@ -0,0 +1,26 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2015 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- S/390 31-bit user-level code on a machine operating
in z/Architecture mode. -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<architecture>s390:31-bit</architecture>
<xi:include href="s390-core64.xml"/>
<xi:include href="s390-acr.xml"/>
<xi:include href="s390-fpr.xml"/>
<feature name="org.gnu.gdb.s390.linux">
<reg name="orig_r2" bitsize="32" type="uint32" group="system"/>
<reg name="last_break" bitsize="32" type="code_ptr" group="system" save-restore="no"/>
<reg name="system_call" bitsize="32" type="uint32" group="system"/>
</feature>
<xi:include href="s390-tdb.xml"/>
<xi:include href="s390-vx.xml"/>
</target>

View File

@ -0,0 +1,166 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: s390-vx-linux64.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_s390_vx_linux64;
static void
initialize_tdesc_s390_vx_linux64 (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
struct tdesc_type *field_type;
struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
tdesc_create_reg (feature, "r0h", 2, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r0l", 3, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r1h", 4, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r1l", 5, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r2h", 6, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r2l", 7, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r3h", 8, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r3l", 9, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r4h", 10, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r4l", 11, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r5h", 12, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r5l", 13, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r6h", 14, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r6l", 15, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r7h", 16, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r7l", 17, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r8h", 18, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r8l", 19, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r9h", 20, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r9l", 21, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r10h", 22, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r10l", 23, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r11h", 24, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r11l", 25, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r12h", 26, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r12l", 27, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r13h", 28, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r13l", 29, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r14h", 30, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r14l", 31, 1, "lower", 32, "uint32");
tdesc_create_reg (feature, "r15h", 32, 1, "upper", 32, "uint32");
tdesc_create_reg (feature, "r15l", 33, 1, "lower", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
tdesc_create_reg (feature, "acr0", 34, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr1", 35, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr2", 36, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr3", 37, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr4", 38, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr5", 39, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr6", 40, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr7", 41, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr8", 42, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr9", 43, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr10", 44, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr11", 45, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr12", 46, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr13", 47, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr14", 48, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr15", 49, 1, "access", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
tdesc_create_reg (feature, "fpc", 50, 1, "float", 32, "uint32");
tdesc_create_reg (feature, "f0", 51, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f1", 52, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f2", 53, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f3", 54, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f4", 55, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f5", 56, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f6", 57, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f7", 58, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f8", 59, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f9", 60, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f10", 61, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f11", 62, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f12", 63, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f13", 64, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f14", 65, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f15", 66, 1, "float", 64, "ieee_double");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
tdesc_create_reg (feature, "orig_r2", 67, 1, "system", 32, "uint32");
tdesc_create_reg (feature, "last_break", 68, 0, "system", 32, "code_ptr");
tdesc_create_reg (feature, "system_call", 69, 1, "system", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
tdesc_create_reg (feature, "v0l", 70, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v1l", 71, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v2l", 72, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v3l", 73, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v4l", 74, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v5l", 75, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v6l", 76, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v7l", 77, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v8l", 78, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v9l", 79, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v10l", 80, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v11l", 81, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v12l", 82, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v13l", 83, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v14l", 84, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v15l", 85, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v16", 86, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v17", 87, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v18", 88, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v19", 89, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v20", 90, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v21", 91, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v22", 92, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v23", 93, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v24", 94, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v25", 95, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v26", 96, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v27", 97, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v28", 98, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v29", 99, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v30", 100, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v31", 101, 1, NULL, 128, "vec128");
tdesc_s390_vx_linux64 = result;
}

View File

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2015 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- S/390 31-bit user-level code on a machine operating
in z/Architecture mode. -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<architecture>s390:31-bit</architecture>
<xi:include href="s390-core64.xml"/>
<xi:include href="s390-acr.xml"/>
<xi:include href="s390-fpr.xml"/>
<feature name="org.gnu.gdb.s390.linux">
<reg name="orig_r2" bitsize="32" type="uint32" group="system"/>
<reg name="last_break" bitsize="32" type="code_ptr" group="system" save-restore="no"/>
<reg name="system_call" bitsize="32" type="uint32" group="system"/>
</feature>
<xi:include href="s390-vx.xml"/>
</target>

59
gdb/features/s390-vx.xml Normal file
View File

@ -0,0 +1,59 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2015 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
<feature name="org.gnu.gdb.s390.vx">
<vector id="v4f" type="ieee_single" count="4"/>
<vector id="v2d" type="ieee_double" count="2"/>
<vector id="v16i8" type="int8" count="16"/>
<vector id="v8i16" type="int16" count="8"/>
<vector id="v4i32" type="int32" count="4"/>
<vector id="v2i64" type="int64" count="2"/>
<union id="vec128">
<field name="v4_float" type="v4f"/>
<field name="v2_double" type="v2d"/>
<field name="v16_int8" type="v16i8"/>
<field name="v8_int16" type="v8i16"/>
<field name="v4_int32" type="v4i32"/>
<field name="v2_int64" type="v2i64"/>
<field name="uint128" type="uint128"/>
</union>
<reg name="v0l" bitsize="64" type="uint64"/>
<reg name="v1l" bitsize="64" type="uint64"/>
<reg name="v2l" bitsize="64" type="uint64"/>
<reg name="v3l" bitsize="64" type="uint64"/>
<reg name="v4l" bitsize="64" type="uint64"/>
<reg name="v5l" bitsize="64" type="uint64"/>
<reg name="v6l" bitsize="64" type="uint64"/>
<reg name="v7l" bitsize="64" type="uint64"/>
<reg name="v8l" bitsize="64" type="uint64"/>
<reg name="v9l" bitsize="64" type="uint64"/>
<reg name="v10l" bitsize="64" type="uint64"/>
<reg name="v11l" bitsize="64" type="uint64"/>
<reg name="v12l" bitsize="64" type="uint64"/>
<reg name="v13l" bitsize="64" type="uint64"/>
<reg name="v14l" bitsize="64" type="uint64"/>
<reg name="v15l" bitsize="64" type="uint64"/>
<reg name="v16" bitsize="128" type="vec128"/>
<reg name="v17" bitsize="128" type="vec128"/>
<reg name="v18" bitsize="128" type="vec128"/>
<reg name="v19" bitsize="128" type="vec128"/>
<reg name="v20" bitsize="128" type="vec128"/>
<reg name="v21" bitsize="128" type="vec128"/>
<reg name="v22" bitsize="128" type="vec128"/>
<reg name="v23" bitsize="128" type="vec128"/>
<reg name="v24" bitsize="128" type="vec128"/>
<reg name="v25" bitsize="128" type="vec128"/>
<reg name="v26" bitsize="128" type="vec128"/>
<reg name="v27" bitsize="128" type="vec128"/>
<reg name="v28" bitsize="128" type="vec128"/>
<reg name="v29" bitsize="128" type="vec128"/>
<reg name="v30" bitsize="128" type="vec128"/>
<reg name="v31" bitsize="128" type="vec128"/>
</feature>

View File

@ -0,0 +1,172 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: s390x-tevx-linux64.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_s390x_tevx_linux64;
static void
initialize_tdesc_s390x_tevx_linux64 (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
struct tdesc_type *field_type;
struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
tdesc_create_reg (feature, "r0", 2, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r1", 3, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r2", 4, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r3", 5, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r4", 6, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r5", 7, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r6", 8, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r7", 9, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r8", 10, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r9", 11, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r10", 12, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r11", 13, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r12", 14, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r13", 15, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r14", 16, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r15", 17, 1, "general", 64, "uint64");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
tdesc_create_reg (feature, "acr0", 18, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr1", 19, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr2", 20, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr3", 21, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr4", 22, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr5", 23, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr6", 24, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr7", 25, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr8", 26, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr9", 27, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr10", 28, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr11", 29, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr12", 30, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr13", 31, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr14", 32, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr15", 33, 1, "access", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
tdesc_create_reg (feature, "fpc", 34, 1, "float", 32, "uint32");
tdesc_create_reg (feature, "f0", 35, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f1", 36, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f2", 37, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f3", 38, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f4", 39, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f5", 40, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f6", 41, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f7", 42, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f8", 43, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f9", 44, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f10", 45, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f11", 46, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f12", 47, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f13", 48, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f14", 49, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f15", 50, 1, "float", 64, "ieee_double");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
tdesc_create_reg (feature, "orig_r2", 51, 1, "system", 64, "uint64");
tdesc_create_reg (feature, "last_break", 52, 0, "system", 64, "code_ptr");
tdesc_create_reg (feature, "system_call", 53, 1, "system", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.tdb");
tdesc_create_reg (feature, "tdb0", 54, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tac", 55, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tct", 56, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "atia", 57, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr0", 58, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr1", 59, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr2", 60, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr3", 61, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr4", 62, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr5", 63, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr6", 64, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr7", 65, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr8", 66, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr9", 67, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr10", 68, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr11", 69, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr12", 70, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr13", 71, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr14", 72, 1, "tdb", 64, "uint64");
tdesc_create_reg (feature, "tr15", 73, 1, "tdb", 64, "uint64");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
tdesc_create_reg (feature, "v0l", 74, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v1l", 75, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v2l", 76, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v3l", 77, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v4l", 78, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v5l", 79, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v6l", 80, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v7l", 81, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v8l", 82, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v9l", 83, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v10l", 84, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v11l", 85, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v12l", 86, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v13l", 87, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v14l", 88, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v15l", 89, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v16", 90, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v17", 91, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v18", 92, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v19", 93, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v20", 94, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v21", 95, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v22", 96, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v23", 97, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v24", 98, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v25", 99, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v26", 100, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v27", 101, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v28", 102, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v29", 103, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v30", 104, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v31", 105, 1, NULL, 128, "vec128");
tdesc_s390x_tevx_linux64 = result;
}

View File

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2015 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- S/390 64-bit user-level code. -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<architecture>s390:64-bit</architecture>
<xi:include href="s390x-core64.xml"/>
<xi:include href="s390-acr.xml"/>
<xi:include href="s390-fpr.xml"/>
<feature name="org.gnu.gdb.s390.linux">
<reg name="orig_r2" bitsize="64" type="uint64" group="system"/>
<reg name="last_break" bitsize="64" type="code_ptr" group="system" save-restore="no"/>
<reg name="system_call" bitsize="32" type="uint32" group="system"/>
</feature>
<xi:include href="s390-tdb.xml"/>
<xi:include href="s390-vx.xml"/>
</target>

View File

@ -0,0 +1,150 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: s390x-vx-linux64.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_s390x_vx_linux64;
static void
initialize_tdesc_s390x_vx_linux64 (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
struct tdesc_type *field_type;
struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
tdesc_create_reg (feature, "r0", 2, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r1", 3, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r2", 4, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r3", 5, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r4", 6, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r5", 7, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r6", 8, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r7", 9, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r8", 10, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r9", 11, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r10", 12, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r11", 13, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r12", 14, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r13", 15, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r14", 16, 1, "general", 64, "uint64");
tdesc_create_reg (feature, "r15", 17, 1, "general", 64, "uint64");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
tdesc_create_reg (feature, "acr0", 18, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr1", 19, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr2", 20, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr3", 21, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr4", 22, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr5", 23, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr6", 24, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr7", 25, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr8", 26, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr9", 27, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr10", 28, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr11", 29, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr12", 30, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr13", 31, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr14", 32, 1, "access", 32, "uint32");
tdesc_create_reg (feature, "acr15", 33, 1, "access", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
tdesc_create_reg (feature, "fpc", 34, 1, "float", 32, "uint32");
tdesc_create_reg (feature, "f0", 35, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f1", 36, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f2", 37, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f3", 38, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f4", 39, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f5", 40, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f6", 41, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f7", 42, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f8", 43, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f9", 44, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f10", 45, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f11", 46, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f12", 47, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f13", 48, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f14", 49, 1, "float", 64, "ieee_double");
tdesc_create_reg (feature, "f15", 50, 1, "float", 64, "ieee_double");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
tdesc_create_reg (feature, "orig_r2", 51, 1, "system", 64, "uint64");
tdesc_create_reg (feature, "last_break", 52, 0, "system", 64, "code_ptr");
tdesc_create_reg (feature, "system_call", 53, 1, "system", 32, "uint32");
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
tdesc_create_reg (feature, "v0l", 54, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v1l", 55, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v2l", 56, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v3l", 57, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v4l", 58, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v5l", 59, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v6l", 60, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v7l", 61, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v8l", 62, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v9l", 63, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v10l", 64, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v11l", 65, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v12l", 66, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v13l", 67, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v14l", 68, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v15l", 69, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "v16", 70, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v17", 71, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v18", 72, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v19", 73, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v20", 74, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v21", 75, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v22", 76, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v23", 77, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v24", 78, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v25", 79, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v26", 80, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v27", 81, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v28", 82, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v29", 83, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v30", 84, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "v31", 85, 1, NULL, 128, "vec128");
tdesc_s390x_vx_linux64 = result;
}

View File

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2015 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- S/390 64-bit user-level code. -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<architecture>s390:64-bit</architecture>
<xi:include href="s390x-core64.xml"/>
<xi:include href="s390-acr.xml"/>
<xi:include href="s390-fpr.xml"/>
<feature name="org.gnu.gdb.s390.linux">
<reg name="orig_r2" bitsize="64" type="uint64" group="system"/>
<reg name="last_break" bitsize="64" type="code_ptr" group="system" save-restore="no"/>
<reg name="system_call" bitsize="32" type="uint32" group="system"/>
</feature>
<xi:include href="s390-vx.xml"/>
</target>

View File

@ -0,0 +1,127 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: s390-tevx-linux64.xml
name:s390_tevx_linux64
xmltarget:s390-tevx-linux64.xml
expedite:r14l,r15l,pswa
32:pswm
32:pswa
32:r0h
32:r0l
32:r1h
32:r1l
32:r2h
32:r2l
32:r3h
32:r3l
32:r4h
32:r4l
32:r5h
32:r5l
32:r6h
32:r6l
32:r7h
32:r7l
32:r8h
32:r8l
32:r9h
32:r9l
32:r10h
32:r10l
32:r11h
32:r11l
32:r12h
32:r12l
32:r13h
32:r13l
32:r14h
32:r14l
32:r15h
32:r15l
32:acr0
32:acr1
32:acr2
32:acr3
32:acr4
32:acr5
32:acr6
32:acr7
32:acr8
32:acr9
32:acr10
32:acr11
32:acr12
32:acr13
32:acr14
32:acr15
32:fpc
64:f0
64:f1
64:f2
64:f3
64:f4
64:f5
64:f6
64:f7
64:f8
64:f9
64:f10
64:f11
64:f12
64:f13
64:f14
64:f15
32:orig_r2
32:last_break
32:system_call
64:tdb0
64:tac
64:tct
64:atia
64:tr0
64:tr1
64:tr2
64:tr3
64:tr4
64:tr5
64:tr6
64:tr7
64:tr8
64:tr9
64:tr10
64:tr11
64:tr12
64:tr13
64:tr14
64:tr15
64:v0l
64:v1l
64:v2l
64:v3l
64:v4l
64:v5l
64:v6l
64:v7l
64:v8l
64:v9l
64:v10l
64:v11l
64:v12l
64:v13l
64:v14l
64:v15l
128:v16
128:v17
128:v18
128:v19
128:v20
128:v21
128:v22
128:v23
128:v24
128:v25
128:v26
128:v27
128:v28
128:v29
128:v30
128:v31

View File

@ -0,0 +1,107 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: s390-vx-linux64.xml
name:s390_vx_linux64
xmltarget:s390-vx-linux64.xml
expedite:r14l,r15l,pswa
32:pswm
32:pswa
32:r0h
32:r0l
32:r1h
32:r1l
32:r2h
32:r2l
32:r3h
32:r3l
32:r4h
32:r4l
32:r5h
32:r5l
32:r6h
32:r6l
32:r7h
32:r7l
32:r8h
32:r8l
32:r9h
32:r9l
32:r10h
32:r10l
32:r11h
32:r11l
32:r12h
32:r12l
32:r13h
32:r13l
32:r14h
32:r14l
32:r15h
32:r15l
32:acr0
32:acr1
32:acr2
32:acr3
32:acr4
32:acr5
32:acr6
32:acr7
32:acr8
32:acr9
32:acr10
32:acr11
32:acr12
32:acr13
32:acr14
32:acr15
32:fpc
64:f0
64:f1
64:f2
64:f3
64:f4
64:f5
64:f6
64:f7
64:f8
64:f9
64:f10
64:f11
64:f12
64:f13
64:f14
64:f15
32:orig_r2
32:last_break
32:system_call
64:v0l
64:v1l
64:v2l
64:v3l
64:v4l
64:v5l
64:v6l
64:v7l
64:v8l
64:v9l
64:v10l
64:v11l
64:v12l
64:v13l
64:v14l
64:v15l
128:v16
128:v17
128:v18
128:v19
128:v20
128:v21
128:v22
128:v23
128:v24
128:v25
128:v26
128:v27
128:v28
128:v29
128:v30
128:v31

View File

@ -0,0 +1,111 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: s390x-tevx-linux64.xml
name:s390x_tevx_linux64
xmltarget:s390x-tevx-linux64.xml
expedite:r14,r15,pswa
64:pswm
64:pswa
64:r0
64:r1
64:r2
64:r3
64:r4
64:r5
64:r6
64:r7
64:r8
64:r9
64:r10
64:r11
64:r12
64:r13
64:r14
64:r15
32:acr0
32:acr1
32:acr2
32:acr3
32:acr4
32:acr5
32:acr6
32:acr7
32:acr8
32:acr9
32:acr10
32:acr11
32:acr12
32:acr13
32:acr14
32:acr15
32:fpc
64:f0
64:f1
64:f2
64:f3
64:f4
64:f5
64:f6
64:f7
64:f8
64:f9
64:f10
64:f11
64:f12
64:f13
64:f14
64:f15
64:orig_r2
64:last_break
32:system_call
64:tdb0
64:tac
64:tct
64:atia
64:tr0
64:tr1
64:tr2
64:tr3
64:tr4
64:tr5
64:tr6
64:tr7
64:tr8
64:tr9
64:tr10
64:tr11
64:tr12
64:tr13
64:tr14
64:tr15
64:v0l
64:v1l
64:v2l
64:v3l
64:v4l
64:v5l
64:v6l
64:v7l
64:v8l
64:v9l
64:v10l
64:v11l
64:v12l
64:v13l
64:v14l
64:v15l
128:v16
128:v17
128:v18
128:v19
128:v20
128:v21
128:v22
128:v23
128:v24
128:v25
128:v26
128:v27
128:v28
128:v29
128:v30
128:v31

View File

@ -0,0 +1,91 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: s390x-vx-linux64.xml
name:s390x_vx_linux64
xmltarget:s390x-vx-linux64.xml
expedite:r14,r15,pswa
64:pswm
64:pswa
64:r0
64:r1
64:r2
64:r3
64:r4
64:r5
64:r6
64:r7
64:r8
64:r9
64:r10
64:r11
64:r12
64:r13
64:r14
64:r15
32:acr0
32:acr1
32:acr2
32:acr3
32:acr4
32:acr5
32:acr6
32:acr7
32:acr8
32:acr9
32:acr10
32:acr11
32:acr12
32:acr13
32:acr14
32:acr15
32:fpc
64:f0
64:f1
64:f2
64:f3
64:f4
64:f5
64:f6
64:f7
64:f8
64:f9
64:f10
64:f11
64:f12
64:f13
64:f14
64:f15
64:orig_r2
64:last_break
32:system_call
64:v0l
64:v1l
64:v2l
64:v3l
64:v4l
64:v5l
64:v6l
64:v7l
64:v8l
64:v9l
64:v10l
64:v11l
64:v12l
64:v13l
64:v14l
64:v15l
128:v16
128:v17
128:v18
128:v19
128:v20
128:v21
128:v22
128:v23
128:v24
128:v25
128:v26
128:v27
128:v28
128:v29
128:v30
128:v31