1
Two last-minute regression fixes that I thought we might as well
1
Squashed in a trivial fix for 32-bit hosts:
2
squeeze in before rc1.
3
2
4
thanks
3
--- a/target/arm/mve_helper.c
4
+++ b/target/arm/mve_helper.c
5
@@ -XXX,XX +XXX,XX @@ DO_LDAV(vmlsldavxsw, 4, int32_t, true, +=, -=)
6
acc = EVENACC(acc, TO128(n[H##ESIZE(e + 1 * XCHG)] * \
7
m[H##ESIZE(e)])); \
8
} \
9
- acc = int128_add(acc, 1 << 7); \
10
+ acc = int128_add(acc, int128_make64(1 << 7)); \
11
} \
12
} \
13
mve_advance_vpt(env); \
14
5
-- PMM
15
-- PMM
6
16
7
The following changes since commit d37bfe142382fa8258531c47b4519387c77cd169:
17
The following changes since commit 53f306f316549d20c76886903181413d20842423:
8
18
9
Merge remote-tracking branch 'remotes/palmer/tags/riscv-for-master-4.0-rc1-v2' into staging (2019-03-26 10:27:20 +0000)
19
Merge remote-tracking branch 'remotes/ehabkost-gl/tags/x86-next-pull-request' into staging (2021-06-21 11:26:04 +0100)
10
20
11
are available in the Git repository at:
21
are available in the Git repository at:
12
22
13
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20190326
23
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210624
14
24
15
for you to fetch changes up to c99ef792dc9ec6d8a5061428faf396ea9ceb8f57:
25
for you to fetch changes up to 90a76c6316cfe6416fc33814a838fb3928f746ee:
16
26
17
gdbstub: fix vCont packet handling when no thread is specified (2019-03-26 12:53:26 +0000)
27
docs/system: arm: Add nRF boards description (2021-06-24 14:58:48 +0100)
18
28
19
----------------------------------------------------------------
29
----------------------------------------------------------------
20
target-arm queue:
30
target-arm queue:
21
* Set SIMDMISC and FPMISC for 32-bit -cpu max
31
* Don't require 'virt' board to be compiled in for ACPI GHES code
22
(fixes regression from 3.1)
32
* docs: Document which architecture extensions we emulate
23
* fix vCont packet handling when no thread is specified
33
* Fix bugs in M-profile FPCXT_NS accesses
34
* First slice of MVE patches
35
* Implement MTE3
36
* docs/system: arm: Add nRF boards description
24
37
25
----------------------------------------------------------------
38
----------------------------------------------------------------
26
Luc Michel (1):
39
Alexandre Iooss (1):
27
gdbstub: fix vCont packet handling when no thread is specified
40
docs/system: arm: Add nRF boards description
28
41
29
Richard Henderson (1):
42
Peter Collingbourne (1):
30
target/arm: Set SIMDMISC and FPMISC for 32-bit -cpu max
43
target/arm: Implement MTE3
31
44
32
gdbstub.c | 14 ++++++++++++--
45
Peter Maydell (55):
33
target/arm/cpu.c | 5 +++++
46
hw/acpi: Provide stub version of acpi_ghes_record_errors()
34
2 files changed, 17 insertions(+), 2 deletions(-)
47
hw/acpi: Provide function acpi_ghes_present()
48
target/arm: Use acpi_ghes_present() to see if we report ACPI memory errors
49
docs/system/arm: Document which architecture extensions we emulate
50
target/arm/translate-vfp.c: Whitespace fixes
51
target/arm: Handle FPU being disabled in FPCXT_NS accesses
52
target/arm: Don't NOCP fault for FPCXT_NS accesses
53
target/arm: Handle writeback in VLDR/VSTR sysreg with no memory access
54
target/arm: Factor FP context update code out into helper function
55
target/arm: Split vfp_access_check() into A and M versions
56
target/arm: Handle FPU check for FPCXT_NS insns via vfp_access_check_m()
57
target/arm: Implement MVE VLDR/VSTR (non-widening forms)
58
target/arm: Implement widening/narrowing MVE VLDR/VSTR insns
59
target/arm: Implement MVE VCLZ
60
target/arm: Implement MVE VCLS
61
target/arm: Implement MVE VREV16, VREV32, VREV64
62
target/arm: Implement MVE VMVN (register)
63
target/arm: Implement MVE VABS
64
target/arm: Implement MVE VNEG
65
tcg: Make gen_dup_i32/i64() public as tcg_gen_dup_i32/i64
66
target/arm: Implement MVE VDUP
67
target/arm: Implement MVE VAND, VBIC, VORR, VORN, VEOR
68
target/arm: Implement MVE VADD, VSUB, VMUL
69
target/arm: Implement MVE VMULH
70
target/arm: Implement MVE VRMULH
71
target/arm: Implement MVE VMAX, VMIN
72
target/arm: Implement MVE VABD
73
target/arm: Implement MVE VHADD, VHSUB
74
target/arm: Implement MVE VMULL
75
target/arm: Implement MVE VMLALDAV
76
target/arm: Implement MVE VMLSLDAV
77
target/arm: Implement MVE VRMLALDAVH, VRMLSLDAVH
78
target/arm: Implement MVE VADD (scalar)
79
target/arm: Implement MVE VSUB, VMUL (scalar)
80
target/arm: Implement MVE VHADD, VHSUB (scalar)
81
target/arm: Implement MVE VBRSR
82
target/arm: Implement MVE VPST
83
target/arm: Implement MVE VQADD and VQSUB
84
target/arm: Implement MVE VQDMULH and VQRDMULH (scalar)
85
target/arm: Implement MVE VQDMULL scalar
86
target/arm: Implement MVE VQDMULH, VQRDMULH (vector)
87
target/arm: Implement MVE VQADD, VQSUB (vector)
88
target/arm: Implement MVE VQSHL (vector)
89
target/arm: Implement MVE VQRSHL
90
target/arm: Implement MVE VSHL insn
91
target/arm: Implement MVE VRSHL
92
target/arm: Implement MVE VQDMLADH and VQRDMLADH
93
target/arm: Implement MVE VQDMLSDH and VQRDMLSDH
94
target/arm: Implement MVE VQDMULL (vector)
95
target/arm: Implement MVE VRHADD
96
target/arm: Implement MVE VADC, VSBC
97
target/arm: Implement MVE VCADD
98
target/arm: Implement MVE VHCADD
99
target/arm: Implement MVE VADDV
100
target/arm: Make VMOV scalar <-> gpreg beatwise for MVE
35
101
102
docs/system/arm/emulation.rst | 103 ++++
103
docs/system/arm/nrf.rst | 51 ++
104
docs/system/target-arm.rst | 7 +
105
include/hw/acpi/ghes.h | 9 +
106
include/tcg/tcg-op.h | 8 +
107
include/tcg/tcg.h | 1 -
108
target/arm/helper-mve.h | 357 +++++++++++++
109
target/arm/helper.h | 2 +
110
target/arm/internals.h | 11 +
111
target/arm/translate-a32.h | 3 +
112
target/arm/translate.h | 10 +
113
target/arm/m-nocp.decode | 24 +
114
target/arm/mve.decode | 240 +++++++++
115
target/arm/vfp.decode | 14 -
116
hw/acpi/ghes-stub.c | 22 +
117
hw/acpi/ghes.c | 17 +
118
target/arm/cpu64.c | 2 +-
119
target/arm/kvm64.c | 6 +-
120
target/arm/mte_helper.c | 82 +--
121
target/arm/mve_helper.c | 1160 +++++++++++++++++++++++++++++++++++++++++
122
target/arm/translate-m-nocp.c | 550 +++++++++++++++++++
123
target/arm/translate-mve.c | 759 +++++++++++++++++++++++++++
124
target/arm/translate-vfp.c | 741 +++++++-------------------
125
tcg/tcg-op-gvec.c | 20 +-
126
MAINTAINERS | 1 +
127
hw/acpi/meson.build | 6 +-
128
target/arm/meson.build | 1 +
129
27 files changed, 3578 insertions(+), 629 deletions(-)
130
create mode 100644 docs/system/arm/emulation.rst
131
create mode 100644 docs/system/arm/nrf.rst
132
create mode 100644 target/arm/helper-mve.h
133
create mode 100644 hw/acpi/ghes-stub.c
134
create mode 100644 target/arm/mve_helper.c
135
diff view generated by jsdifflib
Deleted patch
1
From: Richard Henderson <richard.henderson@linaro.org>
2
1
3
Fixes: https://bugs.launchpad.net/bugs/1821430
4
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
5
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
6
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
7
Message-id: 20190325161338.6536-1-richard.henderson@linaro.org
8
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
9
---
10
target/arm/cpu.c | 5 +++++
11
1 file changed, 5 insertions(+)
12
13
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
14
index XXXXXXX..XXXXXXX 100644
15
--- a/target/arm/cpu.c
16
+++ b/target/arm/cpu.c
17
@@ -XXX,XX +XXX,XX @@ static void arm_max_initfn(Object *obj)
18
t = FIELD_DP32(t, ID_ISAR6, SPECRES, 1);
19
cpu->isar.id_isar6 = t;
20
21
+ t = cpu->isar.mvfr2;
22
+ t = FIELD_DP32(t, MVFR2, SIMDMISC, 3); /* SIMD MaxNum */
23
+ t = FIELD_DP32(t, MVFR2, FPMISC, 4); /* FP MaxNum */
24
+ cpu->isar.mvfr2 = t;
25
+
26
t = cpu->id_mmfr4;
27
t = FIELD_DP32(t, ID_MMFR4, HPDS, 1); /* AA32HPD */
28
cpu->id_mmfr4 = t;
29
--
30
2.20.1
31
32
diff view generated by jsdifflib
Deleted patch
1
From: Luc Michel <luc.michel@greensocs.com>
2
1
3
The vCont packet accepts a series of actions, each being applied on a
4
given thread ID. Giving no thread ID for an action is valid and means
5
"all threads".
6
7
This commit fixes vCont packets being incorrectly rejected when no
8
thread ID was given for an action.
9
10
In multiprocess mode, the GDB Remote Protocol specification is unclear
11
on what "all threads" means. We choose to apply the action on all
12
threads of all attached processes.
13
14
This commit is based on the initial fix by Lucien Murray-Pitts.
15
16
Fixes: e40e5204af8388
17
Reported-by: Lucien Murray-Pitts <lucienmp_antispam@yahoo.com>
18
Reported-by: Jan Kiszka <jan.kiszka@siemens.com>
19
Signed-off-by: Luc Michel <luc.michel@greensocs.com>
20
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
21
Message-id: 20190325110452.6756-1-luc.michel@greensocs.com
22
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
23
---
24
gdbstub.c | 14 ++++++++++++--
25
1 file changed, 12 insertions(+), 2 deletions(-)
26
27
diff --git a/gdbstub.c b/gdbstub.c
28
index XXXXXXX..XXXXXXX 100644
29
--- a/gdbstub.c
30
+++ b/gdbstub.c
31
@@ -XXX,XX +XXX,XX @@ static int gdb_handle_vcont(GDBState *s, const char *p)
32
uint32_t pid, tid;
33
GDBProcess *process;
34
CPUState *cpu;
35
+ GDBThreadIdKind kind;
36
#ifdef CONFIG_USER_ONLY
37
int max_cpus = 1; /* global variable max_cpus exists only in system mode */
38
39
@@ -XXX,XX +XXX,XX @@ static int gdb_handle_vcont(GDBState *s, const char *p)
40
goto out;
41
}
42
43
- if (*p++ != ':') {
44
+ if (*p == '\0' || *p == ';') {
45
+ /*
46
+ * No thread specifier, action is on "all threads". The
47
+ * specification is unclear regarding the process to act on. We
48
+ * choose all processes.
49
+ */
50
+ kind = GDB_ALL_PROCESSES;
51
+ } else if (*p++ == ':') {
52
+ kind = read_thread_id(p, &p, &pid, &tid);
53
+ } else {
54
res = -ENOTSUP;
55
goto out;
56
}
57
58
- switch (read_thread_id(p, &p, &pid, &tid)) {
59
+ switch (kind) {
60
case GDB_READ_THREAD_ERR:
61
res = -EINVAL;
62
goto out;
63
--
64
2.20.1
65
66
diff view generated by jsdifflib