qemu/linux-user/aarch64
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
..
cpu_loop.c target/arm: Take an exception if PC is misaligned 2021-12-15 10:35:26 +00:00
signal.c linux-user/aarch64: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
sockbits.h linux-user: move socket.h generic definitions to generic/sockbits.h 2018-05-25 10:10:55 +02:00
syscall_nr.h linux-user: update syscall_nr.h to Linux v5.13 2021-07-13 13:59:59 +02:00
target_cpu.h linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
target_elf.h linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
target_errno_defs.h linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
target_fcntl.h linux-user: move arm/aarch64/m68k fcntl definitions to [arm|aarch64|m68k]/target_fcntl.h 2018-06-04 01:30:44 +02:00
target_signal.h linux-user/aarch64: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
target_structs.h linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
target_syscall.h linux-user/aarch64: Implement PR_MTE_TCF and PR_MTE_TAG 2021-02-16 13:08:25 +00:00
termbits.h linux-user: Add generic 'termbits.h' for some archs 2020-08-27 12:29:50 +02:00