qemu-e2k/linux-user
Richard Henderson ee03027a2c target/arm: Take an exception if PC is misaligned
For A64, any input to an indirect branch can cause this.

For A32, many indirect branch paths force the branch to be aligned,
but BXWritePC does not.  This includes the BX instruction but also
other interworking changes to PC.  Prior to v8, this case is UNDEFINED.
With v8, this is CONSTRAINED UNPREDICTABLE and may either raise an
exception or force align the PC.

We choose to raise an exception because we have the infrastructure,
it makes the generated code for gen_bx simpler, and it has the
possibility of catching more guest bugs.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2021-12-15 10:35:26 +00:00
..
aarch64 target/arm: Take an exception if PC is misaligned 2021-12-15 10:35:26 +00:00
alpha target/alpha: Implement alpha_cpu_record_sigbus 2021-11-02 07:00:52 -04:00
arm target/arm: Implement arm_cpu_record_sigbus 2021-11-02 07:00:52 -04:00
cris target/cris: Make cris_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
generic
hexagon target/hexagon: Remove hexagon_cpu_tlb_fill 2021-11-02 07:00:52 -04:00
host linux-user/signal.c: Create a common rewind_if_in_safe_syscall 2021-11-23 01:47:20 +01:00
hppa linux-user/hppa: Remove EXCP_UNALIGN handling 2021-11-02 07:00:52 -04:00
i386 linux-user/x86_64: Raise SIGSEGV if SA_RESTORER not set 2021-10-01 12:03:48 +02:00
m68k target/m68k: Make m68k_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
microblaze target/microblaze: Make mb_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
mips target/mips: Make mips_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
mips64 linux-user/mips: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
nios2 linux-user/nios2: Document non-use of setup_sigtramp 2021-10-01 12:03:48 +02:00
openrisc target/openrisc: Make openrisc_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
ppc linux-user/ppc: Remove POWERPC_EXCP_ALIGN handling 2021-11-02 07:00:52 -04:00
riscv target/riscv: Make riscv_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
s390x target/s390x: Implement s390_cpu_record_sigsegv 2021-11-02 07:00:52 -04:00
sh4 target/sh4: Make sh4_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
sparc target/sparc: Make sparc_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
x86_64 linux-user/i386: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
xtensa target/xtensa: Make xtensa_cpu_tlb_fill sysemu only 2021-11-02 07:00:52 -04:00
cpu_loop-common.h
elfload.c linux-user: fix Coverity CID 1464101 2021-11-22 09:17:08 +01:00
errnos.c.inc
exit.c
fd-trans.c
fd-trans.h
flat.h
flatload.c
ioctls.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linux_loop.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linuxload.c
loader.h
main.c Pull request linux-user 20210916 2021-09-16 21:09:18 +01:00
meson.build meson: *-user: only descend into *-user when configured 2021-10-18 12:51:39 -06:00
mmap.c
qemu.h
safe-syscall.h linux-user/signal.c: Create a common rewind_if_in_safe_syscall 2021-11-23 01:47:20 +01:00
safe-syscall.S
semihost.c
signal-common.h linux-user: Add infrastructure for a signal trampoline page 2021-10-01 12:03:47 +02:00
signal.c linux-user/signal.c: Create a common rewind_if_in_safe_syscall 2021-11-23 01:47:20 +01:00
socket.h
strace.c
strace.h
strace.list
syscall_defs.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
syscall_types.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
syscall.c linux-user: Rewrite do_getdents, do_getdents64 2021-11-21 16:19:17 +01:00
target_flat.h
trace-events
trace.h
uaccess.c
uname.c
uname.h
user-internals.h
user-mmap.h
vm86.c