* [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs
@ 2025-01-27 11:27 Peter Maydell
2025-01-27 11:27 ` [PATCH 1/2] target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation Peter Maydell
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Peter Maydell @ 2025-01-27 11:27 UTC (permalink / raw)
To: qemu-arm, qemu-devel
This patchset marks all the CPUs that support iwMMXt as deprecated,
because I don't believe anybody is using them, and we have no way to
test the thousands of lines of code we have that's only there for
iwMMXt emulation. (See for instance the recent thread where a patch
was submitted to fix an issue detected by a static analyzer: we
didn't take it, largely because we had no way to know if the
behaviour change the patch would produce was correct or not.)
The pxa2xx CPUs are now only useful with user-mode emulation, because
we dropped all the machine types that used them in 9.2. (Technically
you could alse use "-cpu pxa270" with a board model like versatilepb
which doesn't sanity-check the CPU type, but that has never been a
supported config.)
To use them (or iwMMXt emulation) with QEMU user-mode you would need
to explicitly select them with the -cpu option or the QEMU_CPU
environment variable, because the '-cpu max' default CPU does not
include iwMMXt emulation. A google search finds no examples of
anybody doing this in the last decade.
I asked some of the Linaro GCC folks if they were using QEMU to test
their iwMMXt codegen, or knew anybody doing that upstream, and the
answer was "no". In fact, GCC is in the process of dropping support
for iwMMXt entirely.
We have one test case in check-tcg which purports to be checking
iwMMXt. In fact it is doing no such thing: it runs the test without
selecting an iwMMXt CPU, which means the iwMMXt insns are interpreted
as FPA11 insns by the linux-user emulate_arm_fpa11() code. So the test
prints garbage and then succeeds anyway. Modern distro toolchains
can't generate a binary that will run with -cpu pxa270 (because their
crt startup code uses Thumb insns); rather than putting in a lot of
effort trying to salvage the test case to really test a feature we've
deprecated, I opted to just remove the test.
-- PMM
Peter Maydell (2):
target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation
tests/tcg/arm: Remove test-arm-iwmmxt test
docs/about/deprecated.rst | 21 ++++++++++++++
target/arm/cpu.h | 1 +
target/arm/cpu.c | 3 ++
target/arm/tcg/cpu32.c | 36 ++++++++++++++++--------
tests/tcg/arm/Makefile.target | 7 -----
tests/tcg/arm/README | 5 ----
tests/tcg/arm/test-arm-iwmmxt.S | 49 ---------------------------------
7 files changed, 49 insertions(+), 73 deletions(-)
delete mode 100644 tests/tcg/arm/test-arm-iwmmxt.S
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/2] target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation 2025-01-27 11:27 [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs Peter Maydell @ 2025-01-27 11:27 ` Peter Maydell 2025-01-27 11:27 ` [PATCH 2/2] tests/tcg/arm: Remove test-arm-iwmmxt test Peter Maydell ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Peter Maydell @ 2025-01-27 11:27 UTC (permalink / raw) To: qemu-arm, qemu-devel The pxa2xx CPUs are now only useful with user-mode emulation, because we dropped all the machine types that used them in 9.2. (Technically you could alse use "-cpu pxa270" with a board model like versatilepb which doesn't sanity-check the CPU type, but that has never been a supported config.) To use them (or iwMMXt emulation) with QEMU user-mode you would need to explicitly select them with the -cpu option or the QEMU_CPU environment variable. A google search finds no examples of anybody doing this in the last decade; I don't believe the GCC folks are using QEMU to test their iwMMXt codegen either. In fact, GCC is in the process of dropping support for iwMMXT entirely. The iwMMXt emulation is thousands of lines of code in QEMU, and is now the only bit of Arm insn decode which doesn't use decodetree. We have no way to test or validate changes to it. This code is just dead weight that is almost certainly not being used by anybody. Mark it as deprecated. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- docs/about/deprecated.rst | 21 +++++++++++++++++++++ target/arm/cpu.h | 1 + target/arm/cpu.c | 3 +++ target/arm/tcg/cpu32.c | 36 ++++++++++++++++++++++++------------ 4 files changed, 49 insertions(+), 12 deletions(-) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 4a3c302962a..29de49351d1 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -204,6 +204,27 @@ is going to be so much slower it wouldn't make sense for any serious instrumentation. Due to implementation differences there will also be anomalies in things like memory instrumentation. +linux-user mode CPUs +-------------------- + +iwMMXt emulation and the ``pxa`` CPUs (since 10.0) +'''''''''''''''''''''''''''''''''''''''''''''''''' + +The ``pxa`` CPU family (``pxa250``, ``pxa255``, ``pxa260``, +``pxa261``, ``pxa262``, ``pxa270-a0``, ``pxa270-a1``, ``pxa270``, +``pxa270-b0``, ``pxa270-b1``, ``pxa270-c0``, ``pxa270-c5``) are no +longer used in system emulation, because all the machine types which +used these CPUs were removed in the QEMU 9.2 release. These CPUs can +now only be used in linux-user mode, and to do that you would have to +explicitly select one of these CPUs with the ``-cpu`` command line +option or the ``QEMU_CPU`` environment variable. + +We don't believe that anybody is using the iwMMXt emulation, and we do +not have any tests to validate it or any real hardware or similar +known-good implementation to test against. GCC is in the process of +dropping their support for iwMMXt codegen. These CPU types are +therefore deprecated in QEMU, and will be removed in a future release. + System emulator CPUs -------------------- diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 9a6e8e589cc..71df9d3a0c4 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1114,6 +1114,7 @@ struct ArchCPU { typedef struct ARMCPUInfo { const char *name; + const char *deprecation_note; void (*initfn)(Object *obj); void (*class_init)(ObjectClass *oc, void *data); } ARMCPUInfo; diff --git a/target/arm/cpu.c b/target/arm/cpu.c index dc0231233a6..8a0e3d12f3f 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -2756,6 +2756,9 @@ static void cpu_register_class_init(ObjectClass *oc, void *data) acc->info = data; cc->gdb_core_xml_file = "arm-core.xml"; + if (acc->info->deprecation_note) { + cc->deprecation_note = acc->info->deprecation_note; + } } void arm_cpu_register(const ARMCPUInfo *info) diff --git a/target/arm/tcg/cpu32.c b/target/arm/tcg/cpu32.c index 2ad21825255..0f1c5bc87e8 100644 --- a/target/arm/tcg/cpu32.c +++ b/target/arm/tcg/cpu32.c @@ -1026,19 +1026,31 @@ static const ARMCPUInfo arm_tcg_cpus[] = { { .name = "ti925t", .initfn = ti925t_initfn }, { .name = "sa1100", .initfn = sa1100_initfn }, { .name = "sa1110", .initfn = sa1110_initfn }, - { .name = "pxa250", .initfn = pxa250_initfn }, - { .name = "pxa255", .initfn = pxa255_initfn }, - { .name = "pxa260", .initfn = pxa260_initfn }, - { .name = "pxa261", .initfn = pxa261_initfn }, - { .name = "pxa262", .initfn = pxa262_initfn }, + { .name = "pxa250", .initfn = pxa250_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa255", .initfn = pxa255_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa260", .initfn = pxa260_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa261", .initfn = pxa261_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa262", .initfn = pxa262_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, /* "pxa270" is an alias for "pxa270-a0" */ - { .name = "pxa270", .initfn = pxa270a0_initfn }, - { .name = "pxa270-a0", .initfn = pxa270a0_initfn }, - { .name = "pxa270-a1", .initfn = pxa270a1_initfn }, - { .name = "pxa270-b0", .initfn = pxa270b0_initfn }, - { .name = "pxa270-b1", .initfn = pxa270b1_initfn }, - { .name = "pxa270-c0", .initfn = pxa270c0_initfn }, - { .name = "pxa270-c5", .initfn = pxa270c5_initfn }, + { .name = "pxa270", .initfn = pxa270a0_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa270-a0", .initfn = pxa270a0_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa270-a1", .initfn = pxa270a1_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa270-b0", .initfn = pxa270b0_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa270-b1", .initfn = pxa270b1_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa270-c0", .initfn = pxa270c0_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, + { .name = "pxa270-c5", .initfn = pxa270c5_initfn, + .deprecation_note = "iwMMXt CPUs are no longer supported", }, #ifndef TARGET_AARCH64 { .name = "max", .initfn = arm_max_initfn }, #endif -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] tests/tcg/arm: Remove test-arm-iwmmxt test 2025-01-27 11:27 [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs Peter Maydell 2025-01-27 11:27 ` [PATCH 1/2] target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation Peter Maydell @ 2025-01-27 11:27 ` Peter Maydell 2025-01-27 16:13 ` [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs Richard Henderson 2025-01-27 17:27 ` Philippe Mathieu-Daudé 3 siblings, 0 replies; 8+ messages in thread From: Peter Maydell @ 2025-01-27 11:27 UTC (permalink / raw) To: qemu-arm, qemu-devel The test-arm-iwmmmxt test isn't testing what it thinks it's testing. If you run it with a CPU type that supports iwMMXt then it will crash immediately with a SIGILL, because (even with -marm) GCC will link it against startup code that is in Thumb mode, and no iwMMXt CPU has Thumb: 00010338 <_start>: 10338: f04f 0b00 mov.w fp, #0 1033c: f04f 0e00 mov.w lr, #0 If you run it with a CPU type which does *not* support iwMMXt, which is what 'make check-tcg' does, then QEMU will not try to handle the insns as iwMMXt. Instead the translator turns them into illegal instructions. Then in the linux-user cpu_loop() code we identify them as FPA11 instructions inside emulate_arm_fpa11(), because the FPA11 happened to use the same coprocessor number as these iwMMXt insns. So we execute a completely different set of FPA11 insns, which means we don't crash, but we will print garbage to stdout. Then the test binary always exits with a 0 return code, so 'make check-tcg' thinks the test passes. Modern gnueabihf toolchains assume in their startup code that the CPU is not so old as to not support Thumb, so there's no way to get them to generate a binary that actually does what the test wants. Since we're deprecating iwMMXt emulation anyway, it's not worth trying to salvage the test case to get it to really test the iwMMXt insns. Delete the test entirely. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- tests/tcg/arm/Makefile.target | 7 ----- tests/tcg/arm/README | 5 ---- tests/tcg/arm/test-arm-iwmmxt.S | 49 --------------------------------- 3 files changed, 61 deletions(-) delete mode 100644 tests/tcg/arm/test-arm-iwmmxt.S diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target index 06ddf3e04fc..99a953b6671 100644 --- a/tests/tcg/arm/Makefile.target +++ b/tests/tcg/arm/Makefile.target @@ -20,13 +20,6 @@ ARM_TESTS = hello-arm hello-arm: CFLAGS+=-marm -ffreestanding -fno-stack-protector hello-arm: LDFLAGS+=-nostdlib -# IWMXT floating point extensions -ARM_TESTS += test-arm-iwmmxt -# Clang assembler does not support IWMXT, so use the external assembler. -test-arm-iwmmxt: CFLAGS += -marm -march=iwmmxt -mabi=aapcs -mfpu=fpv4-sp-d16 $(CROSS_CC_HAS_FNIA) -test-arm-iwmmxt: test-arm-iwmmxt.S - $(CC) $(CFLAGS) -Wa,--noexecstack $< -o $@ $(LDFLAGS) - # Float-convert Tests ARM_TESTS += fcvt fcvt: LDFLAGS += -lm diff --git a/tests/tcg/arm/README b/tests/tcg/arm/README index e6307116e23..aceccc127f7 100644 --- a/tests/tcg/arm/README +++ b/tests/tcg/arm/README @@ -4,8 +4,3 @@ hello-arm --------- A very simple inline assembly, write syscall based hello world - -test-arm-iwmmxt ---------------- - -A simple test case for older iwmmxt extended ARMs diff --git a/tests/tcg/arm/test-arm-iwmmxt.S b/tests/tcg/arm/test-arm-iwmmxt.S deleted file mode 100644 index d647f9404ae..00000000000 --- a/tests/tcg/arm/test-arm-iwmmxt.S +++ /dev/null @@ -1,49 +0,0 @@ -@ Checks whether iwMMXt is functional. -.code 32 -.globl main - -main: -ldr r0, =data0 -ldr r1, =data1 -ldr r2, =data2 -#ifndef FPA -wldrd wr0, [r0, #0] -wldrd wr1, [r0, #8] -wldrd wr2, [r1, #0] -wldrd wr3, [r1, #8] -wsubb wr2, wr2, wr0 -wsubb wr3, wr3, wr1 -wldrd wr0, [r2, #0] -wldrd wr1, [r2, #8] -waddb wr0, wr0, wr2 -waddb wr1, wr1, wr3 -wstrd wr0, [r2, #0] -wstrd wr1, [r2, #8] -#else -ldfe f0, [r0, #0] -ldfe f1, [r0, #8] -ldfe f2, [r1, #0] -ldfe f3, [r1, #8] -adfdp f2, f2, f0 -adfdp f3, f3, f1 -ldfe f0, [r2, #0] -ldfe f1, [r2, #8] -adfd f0, f0, f2 -adfd f1, f1, f3 -stfe f0, [r2, #0] -stfe f1, [r2, #8] -#endif -mov r0, #1 -mov r1, r2 -mov r2, #0x11 -swi #0x900004 -mov r0, #0 -swi #0x900001 - -.data -data0: -.string "aaaabbbbccccdddd" -data1: -.string "bbbbccccddddeeee" -data2: -.string "hvLLWs\x1fsdrs9\x1fNJ-\n" -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs 2025-01-27 11:27 [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs Peter Maydell 2025-01-27 11:27 ` [PATCH 1/2] target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation Peter Maydell 2025-01-27 11:27 ` [PATCH 2/2] tests/tcg/arm: Remove test-arm-iwmmxt test Peter Maydell @ 2025-01-27 16:13 ` Richard Henderson 2025-01-27 17:27 ` Philippe Mathieu-Daudé 3 siblings, 0 replies; 8+ messages in thread From: Richard Henderson @ 2025-01-27 16:13 UTC (permalink / raw) To: qemu-devel On 1/27/25 03:27, Peter Maydell wrote: > This patchset marks all the CPUs that support iwMMXt as deprecated, > because I don't believe anybody is using them, and we have no way to > test the thousands of lines of code we have that's only there for > iwMMXt emulation. (See for instance the recent thread where a patch > was submitted to fix an issue detected by a static analyzer: we > didn't take it, largely because we had no way to know if the > behaviour change the patch would produce was correct or not.) > > The pxa2xx CPUs are now only useful with user-mode emulation, because > we dropped all the machine types that used them in 9.2. (Technically > you could alse use "-cpu pxa270" with a board model like versatilepb > which doesn't sanity-check the CPU type, but that has never been a > supported config.) > > To use them (or iwMMXt emulation) with QEMU user-mode you would need > to explicitly select them with the -cpu option or the QEMU_CPU > environment variable, because the '-cpu max' default CPU does not > include iwMMXt emulation. A google search finds no examples of > anybody doing this in the last decade. > > I asked some of the Linaro GCC folks if they were using QEMU to test > their iwMMXt codegen, or knew anybody doing that upstream, and the > answer was "no". In fact, GCC is in the process of dropping support > for iwMMXt entirely. > > We have one test case in check-tcg which purports to be checking > iwMMXt. In fact it is doing no such thing: it runs the test without > selecting an iwMMXt CPU, which means the iwMMXt insns are interpreted > as FPA11 insns by the linux-user emulate_arm_fpa11() code. So the test > prints garbage and then succeeds anyway. Modern distro toolchains > can't generate a binary that will run with -cpu pxa270 (because their > crt startup code uses Thumb insns); rather than putting in a lot of > effort trying to salvage the test case to really test a feature we've > deprecated, I opted to just remove the test. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs 2025-01-27 11:27 [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs Peter Maydell ` (2 preceding siblings ...) 2025-01-27 16:13 ` [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs Richard Henderson @ 2025-01-27 17:27 ` Philippe Mathieu-Daudé 2025-01-27 17:46 ` Peter Maydell 3 siblings, 1 reply; 8+ messages in thread From: Philippe Mathieu-Daudé @ 2025-01-27 17:27 UTC (permalink / raw) To: Peter Maydell, qemu-arm, qemu-devel On 27/1/25 12:27, Peter Maydell wrote: > This patchset marks all the CPUs that support iwMMXt as deprecated, > because I don't believe anybody is using them, and we have no way to > test the thousands of lines of code we have that's only there for > iwMMXt emulation. (See for instance the recent thread where a patch > was submitted to fix an issue detected by a static analyzer: we > didn't take it, largely because we had no way to know if the > behaviour change the patch would produce was correct or not.) > > The pxa2xx CPUs are now only useful with user-mode emulation, because > we dropped all the machine types that used them in 9.2. (Technically > you could alse use "-cpu pxa270" with a board model like versatilepb > which doesn't sanity-check the CPU type, but that has never been a > supported config.) > > To use them (or iwMMXt emulation) with QEMU user-mode you would need > to explicitly select them with the -cpu option or the QEMU_CPU > environment variable, because the '-cpu max' default CPU does not > include iwMMXt emulation. A google search finds no examples of > anybody doing this in the last decade. > > I asked some of the Linaro GCC folks if they were using QEMU to test > their iwMMXt codegen, or knew anybody doing that upstream, and the > answer was "no". In fact, GCC is in the process of dropping support > for iwMMXt entirely. > > We have one test case in check-tcg which purports to be checking > iwMMXt. In fact it is doing no such thing: it runs the test without > selecting an iwMMXt CPU, which means the iwMMXt insns are interpreted > as FPA11 insns by the linux-user emulate_arm_fpa11() code. So the test > prints garbage and then succeeds anyway. Modern distro toolchains Uh... > can't generate a binary that will run with -cpu pxa270 (because their > crt startup code uses Thumb insns); rather than putting in a lot of > effort trying to salvage the test case to really test a feature we've > deprecated, I opted to just remove the test. > > -- PMM > > Peter Maydell (2): > target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation > tests/tcg/arm: Remove test-arm-iwmmxt test Series: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs 2025-01-27 17:27 ` Philippe Mathieu-Daudé @ 2025-01-27 17:46 ` Peter Maydell 2025-01-27 21:02 ` Deprecate nwfpe emulation? Richard Henderson 0 siblings, 1 reply; 8+ messages in thread From: Peter Maydell @ 2025-01-27 17:46 UTC (permalink / raw) To: Philippe Mathieu-Daudé; +Cc: qemu-arm, qemu-devel On Mon, 27 Jan 2025 at 17:27, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > On 27/1/25 12:27, Peter Maydell wrote: > > We have one test case in check-tcg which purports to be checking > > iwMMXt. In fact it is doing no such thing: it runs the test without > > selecting an iwMMXt CPU, which means the iwMMXt insns are interpreted > > as FPA11 insns by the linux-user emulate_arm_fpa11() code. So the test > > prints garbage and then succeeds anyway. > > Uh... It had me confused for a while, because I'd convinced myself by code inspection that we only enabled iwMMXt if you manually asked for a pxa2xx CPU and not in the default 'max' CPU, and then I found this test case that we were running with the default CPU type and which was apparently passing :-) -- PMM ^ permalink raw reply [flat|nested] 8+ messages in thread
* Deprecate nwfpe emulation? 2025-01-27 17:46 ` Peter Maydell @ 2025-01-27 21:02 ` Richard Henderson 2025-02-11 15:44 ` Peter Maydell 0 siblings, 1 reply; 8+ messages in thread From: Richard Henderson @ 2025-01-27 21:02 UTC (permalink / raw) To: Peter Maydell, Philippe Mathieu-Daudé Cc: qemu-arm, qemu-devel, linux-arm-kernel On 1/27/25 09:46, Peter Maydell wrote: > On Mon, 27 Jan 2025 at 17:27, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >> On 27/1/25 12:27, Peter Maydell wrote: >>> We have one test case in check-tcg which purports to be checking >>> iwMMXt. In fact it is doing no such thing: it runs the test without >>> selecting an iwMMXt CPU, which means the iwMMXt insns are interpreted >>> as FPA11 insns by the linux-user emulate_arm_fpa11() code. So the test >>> prints garbage and then succeeds anyway. >> >> Uh... > > It had me confused for a while, because I'd convinced myself > by code inspection that we only enabled iwMMXt if you > manually asked for a pxa2xx CPU and not in the default 'max' > CPU, and then I found this test case that we were running > with the default CPU type and which was apparently passing :-) Any chance we can deprecate the fpa11 stuff too? I see it's still enabled by the kernel for some boards, but it depends on really old configury: config FPE_NWFPE bool "NWFPE math emulation" depends on (!AEABI || OABI_COMPAT) && !THUMB2_KERNEL help Say Y to include the NWFPE floating point emulator in the kernel. This is necessary to run most binaries. Linux does not currently support floating point hardware so you need to say Y here even if your machine has an FPA or floating point co-processor podule. No thumb2, no eabi, and oabi_compat enabled. I suspect that's a very rare configuration these days. I'll note the help message is somewhat dated. :-) r~ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Deprecate nwfpe emulation? 2025-01-27 21:02 ` Deprecate nwfpe emulation? Richard Henderson @ 2025-02-11 15:44 ` Peter Maydell 0 siblings, 0 replies; 8+ messages in thread From: Peter Maydell @ 2025-02-11 15:44 UTC (permalink / raw) To: Richard Henderson Cc: Philippe Mathieu-Daudé, qemu-arm, qemu-devel, linux-arm-kernel On Mon, 27 Jan 2025 at 21:02, Richard Henderson <richard.henderson@linaro.org> wrote: > > On 1/27/25 09:46, Peter Maydell wrote: > > On Mon, 27 Jan 2025 at 17:27, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > >> On 27/1/25 12:27, Peter Maydell wrote: > >>> We have one test case in check-tcg which purports to be checking > >>> iwMMXt. In fact it is doing no such thing: it runs the test without > >>> selecting an iwMMXt CPU, which means the iwMMXt insns are interpreted > >>> as FPA11 insns by the linux-user emulate_arm_fpa11() code. So the test > >>> prints garbage and then succeeds anyway. > >> > >> Uh... > > > > It had me confused for a while, because I'd convinced myself > > by code inspection that we only enabled iwMMXt if you > > manually asked for a pxa2xx CPU and not in the default 'max' > > CPU, and then I found this test case that we were running > > with the default CPU type and which was apparently passing :-) > > Any chance we can deprecate the fpa11 stuff too? I had wondered about that from the QEMU side, but it's a little trickier than the iwmmxt deprecation because we enable the fpa11 emulation by default, so it's harder to tell if any users are still using it. (In practice I'm pretty sure it'll only being used if people are running old binaries that used the ancient "floating point return values go in an FPA register" ABI.) -- PMM ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-02-11 15:44 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-01-27 11:27 [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs Peter Maydell 2025-01-27 11:27 ` [PATCH 1/2] target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation Peter Maydell 2025-01-27 11:27 ` [PATCH 2/2] tests/tcg/arm: Remove test-arm-iwmmxt test Peter Maydell 2025-01-27 16:13 ` [PATCH 0/2] target/arm: Deprecate iwMMXt emulation and associated CPUs Richard Henderson 2025-01-27 17:27 ` Philippe Mathieu-Daudé 2025-01-27 17:46 ` Peter Maydell 2025-01-27 21:02 ` Deprecate nwfpe emulation? Richard Henderson 2025-02-11 15:44 ` Peter Maydell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).