qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] target/arm: Various v8.1M minor features
@ 2020-10-12 15:33 Peter Maydell
  2020-10-12 15:33 ` [PATCH] Deprecate TileGX port Peter Maydell
                   ` (29 more replies)
  0 siblings, 30 replies; 41+ messages in thread
From: Peter Maydell @ 2020-10-12 15:33 UTC (permalink / raw)
  To: qemu-arm, qemu-devel; +Cc: Richard Henderson

This patchseries implements various minor v8.1M new features,
notably the branch-future and low-overhead-loop extensions.

(None of this will get enabled until we have enough to implement
a CPU model which has v8.1M, which will be the Cortex-M55, but
as usual we can get stuff into the tree gradually.)

Patch 1 is a decodetree fix suggested by Richard that is
necessary to avoid wrong-decode of the changes to t32.decode
by later patches.

thanks
-- PMM

Peter Maydell (10):
  decodetree: Fix codegen for non-overlapping group inside overlapping
    group
  target/arm: Implement v8.1M NOCP handling
  target/arm: Implement v8.1M conditional-select insns
  target/arm: Make the t32 insn[25:23]=111 group non-overlapping
  target/arm: Don't allow BLX imm for M-profile
  target/arm: Implement v8.1M branch-future insns (as NOPs)
  target/arm: Implement v8.1M low-overhead-loop instructions
  target/arm: Fix has_vfp/has_neon ID reg squashing for M-profile
  target/arm: Implement FPSCR.LTPSIZE for M-profile LOB extension
  target/arm: Fix writing to FPSCR.FZ16 on M-profile

 target/arm/cpu.h               |   7 ++
 target/arm/m-nocp.decode       |  10 ++-
 target/arm/t32.decode          |  50 +++++++----
 target/arm/cpu.c               |  34 ++++---
 target/arm/translate.c         | 157 +++++++++++++++++++++++++++++++++
 target/arm/vfp_helper.c        |  30 +++++--
 scripts/decodetree.py          |   2 +-
 target/arm/translate-vfp.c.inc |  17 +++-
 8 files changed, 268 insertions(+), 39 deletions(-)

-- 
2.20.1



^ permalink raw reply	[flat|nested] 41+ messages in thread
* [PATCH] linux-user/arm/signal.c: Drop TARGET_CONFIG_CPU_32
@ 2020-05-18 14:30 Peter Maydell
  2020-05-19 15:02 ` Richard Henderson
  2020-05-21 17:05 ` Peter Maydell
  0 siblings, 2 replies; 41+ messages in thread
From: Peter Maydell @ 2020-05-18 14:30 UTC (permalink / raw)
  To: qemu-arm, qemu-devel; +Cc: Riku Voipio, Laurent Vivier

The Arm signal-handling code has some parts ifdeffed with a
TARGET_CONFIG_CPU_32, which is always defined. This is a leftover
from when this code's structure was based on the Linux kernel
signal handling code, where it was intended to support 26-bit
Arm CPUs. The kernel dropped its CONFIG_CPU_32 in kernel commit
4da8b8208eded0ba21e3 in 2009.

QEMU has never had 26-bit CPU support and is unlikely to ever
add it; we certainly aren't going to support 26-bit Linux
binaries via linux-user mode. The ifdef is just unhelpful
noise, so remove it entirely.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
Based-on: <20200518142801.20503-1-peter.maydell@linaro.org>
("[PATCH v2] target/arm: Allow user-mode code to write CPSR.E via MSR")
to avoid a textual conflict.

 linux-user/arm/signal.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/linux-user/arm/signal.c b/linux-user/arm/signal.c
index 698985a647e..f21d1535e4d 100644
--- a/linux-user/arm/signal.c
+++ b/linux-user/arm/signal.c
@@ -126,8 +126,6 @@ struct rt_sigframe_v2
     abi_ulong retcode[4];
 };
 
-#define TARGET_CONFIG_CPU_32 1
-
 /*
  * For ARM syscalls, we encode the syscall number into the instruction.
  */
