mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-08 18:42:53 +00:00
d69614a295
Today the instruction emulator can get called via 2 separate code paths. It can either be called by MMIO emulation detection code or by privileged instruction traps. This is bad, as both code paths prepare the environment differently. For MMIO emulation we already know the virtual address we faulted on, so instructions there don't have to actually fetch that information. Split out the two separate use cases into separate files. Signed-off-by: Alexander Graf <agraf@suse.de>
130 lines
2.8 KiB
Makefile
130 lines
2.8 KiB
Makefile
#
|
|
# Makefile for Kernel-based Virtual Machine module
|
|
#
|
|
|
|
subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
|
|
|
|
ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm
|
|
KVM := ../../../virt/kvm
|
|
|
|
common-objs-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o \
|
|
$(KVM)/eventfd.o
|
|
|
|
CFLAGS_e500_mmu.o := -I.
|
|
CFLAGS_e500_mmu_host.o := -I.
|
|
CFLAGS_emulate.o := -I.
|
|
CFLAGS_emulate_loadstore.o := -I.
|
|
|
|
common-objs-y += powerpc.o emulate.o emulate_loadstore.o
|
|
obj-$(CONFIG_KVM_EXIT_TIMING) += timing.o
|
|
obj-$(CONFIG_KVM_BOOK3S_HANDLER) += book3s_exports.o
|
|
|
|
AFLAGS_booke_interrupts.o := -I$(obj)
|
|
|
|
kvm-e500-objs := \
|
|
$(common-objs-y) \
|
|
booke.o \
|
|
booke_emulate.o \
|
|
booke_interrupts.o \
|
|
e500.o \
|
|
e500_mmu.o \
|
|
e500_mmu_host.o \
|
|
e500_emulate.o
|
|
kvm-objs-$(CONFIG_KVM_E500V2) := $(kvm-e500-objs)
|
|
|
|
kvm-e500mc-objs := \
|
|
$(common-objs-y) \
|
|
booke.o \
|
|
booke_emulate.o \
|
|
bookehv_interrupts.o \
|
|
e500mc.o \
|
|
e500_mmu.o \
|
|
e500_mmu_host.o \
|
|
e500_emulate.o
|
|
kvm-objs-$(CONFIG_KVM_E500MC) := $(kvm-e500mc-objs)
|
|
|
|
kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) := \
|
|
book3s_64_vio_hv.o
|
|
|
|
kvm-pr-y := \
|
|
fpu.o \
|
|
book3s_paired_singles.o \
|
|
book3s_pr.o \
|
|
book3s_pr_papr.o \
|
|
book3s_emulate.o \
|
|
book3s_interrupts.o \
|
|
book3s_mmu_hpte.o \
|
|
book3s_64_mmu_host.o \
|
|
book3s_64_mmu.o \
|
|
book3s_32_mmu.o
|
|
|
|
ifdef CONFIG_KVM_BOOK3S_PR_POSSIBLE
|
|
kvm-book3s_64-module-objs := \
|
|
$(KVM)/coalesced_mmio.o
|
|
|
|
kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \
|
|
book3s_rmhandlers.o
|
|
endif
|
|
|
|
kvm-hv-y += \
|
|
book3s_hv.o \
|
|
book3s_hv_interrupts.o \
|
|
book3s_64_mmu_hv.o
|
|
|
|
kvm-book3s_64-builtin-xics-objs-$(CONFIG_KVM_XICS) := \
|
|
book3s_hv_rm_xics.o
|
|
|
|
ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
|
|
kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \
|
|
book3s_hv_rmhandlers.o \
|
|
book3s_hv_rm_mmu.o \
|
|
book3s_hv_ras.o \
|
|
book3s_hv_builtin.o \
|
|
book3s_hv_cma.o \
|
|
$(kvm-book3s_64-builtin-xics-objs-y)
|
|
endif
|
|
|
|
kvm-book3s_64-objs-$(CONFIG_KVM_XICS) += \
|
|
book3s_xics.o
|
|
|
|
kvm-book3s_64-module-objs += \
|
|
$(KVM)/kvm_main.o \
|
|
$(KVM)/eventfd.o \
|
|
powerpc.o \
|
|
emulate.o \
|
|
emulate_loadstore.o \
|
|
book3s.o \
|
|
book3s_64_vio.o \
|
|
book3s_rtas.o \
|
|
$(kvm-book3s_64-objs-y)
|
|
|
|
kvm-objs-$(CONFIG_KVM_BOOK3S_64) := $(kvm-book3s_64-module-objs)
|
|
|
|
kvm-book3s_32-objs := \
|
|
$(common-objs-y) \
|
|
fpu.o \
|
|
book3s_paired_singles.o \
|
|
book3s.o \
|
|
book3s_pr.o \
|
|
book3s_emulate.o \
|
|
book3s_interrupts.o \
|
|
book3s_mmu_hpte.o \
|
|
book3s_32_mmu_host.o \
|
|
book3s_32_mmu.o
|
|
kvm-objs-$(CONFIG_KVM_BOOK3S_32) := $(kvm-book3s_32-objs)
|
|
|
|
kvm-objs-$(CONFIG_KVM_MPIC) += mpic.o
|
|
kvm-objs-$(CONFIG_HAVE_KVM_IRQ_ROUTING) += $(KVM)/irqchip.o
|
|
|
|
kvm-objs := $(kvm-objs-m) $(kvm-objs-y)
|
|
|
|
obj-$(CONFIG_KVM_E500V2) += kvm.o
|
|
obj-$(CONFIG_KVM_E500MC) += kvm.o
|
|
obj-$(CONFIG_KVM_BOOK3S_64) += kvm.o
|
|
obj-$(CONFIG_KVM_BOOK3S_32) += kvm.o
|
|
|
|
obj-$(CONFIG_KVM_BOOK3S_64_PR) += kvm-pr.o
|
|
obj-$(CONFIG_KVM_BOOK3S_64_HV) += kvm-hv.o
|
|
|
|
obj-y += $(kvm-book3s_64-builtin-objs-y)
|