1
Just one patch, but should make stable 2.10.1 this week.
1
v2: Drop a few patches, which showed regressions in CI
2
for jobs that are not run for forks. :-/
2
3
3
4
4
r~
5
r~
5
6
6
7
7
The following changes since commit 460b6c8e581aa06b86f59eebd9e52edfe7adf417:
8
The following changes since commit f9d58e0ca53b3f470b84725a7b5e47fcf446a2ea:
8
9
9
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2017-09-23 12:55:40 +0100)
10
Merge tag 'pull-9p-20230516' of https://github.com/cschoenebeck/qemu into staging (2023-05-16 10:21:44 -0700)
10
11
11
are available in the git repository at:
12
are available in the Git repository at:
12
13
13
git://github.com/rth7680/qemu.git tags/pull-tcg-20170925
14
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20230516-2
14
15
15
for you to fetch changes up to 8b81253332b5a3f3c67b6462f39caef47a00dd29:
16
for you to fetch changes up to 44fe8f47fce3bdc8dcf49e3f001519a375ecc88a:
16
17
17
accel/tcg/cputlb: avoid recursive BQL (fixes #1706296) (2017-09-25 11:23:30 -0700)
18
tcg: Split out exec/user/guest-base.h (2023-05-16 16:31:05 -0700)
18
19
19
----------------------------------------------------------------
20
----------------------------------------------------------------
20
BQL bug fix
21
tcg/i386: Fix tcg_out_addi_ptr for win64
22
tcg: Implement atomicity for TCGv_i128
23
tcg: First quarter of cleanups for building tcg once
21
24
22
----------------------------------------------------------------
25
----------------------------------------------------------------
23
Alex Bennée (1):
26
Richard Henderson (74):
24
accel/tcg/cputlb: avoid recursive BQL (fixes #1706296)
27
tcg/i386: Set P_REXW in tcg_out_addi_ptr
28
include/exec/memop: Add MO_ATOM_*
29
accel/tcg: Honor atomicity of loads
30
accel/tcg: Honor atomicity of stores
31
tcg: Unify helper_{be,le}_{ld,st}*
32
accel/tcg: Implement helper_{ld,st}*_mmu for user-only
33
tcg/tci: Use helper_{ld,st}*_mmu for user-only
34
tcg: Add 128-bit guest memory primitives
35
meson: Detect atomic128 support with optimization
36
tcg/i386: Add have_atomic16
37
tcg/aarch64: Detect have_lse, have_lse2 for linux
38
tcg/aarch64: Detect have_lse, have_lse2 for darwin
39
tcg/i386: Use full load/store helpers in user-only mode
40
tcg/aarch64: Use full load/store helpers in user-only mode
41
tcg/ppc: Use full load/store helpers in user-only mode
42
tcg/loongarch64: Use full load/store helpers in user-only mode
43
tcg/riscv: Use full load/store helpers in user-only mode
44
tcg/arm: Adjust constraints on qemu_ld/st
45
tcg/arm: Use full load/store helpers in user-only mode
46
tcg/mips: Use full load/store helpers in user-only mode
47
tcg/s390x: Use full load/store helpers in user-only mode
48
tcg/sparc64: Allocate %g2 as a third temporary
49
tcg/sparc64: Rename tcg_out_movi_imm13 to tcg_out_movi_s13
50
target/sparc64: Remove tcg_out_movi_s13 case from tcg_out_movi_imm32
51
tcg/sparc64: Rename tcg_out_movi_imm32 to tcg_out_movi_u32
52
tcg/sparc64: Split out tcg_out_movi_s32
53
tcg/sparc64: Use standard slow path for softmmu
54
accel/tcg: Remove helper_unaligned_{ld,st}
55
tcg/loongarch64: Check the host supports unaligned accesses
56
tcg/loongarch64: Support softmmu unaligned accesses
57
tcg/riscv: Support softmmu unaligned accesses
58
tcg: Introduce tcg_target_has_memory_bswap
59
tcg: Add INDEX_op_qemu_{ld,st}_i128
60
tcg: Introduce tcg_out_movext3
61
tcg: Merge tcg_out_helper_load_regs into caller
62
tcg: Support TCG_TYPE_I128 in tcg_out_{ld,st}_helper_{args,ret}
63
tcg: Introduce atom_and_align_for_opc
64
tcg/i386: Use atom_and_align_for_opc
65
tcg/aarch64: Use atom_and_align_for_opc
66
tcg/arm: Use atom_and_align_for_opc
67
tcg/loongarch64: Use atom_and_align_for_opc
68
tcg/mips: Use atom_and_align_for_opc
69
tcg/ppc: Use atom_and_align_for_opc
70
tcg/riscv: Use atom_and_align_for_opc
71
tcg/s390x: Use atom_and_align_for_opc
72
tcg/sparc64: Use atom_and_align_for_opc
73
tcg: Split out memory ops to tcg-op-ldst.c
74
tcg: Widen gen_insn_data to uint64_t
75
accel/tcg: Widen tcg-ldst.h addresses to uint64_t
76
tcg: Widen helper_{ld,st}_i128 addresses to uint64_t
77
tcg: Widen helper_atomic_* addresses to uint64_t
78
tcg: Widen tcg_gen_code pc_start argument to uint64_t
79
accel/tcg: Merge gen_mem_wrapped with plugin_gen_empty_mem_callback
80
accel/tcg: Merge do_gen_mem_cb into caller
81
tcg: Reduce copies for plugin_gen_mem_callbacks
82
accel/tcg: Widen plugin_gen_empty_mem_callback to i64
83
tcg: Add addr_type to TCGContext
84
tcg: Remove TCGv from tcg_gen_qemu_{ld,st}_*
85
tcg: Remove TCGv from tcg_gen_atomic_*
86
tcg: Split INDEX_op_qemu_{ld,st}* for guest address size
87
tcg/tci: Elimnate TARGET_LONG_BITS, target_ulong
88
tcg/i386: Always enable TCG_TARGET_HAS_extr[lh]_i64_i32
89
tcg/i386: Conditionalize tcg_out_extu_i32_i64
90
tcg/i386: Adjust type of tlb_mask
91
tcg/i386: Remove TARGET_LONG_BITS, TCG_TYPE_TL
92
tcg/arm: Remove TARGET_LONG_BITS
93
tcg/aarch64: Remove USE_GUEST_BASE
94
tcg/aarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL
95
tcg/loongarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL
96
tcg/mips: Remove TARGET_LONG_BITS, TCG_TYPE_TL
97
tcg: Remove TARGET_LONG_BITS, TCG_TYPE_TL
98
tcg: Add page_bits and page_mask to TCGContext
99
tcg: Add tlb_dyn_max_bits to TCGContext
100
tcg: Split out exec/user/guest-base.h
25
101
26
accel/tcg/cputlb.c | 4 ++--
102
docs/devel/loads-stores.rst | 36 +-
27
1 file changed, 2 insertions(+), 2 deletions(-)
103
docs/devel/tcg-ops.rst | 11 +-
28
104
meson.build | 52 +-
105
accel/tcg/tcg-runtime.h | 49 +-
106
include/exec/cpu-all.h | 5 +-
107
include/exec/memop.h | 37 ++
108
include/exec/plugin-gen.h | 4 +-
109
include/exec/user/guest-base.h | 12 +
110
include/qemu/cpuid.h | 18 +
111
include/tcg/tcg-ldst.h | 72 +--
112
include/tcg/tcg-op.h | 273 ++++++---
113
include/tcg/tcg-opc.h | 41 +-
114
include/tcg/tcg.h | 39 +-
115
tcg/aarch64/tcg-target.h | 6 +-
116
tcg/arm/tcg-target-con-set.h | 16 +-
117
tcg/arm/tcg-target-con-str.h | 5 +-
118
tcg/arm/tcg-target.h | 3 +-
119
tcg/i386/tcg-target.h | 12 +-
120
tcg/loongarch64/tcg-target.h | 3 +-
121
tcg/mips/tcg-target.h | 4 +-
122
tcg/ppc/tcg-target.h | 3 +-
123
tcg/riscv/tcg-target.h | 4 +-
124
tcg/s390x/tcg-target.h | 4 +-
125
tcg/sparc64/tcg-target-con-set.h | 2 -
126
tcg/sparc64/tcg-target-con-str.h | 1 -
127
tcg/sparc64/tcg-target.h | 4 +-
128
tcg/tcg-internal.h | 2 +
129
tcg/tci/tcg-target.h | 4 +-
130
accel/tcg/cputlb.c | 839 ++++++++++++++++---------
131
accel/tcg/plugin-gen.c | 68 +-
132
accel/tcg/translate-all.c | 35 +-
133
accel/tcg/user-exec.c | 488 ++++++++++-----
134
tcg/optimize.c | 19 +-
135
tcg/tcg-op-ldst.c | 1234 +++++++++++++++++++++++++++++++++++++
136
tcg/tcg-op.c | 864 --------------------------
137
tcg/tcg.c | 631 +++++++++++++++----
138
tcg/tci.c | 243 +++-----
139
accel/tcg/atomic_common.c.inc | 14 +-
140
accel/tcg/ldst_atomicity.c.inc | 1262 ++++++++++++++++++++++++++++++++++++++
141
tcg/aarch64/tcg-target.c.inc | 207 +++----
142
tcg/arm/tcg-target.c.inc | 246 +++-----
143
tcg/i386/tcg-target.c.inc | 240 ++++----
144
tcg/loongarch64/tcg-target.c.inc | 123 ++--
145
tcg/mips/tcg-target.c.inc | 216 +++----
146
tcg/ppc/tcg-target.c.inc | 189 +++---
147
tcg/riscv/tcg-target.c.inc | 161 ++---
148
tcg/s390x/tcg-target.c.inc | 104 +---
149
tcg/sparc64/tcg-target.c.inc | 731 ++++++++--------------
150
tcg/tci/tcg-target.c.inc | 58 +-
151
tcg/meson.build | 1 +
152
50 files changed, 5345 insertions(+), 3350 deletions(-)
153
create mode 100644 include/exec/user/guest-base.h
154
create mode 100644 tcg/tcg-op-ldst.c
155
create mode 100644 accel/tcg/ldst_atomicity.c.inc
diff view generated by jsdifflib
Deleted patch
1
From: Alex Bennée <alex.bennee@linaro.org>
2
1
3
The mmio path (see exec.c:prepare_mmio_access) already protects itself
4
against recursive locking and it makes sense to do the same for
5
io_readx/writex. Otherwise any helper running in the BQL context will
6
assert when it attempts to write to device memory as in the case of
7
the bug report.
8
9
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
10
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
11
CC: Richard Jones <rjones@redhat.com>
12
CC: Paolo Bonzini <bonzini@gnu.org>
13
CC: qemu-stable@nongnu.org
14
Message-Id: <20170921110625.9500-1-alex.bennee@linaro.org>
15
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
16
---
17
accel/tcg/cputlb.c | 4 ++--
18
1 file changed, 2 insertions(+), 2 deletions(-)
19
20
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
21
index XXXXXXX..XXXXXXX 100644
22
--- a/accel/tcg/cputlb.c
23
+++ b/accel/tcg/cputlb.c
24
@@ -XXX,XX +XXX,XX @@ static uint64_t io_readx(CPUArchState *env, CPUIOTLBEntry *iotlbentry,
25
26
cpu->mem_io_vaddr = addr;
27
28
- if (mr->global_locking) {
29
+ if (mr->global_locking && !qemu_mutex_iothread_locked()) {
30
qemu_mutex_lock_iothread();
31
locked = true;
32
}
33
@@ -XXX,XX +XXX,XX @@ static void io_writex(CPUArchState *env, CPUIOTLBEntry *iotlbentry,
34
cpu->mem_io_vaddr = addr;
35
cpu->mem_io_pc = retaddr;
36
37
- if (mr->global_locking) {
38
+ if (mr->global_locking && !qemu_mutex_iothread_locked()) {
39
qemu_mutex_lock_iothread();
40
locked = true;
41
}
42
--
43
2.13.5
44
45
diff view generated by jsdifflib