Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
gdb.783
0001-S390-Add-target-descriptions-for-vector-re...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-S390-Add-target-descriptions-for-vector-register-set.patch of Package gdb.783
Part of fate#318039 From 446899e472025a04017064f5172105cec70eb357 Mon Sep 17 00:00:00 2001 From: Andreas Arnez <arnez@linux.vnet.ibm.com> Date: Mon, 2 Mar 2015 10:57:39 +0100 Subject: [PATCH] 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". --- gdb/ChangeLog | 21 ++++ gdb/doc/ChangeLog | 5 + gdb/doc/gdb.texinfo | 8 ++ gdb/features/Makefile | 7 +- gdb/features/s390-tevx-linux64.c | 188 ++++++++++++++++++++++++++++++++++ gdb/features/s390-tevx-linux64.xml | 26 +++++ gdb/features/s390-vx-linux64.c | 166 ++++++++++++++++++++++++++++++ gdb/features/s390-vx-linux64.xml | 25 +++++ gdb/features/s390-vx.xml | 59 +++++++++++ gdb/features/s390x-tevx-linux64.c | 172 +++++++++++++++++++++++++++++++ gdb/features/s390x-tevx-linux64.xml | 25 +++++ gdb/features/s390x-vx-linux64.c | 150 +++++++++++++++++++++++++++ gdb/features/s390x-vx-linux64.xml | 24 +++++ gdb/regformats/s390-tevx-linux64.dat | 127 +++++++++++++++++++++++ gdb/regformats/s390-vx-linux64.dat | 107 +++++++++++++++++++ gdb/regformats/s390x-tevx-linux64.dat | 111 ++++++++++++++++++++ gdb/regformats/s390x-vx-linux64.dat | 91 ++++++++++++++++ 17 files changed, 1311 insertions(+), 1 deletion(-) create mode 100644 gdb/features/s390-tevx-linux64.c create mode 100644 gdb/features/s390-tevx-linux64.xml create mode 100644 gdb/features/s390-vx-linux64.c create mode 100644 gdb/features/s390-vx-linux64.xml create mode 100644 gdb/features/s390-vx.xml create mode 100644 gdb/features/s390x-tevx-linux64.c create mode 100644 gdb/features/s390x-tevx-linux64.xml create mode 100644 gdb/features/s390x-vx-linux64.c create mode 100644 gdb/features/s390x-vx-linux64.xml create mode 100644 gdb/regformats/s390-tevx-linux64.dat create mode 100644 gdb/regformats/s390-vx-linux64.dat create mode 100644 gdb/regformats/s390x-tevx-linux64.dat create mode 100644 gdb/regformats/s390x-vx-linux64.dat diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index e84a251..19df52f 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -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 diff --git a/gdb/features/Makefile b/gdb/features/Makefile index 07cd2cb..74006e2 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -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 diff --git a/gdb/features/s390-tevx-linux64.c b/gdb/features/s390-tevx-linux64.c new file mode 100644 index 0000000..5bc3eec --- /dev/null +++ b/gdb/features/s390-tevx-linux64.c @@ -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; +} diff --git a/gdb/features/s390-tevx-linux64.xml b/gdb/features/s390-tevx-linux64.xml new file mode 100644 index 0000000..9da1f6d --- /dev/null +++ b/gdb/features/s390-tevx-linux64.xml @@ -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> diff --git a/gdb/features/s390-vx-linux64.c b/gdb/features/s390-vx-linux64.c new file mode 100644 index 0000000..c3ffa16 --- /dev/null +++ b/gdb/features/s390-vx-linux64.c @@ -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; +} diff --git a/gdb/features/s390-vx-linux64.xml b/gdb/features/s390-vx-linux64.xml new file mode 100644 index 0000000..ef8ebc0 --- /dev/null +++ b/gdb/features/s390-vx-linux64.xml @@ -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> diff --git a/gdb/features/s390-vx.xml b/gdb/features/s390-vx.xml new file mode 100644 index 0000000..bfae8a1 --- /dev/null +++ b/gdb/features/s390-vx.xml @@ -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> diff --git a/gdb/features/s390x-tevx-linux64.c b/gdb/features/s390x-tevx-linux64.c new file mode 100644 index 0000000..327cd23 --- /dev/null +++ b/gdb/features/s390x-tevx-linux64.c @@ -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; +} diff --git a/gdb/features/s390x-tevx-linux64.xml b/gdb/features/s390x-tevx-linux64.xml new file mode 100644 index 0000000..974992b --- /dev/null +++ b/gdb/features/s390x-tevx-linux64.xml @@ -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> diff --git a/gdb/features/s390x-vx-linux64.c b/gdb/features/s390x-vx-linux64.c new file mode 100644 index 0000000..e66da70 --- /dev/null +++ b/gdb/features/s390x-vx-linux64.c @@ -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; +} diff --git a/gdb/features/s390x-vx-linux64.xml b/gdb/features/s390x-vx-linux64.xml new file mode 100644 index 0000000..fd2f42e --- /dev/null +++ b/gdb/features/s390x-vx-linux64.xml @@ -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> diff --git a/gdb/regformats/s390-tevx-linux64.dat b/gdb/regformats/s390-tevx-linux64.dat new file mode 100644 index 0000000..3db7a91 --- /dev/null +++ b/gdb/regformats/s390-tevx-linux64.dat @@ -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 diff --git a/gdb/regformats/s390-vx-linux64.dat b/gdb/regformats/s390-vx-linux64.dat new file mode 100644 index 0000000..6a821fd --- /dev/null +++ b/gdb/regformats/s390-vx-linux64.dat @@ -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 diff --git a/gdb/regformats/s390x-tevx-linux64.dat b/gdb/regformats/s390x-tevx-linux64.dat new file mode 100644 index 0000000..2df31e6 --- /dev/null +++ b/gdb/regformats/s390x-tevx-linux64.dat @@ -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 diff --git a/gdb/regformats/s390x-vx-linux64.dat b/gdb/regformats/s390x-vx-linux64.dat new file mode 100644 index 0000000..1d8f2b6 --- /dev/null +++ b/gdb/regformats/s390x-vx-linux64.dat @@ -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 -- 1.8.1.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor