Dirk Mueller 2018-11-22 09:53:28 +00:00 committed by Git OBS Bridge
parent 865e063b74
commit 0299f4e453

View File

@ -21,23 +21,11 @@ represent the vector registers. This is fixed.
create mode 100644 coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml create mode 100644 coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml
create mode 100644 coregrind/m_gdbserver/s390x-vx-linux.xml create mode 100644 coregrind/m_gdbserver/s390x-vx-linux.xml
diff --git a/NEWS b/NEWS Index: valgrind-3.14.0/coregrind/Makefile.am
index e0917e25f..2fa2c86a3 100644 ===================================================================
--- a/NEWS --- valgrind-3.14.0.orig/coregrind/Makefile.am
+++ b/NEWS +++ valgrind-3.14.0/coregrind/Makefile.am
@@ -49,6 +49,7 @@ where XXXXXX is the bug number as listed below. @@ -681,6 +681,11 @@ GDBSERVER_XML_FILES = \
399322 Improve callgrind_annotate output
400490 s390x: VRs allocated as if separate from FPRs
400491 s390x: Operand of LOCH treated as unsigned integer
+397187 z13 vector register support for vgdb gdbserver
Release 3.14.0 (9 October 2018)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am
index 8de19968f..94030fdb0 100644
--- a/coregrind/Makefile.am
+++ b/coregrind/Makefile.am
@@ -685,6 +685,11 @@ GDBSERVER_XML_FILES = \
m_gdbserver/s390x-linux64-valgrind-s1.xml \ m_gdbserver/s390x-linux64-valgrind-s1.xml \
m_gdbserver/s390x-linux64-valgrind-s2.xml \ m_gdbserver/s390x-linux64-valgrind-s2.xml \
m_gdbserver/s390x-linux64.xml \ m_gdbserver/s390x-linux64.xml \
@ -49,11 +37,10 @@ index 8de19968f..94030fdb0 100644
m_gdbserver/mips-cp0-valgrind-s1.xml \ m_gdbserver/mips-cp0-valgrind-s1.xml \
m_gdbserver/mips-cp0-valgrind-s2.xml \ m_gdbserver/mips-cp0-valgrind-s2.xml \
m_gdbserver/mips-cp0.xml \ m_gdbserver/mips-cp0.xml \
diff --git a/coregrind/m_gdbserver/s390-vx-valgrind-s1.xml b/coregrind/m_gdbserver/s390-vx-valgrind-s1.xml Index: valgrind-3.14.0/coregrind/m_gdbserver/s390-vx-valgrind-s1.xml
new file mode 100644 ===================================================================
index 000000000..ca461b32a
--- /dev/null --- /dev/null
+++ b/coregrind/m_gdbserver/s390-vx-valgrind-s1.xml +++ valgrind-3.14.0/coregrind/m_gdbserver/s390-vx-valgrind-s1.xml
@@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc. +<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
@ -98,11 +85,10 @@ index 000000000..ca461b32a
+ <reg name="v30s1" bitsize="128" type="uint128"/> + <reg name="v30s1" bitsize="128" type="uint128"/>
+ <reg name="v31s1" bitsize="128" type="uint128"/> + <reg name="v31s1" bitsize="128" type="uint128"/>
+</feature> +</feature>
diff --git a/coregrind/m_gdbserver/s390-vx-valgrind-s2.xml b/coregrind/m_gdbserver/s390-vx-valgrind-s2.xml Index: valgrind-3.14.0/coregrind/m_gdbserver/s390-vx-valgrind-s2.xml
new file mode 100644 ===================================================================
index 000000000..eccbd8d5f
--- /dev/null --- /dev/null
+++ b/coregrind/m_gdbserver/s390-vx-valgrind-s2.xml +++ valgrind-3.14.0/coregrind/m_gdbserver/s390-vx-valgrind-s2.xml
@@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc. +<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
@ -147,11 +133,10 @@ index 000000000..eccbd8d5f
+ <reg name="v30s2" bitsize="128" type="uint128"/> + <reg name="v30s2" bitsize="128" type="uint128"/>
+ <reg name="v31s2" bitsize="128" type="uint128"/> + <reg name="v31s2" bitsize="128" type="uint128"/>
+</feature> +</feature>
diff --git a/coregrind/m_gdbserver/s390-vx.xml b/coregrind/m_gdbserver/s390-vx.xml Index: valgrind-3.14.0/coregrind/m_gdbserver/s390-vx.xml
new file mode 100644 ===================================================================
index 000000000..2a16873fe
--- /dev/null --- /dev/null
+++ b/coregrind/m_gdbserver/s390-vx.xml +++ valgrind-3.14.0/coregrind/m_gdbserver/s390-vx.xml
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc. +<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
@ -212,11 +197,10 @@ index 000000000..2a16873fe
+ <reg name="v30" bitsize="128" type="vec128"/> + <reg name="v30" bitsize="128" type="vec128"/>
+ <reg name="v31" bitsize="128" type="vec128"/> + <reg name="v31" bitsize="128" type="vec128"/>
+</feature> +</feature>
diff --git a/coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml b/coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml Index: valgrind-3.14.0/coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml
new file mode 100644 ===================================================================
index 000000000..02370022e
--- /dev/null --- /dev/null
+++ b/coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml +++ valgrind-3.14.0/coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc. +<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
@ -246,11 +230,10 @@ index 000000000..02370022e
+ <xi:include href="s390x-linux64-valgrind-s2.xml"/> + <xi:include href="s390x-linux64-valgrind-s2.xml"/>
+ <xi:include href="s390-vx-valgrind-s2.xml"/> + <xi:include href="s390-vx-valgrind-s2.xml"/>
+</target> +</target>
diff --git a/coregrind/m_gdbserver/s390x-vx-linux.xml b/coregrind/m_gdbserver/s390x-vx-linux.xml Index: valgrind-3.14.0/coregrind/m_gdbserver/s390x-vx-linux.xml
new file mode 100644 ===================================================================
index 000000000..e431c5b2a
--- /dev/null --- /dev/null
+++ b/coregrind/m_gdbserver/s390x-vx-linux.xml +++ valgrind-3.14.0/coregrind/m_gdbserver/s390x-vx-linux.xml
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc. +<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
@ -270,10 +253,10 @@ index 000000000..e431c5b2a
+ <xi:include href="s390x-linux64.xml"/> + <xi:include href="s390x-linux64.xml"/>
+ <xi:include href="s390-vx.xml"/> + <xi:include href="s390-vx.xml"/>
+</target> +</target>
diff --git a/coregrind/m_gdbserver/valgrind-low-s390x.c b/coregrind/m_gdbserver/valgrind-low-s390x.c Index: valgrind-3.14.0/coregrind/m_gdbserver/valgrind-low-s390x.c
index 7bbb2e372..a667f4b40 100644 ===================================================================
--- a/coregrind/m_gdbserver/valgrind-low-s390x.c --- valgrind-3.14.0.orig/coregrind/m_gdbserver/valgrind-low-s390x.c
+++ b/coregrind/m_gdbserver/valgrind-low-s390x.c +++ valgrind-3.14.0/coregrind/m_gdbserver/valgrind-low-s390x.c
@@ -88,9 +88,42 @@ static struct reg regs[] = { @@ -88,9 +88,42 @@ static struct reg regs[] = {
{ "f14", 2592, 64 }, { "f14", 2592, 64 },
{ "f15", 2656, 64 }, { "f15", 2656, 64 },
@ -318,7 +301,7 @@ index 7bbb2e372..a667f4b40 100644
static static
CORE_ADDR get_pc (void) CORE_ADDR get_pc (void)
@@ -165,7 +198,7 @@ void transfer_register (ThreadId tid, int abs_regno, void * buf, @@ -165,7 +198,7 @@ void transfer_register (ThreadId tid, in
case 32: VG_(transfer) (&s390x->guest_a14, buf, dir, size, mod); break; case 32: VG_(transfer) (&s390x->guest_a14, buf, dir, size, mod); break;
case 33: VG_(transfer) (&s390x->guest_a15, buf, dir, size, mod); break; case 33: VG_(transfer) (&s390x->guest_a15, buf, dir, size, mod); break;
case 34: VG_(transfer) (&s390x->guest_fpc, buf, dir, size, mod); break; case 34: VG_(transfer) (&s390x->guest_fpc, buf, dir, size, mod); break;
@ -327,7 +310,7 @@ index 7bbb2e372..a667f4b40 100644
case 36: VG_(transfer) (&s390x->guest_v1.w64[0], buf, dir, size, mod); break; case 36: VG_(transfer) (&s390x->guest_v1.w64[0], buf, dir, size, mod); break;
case 37: VG_(transfer) (&s390x->guest_v2.w64[0], buf, dir, size, mod); break; case 37: VG_(transfer) (&s390x->guest_v2.w64[0], buf, dir, size, mod); break;
case 38: VG_(transfer) (&s390x->guest_v3.w64[0], buf, dir, size, mod); break; case 38: VG_(transfer) (&s390x->guest_v3.w64[0], buf, dir, size, mod); break;
@@ -182,18 +215,65 @@ void transfer_register (ThreadId tid, int abs_regno, void * buf, @@ -182,18 +215,65 @@ void transfer_register (ThreadId tid, in
case 49: VG_(transfer) (&s390x->guest_v14.w64[0], buf, dir, size, mod); break; case 49: VG_(transfer) (&s390x->guest_v14.w64[0], buf, dir, size, mod); break;
case 50: VG_(transfer) (&s390x->guest_v15.w64[0], buf, dir, size, mod); break; case 50: VG_(transfer) (&s390x->guest_v15.w64[0], buf, dir, size, mod); break;
case 51: *mod = False; break; //GDBTD??? { "orig_r2", 0, 64 }, case 51: *mod = False; break; //GDBTD??? { "orig_r2", 0, 64 },
@ -367,7 +350,7 @@ index 7bbb2e372..a667f4b40 100644
} }
} }
+static static
+Bool have_vx (void) +Bool have_vx (void)
+{ +{
+ VexArch va; + VexArch va;
@ -376,7 +359,7 @@ index 7bbb2e372..a667f4b40 100644
+ return (vai.hwcaps & VEX_HWCAPS_S390X_VX) != 0; + return (vai.hwcaps & VEX_HWCAPS_S390X_VX) != 0;
+} +}
+ +
static +static
const char* target_xml (Bool shadow_mode) const char* target_xml (Bool shadow_mode)
{ {
if (shadow_mode) { if (shadow_mode) {
@ -396,7 +379,7 @@ index 7bbb2e372..a667f4b40 100644
} }
static CORE_ADDR** target_get_dtv (ThreadState *tst) static CORE_ADDR** target_get_dtv (ThreadState *tst)
@@ -206,7 +286,7 @@ static CORE_ADDR** target_get_dtv (ThreadState *tst) @@ -206,7 +286,7 @@ static CORE_ADDR** target_get_dtv (Threa
} }
static struct valgrind_target_ops low_target = { static struct valgrind_target_ops low_target = {
@ -405,7 +388,7 @@ index 7bbb2e372..a667f4b40 100644
regs, regs,
17, //sp = r15, which is register offset 17 in regs 17, //sp = r15, which is register offset 17 in regs
transfer_register, transfer_register,
@@ -220,6 +300,11 @@ static struct valgrind_target_ops low_target = { @@ -220,6 +300,11 @@ static struct valgrind_target_ops low_ta
void s390x_init_architecture (struct valgrind_target_ops *target) void s390x_init_architecture (struct valgrind_target_ops *target)
{ {
*target = low_target; *target = low_target;
@ -417,6 +400,3 @@ index 7bbb2e372..a667f4b40 100644
set_register_cache (regs, num_regs); set_register_cache (regs, num_regs);
gdbserver_expedite_regs = expedite_regs; gdbserver_expedite_regs = expedite_regs;
} }
--
2.19.1