1
Couple of last-minute things for rc3...
1
Squashed in a trivial fix for 32-bit hosts:
2
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); \
2
14
3
-- PMM
15
-- PMM
4
16
5
The following changes since commit d15532d91be177e7528310e0110e39f915779a99:
17
The following changes since commit 53f306f316549d20c76886903181413d20842423:
6
18
7
Merge remote-tracking branch 'remotes/aperard/tags/pull-xen-20200804' into staging (2020-08-04 11:53:20 +0100)
19
Merge remote-tracking branch 'remotes/ehabkost-gl/tags/x86-next-pull-request' into staging (2021-06-21 11:26:04 +0100)
8
20
9
are available in the Git repository at:
21
are available in the Git repository at:
10
22
11
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20200804
23
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210624
12
24
13
for you to fetch changes up to d250bb19ced3b702c7c37731855f6876d0cc7995:
25
for you to fetch changes up to 90a76c6316cfe6416fc33814a838fb3928f746ee:
14
26
15
target/arm: Fix decode of LDRA[AB] instructions (2020-08-04 16:40:19 +0100)
27
docs/system: arm: Add nRF boards description (2021-06-24 14:58:48 +0100)
16
28
17
----------------------------------------------------------------
29
----------------------------------------------------------------
18
target-arm queue:
30
target-arm queue:
19
* Fix decode of LDRA[AB] instructions
31
* Don't require 'virt' board to be compiled in for ACPI GHES code
20
* docs/devel: Document decodetree no-overlap groups
32
* docs: Document which architecture extensions we emulate
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
21
37
22
----------------------------------------------------------------
38
----------------------------------------------------------------
39
Alexandre Iooss (1):
40
docs/system: arm: Add nRF boards description
41
23
Peter Collingbourne (1):
42
Peter Collingbourne (1):
24
target/arm: Fix decode of LDRA[AB] instructions
43
target/arm: Implement MTE3
25
44
26
Richard Henderson (1):
45
Peter Maydell (55):
27
docs/devel: Document decodetree no-overlap groups
46
hw/acpi: Provide stub version of acpi_ghes_record_errors()
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
28
101
29
docs/devel/decodetree.rst | 29 ++++++++++++++++++-----------
102
docs/system/arm/emulation.rst | 103 ++++
30
target/arm/translate-a64.c | 6 ++++--
103
docs/system/arm/nrf.rst | 51 ++
31
2 files changed, 22 insertions(+), 13 deletions(-)
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
32
135
diff view generated by jsdifflib
Deleted patch
1
From: Richard Henderson <richard.henderson@linaro.org>
2
1
3
When support for this feature went in, the update to the
4
documentation was forgotten.
5
6
Fixes: 067e8b0f45d6
7
Reported-by: Peter Maydell <peter.maydell@linaro.org>
8
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
9
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
10
Message-id: 20200803205708.315829-1-richard.henderson@linaro.org
11
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12
---
13
docs/devel/decodetree.rst | 29 ++++++++++++++++++-----------
14
1 file changed, 18 insertions(+), 11 deletions(-)
15
16
diff --git a/docs/devel/decodetree.rst b/docs/devel/decodetree.rst
17
index XXXXXXX..XXXXXXX 100644
18
--- a/docs/devel/decodetree.rst
19
+++ b/docs/devel/decodetree.rst
20
@@ -XXX,XX +XXX,XX @@ Pattern Groups
21
22
Syntax::
23
24
- group := '{' ( pat_def | group )+ '}'
25
+ group := overlap_group | no_overlap_group
26
+ overlap_group := '{' ( pat_def | group )+ '}'
27
+ no_overlap_group := '[' ( pat_def | group )+ ']'
28
29
-A *group* begins with a lone open-brace, with all subsequent lines
30
-indented two spaces, and ending with a lone close-brace. Groups
31
-may be nested, increasing the required indentation of the lines
32
-within the nested group to two spaces per nesting level.
33
+A *group* begins with a lone open-brace or open-bracket, with all
34
+subsequent lines indented two spaces, and ending with a lone
35
+close-brace or close-bracket. Groups may be nested, increasing the
36
+required indentation of the lines within the nested group to two
37
+spaces per nesting level.
38
39
-Unlike ungrouped patterns, grouped patterns are allowed to overlap.
40
-Conflicts are resolved by selecting the patterns in order. If all
41
-of the fixedbits for a pattern match, its translate function will
42
-be called. If the translate function returns false, then subsequent
43
-patterns within the group will be matched.
44
+Patterns within overlap groups are allowed to overlap. Conflicts are
45
+resolved by selecting the patterns in order. If all of the fixedbits
46
+for a pattern match, its translate function will be called. If the
47
+translate function returns false, then subsequent patterns within the
48
+group will be matched.
49
+
50
+Patterns within no-overlap groups are not allowed to overlap, just
51
+the same as ungrouped patterns. Thus no-overlap groups are intended
52
+to be nested inside overlap groups.
53
54
The following example from PA-RISC shows specialization of the *or*
55
instruction::
56
@@ -XXX,XX +XXX,XX @@ instruction::
57
When the *cf* field is zero, the instruction has no side effects,
58
and may be specialized. When the *rt* field is zero, the output
59
is discarded and so the instruction has no effect. When the *rt2*
60
-field is zero, the operation is ``reg[rt] | 0`` and so encodes
61
+field is zero, the operation is ``reg[r1] | 0`` and so encodes
62
the canonical register copy operation.
63
64
The output from the generator might look like::
65
--
66
2.20.1
67
68
diff view generated by jsdifflib
Deleted patch
1
From: Peter Collingbourne <pcc@google.com>
2
1
3
These instructions use zero as the discriminator, not SP.
4
5
Signed-off-by: Peter Collingbourne <pcc@google.com>
6
Message-id: 20200804002849.30268-1-pcc@google.com
7
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
8
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
9
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10
---
11
target/arm/translate-a64.c | 6 ++++--
12
1 file changed, 4 insertions(+), 2 deletions(-)
13
14
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
15
index XXXXXXX..XXXXXXX 100644
16
--- a/target/arm/translate-a64.c
17
+++ b/target/arm/translate-a64.c
18
@@ -XXX,XX +XXX,XX @@ static void disas_ldst_pac(DisasContext *s, uint32_t insn,
19
20
if (s->pauth_active) {
21
if (use_key_a) {
22
- gen_helper_autda(dirty_addr, cpu_env, dirty_addr, cpu_X[31]);
23
+ gen_helper_autda(dirty_addr, cpu_env, dirty_addr,
24
+ new_tmp_a64_zero(s));
25
} else {
26
- gen_helper_autdb(dirty_addr, cpu_env, dirty_addr, cpu_X[31]);
27
+ gen_helper_autdb(dirty_addr, cpu_env, dirty_addr,
28
+ new_tmp_a64_zero(s));
29
}
30
}
31
32
--
33
2.20.1
34
35
diff view generated by jsdifflib