qemu/target-ppc
David Gibson b632a148b6 target-ppc: Use QOM method dispatch for MMU fault handling
After previous cleanups, the many scattered checks of env->mmu_model in
the ppc MMU implementation have, at least for "classic" hash MMUs been
reduced (almost) to a single switch at the top of
cpu_ppc_handle_mmu_fault().

An explicit switch is still a pretty ugly way of handling this though.  Now
that Andreas Färber's CPU QOM cleanups for ppc have gone in, it's quite
straightforward to instead make the handle_mmu_fault function a QOM method
on the CPU object.

This patch implements such a scheme, initializing the method pointer at
the same time as the mmu_model variable.  We need to keep the latter around
for now, because of the MMU types (BookE, 4xx, et al) which haven't been
converted to the new scheme yet, and also for a few other uses.  It would
be good to clean those up eventually.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
2013-03-22 15:28:53 +01:00
..
cpu-models.c target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
cpu-models.h target-ppc: Move CPU aliases out of translate_init.c 2013-03-08 21:04:53 +01:00
cpu-qom.h target-ppc: Use QOM method dispatch for MMU fault handling 2013-03-22 15:28:53 +01:00
cpu.h target-ppc: Move ppc tlb_fill implementation into mmu_helper.c 2013-03-22 15:28:53 +01:00
excp_helper.c cpu: Replace do_interrupt() by CPUClass::do_interrupt method 2013-03-12 10:35:55 +01:00
fpu_helper.c PPC/GDB: handle read and write of fpscr 2013-03-22 15:28:46 +01:00
helper_regs.h cpu: Move halted and interrupt_request fields to CPUState 2013-03-12 10:35:55 +01:00
helper.h target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
int_helper.c target-ppc: Split out SO, OV, CA fields from XER 2013-02-23 17:25:30 +00:00
kvm_ppc.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
kvm_ppc.h PPC: KVM: Add support for EPR with KVM 2013-01-18 19:06:57 +01:00
kvm.c mmu-hash*: Add header file for definitions 2013-03-22 15:28:48 +01:00
machine.c target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
Makefile.objs target-ppc: Split user only code out of mmu_helper.c 2013-03-22 15:28:53 +01:00
mem_helper.c target-ppc: Move ppc tlb_fill implementation into mmu_helper.c 2013-03-22 15:28:53 +01:00
mfrom_table_gen.c fix spelling in target sub directory 2011-12-02 10:50:57 +00:00
mfrom_table.c find -type f | xargs sed -i 's/[\t ]$//g' # on most files 2007-09-16 21:08:06 +00:00
misc_helper.c target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
mmu_helper.c target-ppc: Use QOM method dispatch for MMU fault handling 2013-03-22 15:28:53 +01:00
mmu-hash32.c mmu-hash*: Merge translate and fault handling functions 2013-03-22 15:28:53 +01:00
mmu-hash32.h mmu-hash32: Clean up BAT matching logic 2013-03-22 15:28:51 +01:00
mmu-hash64.c mmu-hash64: Implement Virtual Page Class Key Protection 2013-03-22 15:28:53 +01:00
mmu-hash64.h mmu-hash64: Implement Virtual Page Class Key Protection 2013-03-22 15:28:53 +01:00
STATUS Fix typos in comments (chek -> check) 2011-05-22 22:31:45 +01:00
timebase_helper.c ppc: Avoid AREG0 for timebase helpers 2012-06-24 01:04:43 +02:00
translate_init.c target-ppc: Use QOM method dispatch for MMU fault handling 2013-03-22 15:28:53 +01:00
translate.c target-ppc: Remove vestigial PowerPC 620 support 2013-03-22 15:28:46 +01:00
user_only_helper.c target-ppc: Split user only code out of mmu_helper.c 2013-03-22 15:28:53 +01:00