@@ -187,9 +185,7 @@ setup_sigcontext(struct target_sigcontext *sc, /*struct _fpstate *fpstate,*/
     __put_user(env->regs[13], &sc->arm_sp);
     __put_user(env->regs[14], &sc->arm_lr);
     __put_user(env->regs[15], &sc->arm_pc);
-#ifdef TARGET_CONFIG_CPU_32
     __put_user(cpsr_read(env), &sc->arm_cpsr);
-#endif
 
     __put_user(/* current->thread.trap_no */ 0, &sc->trap_no);
     __put_user(/* current->thread.error_code */ 0, &sc->error_code);
@@ -549,11 +545,9 @@ restore_sigcontext(CPUARMState *env, struct target_sigcontext *sc)
     __get_user(env->regs[13], &sc->arm_sp);
     __get_user(env->regs[14], &sc->arm_lr);
     __get_user(env->regs[15], &sc->arm_pc);
-#ifdef TARGET_CONFIG_CPU_32
     __get_user(cpsr, &sc->arm_cpsr);
     cpsr_write(env, cpsr, CPSR_USER | CPSR_EXEC, CPSRWriteByInstr);
     arm_rebuild_hflags(env);
-#endif
 
     err |= !valid_user_regs(env);
 
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2020-10-14 14:49 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-12 15:33 [PATCH 00/10] target/arm: Various v8.1M minor features Peter Maydell
2020-10-12 15:33 ` [PATCH] Deprecate TileGX port Peter Maydell
2020-10-12 15:42   ` BALATON Zoltan via
2020-10-12 15:44     ` Peter Maydell
2020-10-12 15:33 ` [PATCH] Deprecate Unicore32 port Peter Maydell
2020-10-12 15:33 ` [PATCH] Deprecate lm32 port Peter Maydell
2020-10-12 15:33 ` [PATCH for-5.1] Makefile: Remove config-devices.mak on "make clean" Peter Maydell
2020-10-12 15:33 ` [PATCH RISU] arm.risu: Add patterns for fp16 insns Peter Maydell
2020-10-12 15:33 ` [PATCH RISU] arm.risu, thumb.risu: Add v8.2 DP and FHM insns Peter Maydell
2020-10-12 15:33 ` [PATCH] configure: Test that gio libs from pkg-config work Peter Maydell
2020-10-12 15:33 ` [PATCH 01/10] decodetree: Fix codegen for non-overlapping group inside overlapping group Peter Maydell
2020-10-12 15:33 ` [PATCH for-5.1] docs/system/arm/virt: Document mte machine option Peter Maydell
2020-10-12 15:45   ` no-reply
2020-10-12 15:33 ` [PATCH for-5.1] hw/arm/armsse: Assert info->num_cpus is in-bounds in armsse_realize() Peter Maydell
2020-10-12 15:33 ` [PATCH] hw/arm/mps2: New board model mps2-386 Peter Maydell
2020-10-12 15:33 ` [PATCH for-5.1] hw/arm/netduino2, netduinoplus2: Set system_clock_scale Peter Maydell
2020-10-14  0:29   ` Alistair Francis
2020-10-14  0:31     ` Alistair Francis
2020-10-14 12:39       ` Peter Maydell
2020-10-14 14:32         ` Alistair Francis
2020-10-12 15:33 ` [PATCH for-5.1] hw/arm/nrf51_soc: " Peter Maydell
2020-10-12 15:33 ` [PATCH] hw/display/bcm2835_fb.c: Initialize all fields of struct Peter Maydell
2020-10-12 15:33 ` [PATCH] hw/input/virtio-input-hid.c: Don't undef CONFIG_CURSES Peter Maydell
2020-10-12 15:33 ` [PATCH] hw/intc/arm_gicv3_cpuif: Don't copy CPU's maintenance interrupt Peter Maydell
2020-10-12 15:33 ` [PATCH] hw/intc/arm_gicv3_cpuif: Make GIC maintenance interrupts work Peter Maydell
2020-10-12 15:33 ` [PATCH] hw/timer/armv7m_systick: assert that board code set system_clock_scale Peter Maydell
2020-10-12 15:33 ` [PATCH for-5.1] hw/timer/imx_epit: Avoid assertion when CR.SWR is written Peter Maydell
2020-10-12 15:33 ` [PATCH] hw/virtio/virtio-iommu-pci.c: Fix typo in error message Peter Maydell
2020-10-12 15:33 ` [RFC PATCH v2] linux-user: Use FD_32BIT_MODE fd flag for 32-bit guests Peter Maydell
2020-10-12 15:33 ` [PATCH] linux-user/arm/signal.c: Drop TARGET_CONFIG_CPU_32 Peter Maydell
2020-10-12 15:33 ` [PATCH] meson.build: Don't look for libudev for static builds Peter Maydell
2020-10-12 15:33 ` [PATCH] msf2-soc, stellaris: Don't wire up SYSRESETREQ Peter Maydell
2020-10-12 15:33 ` [PATCH] net/tap-solaris.c: Include qemu-common.h for TFR macro Peter Maydell
2020-10-12 15:33 ` [PATCH] osdep.h: Add doc comment for qemu_get_thread_id() Peter Maydell
2020-10-12 15:33 ` [PATCH for-5.1] qapi/machine.json: Fix missing newline in doc comment Peter Maydell
2020-10-12 15:33 ` [PATCH v2] target/arm: Allow user-mode code to write CPSR.E via MSR Peter Maydell
2020-10-12 15:33 ` [PATCH] target/arm: Delete unused ARM_FEATURE_CRC Peter Maydell
2020-10-12 15:33 ` [PATCH] target/arm: Delete unused VFP_DREG macros Peter Maydell
  -- strict thread matches above, loose matches on Subject: below --
2020-05-18 14:30 [PATCH] linux-user/arm/signal.c: Drop TARGET_CONFIG_CPU_32 Peter Maydell
2020-05-19 15:02 ` Richard Henderson
2020-05-21 17:05 ` 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).