This commit is contained in:
parent
865e063b74
commit
0299f4e453
@ -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
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user