[s390x] Backport arch14 guarded-storage register support (RH BZ 1498758).
This commit is contained in:
parent
5210cb945e
commit
d614670f9d
46
gdb-rhbz1498758-1of5.patch
Executable file
46
gdb-rhbz1498758-1of5.patch
Executable file
@ -0,0 +1,46 @@
|
||||
commit 8fe09d7421db51bc13c9228547d63e6315bd6bd0
|
||||
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
Date: Thu Sep 21 17:45:18 2017 +0200
|
||||
|
||||
S/390: Fix Elf note swap s390_gs_bc vs. s390_gs_cb
|
||||
|
||||
Fix two typos that resulted in swapping the BFD names for the core note
|
||||
register sections NT_S390_GS_CB and NT_S390_GS_BC.
|
||||
|
||||
bfd/ChangeLog:
|
||||
|
||||
* elf.c (elfcore_grok_note): For the cases NT_S390_GS_CB and
|
||||
NT_S390_GS_BC, correct the previously swapped invocations of
|
||||
elfcore_grok_s390_gs_bc and elfcore_grok_s390_gs_cb.
|
||||
|
||||
### a/bfd/ChangeLog
|
||||
### b/bfd/ChangeLog
|
||||
## -1,3 +1,9 @@
|
||||
+2017-09-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
+
|
||||
+ * elf.c (elfcore_grok_note): For the cases NT_S390_GS_CB and
|
||||
+ NT_S390_GS_BC, correct the previously swapped invocations of
|
||||
+ elfcore_grok_s390_gs_bc and elfcore_grok_s390_gs_cb.
|
||||
+
|
||||
2017-09-19 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 21441
|
||||
--- a/bfd/elf.c
|
||||
+++ b/bfd/elf.c
|
||||
@@ -9698,14 +9698,14 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
|
||||
case NT_S390_GS_CB:
|
||||
if (note->namesz == 6
|
||||
&& strcmp (note->namedata, "LINUX") == 0)
|
||||
- return elfcore_grok_s390_gs_bc (abfd, note);
|
||||
+ return elfcore_grok_s390_gs_cb (abfd, note);
|
||||
else
|
||||
return TRUE;
|
||||
|
||||
case NT_S390_GS_BC:
|
||||
if (note->namesz == 6
|
||||
&& strcmp (note->namedata, "LINUX") == 0)
|
||||
- return elfcore_grok_s390_gs_cb (abfd, note);
|
||||
+ return elfcore_grok_s390_gs_bc (abfd, note);
|
||||
else
|
||||
return TRUE;
|
||||
|
816
gdb-rhbz1498758-2of5.patch
Executable file
816
gdb-rhbz1498758-2of5.patch
Executable file
@ -0,0 +1,816 @@
|
||||
commit 96235dc1ac3730c4e490d19db2e8287c0a40f307
|
||||
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
Date: Mon Sep 25 16:02:23 2017 +0200
|
||||
|
||||
S390: Add guarded-storage register definitions and tdescs
|
||||
|
||||
Newer Linux kernel versions offer two new register sets in support of the
|
||||
z/Architecture's guarded storage facility. This patch adds XML
|
||||
descriptions and the respective autogenerated .c and .dat files for
|
||||
s390/s390x targets with this feature.
|
||||
|
||||
gdb/ChangeLog:
|
||||
|
||||
* features/s390-gs-linux64.xml: New file.
|
||||
* features/s390-gs.xml: New file.
|
||||
* features/s390-gsbc.xml: New file.
|
||||
* features/s390x-gs-linux64.xml: New file.
|
||||
* features/Makefile (WHICH): Add s390-gs-linux64 and
|
||||
s390x-gs-linux64.
|
||||
(s390-gs-linux64-expedite, s390x-gs-linux64-expedite): New macros.
|
||||
(XMLTOC): Add s390-gs-linux64.xml and s390x-linux64.xml.
|
||||
* features/s390-gs-linux64.c: New generated file.
|
||||
* features/s390x-gs-linux64.c: New file.
|
||||
* regformats/s390-gs-linux64.dat: New file.
|
||||
* regformats/s390x-gs-linux64.dat: New file.
|
||||
|
||||
### a/gdb/ChangeLog
|
||||
### b/gdb/ChangeLog
|
||||
## -1,3 +1,18 @@
|
||||
+2017-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
+
|
||||
+ * features/s390-gs-linux64.xml: New file.
|
||||
+ * features/s390-gs.xml: New file.
|
||||
+ * features/s390-gsbc.xml: New file.
|
||||
+ * features/s390x-gs-linux64.xml: New file.
|
||||
+ * features/Makefile (WHICH): Add s390-gs-linux64 and
|
||||
+ s390x-gs-linux64.
|
||||
+ (s390-gs-linux64-expedite, s390x-gs-linux64-expedite): New macros.
|
||||
+ (XMLTOC): Add s390-gs-linux64.xml and s390x-linux64.xml.
|
||||
+ * features/s390-gs-linux64.c: New generated file.
|
||||
+ * features/s390x-gs-linux64.c: New file.
|
||||
+ * regformats/s390-gs-linux64.dat: New file.
|
||||
+ * regformats/s390x-gs-linux64.dat: New file.
|
||||
+
|
||||
2017-09-23 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* defs.h (make_cleanup_override_quit_handler): Don't declare.
|
||||
--- a/gdb/features/Makefile
|
||||
+++ b/gdb/features/Makefile
|
||||
@@ -78,6 +78,7 @@ WHICH = aarch64 \
|
||||
s390-linux32v2 s390-linux64v2 s390x-linux64v2 \
|
||||
s390-te-linux64 s390x-te-linux64 s390-vx-linux64 s390x-vx-linux64 \
|
||||
s390-tevx-linux64 s390x-tevx-linux64 \
|
||||
+ s390-gs-linux64 s390x-gs-linux64 \
|
||||
tic6x-c64xp tic6x-c64x tic6x-c62x \
|
||||
tic6x-c64xp-linux tic6x-c64x-linux tic6x-c62x-linux
|
||||
|
||||
@@ -105,12 +106,14 @@ 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
|
||||
+s390-gs-linux64-expedite = r14,r15,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
|
||||
+s390x-gs-linux64-expedite = r14,r15,pswa
|
||||
tic6x-c64xp-expedite = A15,PC
|
||||
tic6x-c64x-expedite = A15,PC
|
||||
tic6x-c62x-expedite = A15,PC
|
||||
@@ -196,6 +199,8 @@ XMLTOC = \
|
||||
s390-vx-linux64.xml \
|
||||
s390x-tevx-linux64.xml \
|
||||
s390x-vx-linux64.xml \
|
||||
+ s390-gs-linux64.xml \
|
||||
+ s390x-gs-linux64.xml \
|
||||
tic6x-c62x-linux.xml \
|
||||
tic6x-c62x.xml \
|
||||
tic6x-c64x-linux.xml \
|
||||
--- /dev/null
|
||||
+++ b/gdb/features/s390-gs-linux64.c
|
||||
@@ -0,0 +1,198 @@
|
||||
+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
|
||||
+ Original: s390-gs-linux64.xml */
|
||||
+
|
||||
+#include "defs.h"
|
||||
+#include "osabi.h"
|
||||
+#include "target-descriptions.h"
|
||||
+
|
||||
+struct target_desc *tdesc_s390_gs_linux64;
|
||||
+static void
|
||||
+initialize_tdesc_s390_gs_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");
|
||||
+
|
||||
+ feature = tdesc_create_feature (result, "org.gnu.gdb.s390.gs");
|
||||
+ tdesc_create_reg (feature, "gsd", 122, 1, "gs", 64, "uint64");
|
||||
+ tdesc_create_reg (feature, "gssm", 123, 1, "gs", 64, "uint64");
|
||||
+ tdesc_create_reg (feature, "gsepla", 124, 1, "gs", 64, "data_ptr");
|
||||
+
|
||||
+ feature = tdesc_create_feature (result, "org.gnu.gdb.s390.gsbc");
|
||||
+ tdesc_create_reg (feature, "bc_gsd", 125, 1, "gs", 64, "uint64");
|
||||
+ tdesc_create_reg (feature, "bc_gssm", 126, 1, "gs", 64, "uint64");
|
||||
+ tdesc_create_reg (feature, "bc_gsepla", 127, 1, "gs", 64, "data_ptr");
|
||||
+
|
||||
+ tdesc_s390_gs_linux64 = result;
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/gdb/features/s390-gs-linux64.xml
|
||||
@@ -0,0 +1,28 @@
|
||||
+<?xml version="1.0"?>
|
||||
+<!-- Copyright (C) 2017 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"/>
|
||||
+ <xi:include href="s390-gs.xml"/>
|
||||
+ <xi:include href="s390-gsbc.xml"/>
|
||||
+</target>
|
||||
--- /dev/null
|
||||
+++ b/gdb/features/s390-gs.xml
|
||||
@@ -0,0 +1,13 @@
|
||||
+<?xml version="1.0"?>
|
||||
+<!-- Copyright (C) 2017 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.gs">
|
||||
+ <reg name="gsd" bitsize="64" type="uint64" group="gs"/>
|
||||
+ <reg name="gssm" bitsize="64" type="uint64" group="gs"/>
|
||||
+ <reg name="gsepla" bitsize="64" type="data_ptr" group="gs"/>
|
||||
+</feature>
|
||||
--- /dev/null
|
||||
+++ b/gdb/features/s390-gsbc.xml
|
||||
@@ -0,0 +1,13 @@
|
||||
+<?xml version="1.0"?>
|
||||
+<!-- Copyright (C) 2017 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.gsbc">
|
||||
+ <reg name="bc_gsd" bitsize="64" type="uint64" group="gs"/>
|
||||
+ <reg name="bc_gssm" bitsize="64" type="uint64" group="gs"/>
|
||||
+ <reg name="bc_gsepla" bitsize="64" type="data_ptr" group="gs"/>
|
||||
+</feature>
|
||||
--- /dev/null
|
||||
+++ b/gdb/features/s390x-gs-linux64.c
|
||||
@@ -0,0 +1,182 @@
|
||||
+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
|
||||
+ Original: s390x-gs-linux64.xml */
|
||||
+
|
||||
+#include "defs.h"
|
||||
+#include "osabi.h"
|
||||
+#include "target-descriptions.h"
|
||||
+
|
||||
+struct target_desc *tdesc_s390x_gs_linux64;
|
||||
+static void
|
||||
+initialize_tdesc_s390x_gs_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");
|
||||
+
|
||||
+ feature = tdesc_create_feature (result, "org.gnu.gdb.s390.gs");
|
||||
+ tdesc_create_reg (feature, "gsd", 106, 1, "gs", 64, "uint64");
|
||||
+ tdesc_create_reg (feature, "gssm", 107, 1, "gs", 64, "uint64");
|
||||
+ tdesc_create_reg (feature, "gsepla", 108, 1, "gs", 64, "data_ptr");
|
||||
+
|
||||
+ feature = tdesc_create_feature (result, "org.gnu.gdb.s390.gsbc");
|
||||
+ tdesc_create_reg (feature, "bc_gsd", 109, 1, "gs", 64, "uint64");
|
||||
+ tdesc_create_reg (feature, "bc_gssm", 110, 1, "gs", 64, "uint64");
|
||||
+ tdesc_create_reg (feature, "bc_gsepla", 111, 1, "gs", 64, "data_ptr");
|
||||
+
|
||||
+ tdesc_s390x_gs_linux64 = result;
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/gdb/features/s390x-gs-linux64.xml
|
||||
@@ -0,0 +1,27 @@
|
||||
+<?xml version="1.0"?>
|
||||
+<!-- Copyright (C) 2017 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"/>
|
||||
+ <xi:include href="s390-gs.xml"/>
|
||||
+ <xi:include href="s390-gsbc.xml"/>
|
||||
+</target>
|
||||
--- /dev/null
|
||||
+++ b/gdb/regformats/s390-gs-linux64.dat
|
||||
@@ -0,0 +1,133 @@
|
||||
+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
|
||||
+# Generated from: s390-gs-linux64.xml
|
||||
+name:s390_gs_linux64
|
||||
+xmltarget:s390-gs-linux64.xml
|
||||
+expedite:r14,r15,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
|
||||
+64:gsd
|
||||
+64:gssm
|
||||
+64:gsepla
|
||||
+64:bc_gsd
|
||||
+64:bc_gssm
|
||||
+64:bc_gsepla
|
||||
--- /dev/null
|
||||
+++ b/gdb/regformats/s390x-gs-linux64.dat
|
||||
@@ -0,0 +1,117 @@
|
||||
+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
|
||||
+# Generated from: s390x-gs-linux64.xml
|
||||
+name:s390x_gs_linux64
|
||||
+xmltarget:s390x-gs-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
|
||||
+64:gsd
|
||||
+64:gssm
|
||||
+64:gsepla
|
||||
+64:bc_gsd
|
||||
+64:bc_gssm
|
||||
+64:bc_gsepla
|
385
gdb-rhbz1498758-3of5.patch
Executable file
385
gdb-rhbz1498758-3of5.patch
Executable file
@ -0,0 +1,385 @@
|
||||
commit 1b63490c9173f8c9770b7885def720516aa9b9f8
|
||||
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
Date: Mon Sep 25 16:02:23 2017 +0200
|
||||
|
||||
S390: Add guarded-storage register support to GDB
|
||||
|
||||
Recognize targets with the new guarded-storage feature and then present
|
||||
the guarded-storage registers and the Linux-specific guarded-storage
|
||||
broadcast control block appropriately.
|
||||
|
||||
gdb/ChangeLog:
|
||||
|
||||
* s390-linux-nat.c (have_regset_gs): New static variable.
|
||||
(s390_linux_fetch_inferior_registers): Handle guarded-storage
|
||||
control block and guarded-storage broadcast control regsets.
|
||||
(s390_read_description): Detect whether the target has
|
||||
guarded-storage support, return appropriate tdesc.
|
||||
* s390-linux-tdep.c (features/s390-gs-linux64.c): New include.
|
||||
(features/s390x-gs-linux64.c): Likewise.
|
||||
(struct gdbarch_tdep) <have_gs>: New field.
|
||||
(s390_regmap_gs, s390_regmap_gsbc, s390_gs_regset)
|
||||
(s390_gsbc_regset): New variables.
|
||||
(s390_iterate_over_regset_sections): Iterate over s390_gs_regset
|
||||
and s390_gsbc_regset, if applicable.
|
||||
(s390_core_read_description): Check whether core file was from a
|
||||
target with guarded-storage support; include appropriate regsets.
|
||||
(s390_gdbarch_init): Add registers for guarded-storage support.
|
||||
(_initialize_s390_tdep): Initialize new target descriptions that
|
||||
include registers for guarded-storage support.
|
||||
* s390-linux-tdep.h (HWCAP_S390_GS, S390_GSD_REGNUM)
|
||||
(S390_GSSM_REGNUM, S390_GSEPLA_REGNUM)
|
||||
(S390_BC_GSD_REGNUM, S390_BC_GSSM_REGNUM): New defines.
|
||||
(S390_NUM_REGS): Adjust macro definition.
|
||||
(s390_gs_regset, s390_gsbc_regset, tdesc_s390_gs_linux64)
|
||||
(tdesc_s390x_gs_linux64): New declarations.
|
||||
|
||||
### a/gdb/ChangeLog
|
||||
### b/gdb/ChangeLog
|
||||
## -1,5 +1,31 @@
|
||||
2017-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
|
||||
+ * s390-linux-nat.c (have_regset_gs): New static variable.
|
||||
+ (s390_linux_fetch_inferior_registers): Handle guarded-storage
|
||||
+ control block and guarded-storage broadcast control regsets.
|
||||
+ (s390_read_description): Detect whether the target has
|
||||
+ guarded-storage support, return appropriate tdesc.
|
||||
+ * s390-linux-tdep.c (features/s390-gs-linux64.c): New include.
|
||||
+ (features/s390x-gs-linux64.c): Likewise.
|
||||
+ (struct gdbarch_tdep) <have_gs>: New field.
|
||||
+ (s390_regmap_gs, s390_regmap_gsbc, s390_gs_regset)
|
||||
+ (s390_gsbc_regset): New variables.
|
||||
+ (s390_iterate_over_regset_sections): Iterate over s390_gs_regset
|
||||
+ and s390_gsbc_regset, if applicable.
|
||||
+ (s390_core_read_description): Check whether core file was from a
|
||||
+ target with guarded-storage support; include appropriate regsets.
|
||||
+ (s390_gdbarch_init): Add registers for guarded-storage support.
|
||||
+ (_initialize_s390_tdep): Initialize new target descriptions that
|
||||
+ include registers for guarded-storage support.
|
||||
+ * s390-linux-tdep.h (HWCAP_S390_GS, S390_GSD_REGNUM)
|
||||
+ (S390_GSSM_REGNUM, S390_GSEPLA_REGNUM)
|
||||
+ (S390_BC_GSD_REGNUM, S390_BC_GSSM_REGNUM): New defines.
|
||||
+ (S390_NUM_REGS): Adjust macro definition.
|
||||
+ (s390_gs_regset, s390_gsbc_regset, tdesc_s390_gs_linux64)
|
||||
+ (tdesc_s390x_gs_linux64): New declarations.
|
||||
+
|
||||
+2017-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
+
|
||||
* features/s390-gs-linux64.xml: New file.
|
||||
* features/s390-gs.xml: New file.
|
||||
* features/s390-gsbc.xml: New file.
|
||||
--- a/gdb/s390-linux-nat.c
|
||||
+++ b/gdb/s390-linux-nat.c
|
||||
@@ -54,6 +54,7 @@ static int have_regset_last_break = 0;
|
||||
static int have_regset_system_call = 0;
|
||||
static int have_regset_tdb = 0;
|
||||
static int have_regset_vxrs = 0;
|
||||
+static int have_regset_gs = 0;
|
||||
|
||||
/* Register map for 32-bit executables running under a 64-bit
|
||||
kernel. */
|
||||
@@ -406,6 +407,18 @@ s390_linux_fetch_inferior_registers (struct target_ops *ops,
|
||||
fetch_regset (regcache, tid, NT_S390_VXRS_HIGH, 16 * 16,
|
||||
&s390_vxrs_high_regset);
|
||||
}
|
||||
+
|
||||
+ if (have_regset_gs)
|
||||
+ {
|
||||
+ if (regnum == -1 || (regnum >= S390_GSD_REGNUM
|
||||
+ && regnum <= S390_GSEPLA_REGNUM))
|
||||
+ fetch_regset (regcache, tid, NT_S390_GS_CB, 4 * 8,
|
||||
+ &s390_gs_regset);
|
||||
+ if (regnum == -1 || (regnum >= S390_BC_GSD_REGNUM
|
||||
+ && regnum <= S390_BC_GSEPLA_REGNUM))
|
||||
+ fetch_regset (regcache, tid, NT_S390_GS_BC, 4 * 8,
|
||||
+ &s390_gsbc_regset);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Store register REGNUM back into the child process. If REGNUM is
|
||||
@@ -974,8 +987,13 @@ s390_read_description (struct target_ops *ops)
|
||||
&& check_regset (tid, NT_S390_VXRS_LOW, 16 * 8)
|
||||
&& check_regset (tid, NT_S390_VXRS_HIGH, 16 * 16);
|
||||
|
||||
+ have_regset_gs = (hwcap & HWCAP_S390_GS)
|
||||
+ && check_regset (tid, NT_S390_GS_CB, 4 * 8)
|
||||
+ && check_regset (tid, NT_S390_GS_BC, 4 * 8);
|
||||
+
|
||||
if (s390_target_wordsize () == 8)
|
||||
- return (have_regset_vxrs ?
|
||||
+ return (have_regset_gs ? tdesc_s390x_gs_linux64 :
|
||||
+ have_regset_vxrs ?
|
||||
(have_regset_tdb ? tdesc_s390x_tevx_linux64 :
|
||||
tdesc_s390x_vx_linux64) :
|
||||
have_regset_tdb ? tdesc_s390x_te_linux64 :
|
||||
@@ -984,7 +1002,8 @@ s390_read_description (struct target_ops *ops)
|
||||
tdesc_s390x_linux64);
|
||||
|
||||
if (hwcap & HWCAP_S390_HIGH_GPRS)
|
||||
- return (have_regset_vxrs ?
|
||||
+ return (have_regset_gs ? tdesc_s390_gs_linux64 :
|
||||
+ have_regset_vxrs ?
|
||||
(have_regset_tdb ? tdesc_s390_tevx_linux64 :
|
||||
tdesc_s390_vx_linux64) :
|
||||
have_regset_tdb ? tdesc_s390_te_linux64 :
|
||||
--- a/gdb/s390-linux-tdep.c
|
||||
+++ b/gdb/s390-linux-tdep.c
|
||||
@@ -69,12 +69,14 @@
|
||||
#include "features/s390-te-linux64.c"
|
||||
#include "features/s390-vx-linux64.c"
|
||||
#include "features/s390-tevx-linux64.c"
|
||||
+#include "features/s390-gs-linux64.c"
|
||||
#include "features/s390x-linux64.c"
|
||||
#include "features/s390x-linux64v1.c"
|
||||
#include "features/s390x-linux64v2.c"
|
||||
#include "features/s390x-te-linux64.c"
|
||||
#include "features/s390x-vx-linux64.c"
|
||||
#include "features/s390x-tevx-linux64.c"
|
||||
+#include "features/s390x-gs-linux64.c"
|
||||
|
||||
#define XML_SYSCALL_FILENAME_S390 "syscalls/s390-linux.xml"
|
||||
#define XML_SYSCALL_FILENAME_S390X "syscalls/s390x-linux.xml"
|
||||
@@ -113,6 +115,7 @@ struct gdbarch_tdep
|
||||
int have_linux_v1;
|
||||
int have_linux_v2;
|
||||
int have_tdb;
|
||||
+ bool have_gs;
|
||||
};
|
||||
|
||||
|
||||
@@ -834,6 +837,24 @@ static const struct regcache_map_entry s390_regmap_vxrs_high[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
+static const struct regcache_map_entry s390_regmap_gs[] =
|
||||
+ {
|
||||
+ { 1, REGCACHE_MAP_SKIP, 8 },
|
||||
+ { 1, S390_GSD_REGNUM, 8 },
|
||||
+ { 1, S390_GSSM_REGNUM, 8 },
|
||||
+ { 1, S390_GSEPLA_REGNUM, 8 },
|
||||
+ { 0 }
|
||||
+ };
|
||||
+
|
||||
+static const struct regcache_map_entry s390_regmap_gsbc[] =
|
||||
+ {
|
||||
+ { 1, REGCACHE_MAP_SKIP, 8 },
|
||||
+ { 1, S390_BC_GSD_REGNUM, 8 },
|
||||
+ { 1, S390_BC_GSSM_REGNUM, 8 },
|
||||
+ { 1, S390_BC_GSEPLA_REGNUM, 8 },
|
||||
+ { 0 }
|
||||
+ };
|
||||
+
|
||||
|
||||
/* Supply the TDB regset. Like regcache_supply_regset, but invalidate
|
||||
the TDB registers unless the TDB format field is valid. */
|
||||
@@ -905,6 +926,18 @@ const struct regset s390_vxrs_high_regset = {
|
||||
regcache_collect_regset
|
||||
};
|
||||
|
||||
+const struct regset s390_gs_regset = {
|
||||
+ s390_regmap_gs,
|
||||
+ regcache_supply_regset,
|
||||
+ regcache_collect_regset
|
||||
+};
|
||||
+
|
||||
+const struct regset s390_gsbc_regset = {
|
||||
+ s390_regmap_gsbc,
|
||||
+ regcache_supply_regset,
|
||||
+ regcache_collect_regset
|
||||
+};
|
||||
+
|
||||
/* Iterate over supported core file register note sections. */
|
||||
|
||||
static void
|
||||
@@ -951,6 +984,23 @@ s390_iterate_over_regset_sections (struct gdbarch *gdbarch,
|
||||
cb (".reg-s390-vxrs-high", 16 * 16, &s390_vxrs_high_regset,
|
||||
"s390 vector registers 16-31", cb_data);
|
||||
}
|
||||
+
|
||||
+ /* Iterate over the guarded-storage regsets if in "read" mode, or if
|
||||
+ their registers are available. */
|
||||
+ if (tdep->have_gs)
|
||||
+ {
|
||||
+ if (regcache == NULL
|
||||
+ || REG_VALID == regcache_register_status (regcache,
|
||||
+ S390_GSD_REGNUM))
|
||||
+ cb (".reg-s390-gs-cb", 4 * 8, &s390_gs_regset,
|
||||
+ "s390 guarded-storage registers", cb_data);
|
||||
+
|
||||
+ if (regcache == NULL
|
||||
+ || REG_VALID == regcache_register_status (regcache,
|
||||
+ S390_BC_GSD_REGNUM))
|
||||
+ cb (".reg-s390-gs-bc", 4 * 8, &s390_gsbc_regset,
|
||||
+ "s390 guarded-storage broadcast control", cb_data);
|
||||
+ }
|
||||
}
|
||||
|
||||
static const struct target_desc *
|
||||
@@ -959,7 +1009,7 @@ s390_core_read_description (struct gdbarch *gdbarch,
|
||||
{
|
||||
asection *section = bfd_get_section_by_name (abfd, ".reg");
|
||||
CORE_ADDR hwcap = 0;
|
||||
- int high_gprs, v1, v2, te, vx;
|
||||
+ bool high_gprs, v1, v2, te, vx, gs;
|
||||
|
||||
target_auxv_search (target, AT_HWCAP, &hwcap);
|
||||
if (!section)
|
||||
@@ -971,12 +1021,14 @@ s390_core_read_description (struct gdbarch *gdbarch,
|
||||
v2 = (bfd_get_section_by_name (abfd, ".reg-s390-system-call") != NULL);
|
||||
vx = (hwcap & HWCAP_S390_VX);
|
||||
te = (hwcap & HWCAP_S390_TE);
|
||||
+ gs = (hwcap & HWCAP_S390_GS);
|
||||
|
||||
switch (bfd_section_size (abfd, section))
|
||||
{
|
||||
case s390_sizeof_gregset:
|
||||
if (high_gprs)
|
||||
- return (te && vx ? tdesc_s390_tevx_linux64 :
|
||||
+ return (gs ? tdesc_s390_gs_linux64 :
|
||||
+ te && vx ? tdesc_s390_tevx_linux64 :
|
||||
vx ? tdesc_s390_vx_linux64 :
|
||||
te ? tdesc_s390_te_linux64 :
|
||||
v2 ? tdesc_s390_linux64v2 :
|
||||
@@ -986,7 +1038,8 @@ s390_core_read_description (struct gdbarch *gdbarch,
|
||||
v1 ? tdesc_s390_linux32v1 : tdesc_s390_linux32);
|
||||
|
||||
case s390x_sizeof_gregset:
|
||||
- return (te && vx ? tdesc_s390x_tevx_linux64 :
|
||||
+ return (gs ? tdesc_s390x_gs_linux64 :
|
||||
+ te && vx ? tdesc_s390x_tevx_linux64 :
|
||||
vx ? tdesc_s390x_vx_linux64 :
|
||||
te ? tdesc_s390x_te_linux64 :
|
||||
v2 ? tdesc_s390x_linux64v2 :
|
||||
@@ -7767,6 +7820,7 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
int have_linux_v2 = 0;
|
||||
int have_tdb = 0;
|
||||
int have_vx = 0;
|
||||
+ int have_gs = 0;
|
||||
int first_pseudo_reg, last_pseudo_reg;
|
||||
static const char *const stap_register_prefixes[] = { "%", NULL };
|
||||
static const char *const stap_register_indirection_prefixes[] = { "(",
|
||||
@@ -7834,6 +7888,12 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
"v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", "v24",
|
||||
"v25", "v26", "v27", "v28", "v29", "v30", "v31",
|
||||
};
|
||||
+ static const char *const gs_cb[] = {
|
||||
+ "gsd", "gssm", "gsepla",
|
||||
+ };
|
||||
+ static const char *const gs_bc[] = {
|
||||
+ "bc_gsd", "bc_gssm", "bc_gsepla",
|
||||
+ };
|
||||
const struct tdesc_feature *feature;
|
||||
int i, valid_p = 1;
|
||||
|
||||
@@ -7937,6 +7997,29 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
have_vx = 1;
|
||||
}
|
||||
|
||||
+ /* Guarded-storage registers. */
|
||||
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.s390.gs");
|
||||
+ if (feature)
|
||||
+ {
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ valid_p &= tdesc_numbered_register (feature, tdesc_data,
|
||||
+ S390_GSD_REGNUM + i,
|
||||
+ gs_cb[i]);
|
||||
+ have_gs = 1;
|
||||
+ }
|
||||
+
|
||||
+ /* Guarded-storage broadcast control. */
|
||||
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.s390.gsbc");
|
||||
+ if (feature)
|
||||
+ {
|
||||
+ valid_p &= have_gs;
|
||||
+
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ valid_p &= tdesc_numbered_register (feature, tdesc_data,
|
||||
+ S390_BC_GSD_REGNUM + i,
|
||||
+ gs_bc[i]);
|
||||
+ }
|
||||
+
|
||||
if (!valid_p)
|
||||
{
|
||||
tdesc_data_cleanup (tdesc_data);
|
||||
@@ -7970,6 +8053,8 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
continue;
|
||||
if ((tdep->gpr_full_regnum != -1) != have_upper)
|
||||
continue;
|
||||
+ if (tdep->have_gs != have_gs)
|
||||
+ continue;
|
||||
if (tdesc_data != NULL)
|
||||
tdesc_data_cleanup (tdesc_data);
|
||||
return arches->gdbarch;
|
||||
@@ -7982,6 +8067,7 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
tdep->have_linux_v1 = have_linux_v1;
|
||||
tdep->have_linux_v2 = have_linux_v2;
|
||||
tdep->have_tdb = have_tdb;
|
||||
+ tdep->have_gs = have_gs;
|
||||
gdbarch = gdbarch_alloc (&info, tdep);
|
||||
|
||||
set_gdbarch_believe_pcc_promotion (gdbarch, 0);
|
||||
@@ -8157,10 +8243,12 @@ _initialize_s390_tdep (void)
|
||||
initialize_tdesc_s390_te_linux64 ();
|
||||
initialize_tdesc_s390_vx_linux64 ();
|
||||
initialize_tdesc_s390_tevx_linux64 ();
|
||||
+ initialize_tdesc_s390_gs_linux64 ();
|
||||
initialize_tdesc_s390x_linux64 ();
|
||||
initialize_tdesc_s390x_linux64v1 ();
|
||||
initialize_tdesc_s390x_linux64v2 ();
|
||||
initialize_tdesc_s390x_te_linux64 ();
|
||||
initialize_tdesc_s390x_vx_linux64 ();
|
||||
initialize_tdesc_s390x_tevx_linux64 ();
|
||||
+ initialize_tdesc_s390x_gs_linux64 ();
|
||||
}
|
||||
--- a/gdb/s390-linux-tdep.h
|
||||
+++ b/gdb/s390-linux-tdep.h
|
||||
@@ -33,6 +33,10 @@
|
||||
#define HWCAP_S390_VX 2048
|
||||
#endif
|
||||
|
||||
+#ifndef HWCAP_S390_GS
|
||||
+#define HWCAP_S390_GS 16384
|
||||
+#endif
|
||||
+
|
||||
/* Register information. */
|
||||
|
||||
/* Program Status Word. */
|
||||
@@ -166,8 +170,14 @@
|
||||
#define S390_V29_REGNUM 119
|
||||
#define S390_V30_REGNUM 120
|
||||
#define S390_V31_REGNUM 121
|
||||
+#define S390_GSD_REGNUM 122
|
||||
+#define S390_GSSM_REGNUM 123
|
||||
+#define S390_GSEPLA_REGNUM 124
|
||||
+#define S390_BC_GSD_REGNUM 125
|
||||
+#define S390_BC_GSSM_REGNUM 126
|
||||
+#define S390_BC_GSEPLA_REGNUM 127
|
||||
/* Total. */
|
||||
-#define S390_NUM_REGS 122
|
||||
+#define S390_NUM_REGS 128
|
||||
|
||||
/* Special register usage. */
|
||||
#define S390_SP_REGNUM S390_R15_REGNUM
|
||||
@@ -198,6 +208,8 @@ extern const struct regset s390_tdb_regset;
|
||||
#define s390_sizeof_tdbregset 0x100
|
||||
extern const struct regset s390_vxrs_low_regset;
|
||||
extern const struct regset s390_vxrs_high_regset;
|
||||
+extern const struct regset s390_gs_regset;
|
||||
+extern const struct regset s390_gsbc_regset;
|
||||
|
||||
/* GNU/Linux target descriptions. */
|
||||
extern struct target_desc *tdesc_s390_linux32;
|
||||
@@ -209,11 +221,13 @@ extern struct target_desc *tdesc_s390_linux64v2;
|
||||
extern struct target_desc *tdesc_s390_te_linux64;
|
||||
extern struct target_desc *tdesc_s390_vx_linux64;
|
||||
extern struct target_desc *tdesc_s390_tevx_linux64;
|
||||
+extern struct target_desc *tdesc_s390_gs_linux64;
|
||||
extern struct target_desc *tdesc_s390x_linux64;
|
||||
extern struct target_desc *tdesc_s390x_linux64v1;
|
||||
extern struct target_desc *tdesc_s390x_linux64v2;
|
||||
extern struct target_desc *tdesc_s390x_te_linux64;
|
||||
extern struct target_desc *tdesc_s390x_vx_linux64;
|
||||
extern struct target_desc *tdesc_s390x_tevx_linux64;
|
||||
+extern struct target_desc *tdesc_s390x_gs_linux64;
|
||||
|
||||
#endif
|
275
gdb-rhbz1498758-4of5.patch
Executable file
275
gdb-rhbz1498758-4of5.patch
Executable file
@ -0,0 +1,275 @@
|
||||
commit ad3396348e0ebb61fdf71cff307bac08175ed366
|
||||
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
Date: Mon Sep 25 16:02:23 2017 +0200
|
||||
|
||||
S390: Add guarded-storage register support to gdbserver
|
||||
|
||||
Enable gdbserver to deal with the new guarded-storage register sets.
|
||||
|
||||
gdb/gdbserver/ChangeLog:
|
||||
|
||||
* configure.srv (s390*-*-linux*): Add s390-gs-linux64.o and
|
||||
s390x-gs-linux64.o to srv_regobj. Add s390-gs-linux64.xml,
|
||||
s390x-gs-linux64.xml, s390-gs.xml, and s390-gsbc.xml to
|
||||
srv_xmlfiles. Add s390-gs-linux64-ipa.o and
|
||||
s390x-gs-linux64-ipa.o to ipa_obj.
|
||||
* linux-s390-low.c (HWCAP_S390_GS): New define.
|
||||
(s390_fill_gs, s390_store_gs, s390_fill_gsbc, s390_store_gsbc):
|
||||
New functions.
|
||||
(s390_regsets): Add regsets for NT_S390_GS_CB and NT_S390_GS_BC.
|
||||
(s390_arch_setup): Check for guarded-storage support and choose
|
||||
appropriate tdesc.
|
||||
(initialize_low_arch): Invoke init_registers_s390_gs_linux64 and
|
||||
init_registers_s390x_gs_linux64.
|
||||
* linux-s390-tdesc.h (enum s390_linux_tdesc) <S390_TDESC_GS>: New
|
||||
enum value.
|
||||
(init_registers_s390x_gs_linux64, tdesc_s390x_gs_linux64)
|
||||
(init_registers_s390_gs_linux64, tdesc_s390_gs_linux64): Declare.
|
||||
|
||||
### a/gdb/gdbserver/ChangeLog
|
||||
### b/gdb/gdbserver/ChangeLog
|
||||
## -1,3 +1,23 @@
|
||||
+2017-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
+
|
||||
+ * configure.srv (s390*-*-linux*): Add s390-gs-linux64.o and
|
||||
+ s390x-gs-linux64.o to srv_regobj. Add s390-gs-linux64.xml,
|
||||
+ s390x-gs-linux64.xml, s390-gs.xml, and s390-gsbc.xml to
|
||||
+ srv_xmlfiles. Add s390-gs-linux64-ipa.o and
|
||||
+ s390x-gs-linux64-ipa.o to ipa_obj.
|
||||
+ * linux-s390-low.c (HWCAP_S390_GS): New define.
|
||||
+ (s390_fill_gs, s390_store_gs, s390_fill_gsbc, s390_store_gsbc):
|
||||
+ New functions.
|
||||
+ (s390_regsets): Add regsets for NT_S390_GS_CB and NT_S390_GS_BC.
|
||||
+ (s390_arch_setup): Check for guarded-storage support and choose
|
||||
+ appropriate tdesc.
|
||||
+ (initialize_low_arch): Invoke init_registers_s390_gs_linux64 and
|
||||
+ init_registers_s390x_gs_linux64.
|
||||
+ * linux-s390-tdesc.h (enum s390_linux_tdesc) <S390_TDESC_GS>: New
|
||||
+ enum value.
|
||||
+ (init_registers_s390x_gs_linux64, tdesc_s390x_gs_linux64)
|
||||
+ (init_registers_s390_gs_linux64, tdesc_s390_gs_linux64): Declare.
|
||||
+
|
||||
2017-09-22 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* win32-i386-low.c (i386_arch_setup): Call init_target_desc.
|
||||
--- a/gdb/gdbserver/configure.srv
|
||||
+++ b/gdb/gdbserver/configure.srv
|
||||
@@ -285,12 +285,14 @@ case "${target}" in
|
||||
srv_regobj="${srv_regobj} s390-te-linux64.o"
|
||||
srv_regobj="${srv_regobj} s390-vx-linux64.o"
|
||||
srv_regobj="${srv_regobj} s390-tevx-linux64.o"
|
||||
+ srv_regobj="${srv_regobj} s390-gs-linux64.o"
|
||||
srv_regobj="${srv_regobj} s390x-linux64.o"
|
||||
srv_regobj="${srv_regobj} s390x-linux64v1.o"
|
||||
srv_regobj="${srv_regobj} s390x-linux64v2.o"
|
||||
srv_regobj="${srv_regobj} s390x-te-linux64.o"
|
||||
srv_regobj="${srv_regobj} s390x-vx-linux64.o"
|
||||
srv_regobj="${srv_regobj} s390x-tevx-linux64.o"
|
||||
+ srv_regobj="${srv_regobj} s390x-gs-linux64.o"
|
||||
srv_tgtobj="$srv_linux_obj linux-s390-low.o"
|
||||
srv_xmlfiles="s390-linux32.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-linux32v1.xml"
|
||||
@@ -301,12 +303,14 @@ case "${target}" in
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-te-linux64.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-vx-linux64.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-tevx-linux64.xml"
|
||||
+ srv_xmlfiles="${srv_xmlfiles} s390-gs-linux64.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390x-linux64.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390x-linux64v1.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390x-linux64v2.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390x-te-linux64.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390x-vx-linux64.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390x-tevx-linux64.xml"
|
||||
+ srv_xmlfiles="${srv_xmlfiles} s390x-gs-linux64.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-core32.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-core64.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390x-core64.xml"
|
||||
@@ -314,6 +318,8 @@ case "${target}" in
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-fpr.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-tdb.xml"
|
||||
srv_xmlfiles="${srv_xmlfiles} s390-vx.xml"
|
||||
+ srv_xmlfiles="${srv_xmlfiles} s390-gs.xml"
|
||||
+ srv_xmlfiles="${srv_xmlfiles} s390-gsbc.xml"
|
||||
srv_linux_usrregs=yes
|
||||
srv_linux_regsets=yes
|
||||
srv_linux_thread_db=yes
|
||||
@@ -327,12 +333,14 @@ case "${target}" in
|
||||
ipa_obj="${ipa_obj} s390-vx-linux64-ipa.o"
|
||||
ipa_obj="${ipa_obj} s390-te-linux64-ipa.o"
|
||||
ipa_obj="${ipa_obj} s390-tevx-linux64-ipa.o"
|
||||
+ ipa_obj="${ipa_obj} s390-gs-linux64-ipa.o"
|
||||
ipa_obj="${ipa_obj} s390x-linux64-ipa.o"
|
||||
ipa_obj="${ipa_obj} s390x-linux64v1-ipa.o"
|
||||
ipa_obj="${ipa_obj} s390x-linux64v2-ipa.o"
|
||||
ipa_obj="${ipa_obj} s390x-vx-linux64-ipa.o"
|
||||
ipa_obj="${ipa_obj} s390x-te-linux64-ipa.o"
|
||||
ipa_obj="${ipa_obj} s390x-tevx-linux64-ipa.o"
|
||||
+ ipa_obj="${ipa_obj} s390x-gs-linux64-ipa.o"
|
||||
;;
|
||||
sh*-*-linux*) srv_regobj=reg-sh.o
|
||||
srv_tgtobj="$srv_linux_obj linux-sh-low.o"
|
||||
--- a/gdb/gdbserver/linux-s390-low.c
|
||||
+++ b/gdb/gdbserver/linux-s390-low.c
|
||||
@@ -45,6 +45,10 @@
|
||||
#define HWCAP_S390_VX 2048
|
||||
#endif
|
||||
|
||||
+#ifndef HWCAP_S390_GS
|
||||
+#define HWCAP_S390_GS 16384
|
||||
+#endif
|
||||
+
|
||||
#define s390_num_regs 52
|
||||
|
||||
static int s390_regmap[] = {
|
||||
@@ -370,6 +374,46 @@ s390_store_vxrs_high (struct regcache *regcache, const void *buf)
|
||||
supply_register (regcache, v16 + i, (const char *) buf + 16 * i);
|
||||
}
|
||||
|
||||
+static void
|
||||
+s390_fill_gs (struct regcache *regcache, void *buf)
|
||||
+{
|
||||
+ int gsd = find_regno (regcache->tdesc, "gsd");
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ collect_register (regcache, gsd + i, (char *) buf + 8 * (i + 1));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+s390_store_gs (struct regcache *regcache, const void *buf)
|
||||
+{
|
||||
+ int gsd = find_regno (regcache->tdesc, "gsd");
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ supply_register (regcache, gsd + i, (const char *) buf + 8 * (i + 1));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+s390_fill_gsbc (struct regcache *regcache, void *buf)
|
||||
+{
|
||||
+ int bc_gsd = find_regno (regcache->tdesc, "bc_gsd");
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ collect_register (regcache, bc_gsd + i, (char *) buf + 8 * (i + 1));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+s390_store_gsbc (struct regcache *regcache, const void *buf)
|
||||
+{
|
||||
+ int bc_gsd = find_regno (regcache->tdesc, "bc_gsd");
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ supply_register (regcache, bc_gsd + i, (const char *) buf + 8 * (i + 1));
|
||||
+}
|
||||
+
|
||||
static struct regset_info s390_regsets[] = {
|
||||
{ 0, 0, 0, 0, GENERAL_REGS, s390_fill_gregset, NULL },
|
||||
#ifndef __s390x__
|
||||
@@ -388,6 +432,10 @@ static struct regset_info s390_regsets[] = {
|
||||
EXTENDED_REGS, s390_fill_vxrs_low, s390_store_vxrs_low },
|
||||
{ PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_VXRS_HIGH, 0,
|
||||
EXTENDED_REGS, s390_fill_vxrs_high, s390_store_vxrs_high },
|
||||
+ { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_GS_CB, 0,
|
||||
+ EXTENDED_REGS, s390_fill_gs, s390_store_gs },
|
||||
+ { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_GS_BC, 0,
|
||||
+ EXTENDED_REGS, s390_fill_gsbc, s390_store_gsbc },
|
||||
NULL_REGSET
|
||||
};
|
||||
|
||||
@@ -501,6 +549,8 @@ s390_arch_setup (void)
|
||||
int have_regset_tdb = s390_check_regset (pid, NT_S390_TDB, 256);
|
||||
int have_regset_vxrs = s390_check_regset (pid, NT_S390_VXRS_LOW, 128)
|
||||
&& s390_check_regset (pid, NT_S390_VXRS_HIGH, 256);
|
||||
+ int have_regset_gs = s390_check_regset (pid, NT_S390_GS_CB, 32)
|
||||
+ && s390_check_regset (pid, NT_S390_GS_BC, 32);
|
||||
|
||||
/* Assume 31-bit inferior process. */
|
||||
if (have_regset_system_call)
|
||||
@@ -529,8 +579,13 @@ s390_arch_setup (void)
|
||||
if (have_regset_vxrs)
|
||||
have_regset_vxrs =
|
||||
(s390_get_hwcap (tdesc_s390x_linux64v2) & HWCAP_S390_VX) != 0;
|
||||
+ if (have_regset_gs)
|
||||
+ have_regset_gs =
|
||||
+ (s390_get_hwcap (tdesc_s390x_linux64v2) & HWCAP_S390_GS) != 0;
|
||||
|
||||
- if (have_regset_vxrs)
|
||||
+ if (have_regset_gs)
|
||||
+ tdesc = tdesc_s390x_gs_linux64;
|
||||
+ else if (have_regset_vxrs)
|
||||
tdesc = (have_regset_tdb ? tdesc_s390x_tevx_linux64 :
|
||||
tdesc_s390x_vx_linux64);
|
||||
else if (have_regset_tdb)
|
||||
@@ -554,8 +609,12 @@ s390_arch_setup (void)
|
||||
have_regset_tdb = (s390_get_hwcap (tdesc) & HWCAP_S390_TE) != 0;
|
||||
if (have_regset_vxrs)
|
||||
have_regset_vxrs = (s390_get_hwcap (tdesc) & HWCAP_S390_VX) != 0;
|
||||
+ if (have_regset_gs)
|
||||
+ have_regset_gs = (s390_get_hwcap (tdesc) & HWCAP_S390_GS) != 0;
|
||||
|
||||
- if (have_regset_vxrs)
|
||||
+ if (have_regset_gs)
|
||||
+ tdesc = tdesc_s390_gs_linux64;
|
||||
+ else if (have_regset_vxrs)
|
||||
tdesc = (have_regset_tdb ? tdesc_s390_tevx_linux64 :
|
||||
tdesc_s390_vx_linux64);
|
||||
else if (have_regset_tdb)
|
||||
@@ -596,6 +655,9 @@ s390_arch_setup (void)
|
||||
case NT_S390_VXRS_HIGH:
|
||||
regset->size = have_regset_vxrs ? 256 : 0;
|
||||
break;
|
||||
+ case NT_S390_GS_CB:
|
||||
+ case NT_S390_GS_BC:
|
||||
+ regset->size = have_regset_gs ? 32 : 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -2797,6 +2859,7 @@ initialize_low_arch (void)
|
||||
init_registers_s390_te_linux64 ();
|
||||
init_registers_s390_vx_linux64 ();
|
||||
init_registers_s390_tevx_linux64 ();
|
||||
+ init_registers_s390_gs_linux64 ();
|
||||
#ifdef __s390x__
|
||||
init_registers_s390x_linux64 ();
|
||||
init_registers_s390x_linux64v1 ();
|
||||
@@ -2804,6 +2867,7 @@ initialize_low_arch (void)
|
||||
init_registers_s390x_te_linux64 ();
|
||||
init_registers_s390x_vx_linux64 ();
|
||||
init_registers_s390x_tevx_linux64 ();
|
||||
+ init_registers_s390x_gs_linux64 ();
|
||||
#endif
|
||||
|
||||
initialize_regsets_info (&s390_regsets_info);
|
||||
--- a/gdb/gdbserver/linux-s390-tdesc.h
|
||||
+++ b/gdb/gdbserver/linux-s390-tdesc.h
|
||||
@@ -31,6 +31,7 @@ enum s390_linux_tdesc {
|
||||
S390_TDESC_TE,
|
||||
S390_TDESC_VX,
|
||||
S390_TDESC_TEVX,
|
||||
+ S390_TDESC_GS,
|
||||
};
|
||||
|
||||
#ifdef __s390x__
|
||||
@@ -59,6 +60,10 @@ extern const struct target_desc *tdesc_s390x_vx_linux64;
|
||||
void init_registers_s390x_tevx_linux64 (void);
|
||||
extern const struct target_desc *tdesc_s390x_tevx_linux64;
|
||||
|
||||
+/* Defined in auto-generated file s390x-gs-linux64.c. */
|
||||
+void init_registers_s390x_gs_linux64 (void);
|
||||
+extern const struct target_desc *tdesc_s390x_gs_linux64;
|
||||
+
|
||||
#endif
|
||||
|
||||
#if !defined __s390x__ || !defined IN_PROCESS_AGENT
|
||||
@@ -99,4 +104,8 @@ extern const struct target_desc *tdesc_s390_vx_linux64;
|
||||
void init_registers_s390_tevx_linux64 (void);
|
||||
extern const struct target_desc *tdesc_s390_tevx_linux64;
|
||||
|
||||
+/* Defined in auto-generated file s390-gs-linux64.c. */
|
||||
+void init_registers_s390_gs_linux64 (void);
|
||||
+extern const struct target_desc *tdesc_s390_gs_linux64;
|
||||
+
|
||||
#endif
|
63
gdb-rhbz1498758-5of5.patch
Normal file
63
gdb-rhbz1498758-5of5.patch
Normal file
@ -0,0 +1,63 @@
|
||||
commit 289e23aa03084b22c73ebdcf18371f1e6666ead0
|
||||
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
Date: Mon Sep 25 16:02:24 2017 +0200
|
||||
|
||||
S390: Document guarded-storage register support
|
||||
|
||||
This documents the newly added support for guarded-storage registers on
|
||||
IBM z.
|
||||
|
||||
gdb/ChangeLog:
|
||||
|
||||
* NEWS: Advertise support for guarded-storage registers on IBM z.
|
||||
|
||||
gdb/doc/ChangeLog:
|
||||
|
||||
* gdb.texinfo (S/390 and System z Features): Document the new
|
||||
features org.gnu.gdb.s390.gs and org.gnu.gdb.s390.gsbc.
|
||||
|
||||
### a/gdb/ChangeLog
|
||||
### b/gdb/ChangeLog
|
||||
## -1,5 +1,9 @@
|
||||
2017-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
|
||||
+ * NEWS: Advertise support for guarded-storage registers on IBM z.
|
||||
+
|
||||
+2017-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
+
|
||||
* s390-linux-nat.c (have_regset_gs): New static variable.
|
||||
(s390_linux_fetch_inferior_registers): Handle guarded-storage
|
||||
control block and guarded-storage broadcast control regsets.
|
||||
Index: gdb-8.0.1/gdb/NEWS
|
||||
===================================================================
|
||||
--- gdb-8.0.1.orig/gdb/NEWS 2017-10-07 15:54:48.649165644 +0200
|
||||
+++ gdb-8.0.1/gdb/NEWS 2017-10-07 15:55:01.006264129 +0200
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
* Fortran: Support pointers to dynamic types.
|
||||
|
||||
+* GDB now supports access to the guarded-storage-control registers and the
|
||||
+ software-based guarded-storage broadcast control registers on IBM z14.
|
||||
+
|
||||
*** Changes in GDB 8.0
|
||||
|
||||
* GDB now supports access to the PKU register on GNU/Linux. The register is
|
||||
Index: gdb-8.0.1/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-8.0.1.orig/gdb/doc/gdb.texinfo 2017-10-07 15:54:44.891135692 +0200
|
||||
+++ gdb-8.0.1/gdb/doc/gdb.texinfo 2017-10-07 15:54:48.660165731 +0200
|
||||
@@ -41512,6 +41512,14 @@
|
||||
contain the 128-bit wide vector registers @samp{v16} through
|
||||
@samp{v31}.
|
||||
|
||||
+The @samp{org.gnu.gdb.s390.gs} feature is optional. It should contain
|
||||
+the 64-bit wide guarded-storage-control registers @samp{gsd},
|
||||
+@samp{gssm}, and @samp{gsepla}.
|
||||
+
|
||||
+The @samp{org.gnu.gdb.s390.gsbc} feature is optional. It should contain
|
||||
+the 64-bit wide guarded-storage broadcast control registers
|
||||
+@samp{bc_gsd}, @samp{bc_gssm}, and @samp{bc_gsepla}.
|
||||
+
|
||||
@node Sparc Features
|
||||
@subsection Sparc Features
|
||||
@cindex target descriptions, sparc32 features
|
17
gdb.spec
17
gdb.spec
@ -26,7 +26,7 @@ Version: 8.0.1
|
||||
|
||||
# The release always contains a leading reserved number, start it at 1.
|
||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||
Release: 28%{?dist}
|
||||
Release: 29%{?dist}
|
||||
|
||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
|
||||
Group: Development/Debuggers
|
||||
@ -726,6 +726,13 @@ Patch1242: gdb-rhbz1420304-s390x-33of35.patch
|
||||
Patch1243: gdb-rhbz1420304-s390x-34of35.patch
|
||||
Patch1244: gdb-rhbz1420304-s390x-35of35.patch
|
||||
|
||||
# [s390x] Backport arch14 guarded-storage register support (RH BZ 1498758).
|
||||
Patch1255: gdb-rhbz1498758-1of5.patch
|
||||
Patch1256: gdb-rhbz1498758-2of5.patch
|
||||
Patch1257: gdb-rhbz1498758-3of5.patch
|
||||
Patch1258: gdb-rhbz1498758-4of5.patch
|
||||
Patch1259: gdb-rhbz1498758-5of5.patch
|
||||
|
||||
%if 0%{!?rhel:1} || 0%{?rhel} > 6
|
||||
# RL_STATE_FEDORA_GDB would not be found for:
|
||||
# Patch642: gdb-readline62-ask-more-rh.patch
|
||||
@ -1133,6 +1140,11 @@ done
|
||||
%patch1152 -p1
|
||||
%patch1153 -p1
|
||||
%patch1155 -p1
|
||||
%patch1255 -p1
|
||||
%patch1256 -p1
|
||||
%patch1257 -p1
|
||||
%patch1258 -p1
|
||||
%patch1259 -p1
|
||||
|
||||
%patch1075 -p1
|
||||
%if 0%{?rhel:1} && 0%{?rhel} <= 7
|
||||
@ -1715,6 +1727,9 @@ then
|
||||
fi
|
||||
|
||||
%changelog
|
||||
* Sat Oct 7 2017 Jan Kratochvil <jan.kratochvil@redhat.com> - 8.0.1-29.fc26
|
||||
- [s390x] Backport arch14 guarded-storage register support (RH BZ 1498758).
|
||||
|
||||
* Thu Sep 28 2017 Jan Kratochvil <jan.kratochvil@redhat.com> - 8.0.1-28.fc26
|
||||
- Performance fix of gcore to use --readnever (for RH BZ 1493675).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user