qemu-patch-raspberry4/target/sparc
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
..
asi.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
cc_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu-param.h tcg: Split out target/arch/cpu-param.h 2019-06-10 07:03:34 -07:00
cpu-qom.h hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
cpu.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
cpu.h target/sparc: sun4u Invert Endian TTE bit 2019-09-03 08:30:39 -07:00
fop_helper.c target/sparc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
gdbstub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
helper.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
helper.h target-sparc: implement UA2005 GL register 2017-01-18 22:03:44 +01:00
int32_helper.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
int64_helper.c sparc: embed sparc_def_t into CPUSPARCState 2017-09-01 11:54:24 -03:00
ldst_helper.c target/sparc: Factor out the body of sparc_cpu_unassigned_access() 2019-09-17 12:01:00 +01:00
machine.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
Makefile.objs Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
mmu_helper.c target/sparc: sun4u Invert Endian TTE bit 2019-09-03 08:30:39 -07:00
monitor.c hmp: Move hmp.h to include/monitor/ 2019-07-02 07:19:45 +02:00
TODO Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
trace-events trace-events: Shorten file names in comments 2019-03-22 16:18:07 +00:00
translate.c tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
vis_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
win_helper.c sparc: embed sparc_def_t into CPUSPARCState 2017-09-01 11:54:24 -03:00