unicorn/qemu/target/sparc
Peter Maydell 0d6cada970
target/sparc: Correctly handle bus errors in page table walks
Currently we use the ldl_phys() function to read page table entries.
With the unassigned_access hook in place, if these hit an unassigned
area of memory then the hook will cause us to wrongly generate
an exception with a fault address matching the address of the
page table entry.

Change to using address_space_ldl() so we can detect and correctly
handle bus errors and give them their correct behaviour of
causing a translation error with a suitable fault status register.

Note that this won't actually take effect until we switch the
over to using the do_translation_failed hook.

Backports commit 3c818dfcc271f5ba298b06f33466ab30f9a28349 from qemu
2019-11-28 02:56:25 -05:00
..
asi.h Clean up ill-advised or unusual header guards 2019-05-14 08:02:53 -04:00
cc_helper.c target/sparc/cc_helper: Perform a comparison pass against qemu 2018-03-12 12:36:51 -04:00
cpu-param.h tcg: Split out target/arch/cpu-param.h 2019-06-10 19:35:46 -04:00
cpu-qom.h sparc: convert cpu models to SPARC cpu subclasses 2018-03-07 21:30:22 -05:00
cpu.c cpu: Introduce cpu_set_cpustate_pointers 2019-06-12 12:27:16 -04:00
cpu.h configure: Define target access alignment in configure 2019-11-18 21:41:35 -05:00
fop_helper.c target/sparc: Use env_cpu, env_archcpu 2019-06-12 12:13:03 -04:00
helper.c target/sparc: Use env_cpu, env_archcpu 2019-06-12 12:13:03 -04:00
helper.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
int32_helper.c sparc: embed sparc_def_t into CPUSPARCState 2018-03-07 21:35:23 -05:00
int64_helper.c sparc: embed sparc_def_t into CPUSPARCState 2018-03-07 21:35:23 -05:00
ldst_helper.c target/sparc: Check for transaction failures in MXCC stream ASI accesses 2019-11-28 02:56:17 -05:00
Makefile.objs Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
mmu_helper.c target/sparc: Correctly handle bus errors in page table walks 2019-11-28 02:56:25 -05:00
TODO Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
translate.c target/sparc: check CF_PARALLEL instead of parallel_cpus 2019-05-06 00:43:21 -04:00
unicorn.c Use DEFINE_MACHINE() to register all machines 2018-03-11 15:12:46 -04:00
unicorn.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
unicorn64.c Revert use of DEFINE_MACHINE() for registrations of multiple machines 2018-03-11 15:17:17 -04:00
vis_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
win_helper.c target/sparc/win_helper: Perform comparison pass against qemu 2018-03-12 12:46:59 -04:00