1
The following changes since commit 2d20a57453f6a206938cbbf77bed0b378c806c1f:
1
v3: One more try to fix macos issues.
2
2
3
Merge tag 'pull-fixes-for-7.1-200422-1' of https://github.com/stsquad/qemu into staging (2022-04-20 11:13:08 -0700)
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-20220420
14
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20250215-3
8
15
9
for you to fetch changes up to a61532faa5a4d5e021e35b6a4a1e180c72d4a22f:
16
for you to fetch changes up to e726f65867087d86436de05e9f372a86ec1381a6:
10
17
11
tcg: Add tcg_constant_ptr (2022-04-20 12:12:47 -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
Cleanup sysemu/tcg.h usage.
21
tcg: Remove last traces of TCG_TARGET_NEED_POOL_LABELS
15
Fix indirect lowering vs cond branches
22
tcg: Cleanups after disallowing 64-on-32
16
Remove ATOMIC_MMU_IDX
23
tcg: Introduce constraint for zero register
17
Add tcg_constant_ptr
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
Richard Henderson (3):
33
Andreas Schwab (1):
21
tcg: Fix indirect lowering vs TCG_OPF_COND_BRANCH
34
linux-user: Move TARGET_SA_RESTORER out of generic/signal.h
22
accel/tcg: Remove ATOMIC_MMU_IDX
23
tcg: Add tcg_constant_ptr
24
35
25
Thomas Huth (1):
36
Artyom Tarasenko (1):
26
Don't include sysemu/tcg.h if it is not necessary
37
target/sparc: fake UltraSPARC T1 PCR and PIC registers
27
38
28
include/tcg/tcg.h | 4 ++++
39
Fabiano Rosas (1):
29
accel/tcg/cputlb.c | 1 -
40
elfload: Fix alignment when unmapping excess reservation
30
accel/tcg/hmp.c | 1 -
41
31
accel/tcg/tcg-accel-ops-icount.c | 1 -
42
Mikael Szreder (2):
32
accel/tcg/user-exec.c | 1 -
43
target/sparc: Fix register selection for all F*TOx and FxTO* instructions
33
bsd-user/main.c | 1 -
44
target/sparc: Fix gdbstub incorrectly handling registers f32-f62
34
hw/virtio/vhost.c | 1 -
45
35
linux-user/main.c | 1 -
46
Richard Henderson (23):
36
monitor/misc.c | 1 -
47
tcg: Remove last traces of TCG_TARGET_NEED_POOL_LABELS
37
target/arm/helper.c | 1 -
48
tcg: Remove TCG_OVERSIZED_GUEST
38
target/s390x/cpu_models_sysemu.c | 1 -
49
tcg: Drop support for two address registers in gen_ldst
39
target/s390x/helper.c | 1 -
50
tcg: Merge INDEX_op_qemu_*_{a32,a64}_*
40
tcg/tcg.c | 34 +++++++++++++++++++++++++++-------
51
tcg/arm: Drop addrhi from prepare_host_addr
41
13 files changed, 31 insertions(+), 18 deletions(-)
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
Deleted patch
1
From: Thomas Huth <thuth@redhat.com>
2
1
3
This header only defines the tcg_allowed variable and the tcg_enabled()
4
function - which are not required in many files that include this
5
header. Drop the #include statement there.
6
7
Signed-off-by: Thomas Huth <thuth@redhat.com>
8
Reviewed-by: Markus Armbruster <armbru@redhat.com>
9
Message-Id: <20220315144107.1012530-1-thuth@redhat.com>
10
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
11
---
12
accel/tcg/hmp.c | 1 -
13
accel/tcg/tcg-accel-ops-icount.c | 1 -
14
bsd-user/main.c | 1 -
15
hw/virtio/vhost.c | 1 -
16
linux-user/main.c | 1 -
17
monitor/misc.c | 1 -
18
target/arm/helper.c | 1 -
19
target/s390x/cpu_models_sysemu.c | 1 -
20
target/s390x/helper.c | 1 -
21
9 files changed, 9 deletions(-)
22
23
diff --git a/accel/tcg/hmp.c b/accel/tcg/hmp.c
24
index XXXXXXX..XXXXXXX 100644
25
--- a/accel/tcg/hmp.c
26
+++ b/accel/tcg/hmp.c
27
@@ -XXX,XX +XXX,XX @@
28
#include "qapi/qapi-commands-machine.h"
29
#include "exec/exec-all.h"
30
#include "monitor/monitor.h"
31
-#include "sysemu/tcg.h"
32
33
static void hmp_tcg_register(void)
34
{
35
diff --git a/accel/tcg/tcg-accel-ops-icount.c b/accel/tcg/tcg-accel-ops-icount.c
36
index XXXXXXX..XXXXXXX 100644
37
--- a/accel/tcg/tcg-accel-ops-icount.c
38
+++ b/accel/tcg/tcg-accel-ops-icount.c
39
@@ -XXX,XX +XXX,XX @@
40
*/
41
42
#include "qemu/osdep.h"
43
-#include "sysemu/tcg.h"
44
#include "sysemu/replay.h"
45
#include "sysemu/cpu-timers.h"
46
#include "qemu/main-loop.h"
47
diff --git a/bsd-user/main.c b/bsd-user/main.c
48
index XXXXXXX..XXXXXXX 100644
49
--- a/bsd-user/main.c
50
+++ b/bsd-user/main.c
51
@@ -XXX,XX +XXX,XX @@
52
#include "qemu-common.h"
53
#include "qemu/units.h"
54
#include "qemu/accel.h"
55
-#include "sysemu/tcg.h"
56
#include "qemu-version.h"
57
#include <machine/trap.h>
58
59
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
60
index XXXXXXX..XXXXXXX 100644
61
--- a/hw/virtio/vhost.c
62
+++ b/hw/virtio/vhost.c
63
@@ -XXX,XX +XXX,XX @@
64
#include "migration/blocker.h"
65
#include "migration/qemu-file-types.h"
66
#include "sysemu/dma.h"
67
-#include "sysemu/tcg.h"
68
#include "trace.h"
69
70
/* enabled until disconnected backend stabilizes */
71
diff --git a/linux-user/main.c b/linux-user/main.c
72
index XXXXXXX..XXXXXXX 100644
73
--- a/linux-user/main.c
74
+++ b/linux-user/main.c
75
@@ -XXX,XX +XXX,XX @@
76
#include "qemu-common.h"
77
#include "qemu/units.h"
78
#include "qemu/accel.h"
79
-#include "sysemu/tcg.h"
80
#include "qemu-version.h"
81
#include <sys/syscall.h>
82
#include <sys/resource.h>
83
diff --git a/monitor/misc.c b/monitor/misc.c
84
index XXXXXXX..XXXXXXX 100644
85
--- a/monitor/misc.c
86
+++ b/monitor/misc.c
87
@@ -XXX,XX +XXX,XX @@
88
#include "qapi/util.h"
89
#include "sysemu/blockdev.h"
90
#include "sysemu/sysemu.h"
91
-#include "sysemu/tcg.h"
92
#include "sysemu/tpm.h"
93
#include "qapi/qmp/qdict.h"
94
#include "qapi/qmp/qerror.h"
95
diff --git a/target/arm/helper.c b/target/arm/helper.c
96
index XXXXXXX..XXXXXXX 100644
97
--- a/target/arm/helper.c
98
+++ b/target/arm/helper.c
99
@@ -XXX,XX +XXX,XX @@
100
#include "sysemu/cpus.h"
101
#include "sysemu/cpu-timers.h"
102
#include "sysemu/kvm.h"
103
-#include "sysemu/tcg.h"
104
#include "qemu/range.h"
105
#include "qapi/qapi-commands-machine-target.h"
106
#include "qapi/error.h"
107
diff --git a/target/s390x/cpu_models_sysemu.c b/target/s390x/cpu_models_sysemu.c
108
index XXXXXXX..XXXXXXX 100644
109
--- a/target/s390x/cpu_models_sysemu.c
110
+++ b/target/s390x/cpu_models_sysemu.c
111
@@ -XXX,XX +XXX,XX @@
112
#include "s390x-internal.h"
113
#include "kvm/kvm_s390x.h"
114
#include "sysemu/kvm.h"
115
-#include "sysemu/tcg.h"
116
#include "qapi/error.h"
117
#include "qapi/visitor.h"
118
#include "qapi/qmp/qerror.h"
119
diff --git a/target/s390x/helper.c b/target/s390x/helper.c
120
index XXXXXXX..XXXXXXX 100644
121
--- a/target/s390x/helper.c
122
+++ b/target/s390x/helper.c
123
@@ -XXX,XX +XXX,XX @@
124
#include "hw/s390x/pv.h"
125
#include "sysemu/hw_accel.h"
126
#include "sysemu/runstate.h"
127
-#include "sysemu/tcg.h"
128
129
void s390x_tod_timer(void *opaque)
130
{
131
--
132
2.34.1
diff view generated by jsdifflib
Deleted patch
1
With TCG_OPF_COND_BRANCH, we extended the lifetimes of
2
globals across extended basic blocks. This means that
3
the liveness computed in pass 1 does not kill globals
4
in the same way as normal temps.
5
1
6
Introduce TYPE_EBB to match this lifetime, so that we
7
get correct register allocation for the temps that we
8
introduce during the indirect lowering pass.
9
10
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
11
Fixes: b4cb76e6208 ("tcg: Do not kill globals at conditional branches")
12
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
13
---
14
include/tcg/tcg.h | 2 ++
15
tcg/tcg.c | 34 +++++++++++++++++++++++++++-------
16
2 files changed, 29 insertions(+), 7 deletions(-)
17
18
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h
19
index XXXXXXX..XXXXXXX 100644
20
--- a/include/tcg/tcg.h
21
+++ b/include/tcg/tcg.h
22
@@ -XXX,XX +XXX,XX @@ typedef enum TCGTempVal {
23
typedef enum TCGTempKind {
24
/* Temp is dead at the end of all basic blocks. */
25
TEMP_NORMAL,
26
+ /* Temp is live across conditional branch, but dead otherwise. */
27
+ TEMP_EBB,
28
/* Temp is saved across basic blocks but dead at the end of TBs. */
29
TEMP_LOCAL,
30
/* Temp is saved across both basic blocks and translation blocks. */
31
diff --git a/tcg/tcg.c b/tcg/tcg.c
32
index XXXXXXX..XXXXXXX 100644
33
--- a/tcg/tcg.c
34
+++ b/tcg/tcg.c
35
@@ -XXX,XX +XXX,XX @@ void tcg_temp_free_internal(TCGTemp *ts)
36
TCGContext *s = tcg_ctx;
37
int k, idx;
38
39
- /* In order to simplify users of tcg_constant_*, silently ignore free. */
40
- if (ts->kind == TEMP_CONST) {
41
+ switch (ts->kind) {
42
+ case TEMP_CONST:
43
+ /*
44
+ * In order to simplify users of tcg_constant_*,
45
+ * silently ignore free.
46
+ */
47
return;
48
+ case TEMP_NORMAL:
49
+ case TEMP_LOCAL:
50
+ break;
51
+ default:
52
+ g_assert_not_reached();
53
}
54
55
#if defined(CONFIG_DEBUG_TCG)
56
@@ -XXX,XX +XXX,XX @@ void tcg_temp_free_internal(TCGTemp *ts)
57
}
58
#endif
59
60
- tcg_debug_assert(ts->kind < TEMP_GLOBAL);
61
tcg_debug_assert(ts->temp_allocated != 0);
62
ts->temp_allocated = 0;
63
64
@@ -XXX,XX +XXX,XX @@ static void tcg_reg_alloc_start(TCGContext *s)
65
case TEMP_GLOBAL:
66
break;
67
case TEMP_NORMAL:
68
+ case TEMP_EBB:
69
val = TEMP_VAL_DEAD;
70
/* fall through */
71
case TEMP_LOCAL:
72
@@ -XXX,XX +XXX,XX @@ static char *tcg_get_arg_str_ptr(TCGContext *s, char *buf, int buf_size,
73
case TEMP_LOCAL:
74
snprintf(buf, buf_size, "loc%d", idx - s->nb_globals);
75
break;
76
+ case TEMP_EBB:
77
+ snprintf(buf, buf_size, "ebb%d", idx - s->nb_globals);
78
+ break;
79
case TEMP_NORMAL:
80
snprintf(buf, buf_size, "tmp%d", idx - s->nb_globals);
81
break;
82
@@ -XXX,XX +XXX,XX @@ static void la_bb_end(TCGContext *s, int ng, int nt)
83
state = TS_DEAD | TS_MEM;
84
break;
85
case TEMP_NORMAL:
86
+ case TEMP_EBB:
87
case TEMP_CONST:
88
state = TS_DEAD;
89
break;
90
@@ -XXX,XX +XXX,XX @@ static void la_global_sync(TCGContext *s, int ng)
91
}
92
93
/*
94
- * liveness analysis: conditional branch: all temps are dead,
95
- * globals and local temps should be synced.
96
+ * liveness analysis: conditional branch: all temps are dead unless
97
+ * explicitly live-across-conditional-branch, globals and local temps
98
+ * should be synced.
99
*/
100
static void la_bb_sync(TCGContext *s, int ng, int nt)
101
{
102
@@ -XXX,XX +XXX,XX @@ static void la_bb_sync(TCGContext *s, int ng, int nt)
103
case TEMP_NORMAL:
104
s->temps[i].state = TS_DEAD;
105
break;
106
+ case TEMP_EBB:
107
case TEMP_CONST:
108
continue;
109
default:
110
@@ -XXX,XX +XXX,XX @@ static bool liveness_pass_2(TCGContext *s)
111
TCGTemp *dts = tcg_temp_alloc(s);
112
dts->type = its->type;
113
dts->base_type = its->base_type;
114
+ dts->kind = TEMP_EBB;
115
its->state_ptr = dts;
116
} else {
117
its->state_ptr = NULL;
118
@@ -XXX,XX +XXX,XX @@ static void temp_free_or_dead(TCGContext *s, TCGTemp *ts, int free_or_dead)
119
new_type = TEMP_VAL_MEM;
120
break;
121
case TEMP_NORMAL:
122
+ case TEMP_EBB:
123
new_type = free_or_dead < 0 ? TEMP_VAL_MEM : TEMP_VAL_DEAD;
124
break;
125
case TEMP_CONST:
126
@@ -XXX,XX +XXX,XX @@ static void tcg_reg_alloc_bb_end(TCGContext *s, TCGRegSet allocated_regs)
127
temp_save(s, ts, allocated_regs);
128
break;
129
case TEMP_NORMAL:
130
+ case TEMP_EBB:
131
/* The liveness analysis already ensures that temps are dead.
132
Keep an tcg_debug_assert for safety. */
133
tcg_debug_assert(ts->val_type == TEMP_VAL_DEAD);
134
@@ -XXX,XX +XXX,XX @@ static void tcg_reg_alloc_bb_end(TCGContext *s, TCGRegSet allocated_regs)
135
}
136
137
/*
138
- * At a conditional branch, we assume all temporaries are dead and
139
- * all globals and local temps are synced to their location.
140
+ * At a conditional branch, we assume all temporaries are dead unless
141
+ * explicitly live-across-conditional-branch; all globals and local
142
+ * temps are synced to their location.
143
*/
144
static void tcg_reg_alloc_cbranch(TCGContext *s, TCGRegSet allocated_regs)
145
{
146
@@ -XXX,XX +XXX,XX @@ static void tcg_reg_alloc_cbranch(TCGContext *s, TCGRegSet allocated_regs)
147
case TEMP_NORMAL:
148
tcg_debug_assert(ts->val_type == TEMP_VAL_DEAD);
149
break;
150
+ case TEMP_EBB:
151
case TEMP_CONST:
152
break;
153
default:
154
--
155
2.34.1
diff view generated by jsdifflib
Deleted patch
1
The last use of this macro was removed in f3e182b10013
2
("accel/tcg: Push trace info building into atomic_common.c.inc")
3
1
4
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
5
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
6
---
7
accel/tcg/cputlb.c | 1 -
8
accel/tcg/user-exec.c | 1 -
9
2 files changed, 2 deletions(-)
10
11
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
12
index XXXXXXX..XXXXXXX 100644
13
--- a/accel/tcg/cputlb.c
14
+++ b/accel/tcg/cputlb.c
15
@@ -XXX,XX +XXX,XX @@ void cpu_stq_le_mmu(CPUArchState *env, target_ulong addr, uint64_t val,
16
glue(glue(glue(cpu_atomic_ ## X, SUFFIX), END), _mmu)
17
18
#define ATOMIC_MMU_CLEANUP
19
-#define ATOMIC_MMU_IDX get_mmuidx(oi)
20
21
#include "atomic_common.c.inc"
22
23
diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c
24
index XXXXXXX..XXXXXXX 100644
25
--- a/accel/tcg/user-exec.c
26
+++ b/accel/tcg/user-exec.c
27
@@ -XXX,XX +XXX,XX @@ static void *atomic_mmu_lookup(CPUArchState *env, target_ulong addr,
28
#define ATOMIC_NAME(X) \
29
glue(glue(glue(cpu_atomic_ ## X, SUFFIX), END), _mmu)
30
#define ATOMIC_MMU_CLEANUP do { clear_helper_retaddr(); } while (0)
31
-#define ATOMIC_MMU_IDX MMU_USER_IDX
32
33
#define DATA_SIZE 1
34
#include "atomic_template.h"
35
--
36
2.34.1
diff view generated by jsdifflib
1
Similar to tcg_const_ptr, defer to tcg_constant_{i32,i64}.
1
DisasContextBase.pc_next has type vaddr; use the correct log format.
2
2
3
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
3
Fixes: 85c19af63e7 ("include/exec: Use vaddr in DisasContextBase for virtual addresses")
4
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
4
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
5
---
5
---
6
include/tcg/tcg.h | 2 ++
6
target/mips/tcg/octeon_translate.c | 4 ++--
7
1 file changed, 2 insertions(+)
7
1 file changed, 2 insertions(+), 2 deletions(-)
8
8
9
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h
9
diff --git a/target/mips/tcg/octeon_translate.c b/target/mips/tcg/octeon_translate.c
10
index XXXXXXX..XXXXXXX 100644
10
index XXXXXXX..XXXXXXX 100644
11
--- a/include/tcg/tcg.h
11
--- a/target/mips/tcg/octeon_translate.c
12
+++ b/include/tcg/tcg.h
12
+++ b/target/mips/tcg/octeon_translate.c
13
@@ -XXX,XX +XXX,XX @@ TCGv_vec tcg_constant_vec_matching(TCGv_vec match, unsigned vece, int64_t val);
13
@@ -XXX,XX +XXX,XX @@ static bool trans_BBIT(DisasContext *ctx, arg_BBIT *a)
14
#if UINTPTR_MAX == UINT32_MAX
14
TCGv p;
15
# define tcg_const_ptr(x) ((TCGv_ptr)tcg_const_i32((intptr_t)(x)))
15
16
# define tcg_const_local_ptr(x) ((TCGv_ptr)tcg_const_local_i32((intptr_t)(x)))
16
if (ctx->hflags & MIPS_HFLAG_BMASK) {
17
+# define tcg_constant_ptr(x) ((TCGv_ptr)tcg_constant_i32((intptr_t)(x)))
17
- LOG_DISAS("Branch in delay / forbidden slot at PC 0x"
18
#else
18
- TARGET_FMT_lx "\n", ctx->base.pc_next);
19
# define tcg_const_ptr(x) ((TCGv_ptr)tcg_const_i64((intptr_t)(x)))
19
+ LOG_DISAS("Branch in delay / forbidden slot at PC 0x%" VADDR_PRIx "\n",
20
# define tcg_const_local_ptr(x) ((TCGv_ptr)tcg_const_local_i64((intptr_t)(x)))
20
+ ctx->base.pc_next);
21
+# define tcg_constant_ptr(x) ((TCGv_ptr)tcg_constant_i64((intptr_t)(x)))
21
generate_exception_end(ctx, EXCP_RI);
22
#endif
22
return true;
23
23
}
24
TCGLabel *gen_new_label(void);
25
--
24
--
26
2.34.1
25
2.43.0
27
28
diff view generated by jsdifflib