qemu/target
Peter Maydell c9d793f446 target/sparc: Factor out the body of sparc_cpu_unassigned_access()
Currently the SPARC target uses the old-style do_unassigned_access
hook.  We want to switch it over to do_transaction_failed, but to do
this we must first remove all the direct calls in ldst_helper.c to
cpu_unassigned_access().  Factor out the body of the hook function's
code into a new sparc_raise_mmu_fault() and call it from the hook and
from the various places that used to call cpu_unassigned_access().

In passing, this fixes a bug where the code that raised the
MMU exception was directly calling GETPC() from a function that
was several levels deep in the callstack from the original
helper function: the new sparc_raise_mmu_fault() instead takes
the return address as an argument.

Other than the use of retaddr rather than GETPC() and a comment
format fixup, the body of the new function has no changes from
that of the old hook function.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-id: 20190801183012.17564-2-peter.maydell@linaro.org
2019-09-17 12:01:00 +01:00
..
alpha tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
arm target/arm: Inline gen_bx_im into callers 2019-09-05 13:23:04 +01:00
cris Monitor patches for 2019-08-21 2019-08-22 10:31:21 +01:00
hppa target/hppa: prevent trashing of temporary in do_depw_sar() 2019-09-14 15:39:24 -04:00
i386 hw/i386/pc: Extract e820 memory layout code 2019-09-16 17:13:07 +02:00
lm32 Monitor patches for 2019-08-21 2019-08-22 10:31:21 +01:00
m68k tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
microblaze tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
mips target/mips: gdbstub: Revert commit 8e0b373 2019-09-12 18:25:34 +02:00
moxie hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
nios2 Monitor patches for 2019-08-21 2019-08-22 10:31:21 +01:00
openrisc target/openrisc: Update cpu "any" to v1.3 2019-09-04 13:01:56 -07:00
ppc Allow page table bit to swap endianness. 2019-09-04 16:29:18 +01:00
riscv tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
s390x s390x/tcg: Pass a size to probe_write() in do_csst() 2019-09-03 08:34:18 -07:00
sh4 Monitor patches for 2019-08-21 2019-08-22 10:31:21 +01:00
sparc target/sparc: Factor out the body of sparc_cpu_unassigned_access() 2019-09-17 12:01:00 +01:00
tilegx tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
tricore tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
unicore32 Monitor patches for 2019-08-21 2019-08-22 10:31:21 +01:00
xtensa target/xtensa: linux-user: add call0 ABI support 2019-09-11 08:47:06 +02:00