* [PULL 01/14] target/mips: Set CP0St_{KX, SX, UX} for Loongson-2F
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 02/14] target/mips: Cast offset field of Octeon BBIT to int16_t Philippe Mathieu-Daudé
` (13 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang,
Richard Henderson
From: Jiaxun Yang <jiaxun.yang@flygoat.com>
As per an unpublished document, in later reversion of chips
CP0St_{KX, SX, UX} is not writeable and hardcoded to 1.
Without those bits set, kernel is unable to access XKPHYS address
segment. So just set them up on CPU reset.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20221031132531.18122-2-jiaxun.yang@flygoat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/mips/cpu.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/target/mips/cpu.c b/target/mips/cpu.c
index e997c1b9cb..7a565466cb 100644
--- a/target/mips/cpu.c
+++ b/target/mips/cpu.c
@@ -302,6 +302,12 @@ static void mips_cpu_reset(DeviceState *dev)
env->CP0_EntryHi_ASID_mask = (env->CP0_Config5 & (1 << CP0C5_MI)) ?
0x0 : (env->CP0_Config4 & (1 << CP0C4_AE)) ? 0x3ff : 0xff;
env->CP0_Status = (1 << CP0St_BEV) | (1 << CP0St_ERL);
+ if (env->insn_flags & INSN_LOONGSON2F) {
+ /* Loongson-2F has those bits hardcoded to 1 */
+ env->CP0_Status |= (1 << CP0St_KX) | (1 << CP0St_SX) |
+ (1 << CP0St_UX);
+ }
+
/*
* Vectored interrupts not implemented, timer on int 7,
* no performance counters.
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 02/14] target/mips: Cast offset field of Octeon BBIT to int16_t
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 01/14] target/mips: Set CP0St_{KX, SX, UX} for Loongson-2F Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 03/14] target/mips: Enable LBX/LWX/* instructions for Octeon Philippe Mathieu-Daudé
` (12 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang,
Richard Henderson, Pavel Dovgalyuk
From: Jiaxun Yang <jiaxun.yang@flygoat.com>
As per "Cavium Networks OCTEON Plus CN50XX Hardware Reference
Manual" offset field is signed 16 bit value. However arg_BBIT.offset
is unsigned. We need to cast it as signed to do address calculation.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221031132531.18122-3-jiaxun.yang@flygoat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/mips/tcg/octeon.decode | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/mips/tcg/octeon.decode b/target/mips/tcg/octeon.decode
index 8929ad088e..0c787cb498 100644
--- a/target/mips/tcg/octeon.decode
+++ b/target/mips/tcg/octeon.decode
@@ -12,7 +12,7 @@
# BBIT132 111110 ..... ..... ................
%bbit_p 28:1 16:5
-BBIT 11 set:1 . 10 rs:5 ..... offset:16 p=%bbit_p
+BBIT 11 set:1 . 10 rs:5 ..... offset:s16 p=%bbit_p
# Arithmetic
# BADDU rd, rs, rt
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 03/14] target/mips: Enable LBX/LWX/* instructions for Octeon
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 01/14] target/mips: Set CP0St_{KX, SX, UX} for Loongson-2F Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 02/14] target/mips: Cast offset field of Octeon BBIT to int16_t Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 04/14] target/mips: Disable DSP ASE for Octeon68XX Philippe Mathieu-Daudé
` (11 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang, Pavel Dovgalyuk,
Pavel Dovgalyuk
From: Pavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>
This patch changes condition and function name for enabling
indexed load instructions for Octeon vCPUs. Octeons do not
have DSP extension, but implement LBX-and-others.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <166728058455.229236.13834649461181619195.stgit@pasha-ThinkPad-X280>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/mips/tcg/translate.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/target/mips/tcg/translate.c b/target/mips/tcg/translate.c
index 2f2d707a12..4c4bd0823d 100644
--- a/target/mips/tcg/translate.c
+++ b/target/mips/tcg/translate.c
@@ -12173,12 +12173,16 @@ enum {
#include "nanomips_translate.c.inc"
/* MIPSDSP functions. */
-static void gen_mipsdsp_ld(DisasContext *ctx, uint32_t opc,
- int rd, int base, int offset)
+
+/* Indexed load is not for DSP only */
+static void gen_mips_lx(DisasContext *ctx, uint32_t opc,
+ int rd, int base, int offset)
{
TCGv t0;
- check_dsp(ctx);
+ if (!(ctx->insn_flags & INSN_OCTEON)) {
+ check_dsp(ctx);
+ }
t0 = tcg_temp_new();
if (base == 0) {
@@ -14523,7 +14527,7 @@ static void decode_opc_special3_legacy(CPUMIPSState *env, DisasContext *ctx)
case OPC_LBUX:
case OPC_LHX:
case OPC_LWX:
- gen_mipsdsp_ld(ctx, op2, rd, rs, rt);
+ gen_mips_lx(ctx, op2, rd, rs, rt);
break;
default: /* Invalid */
MIPS_INVAL("MASK LX");
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 04/14] target/mips: Disable DSP ASE for Octeon68XX
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2022-11-07 23:58 ` [PULL 03/14] target/mips: Enable LBX/LWX/* instructions for Octeon Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 05/14] target/mips: Don't check COP1X for 64 bit FP mode Philippe Mathieu-Daudé
` (10 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang,
Richard Henderson, Pavel Dovgalyuk
From: Jiaxun Yang <jiaxun.yang@flygoat.com>
I don't have access to Octeon68XX hardware but according
to my investigation Octeon never had DSP ASE support.
As per "Cavium Networks OCTEON Plus CN50XX Hardware Reference
Manual" CP0C3_DSPP is reserved bit and read as 0. Also I do have
access to a Ubiquiti Edgerouter 4 which has Octeon CN7130 processor
and I can confirm CP0C3_DSPP is read as 0 on that processor.
Further more, in linux kernel:
arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
cpu_has_dsp is overridden as 0.
So I believe we shouldn't emulate DSP in QEMU as well.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Message-Id: <20221031132531.18122-4-jiaxun.yang@flygoat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/mips/cpu-defs.c.inc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/target/mips/cpu-defs.c.inc b/target/mips/cpu-defs.c.inc
index 7f53c94ec8..480e60aeec 100644
--- a/target/mips/cpu-defs.c.inc
+++ b/target/mips/cpu-defs.c.inc
@@ -934,7 +934,7 @@ const mips_def_t mips_defs[] =
(1 << CP0C1_DS) | (4 << CP0C1_DL) | (1 << CP0C1_DA) |
(1 << CP0C1_PC) | (1 << CP0C1_WR) | (1 << CP0C1_EP),
.CP0_Config2 = MIPS_CONFIG2,
- .CP0_Config3 = MIPS_CONFIG3 | (1 << CP0C3_LPA) | (1 << CP0C3_DSPP) ,
+ .CP0_Config3 = MIPS_CONFIG3 | (1 << CP0C3_LPA),
.CP0_Config4 = MIPS_CONFIG4 | (1U << CP0C4_M) |
(0x3c << CP0C4_KScrExist) | (1U << CP0C4_MMUExtDef) |
(3U << CP0C4_MMUSizeExt),
@@ -946,7 +946,7 @@ const mips_def_t mips_defs[] =
.CP0_Status_rw_bitmask = 0x12F8FFFF,
.SEGBITS = 42,
.PABITS = 49,
- .insn_flags = CPU_MIPS64R2 | INSN_OCTEON | ASE_DSP,
+ .insn_flags = CPU_MIPS64R2 | INSN_OCTEON,
.mmu_type = MMU_TYPE_R4000,
},
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 05/14] target/mips: Don't check COP1X for 64 bit FP mode
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2022-11-07 23:58 ` [PULL 04/14] target/mips: Disable DSP ASE for Octeon68XX Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 06/14] disas/nanomips: Fix invalid PRId64 format calling img_format() Philippe Mathieu-Daudé
` (9 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang
From: Jiaxun Yang <jiaxun.yang@flygoat.com>
Some implementations (i.e. Loongson-2F) may decide to implement
a 64 bit FPU without implementing COP1X instructions.
As the eligibility of 64 bit FP instructions is already determined
by CP0St_FR, there is no need to check for COP1X again.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221102165719.190378-1-jiaxun.yang@flygoat.com>
[PMD: Add missing trailing parenthesis (buildfix)]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/mips/tcg/translate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/mips/tcg/translate.c b/target/mips/tcg/translate.c
index 4c4bd0823d..624e6b7786 100644
--- a/target/mips/tcg/translate.c
+++ b/target/mips/tcg/translate.c
@@ -1545,7 +1545,7 @@ void check_cop1x(DisasContext *ctx)
*/
void check_cp1_64bitmode(DisasContext *ctx)
{
- if (unlikely(~ctx->hflags & (MIPS_HFLAG_F64 | MIPS_HFLAG_COP1X))) {
+ if (unlikely(~ctx->hflags & MIPS_HFLAG_F64)) {
gen_reserved_instruction(ctx);
}
}
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 06/14] disas/nanomips: Fix invalid PRId64 format calling img_format()
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (4 preceding siblings ...)
2022-11-07 23:58 ` [PULL 05/14] target/mips: Don't check COP1X for 64 bit FP mode Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 07/14] disas/nanomips: Fix invalid PRIx64 " Philippe Mathieu-Daudé
` (8 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang, Stefan Weil
Fix warnings such:
disas/nanomips.c:3251:64: warning: format specifies type 'char *' but the argument has type 'int64' (aka 'long long') [-Wformat]
return img_format("CACHE 0x%" PRIx64 ", %s(%s)", op_value, s_value, rs);
~~ ^~~~~~~
%lld
To avoid crashes such (kernel from commit f375ad6a0d):
$ qemu-system-mipsel -cpu I7200 -d in_asm -kernel generic_nano32r6el_page4k
...
----------------
IN: __bzero
0x805c6084: 20c4 6950 ADDU r13, a0, a2
0x805c6088: 9089 ADDIU a0, 1
Process 70261 stopped
* thread #6, stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff0)
frame #0: 0x00000001bfe38864 libsystem_platform.dylib`_platform_strlen + 4
libsystem_platform.dylib`:
-> 0x1bfe38864 <+4>: ldr q0, [x1]
0x1bfe38868 <+8>: adr x3, #-0xc8 ; ___lldb_unnamed_symbol314
0x1bfe3886c <+12>: ldr q2, [x3], #0x10
0x1bfe38870 <+16>: and x2, x0, #0xf
Target 0: (qemu-system-mipsel) stopped.
(lldb) bt
* thread #6, stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff0)
* frame #0: 0x00000001bfe38864 libsystem_platform.dylib`_platform_strlen + 4
frame #1: 0x00000001bfce76a0 libsystem_c.dylib`__vfprintf + 4544
frame #2: 0x00000001bfd158b4 libsystem_c.dylib`_vasprintf + 280
frame #3: 0x0000000101c22fb0 libglib-2.0.0.dylib`g_vasprintf + 28
frame #4: 0x0000000101bfb7d8 libglib-2.0.0.dylib`g_strdup_vprintf + 32
frame #5: 0x000000010000fb70 qemu-system-mipsel`img_format(format=<unavailable>) at nanomips.c:103:14 [opt]
frame #6: 0x0000000100018868 qemu-system-mipsel`SB_S9_(instruction=<unavailable>, info=<unavailable>) at nanomips.c:12616:12 [opt]
frame #7: 0x000000010000f90c qemu-system-mipsel`print_insn_nanomips at nanomips.c:589:28 [opt]
Fixes: 4066c152b3 ("disas/nanomips: Remove IMMEDIATE functions")
Reported-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221101114458.25756-2-philmd@linaro.org>
---
disas/nanomips.c | 35 ++++++++++++++++++++---------------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/disas/nanomips.c b/disas/nanomips.c
index 9647f1a8e3..6466c80dc5 100644
--- a/disas/nanomips.c
+++ b/disas/nanomips.c
@@ -3252,7 +3252,8 @@ static char *CACHE(uint64 instruction, Dis_info *info)
const char *rs = GPR(rs_value, info);
- return img_format("CACHE 0x%" PRIx64 ", %s(%s)", op_value, s_value, rs);
+ return img_format("CACHE 0x%" PRIx64 ", %" PRId64 "(%s)",
+ op_value, s_value, rs);
}
@@ -3274,7 +3275,8 @@ static char *CACHEE(uint64 instruction, Dis_info *info)
const char *rs = GPR(rs_value, info);
- return img_format("CACHEE 0x%" PRIx64 ", %s(%s)", op_value, s_value, rs);
+ return img_format("CACHEE 0x%" PRIx64 ", %" PRId64 "(%s)",
+ op_value, s_value, rs);
}
@@ -5173,7 +5175,7 @@ static char *DADDIU_48_(uint64 instruction, Dis_info *info)
const char *rt = GPR(rt_value, info);
- return img_format("DADDIU %s, %s", rt, s_value);
+ return img_format("DADDIU %s, %" PRId64, rt, s_value);
}
@@ -11859,7 +11861,7 @@ static char *PREF_S9_(uint64 instruction, Dis_info *info)
const char *rs = GPR(rs_value, info);
- return img_format("PREF 0x%" PRIx64 ", %s(%s)",
+ return img_format("PREF 0x%" PRIx64 ", %" PRId64 "(%s)",
hint_value, s_value, rs);
}
@@ -11905,7 +11907,8 @@ static char *PREFE(uint64 instruction, Dis_info *info)
const char *rs = GPR(rs_value, info);
- return img_format("PREFE 0x%" PRIx64 ", %s(%s)", hint_value, s_value, rs);
+ return img_format("PREFE 0x%" PRIx64 ", %" PRId64 "(%s)",
+ hint_value, s_value, rs);
}
@@ -12079,7 +12082,7 @@ static char *REPL_PH(uint64 instruction, Dis_info *info)
const char *rt = GPR(rt_value, info);
- return img_format("REPL.PH %s, %s", rt, s_value);
+ return img_format("REPL.PH %s, %" PRId64, rt, s_value);
}
@@ -12613,7 +12616,7 @@ static char *SB_S9_(uint64 instruction, Dis_info *info)
const char *rt = GPR(rt_value, info);
const char *rs = GPR(rs_value, info);
- return img_format("SB %s, %s(%s)", rt, s_value, rs);
+ return img_format("SB %s, %" PRId64 "(%s)", rt, s_value, rs);
}
@@ -12659,7 +12662,7 @@ static char *SBE(uint64 instruction, Dis_info *info)
const char *rt = GPR(rt_value, info);
const char *rs = GPR(rs_value, info);
- return img_format("SBE %s, %s(%s)", rt, s_value, rs);
+ return img_format("SBE %s, %" PRId64 "(%s)", rt, s_value, rs);
}
@@ -12706,7 +12709,7 @@ static char *SC(uint64 instruction, Dis_info *info)
const char *rt = GPR(rt_value, info);
const char *rs = GPR(rs_value, info);
- return img_format("SC %s, %s(%s)", rt, s_value, rs);
+ return img_format("SC %s, %" PRId64 "(%s)", rt, s_value, rs);
}
@@ -12729,7 +12732,7 @@ static char *SCD(uint64 instruction, Dis_info *info)
const char *rt = GPR(rt_value, info);
const char *rs = GPR(rs_value, info);
- return img_format("SCD %s, %s(%s)", rt, s_value, rs);
+ return img_format("SCD %s, %" PRId64 "(%s)", rt, s_value, rs);
}
@@ -12776,7 +12779,7 @@ static char *SCE(uint64 instruction, Dis_info *info)
const char *rt = GPR(rt_value, info);
const char *rs = GPR(rs_value, info);
- return img_format("SCE %s, %s(%s)", rt, s_value, rs);
+ return img_format("SCE %s, %" PRId64 "(%s)", rt, s_value, rs);
}
@@ -12868,7 +12871,7 @@ static char *SD_S9_(uint64 instruction, Dis_info *info)
const char *rt = GPR(rt_value, info);
const char *rs = GPR(rs_value, info);
- return img_format("SD %s, %s(%s)", rt, s_value, rs);
+ return img_format("SD %s, %" PRId64 "(%s)", rt, s_value, rs);
}
@@ -12973,7 +12976,7 @@ static char *SDC1_S9_(uint64 instruction, Dis_info *info)
const char *ft = FPR(ft_value, info);
const char *rs = GPR(rs_value, info);
- return img_format("SDC1 %s, %s(%s)", ft, s_value, rs);
+ return img_format("SDC1 %s, %" PRId64 "(%s)", ft, s_value, rs);
}
@@ -13066,7 +13069,8 @@ static char *SDC2(uint64 instruction, Dis_info *info)
const char *rs = GPR(rs_value, info);
- return img_format("SDC2 CP%" PRIu64 ", %s(%s)", cs_value, s_value, rs);
+ return img_format("SDC2 CP%" PRIu64 ", %" PRId64 "(%s)",
+ cs_value, s_value, rs);
}
@@ -13091,7 +13095,8 @@ static char *SDM(uint64 instruction, Dis_info *info)
const char *rs = GPR(rs_value, info);
uint64 count3 = encode_count3_from_count(count3_value);
- return img_format("SDM %s, %s(%s), 0x%" PRIx64, rt, s_value, rs, count3);
+ return img_format("SDM %s, %" PRId64 "(%s), 0x%" PRIx64,
+ rt, s_value, rs, count3);
}
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 07/14] disas/nanomips: Fix invalid PRIx64 format calling img_format()
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (5 preceding siblings ...)
2022-11-07 23:58 ` [PULL 06/14] disas/nanomips: Fix invalid PRId64 format calling img_format() Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 08/14] disas/nanomips: Use G_GNUC_PRINTF to avoid invalid string formats Philippe Mathieu-Daudé
` (7 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang, Stefan Weil
Fix:
disas/nanomips.c:12231:62: warning: format specifies type 'char *' but the argument has type 'uint64' (aka 'unsigned long long') [-Wformat]
return img_format("RESTOREF 0x%" PRIx64 ", %s", u_value, count_value);
~~ ^~~~~~~~~~~
%llu
Fixes: 4066c152b3 ("disas/nanomips: Remove IMMEDIATE functions")
Reported-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221101114458.25756-3-philmd@linaro.org>
---
disas/nanomips.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/disas/nanomips.c b/disas/nanomips.c
index 6466c80dc5..e4b21e7c45 100644
--- a/disas/nanomips.c
+++ b/disas/nanomips.c
@@ -12235,7 +12235,8 @@ static char *RESTOREF(uint64 instruction, Dis_info *info)
uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3__s3(instruction);
- return img_format("RESTOREF 0x%" PRIx64 ", %s", u_value, count_value);
+ return img_format("RESTOREF 0x%" PRIx64 ", 0x%" PRIx64,
+ u_value, count_value);
}
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 08/14] disas/nanomips: Use G_GNUC_PRINTF to avoid invalid string formats
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (6 preceding siblings ...)
2022-11-07 23:58 ` [PULL 07/14] disas/nanomips: Fix invalid PRIx64 " Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 09/14] disas/nanomips: Remove headers already included by "qemu/osdep.h" Philippe Mathieu-Daudé
` (6 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang, Stefan Weil
Suggested-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221101114458.25756-4-philmd@linaro.org>
---
disas/nanomips.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/disas/nanomips.c b/disas/nanomips.c
index e4b21e7c45..3f45447292 100644
--- a/disas/nanomips.c
+++ b/disas/nanomips.c
@@ -95,7 +95,7 @@ typedef struct Pool {
#define IMGASSERTONCE(test)
-static char *img_format(const char *format, ...)
+static char * G_GNUC_PRINTF(1, 2) img_format(const char *format, ...)
{
char *buffer;
va_list args;
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 09/14] disas/nanomips: Remove headers already included by "qemu/osdep.h"
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (7 preceding siblings ...)
2022-11-07 23:58 ` [PULL 08/14] disas/nanomips: Use G_GNUC_PRINTF to avoid invalid string formats Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 10/14] disas/nanomips: Move setjmp into nanomips_dis Philippe Mathieu-Daudé
` (5 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang, Stefan Weil
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221101114458.25756-5-philmd@linaro.org>
---
disas/nanomips.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/disas/nanomips.c b/disas/nanomips.c
index 3f45447292..821d4f8832 100644
--- a/disas/nanomips.c
+++ b/disas/nanomips.c
@@ -30,10 +30,6 @@
#include "qemu/osdep.h"
#include "disas/dis-asm.h"
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-
typedef int64_t int64;
typedef uint64_t uint64;
typedef uint32_t uint32;
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 10/14] disas/nanomips: Move setjmp into nanomips_dis
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (8 preceding siblings ...)
2022-11-07 23:58 ` [PULL 09/14] disas/nanomips: Remove headers already included by "qemu/osdep.h" Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 11/14] disas/nanomips: Merge insn{1,2,3} into words[3] Philippe Mathieu-Daudé
` (4 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang,
Richard Henderson
From: Richard Henderson <richard.henderson@linaro.org>
Reduce the number of local variables within the scope of the
setjmp by moving it to the existing helper. The actual length
returned from Disassemble is not used, because we have already
determined the length while reading bytes. Fixes:
nanomips.c: In function ‘print_insn_nanomips’:
nanomips.c:21925:14: error: variable ‘insn1’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
nanomips.c:21925:25: error: variable ‘insn2’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
nanomips.c:21925:36: error: variable ‘insn3’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
nanomips.c:21926:22: error: variable ‘buf’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20221106212852.152384-2-richard.henderson@linaro.org>
---
disas/nanomips.c | 42 +++++++++++++++++-------------------------
1 file changed, 17 insertions(+), 25 deletions(-)
diff --git a/disas/nanomips.c b/disas/nanomips.c
index 821d4f8832..83a39a878c 100644
--- a/disas/nanomips.c
+++ b/disas/nanomips.c
@@ -21907,22 +21907,24 @@ static const Pool MAJOR[2] = {
0x0 }, /* P16 */
};
-static int nanomips_dis(char **buf,
- Dis_info *info,
- unsigned short one,
- unsigned short two,
- unsigned short three)
+static bool nanomips_dis(char **buf, Dis_info *info,
+ unsigned short one,
+ unsigned short two,
+ unsigned short three)
{
uint16 bits[3] = {one, two, three};
-
TABLE_ENTRY_TYPE type;
- int size = Disassemble(bits, buf, &type, MAJOR, 2, info);
- return size;
+
+ /* Handle runtime errors. */
+ if (unlikely(sigsetjmp(info->buf, 0) != 0)) {
+ return false;
+ }
+ return Disassemble(bits, buf, &type, MAJOR, ARRAY_SIZE(MAJOR), info) >= 0;
}
int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
{
- int status;
+ int status, length;
bfd_byte buffer[2];
uint16_t insn1 = 0, insn2 = 0, insn3 = 0;
g_autofree char *buf = NULL;
@@ -21952,6 +21954,7 @@ int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
} else {
insn1 = bfd_getl16(buffer);
}
+ length = 2;
(*info->fprintf_func)(info->stream, "%04x ", insn1);
/* Handle 32-bit opcodes. */
@@ -21967,6 +21970,7 @@ int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
} else {
insn2 = bfd_getl16(buffer);
}
+ length = 4;
(*info->fprintf_func)(info->stream, "%04x ", insn2);
} else {
(*info->fprintf_func)(info->stream, " ");
@@ -21984,27 +21988,15 @@ int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
} else {
insn3 = bfd_getl16(buffer);
}
+ length = 6;
(*info->fprintf_func)(info->stream, "%04x ", insn3);
} else {
(*info->fprintf_func)(info->stream, " ");
}
- /* Handle runtime errors. */
- if (sigsetjmp(disassm_info.buf, 0) != 0) {
- info->insn_type = dis_noninsn;
- return insn3 ? 6 : insn2 ? 4 : 2;
+ if (nanomips_dis(&buf, &disassm_info, insn1, insn2, insn3)) {
+ (*info->fprintf_func) (info->stream, "%s", buf);
}
- int length = nanomips_dis(&buf, &disassm_info, insn1, insn2, insn3);
-
- /* FIXME: Should probably use a hash table on the major opcode here. */
-
- (*info->fprintf_func) (info->stream, "%s", buf);
- if (length > 0) {
- return length / 8;
- }
-
- info->insn_type = dis_noninsn;
-
- return insn3 ? 6 : insn2 ? 4 : 2;
+ return length;
}
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 11/14] disas/nanomips: Merge insn{1,2,3} into words[3]
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (9 preceding siblings ...)
2022-11-07 23:58 ` [PULL 10/14] disas/nanomips: Move setjmp into nanomips_dis Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 12/14] disas/nanomips: Split out read_u16 Philippe Mathieu-Daudé
` (3 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang,
Richard Henderson
From: Richard Henderson <richard.henderson@linaro.org>
Since Disassemble wants the data in this format, collect
it that way. This allows using a loop to print the bytes.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20221106212852.152384-3-richard.henderson@linaro.org>
---
disas/nanomips.c | 44 +++++++++++++++++++++-----------------------
1 file changed, 21 insertions(+), 23 deletions(-)
diff --git a/disas/nanomips.c b/disas/nanomips.c
index 83a39a878c..e462256760 100644
--- a/disas/nanomips.c
+++ b/disas/nanomips.c
@@ -21907,26 +21907,22 @@ static const Pool MAJOR[2] = {
0x0 }, /* P16 */
};
-static bool nanomips_dis(char **buf, Dis_info *info,
- unsigned short one,
- unsigned short two,
- unsigned short three)
+static bool nanomips_dis(const uint16_t *data, char **buf, Dis_info *info)
{
- uint16 bits[3] = {one, two, three};
TABLE_ENTRY_TYPE type;
/* Handle runtime errors. */
if (unlikely(sigsetjmp(info->buf, 0) != 0)) {
return false;
}
- return Disassemble(bits, buf, &type, MAJOR, ARRAY_SIZE(MAJOR), info) >= 0;
+ return Disassemble(data, buf, &type, MAJOR, ARRAY_SIZE(MAJOR), info) >= 0;
}
int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
{
int status, length;
bfd_byte buffer[2];
- uint16_t insn1 = 0, insn2 = 0, insn3 = 0;
+ uint16_t words[3] = { };
g_autofree char *buf = NULL;
info->bytes_per_chunk = 2;
@@ -21950,15 +21946,14 @@ int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
}
if (info->endian == BFD_ENDIAN_BIG) {
- insn1 = bfd_getb16(buffer);
+ words[0] = bfd_getb16(buffer);
} else {
- insn1 = bfd_getl16(buffer);
+ words[0] = bfd_getl16(buffer);
}
length = 2;
- (*info->fprintf_func)(info->stream, "%04x ", insn1);
/* Handle 32-bit opcodes. */
- if ((insn1 & 0x1000) == 0) {
+ if ((words[0] & 0x1000) == 0) {
status = (*info->read_memory_func)(memaddr + 2, buffer, 2, info);
if (status != 0) {
(*info->memory_error_func)(status, memaddr + 2, info);
@@ -21966,17 +21961,15 @@ int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
}
if (info->endian == BFD_ENDIAN_BIG) {
- insn2 = bfd_getb16(buffer);
+ words[1] = bfd_getb16(buffer);
} else {
- insn2 = bfd_getl16(buffer);
+ words[1] = bfd_getl16(buffer);
}
length = 4;
- (*info->fprintf_func)(info->stream, "%04x ", insn2);
- } else {
- (*info->fprintf_func)(info->stream, " ");
}
+
/* Handle 48-bit opcodes. */
- if ((insn1 >> 10) == 0x18) {
+ if ((words[0] >> 10) == 0x18) {
status = (*info->read_memory_func)(memaddr + 4, buffer, 2, info);
if (status != 0) {
(*info->memory_error_func)(status, memaddr + 4, info);
@@ -21984,17 +21977,22 @@ int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
}
if (info->endian == BFD_ENDIAN_BIG) {
- insn3 = bfd_getb16(buffer);
+ words[2] = bfd_getb16(buffer);
} else {
- insn3 = bfd_getl16(buffer);
+ words[2] = bfd_getl16(buffer);
}
length = 6;
- (*info->fprintf_func)(info->stream, "%04x ", insn3);
- } else {
- (*info->fprintf_func)(info->stream, " ");
}
- if (nanomips_dis(&buf, &disassm_info, insn1, insn2, insn3)) {
+ for (int i = 0; i < ARRAY_SIZE(words); i++) {
+ if (i * 2 < length) {
+ (*info->fprintf_func)(info->stream, "%04x ", words[i]);
+ } else {
+ (*info->fprintf_func)(info->stream, " ");
+ }
+ }
+
+ if (nanomips_dis(words, &buf, &disassm_info)) {
(*info->fprintf_func) (info->stream, "%s", buf);
}
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 12/14] disas/nanomips: Split out read_u16
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (10 preceding siblings ...)
2022-11-07 23:58 ` [PULL 11/14] disas/nanomips: Merge insn{1,2,3} into words[3] Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 13/14] disas/nanomips: Tidy read for 48-bit opcodes Philippe Mathieu-Daudé
` (2 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang,
Richard Henderson
From: Richard Henderson <richard.henderson@linaro.org>
Split out a helper function for reading a uint16_t
with the correct endianness.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221106023735.5277-4-richard.henderson@linaro.org>
---
disas/nanomips.c | 48 +++++++++++++++++++-----------------------------
1 file changed, 19 insertions(+), 29 deletions(-)
diff --git a/disas/nanomips.c b/disas/nanomips.c
index e462256760..3b998118e3 100644
--- a/disas/nanomips.c
+++ b/disas/nanomips.c
@@ -21918,10 +21918,24 @@ static bool nanomips_dis(const uint16_t *data, char **buf, Dis_info *info)
return Disassemble(data, buf, &type, MAJOR, ARRAY_SIZE(MAJOR), info) >= 0;
}
+static bool read_u16(uint16_t *ret, bfd_vma memaddr,
+ struct disassemble_info *info)
+{
+ int status = (*info->read_memory_func)(memaddr, (bfd_byte *)ret, 2, info);
+ if (status != 0) {
+ (*info->memory_error_func)(status, memaddr, info);
+ return false;
+ }
+
+ if ((info->endian == BFD_ENDIAN_BIG) != HOST_BIG_ENDIAN) {
+ bswap16s(ret);
+ }
+ return true;
+}
+
int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
{
- int status, length;
- bfd_byte buffer[2];
+ int length;
uint16_t words[3] = { };
g_autofree char *buf = NULL;
@@ -21939,48 +21953,24 @@ int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
disassm_info.fprintf_func = info->fprintf_func;
disassm_info.stream = info->stream;
- status = (*info->read_memory_func)(memaddr, buffer, 2, info);
- if (status != 0) {
- (*info->memory_error_func)(status, memaddr, info);
+ if (!read_u16(&words[0], memaddr, info)) {
return -1;
}
-
- if (info->endian == BFD_ENDIAN_BIG) {
- words[0] = bfd_getb16(buffer);
- } else {
- words[0] = bfd_getl16(buffer);
- }
length = 2;
/* Handle 32-bit opcodes. */
if ((words[0] & 0x1000) == 0) {
- status = (*info->read_memory_func)(memaddr + 2, buffer, 2, info);
- if (status != 0) {
- (*info->memory_error_func)(status, memaddr + 2, info);
+ if (!read_u16(&words[1], memaddr + 2, info)) {
return -1;
}
-
- if (info->endian == BFD_ENDIAN_BIG) {
- words[1] = bfd_getb16(buffer);
- } else {
- words[1] = bfd_getl16(buffer);
- }
length = 4;
}
/* Handle 48-bit opcodes. */
if ((words[0] >> 10) == 0x18) {
- status = (*info->read_memory_func)(memaddr + 4, buffer, 2, info);
- if (status != 0) {
- (*info->memory_error_func)(status, memaddr + 4, info);
+ if (!read_u16(&words[1], memaddr + 4, info)) {
return -1;
}
-
- if (info->endian == BFD_ENDIAN_BIG) {
- words[2] = bfd_getb16(buffer);
- } else {
- words[2] = bfd_getl16(buffer);
- }
length = 6;
}
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 13/14] disas/nanomips: Tidy read for 48-bit opcodes
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (11 preceding siblings ...)
2022-11-07 23:58 ` [PULL 12/14] disas/nanomips: Split out read_u16 Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-07 23:58 ` [PULL 14/14] MAINTAINERS: Inherit from nanoMIPS Philippe Mathieu-Daudé
2022-11-08 18:08 ` [PULL 00/14] MIPS patches for 2022-11-08 Stefan Hajnoczi
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang,
Richard Henderson
From: Richard Henderson <richard.henderson@linaro.org>
There is no point in looking for a 48-bit opcode if we've
not read the second word for a 32-bit opcode.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221106023735.5277-5-richard.henderson@linaro.org>
---
disas/nanomips.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/disas/nanomips.c b/disas/nanomips.c
index 3b998118e3..a0253598dd 100644
--- a/disas/nanomips.c
+++ b/disas/nanomips.c
@@ -21964,14 +21964,14 @@ int print_insn_nanomips(bfd_vma memaddr, struct disassemble_info *info)
return -1;
}
length = 4;
- }
- /* Handle 48-bit opcodes. */
- if ((words[0] >> 10) == 0x18) {
- if (!read_u16(&words[1], memaddr + 4, info)) {
- return -1;
+ /* Handle 48-bit opcodes. */
+ if ((words[0] >> 10) == 0x18) {
+ if (!read_u16(&words[1], memaddr + 4, info)) {
+ return -1;
+ }
+ length = 6;
}
- length = 6;
}
for (int i = 0; i < ARRAY_SIZE(words); i++) {
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 14/14] MAINTAINERS: Inherit from nanoMIPS
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (12 preceding siblings ...)
2022-11-07 23:58 ` [PULL 13/14] disas/nanomips: Tidy read for 48-bit opcodes Philippe Mathieu-Daudé
@ 2022-11-07 23:58 ` Philippe Mathieu-Daudé
2022-11-08 18:08 ` [PULL 00/14] MIPS patches for 2022-11-08 Stefan Hajnoczi
14 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-11-07 23:58 UTC (permalink / raw)
To: qemu-devel
Cc: Philippe Mathieu-Daudé,
Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang,
Vince Del Vecchio, Richard Henderson, Thomas Huth
6 months ago Stefan Pejic stepped in as nanoMIPS maintainer
(see commit a 8e0e23445a "target/mips: Undeprecate nanoMIPS
ISA support in QEMU"), however today his email is bouncing:
** Message blocked **
Your message to stefan.pejic@syrmia.com has been blocked. See technical details below for more information.
The response from the remote server was:
550 5.4.1 Recipient address rejected: Access denied. AS(201806281) [DBAEUR03FT030.eop-EUR03.prod.protection.outlook.com]
To avoid unmaintained code, I feel forced to merge this code
back with the generic MIPS section.
Historical references:
- https://lore.kernel.org/qemu-devel/TY0PR03MB679726901BD6C6BE40114A2FE2A79@TY0PR03MB6797.apcprd03.prod.outlook.com/
- https://lore.kernel.org/qemu-devel/b858a20e97b74e7b90a94948314d0008@MTKMBS62N2.mediatek.inc/
Cc: Vince Del Vecchio <Vince.DelVecchio@mediatek.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <49f41916-687f-b9e5-2de7-9c658fe0d4c7@linaro.org>
Tested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221101114458.25756-6-philmd@linaro.org>
---
MAINTAINERS | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 4adf8c65db..86bcd07a31 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -237,16 +237,10 @@ R: Jiaxun Yang <jiaxun.yang@flygoat.com>
R: Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>
S: Odd Fixes
F: target/mips/
-F: disas/mips.c
+F: disas/*mips.c
F: docs/system/cpu-models-mips.rst.inc
F: tests/tcg/mips/
-MIPS TCG CPUs (nanoMIPS ISA)
-M: Stefan Pejic <stefan.pejic@syrmia.com>
-S: Maintained
-F: disas/nanomips.*
-F: target/mips/tcg/*nanomips*
-
NiosII TCG CPUs
M: Chris Wulff <crwulff@gmail.com>
M: Marek Vasut <marex@denx.de>
--
2.38.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PULL 00/14] MIPS patches for 2022-11-08
2022-11-07 23:58 [PULL 00/14] MIPS patches for 2022-11-08 Philippe Mathieu-Daudé
` (13 preceding siblings ...)
2022-11-07 23:58 ` [PULL 14/14] MAINTAINERS: Inherit from nanoMIPS Philippe Mathieu-Daudé
@ 2022-11-08 18:08 ` Stefan Hajnoczi
14 siblings, 0 replies; 16+ messages in thread
From: Stefan Hajnoczi @ 2022-11-08 18:08 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Aurelien Jarno, Aleksandar Rikalo, Jiaxun Yang
[-- Attachment #1: Type: text/plain, Size: 115 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/7.2 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread