1 | The following changes since commit 3ccf6cd0e3e1dfd663814640b3b18b55715d7a75: | 1 | v3: One more try to fix macos issues. |
---|---|---|---|
2 | 2 | ||
3 | Merge remote-tracking branch 'remotes/kraxel/tags/audio-20210617-pull-request' into staging (2021-06-18 09:54:42 +0100) | 3 | |
4 | r~ | ||
5 | |||
6 | |||
7 | |||
8 | The following changes since commit e0209297cddd5e10a07e15fac5cca7aa1a8e0e59: | ||
9 | |||
10 | Merge tag 'pull-ufs-20250217' of https://gitlab.com/jeuk20.kim/qemu into staging (2025-02-18 10:58:48 +0800) | ||
4 | 11 | ||
5 | are available in the Git repository at: | 12 | are available in the Git repository at: |
6 | 13 | ||
7 | https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20210619-2 | 14 | https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20250215-3 |
8 | 15 | ||
9 | for you to fetch changes up to 1c9638667b7068539dc5783c9428d588b14162ea: | 16 | for you to fetch changes up to e726f65867087d86436de05e9f372a86ec1381a6: |
10 | 17 | ||
11 | util/oslib-win32: Fix fatal assertion in qemu_try_memalign (2021-06-19 14:51:51 -0700) | 18 | tcg: Remove TCG_TARGET_HAS_{br,set}cond2 from riscv and loongarch64 (2025-02-18 08:29:03 -0800) |
12 | 19 | ||
13 | ---------------------------------------------------------------- | 20 | ---------------------------------------------------------------- |
14 | TCI cleanup and re-encoding | 21 | tcg: Remove last traces of TCG_TARGET_NEED_POOL_LABELS |
15 | Fixes for #367 and #390. | 22 | tcg: Cleanups after disallowing 64-on-32 |
16 | Move TCGCond to tcg/tcg-cond.h. | 23 | tcg: Introduce constraint for zero register |
17 | Fix for win32 qemu_try_memalign. | 24 | tcg: Remove TCG_TARGET_HAS_{br,set}cond2 from riscv and loongarch64 |
25 | tcg/i386: Use tcg_{high,unsigned}_cond in tcg_out_brcond2 | ||
26 | linux-user: Move TARGET_SA_RESTORER out of generic/signal.h | ||
27 | linux-user: Fix alignment when unmapping excess reservation | ||
28 | target/sparc: Fix register selection for all F*TOx and FxTO* instructions | ||
29 | target/sparc: Fix gdbstub incorrectly handling registers f32-f62 | ||
30 | target/sparc: fake UltraSPARC T1 PCR and PIC registers | ||
18 | 31 | ||
19 | ---------------------------------------------------------------- | 32 | ---------------------------------------------------------------- |
20 | Alessandro Di Federico (1): | 33 | Andreas Schwab (1): |
21 | tcg: expose TCGCond manipulation routines | 34 | linux-user: Move TARGET_SA_RESTORER out of generic/signal.h |
22 | 35 | ||
23 | Richard Henderson (31): | 36 | Artyom Tarasenko (1): |
24 | tcg: Combine dh_is_64bit and dh_is_signed to dh_typecode | 37 | target/sparc: fake UltraSPARC T1 PCR and PIC registers |
25 | tcg: Add tcg_call_flags | ||
26 | accel/tcg/plugin-gen: Drop inline markers | ||
27 | plugins: Drop tcg_flags from struct qemu_plugin_dyn_cb | ||
28 | accel/tcg: Add tcg call flags to plugins helpers | ||
29 | tcg: Store the TCGHelperInfo in the TCGOp for call | ||
30 | tcg: Add tcg_call_func | ||
31 | tcg: Build ffi data structures for helpers | ||
32 | tcg/tci: Improve tcg_target_call_clobber_regs | ||
33 | tcg/tci: Move call-return regs to end of tcg_target_reg_alloc_order | ||
34 | tcg/tci: Use ffi for calls | ||
35 | tcg/tci: Reserve r13 for a temporary | ||
36 | tcg/tci: Emit setcond before brcond | ||
37 | tcg/tci: Remove tci_write_reg | ||
38 | tcg/tci: Change encoding to uint32_t units | ||
39 | tcg/tci: Implement goto_ptr | ||
40 | tcg/tci: Implement movcond | ||
41 | tcg/tci: Implement andc, orc, eqv, nand, nor | ||
42 | tcg/tci: Implement extract, sextract | ||
43 | tcg/tci: Implement clz, ctz, ctpop | ||
44 | tcg/tci: Implement mulu2, muls2 | ||
45 | tcg/tci: Implement add2, sub2 | ||
46 | tcg/tci: Split out tci_qemu_ld, tci_qemu_st | ||
47 | Revert "tcg/tci: Use exec/cpu_ldst.h interfaces" | ||
48 | tcg/tci: Remove the qemu_ld/st_type macros | ||
49 | tcg/tci: Use {set,clear}_helper_retaddr | ||
50 | tests/tcg: Increase timeout for TCI | ||
51 | accel/tcg: Probe the proper permissions for atomic ops | ||
52 | tcg/sparc: Fix temp_allocate_frame vs sparc stack bias | ||
53 | tcg: Allocate sufficient storage in temp_allocate_frame | ||
54 | tcg: Restart when exhausting the stack frame | ||
55 | 38 | ||
56 | Stefan Weil (1): | 39 | Fabiano Rosas (1): |
57 | util/oslib-win32: Fix fatal assertion in qemu_try_memalign | 40 | elfload: Fix alignment when unmapping excess reservation |
58 | 41 | ||
59 | configure | 3 + | 42 | Mikael Szreder (2): |
60 | accel/tcg/atomic_template.h | 24 +- | 43 | target/sparc: Fix register selection for all F*TOx and FxTO* instructions |
61 | accel/tcg/plugin-helpers.h | 5 +- | 44 | target/sparc: Fix gdbstub incorrectly handling registers f32-f62 |
62 | include/exec/helper-head.h | 37 +- | ||
63 | include/exec/helper-tcg.h | 34 +- | ||
64 | include/qemu/plugin.h | 1 - | ||
65 | include/tcg/tcg-cond.h | 101 ++ | ||
66 | include/tcg/tcg-opc.h | 4 +- | ||
67 | include/tcg/tcg.h | 71 +- | ||
68 | target/hppa/helper.h | 3 - | ||
69 | target/i386/ops_sse_header.h | 3 - | ||
70 | target/m68k/helper.h | 1 - | ||
71 | target/ppc/helper.h | 3 - | ||
72 | tcg/tcg-internal.h | 22 + | ||
73 | tcg/tci/tcg-target-con-set.h | 1 + | ||
74 | tcg/tci/tcg-target.h | 68 +- | ||
75 | accel/tcg/cputlb.c | 95 +- | ||
76 | accel/tcg/plugin-gen.c | 20 +- | ||
77 | accel/tcg/user-exec.c | 8 +- | ||
78 | plugins/core.c | 30 +- | ||
79 | tcg/optimize.c | 3 +- | ||
80 | tcg/tcg.c | 299 +++-- | ||
81 | tcg/tci.c | 1203 ++++++++++---------- | ||
82 | util/oslib-win32.c | 6 +- | ||
83 | tcg/sparc/tcg-target.c.inc | 16 +- | ||
84 | tcg/tci/tcg-target.c.inc | 550 ++++----- | ||
85 | tcg/meson.build | 8 +- | ||
86 | tcg/tci/README | 20 +- | ||
87 | tests/docker/dockerfiles/alpine.docker | 1 + | ||
88 | tests/docker/dockerfiles/centos8.docker | 1 + | ||
89 | tests/docker/dockerfiles/debian10.docker | 1 + | ||
90 | tests/docker/dockerfiles/fedora-i386-cross.docker | 1 + | ||
91 | tests/docker/dockerfiles/fedora-win32-cross.docker | 1 + | ||
92 | tests/docker/dockerfiles/fedora-win64-cross.docker | 1 + | ||
93 | tests/docker/dockerfiles/fedora.docker | 1 + | ||
94 | tests/docker/dockerfiles/ubuntu.docker | 1 + | ||
95 | tests/docker/dockerfiles/ubuntu1804.docker | 1 + | ||
96 | tests/docker/dockerfiles/ubuntu2004.docker | 1 + | ||
97 | tests/tcg/Makefile.target | 6 +- | ||
98 | 39 files changed, 1453 insertions(+), 1202 deletions(-) | ||
99 | create mode 100644 include/tcg/tcg-cond.h | ||
100 | 45 | ||
46 | Richard Henderson (23): | ||
47 | tcg: Remove last traces of TCG_TARGET_NEED_POOL_LABELS | ||
48 | tcg: Remove TCG_OVERSIZED_GUEST | ||
49 | tcg: Drop support for two address registers in gen_ldst | ||
50 | tcg: Merge INDEX_op_qemu_*_{a32,a64}_* | ||
51 | tcg/arm: Drop addrhi from prepare_host_addr | ||
52 | tcg/i386: Drop addrhi from prepare_host_addr | ||
53 | tcg/mips: Drop addrhi from prepare_host_addr | ||
54 | tcg/ppc: Drop addrhi from prepare_host_addr | ||
55 | tcg: Replace addr{lo,hi}_reg with addr_reg in TCGLabelQemuLdst | ||
56 | plugins: Fix qemu_plugin_read_memory_vaddr parameters | ||
57 | accel/tcg: Fix tlb_set_page_with_attrs, tlb_set_page | ||
58 | target/loongarch: Use VADDR_PRIx for logging pc_next | ||
59 | target/mips: Use VADDR_PRIx for logging pc_next | ||
60 | include/exec: Change vaddr to uintptr_t | ||
61 | include/exec: Use uintptr_t in CPUTLBEntry | ||
62 | tcg: Introduce the 'z' constraint for a hardware zero register | ||
63 | tcg/aarch64: Use 'z' constraint | ||
64 | tcg/loongarch64: Use 'z' constraint | ||
65 | tcg/mips: Use 'z' constraint | ||
66 | tcg/riscv: Use 'z' constraint | ||
67 | tcg/sparc64: Use 'z' constraint | ||
68 | tcg/i386: Use tcg_{high,unsigned}_cond in tcg_out_brcond2 | ||
69 | tcg: Remove TCG_TARGET_HAS_{br,set}cond2 from riscv and loongarch64 | ||
70 | |||
71 | include/exec/tlb-common.h | 10 +- | ||
72 | include/exec/vaddr.h | 16 +- | ||
73 | include/qemu/atomic.h | 18 +- | ||
74 | include/tcg/oversized-guest.h | 23 --- | ||
75 | include/tcg/tcg-opc.h | 28 +-- | ||
76 | include/tcg/tcg.h | 3 +- | ||
77 | linux-user/aarch64/target_signal.h | 2 + | ||
78 | linux-user/arm/target_signal.h | 2 + | ||
79 | linux-user/generic/signal.h | 1 - | ||
80 | linux-user/i386/target_signal.h | 2 + | ||
81 | linux-user/m68k/target_signal.h | 1 + | ||
82 | linux-user/microblaze/target_signal.h | 2 + | ||
83 | linux-user/ppc/target_signal.h | 2 + | ||
84 | linux-user/s390x/target_signal.h | 2 + | ||
85 | linux-user/sh4/target_signal.h | 2 + | ||
86 | linux-user/x86_64/target_signal.h | 2 + | ||
87 | linux-user/xtensa/target_signal.h | 2 + | ||
88 | tcg/aarch64/tcg-target-con-set.h | 12 +- | ||
89 | tcg/aarch64/tcg-target.h | 2 + | ||
90 | tcg/loongarch64/tcg-target-con-set.h | 15 +- | ||
91 | tcg/loongarch64/tcg-target-con-str.h | 1 - | ||
92 | tcg/loongarch64/tcg-target-has.h | 2 - | ||
93 | tcg/loongarch64/tcg-target.h | 2 + | ||
94 | tcg/mips/tcg-target-con-set.h | 26 +-- | ||
95 | tcg/mips/tcg-target-con-str.h | 1 - | ||
96 | tcg/mips/tcg-target.h | 2 + | ||
97 | tcg/riscv/tcg-target-con-set.h | 10 +- | ||
98 | tcg/riscv/tcg-target-con-str.h | 1 - | ||
99 | tcg/riscv/tcg-target-has.h | 2 - | ||
100 | tcg/riscv/tcg-target.h | 2 + | ||
101 | tcg/sparc64/tcg-target-con-set.h | 12 +- | ||
102 | tcg/sparc64/tcg-target-con-str.h | 1 - | ||
103 | tcg/sparc64/tcg-target.h | 3 +- | ||
104 | tcg/tci/tcg-target.h | 1 - | ||
105 | accel/tcg/cputlb.c | 32 +--- | ||
106 | accel/tcg/tcg-all.c | 9 +- | ||
107 | linux-user/elfload.c | 4 +- | ||
108 | plugins/api.c | 2 +- | ||
109 | target/arm/ptw.c | 34 ---- | ||
110 | target/loongarch/tcg/translate.c | 2 +- | ||
111 | target/mips/tcg/octeon_translate.c | 4 +- | ||
112 | target/riscv/cpu_helper.c | 13 +- | ||
113 | target/sparc/gdbstub.c | 18 +- | ||
114 | target/sparc/translate.c | 19 +++ | ||
115 | tcg/optimize.c | 21 +-- | ||
116 | tcg/tcg-op-ldst.c | 103 +++-------- | ||
117 | tcg/tcg.c | 97 +++++------ | ||
118 | tcg/tci.c | 119 +++---------- | ||
119 | docs/devel/multi-thread-tcg.rst | 1 - | ||
120 | docs/devel/tcg-ops.rst | 4 +- | ||
121 | target/loongarch/tcg/insn_trans/trans_atomic.c.inc | 2 +- | ||
122 | target/sparc/insns.decode | 19 ++- | ||
123 | tcg/aarch64/tcg-target.c.inc | 86 ++++------ | ||
124 | tcg/arm/tcg-target.c.inc | 114 ++++--------- | ||
125 | tcg/i386/tcg-target.c.inc | 190 +++++---------------- | ||
126 | tcg/loongarch64/tcg-target.c.inc | 72 +++----- | ||
127 | tcg/mips/tcg-target.c.inc | 169 ++++++------------ | ||
128 | tcg/ppc/tcg-target.c.inc | 164 +++++------------- | ||
129 | tcg/riscv/tcg-target.c.inc | 56 +++--- | ||
130 | tcg/s390x/tcg-target.c.inc | 40 ++--- | ||
131 | tcg/sparc64/tcg-target.c.inc | 45 ++--- | ||
132 | tcg/tci/tcg-target.c.inc | 60 ++----- | ||
133 | 62 files changed, 550 insertions(+), 1162 deletions(-) | ||
134 | delete mode 100644 include/tcg/oversized-guest.h | diff view generated by jsdifflib |
1 | This function should have been updated for vector types | 1 | DisasContextBase.pc_next has type vaddr; use the correct log format. |
---|---|---|---|
2 | when they were introduced. | ||
3 | 2 | ||
4 | Fixes: d2fd745fe8b | 3 | Fixes: 85c19af63e7 ("include/exec: Use vaddr in DisasContextBase for virtual addresses") |
5 | Resolves: https://gitlab.com/qemu-project/qemu/-/issues/367 | ||
6 | Cc: qemu-stable@nongnu.org | ||
7 | Tested-by: Stefan Weil <sw@weilnetz.de> | ||
8 | Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
9 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | 4 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> |
10 | --- | 5 | --- |
11 | tcg/tcg.c | 31 ++++++++++++++++++++++++++----- | 6 | target/mips/tcg/octeon_translate.c | 4 ++-- |
12 | 1 file changed, 26 insertions(+), 5 deletions(-) | 7 | 1 file changed, 2 insertions(+), 2 deletions(-) |
13 | 8 | ||
14 | diff --git a/tcg/tcg.c b/tcg/tcg.c | 9 | diff --git a/target/mips/tcg/octeon_translate.c b/target/mips/tcg/octeon_translate.c |
15 | index XXXXXXX..XXXXXXX 100644 | 10 | index XXXXXXX..XXXXXXX 100644 |
16 | --- a/tcg/tcg.c | 11 | --- a/target/mips/tcg/octeon_translate.c |
17 | +++ b/tcg/tcg.c | 12 | +++ b/target/mips/tcg/octeon_translate.c |
18 | @@ -XXX,XX +XXX,XX @@ static void check_regs(TCGContext *s) | 13 | @@ -XXX,XX +XXX,XX @@ static bool trans_BBIT(DisasContext *ctx, arg_BBIT *a) |
19 | 14 | TCGv p; | |
20 | static void temp_allocate_frame(TCGContext *s, TCGTemp *ts) | 15 | |
21 | { | 16 | if (ctx->hflags & MIPS_HFLAG_BMASK) { |
22 | - if (s->current_frame_offset + (tcg_target_long)sizeof(tcg_target_long) > | 17 | - LOG_DISAS("Branch in delay / forbidden slot at PC 0x" |
23 | - s->frame_end) { | 18 | - TARGET_FMT_lx "\n", ctx->base.pc_next); |
24 | - tcg_abort(); | 19 | + LOG_DISAS("Branch in delay / forbidden slot at PC 0x%" VADDR_PRIx "\n", |
25 | + intptr_t off, size, align; | 20 | + ctx->base.pc_next); |
26 | + | 21 | generate_exception_end(ctx, EXCP_RI); |
27 | + switch (ts->type) { | 22 | return true; |
28 | + case TCG_TYPE_I32: | ||
29 | + size = align = 4; | ||
30 | + break; | ||
31 | + case TCG_TYPE_I64: | ||
32 | + case TCG_TYPE_V64: | ||
33 | + size = align = 8; | ||
34 | + break; | ||
35 | + case TCG_TYPE_V128: | ||
36 | + size = align = 16; | ||
37 | + break; | ||
38 | + case TCG_TYPE_V256: | ||
39 | + /* Note that we do not require aligned storage for V256. */ | ||
40 | + size = 32, align = 16; | ||
41 | + break; | ||
42 | + default: | ||
43 | + g_assert_not_reached(); | ||
44 | } | 23 | } |
45 | - ts->mem_offset = s->current_frame_offset; | ||
46 | + | ||
47 | + assert(align <= TCG_TARGET_STACK_ALIGN); | ||
48 | + off = ROUND_UP(s->current_frame_offset, align); | ||
49 | + assert(off + size <= s->frame_end); | ||
50 | + s->current_frame_offset = off + size; | ||
51 | + | ||
52 | + ts->mem_offset = off; | ||
53 | #if defined(__sparc__) | ||
54 | ts->mem_offset += TCG_TARGET_STACK_BIAS; | ||
55 | #endif | ||
56 | ts->mem_base = s->frame_temp; | ||
57 | ts->mem_allocated = 1; | ||
58 | - s->current_frame_offset += sizeof(tcg_target_long); | ||
59 | } | ||
60 | |||
61 | static void temp_load(TCGContext *, TCGTemp *, TCGRegSet, TCGRegSet, TCGRegSet); | ||
62 | -- | 24 | -- |
63 | 2.25.1 | 25 | 2.43.0 |
64 | |||
65 | diff view generated by jsdifflib |