qemu/target/ppc
David Gibson ad99d04c76 target/ppc: Allow cpu compatiblity checks based on type, not instance
ppc_check_compat() is used in a number of places to check if a cpu object
supports a certain compatiblity mode, subject to various constraints.

It takes a PowerPCCPU *, however it really only depends on the cpu's class.
We have upcoming cases where it would be useful to make compatibility
checks before we fully instantiate the cpu objects.

ppc_type_check_compat() will now make an equivalent check, but based on a
CPU's QOM typename instead of an instantiated CPU object.

We make use of the new interface in several places in spapr, where we're
essentially making a global check, rather than one specific to a particular
cpu.  This avoids some ugly uses of first_cpu to grab a "representative"
instance.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
2018-06-21 21:22:53 +10:00
..
translate target/ppc: convert to DisasContextBase 2018-02-16 12:14:39 +11:00
arch_dump.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
compat.c target/ppc: Allow cpu compatiblity checks based on type, not instance 2018-06-21 21:22:53 +10:00
cpu-models.c target/ppc: Add POWER9 DD2.0 model information 2017-10-17 10:34:00 +11:00
cpu-models.h target/ppc: Add POWER9 DD2.0 model information 2017-10-17 10:34:00 +11:00
cpu-qom.h target/ppc: Get rid of POWERPC_MMU_VER() macros 2018-04-27 18:05:22 +10:00
cpu.c target/ppc: support for 32-bit carry and overflow 2017-03-01 11:23:39 +11:00
cpu.h target/ppc: Allow cpu compatiblity checks based on type, not instance 2018-06-21 21:22:53 +10:00
dfp_helper.c
excp_helper.c target/ppc: add support for hypervisor doorbells on book3s CPUs 2018-01-20 17:15:05 +11:00
fpu_helper.c fpu/softfloat: Specialize on snan_bit_is_one 2018-05-17 15:27:15 -07:00
gdbstub.c ppc: Fix size of ppc64 xer register 2018-04-27 18:05:22 +10:00
helper_regs.h target/ppc: Include "exec/exec-all.h" which provides tlb_flush() 2018-05-31 19:12:13 +02:00
helper.h target/ppc: Allow privileged access to SPR_PCR 2018-06-12 09:33:52 +10:00
int_helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
internal.h target-ppc: implement load atomic instruction 2017-02-22 11:28:27 +11:00
kvm_ppc.h spapr: Remove support for explicitly allocated RMAs 2018-05-04 11:15:18 +10:00
kvm-stub.c openpic: move KVM-specific declarations into separate openpic_kvm.h file 2018-03-06 13:16:29 +11:00
kvm.c target/ppc, spapr: Move VPA information to machine_data 2018-06-16 16:32:50 +10:00
machine.c ppc: Rename 2.13 machines to 3.0 2018-05-29 11:28:46 +01:00
Makefile.objs build: remove CONFIG_LIBDECNUMBER 2017-10-16 18:03:52 +02:00
mem_helper.c ppc: use DIV_ROUND_UP 2017-08-31 12:29:07 +02:00
mfrom_table_gen.c
mfrom_table.inc.c rename included C files to foo.inc.c, remove osdep.h 2018-05-11 14:33:40 +02:00
misc_helper.c target/ppc: Allow privileged access to SPR_PCR 2018-06-12 09:33:52 +10:00
mmu_helper.c target/ppc: add basic support for PTCR on POWER9 2018-05-04 09:56:27 +10:00
mmu-book3s-v3.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
mmu-book3s-v3.h target/ppc: add basic support for PTCR on POWER9 2018-05-04 09:56:27 +10:00
mmu-hash32.c target/ppc: Eliminate htab_base and htab_mask variables 2017-03-01 11:23:39 +11:00
mmu-hash32.h target/ppc: Manage external HPT via virtual hypervisor 2017-03-01 11:23:39 +11:00
mmu-hash64.c Make address_space_map() take a MemTxAttrs argument 2018-05-31 16:32:35 +01:00
mmu-hash64.h target/ppc: Add ppc_store_lpcr() helper 2018-05-04 11:15:19 +10:00
mmu-radix64.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
mmu-radix64.h target/ppc: Add debug function for radix mmu translation 2017-07-11 11:04:02 +10:00
monitor.c Use qemu_tolower() and qemu_toupper(), not tolower() and toupper() 2017-07-21 10:32:41 +01:00
timebase_helper.c
trace-events docs: fix broken paths to docs/devel/tracing.txt 2017-07-31 13:12:53 +03:00
translate_init.inc.c target/ppc, spapr: Move VPA information to machine_data 2018-06-16 16:32:50 +10:00
translate.c target/ppc: extend eieio for POWER9 2018-06-12 10:44:36 +10:00
user_only_helper.c accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00