[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 14/40] bsd-user/arm/target_arch_cpu.h: Use force_sig_fault
From: |
Richard Henderson |
Subject: |
Re: [PATCH v2 14/40] bsd-user/arm/target_arch_cpu.h: Use force_sig_fault for EXCP_UDEF |
Date: |
Thu, 27 Jan 2022 17:27:42 +1100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
On 1/25/22 12:29, Warner Losh wrote:
+ case EXCP_NOCP:
+ case EXCP_INVSTATE:
+ /*
+ * See arm/arm/undefined.c undefinedinstruction();
+ *
+ * A number of details aren't emulated (they likely don't matter):
+ * o Misaligned PC generates ILL_ILLADR
As I mentioned, misaligned pc will not come here for qemu.
In the Arm ARM, see aarch32/functions/registers/BXWritePC:
// For branches to an unaligned PC counter in A32 state, the processor takes
the branch
// and does one of:
// * Forces the address to be aligned
// * Leaves the PC unaligned, meaning the target generates a PC Alignment fault.
The hardware will either refuse to allow bit 1 to be set when bit 0 is clear, OR it will
generate a PREFETCH_DATA_ABORT for Alignment.
QEMU will do the latter.
Otherwise,
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
- [PATCH v2 05/40] bsd-user: Remove vestiges of signal queueing code, (continued)
- [PATCH v2 05/40] bsd-user: Remove vestiges of signal queueing code, Warner Losh, 2022/01/24
- [PATCH v2 06/40] bsd-user: Bring in docs from linux-user for signal_pending, Warner Losh, 2022/01/24
- [PATCH v2 07/40] bsd-user/arm/target_arch_cpu.h: Move EXCP_ATOMIC to match linux-user, Warner Losh, 2022/01/24
- [PATCH v2 08/40] bsd-user/signal.c: implement force_sig_fault, Warner Losh, 2022/01/24
- [PATCH v2 09/40] bsd-user/signal-common.h: Move signal functions prototypes to here, Warner Losh, 2022/01/24
- [PATCH v2 10/40] bsd-user/signal.c: Implement cpu_loop_exit_sigsegv, Warner Losh, 2022/01/24
- [PATCH v2 14/40] bsd-user/arm/target_arch_cpu.h: Use force_sig_fault for EXCP_UDEF, Warner Losh, 2022/01/24
- Re: [PATCH v2 14/40] bsd-user/arm/target_arch_cpu.h: Use force_sig_fault for EXCP_UDEF,
Richard Henderson <=
- [PATCH v2 16/40] bsd-user/signal.c: implement abstract target / host signal translation, Warner Losh, 2022/01/24
- [PATCH v2 18/40] bsd-user/signal.c: Add si_type argument to queue_signal, Warner Losh, 2022/01/24
- [PATCH v2 13/40] bsd-user/arm/target_arch_cpu.h: Correct code pointer, Warner Losh, 2022/01/24
- [PATCH v2 15/40] bsd-user/arm/target_arch_cpu.h: Implement data faults, Warner Losh, 2022/01/24
- [PATCH v2 11/40] bsd-user/signal.c: implement cpu_loop_exit_sigbus, Warner Losh, 2022/01/24
- [PATCH v2 12/40] bsd-user/arm/arget_arch_cpu.h: Move EXCP_DEBUG and EXCP_BKPT together, Warner Losh, 2022/01/24
- [PATCH v2 22/40] bsd-user: Add host signals to the build, Warner Losh, 2022/01/24