1
linux/arch/powerpc/kvm
Alexander Graf 831317b605 KVM: PPC: Implement Paired Single emulation
The one big thing about the Gekko is paired singles.

Paired singles are an extension to the instruction set, that adds 32 single
precision floating point registers (qprs), some SPRs to modify the behavior
of paired singled operations and instructions to deal with qprs to the
instruction set.

Unfortunately, it also changes semantics of existing operations that affect
single values in FPRs. In most cases they get mirrored to the coresponding
QPR.

Thanks to that we need to emulate all FPU operations and all the new paired
single operations too.

In order to achieve that, we use the just introduced FPU call helpers to
call the real FPU whenever the guest wants to modify an FPR. Additionally
we also fix up the QPR values along the way.

That way we can execute paired single FPU operations without implementing a
soft fpu.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
2010-04-25 12:35:27 +03:00
..
44x_emulate.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
44x_tlb.c KVM: PPC: Add helpers for CR, XER 2010-03-01 12:35:47 -03:00
44x_tlb.h
44x.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
book3s_32_mmu.c KVM: PPC: Fix typo in book3s_32 debug code 2010-04-25 12:35:03 +03:00
book3s_64_emulate.c KVM: PPC: Implement Paired Single emulation 2010-04-25 12:35:27 +03:00
book3s_64_exports.c KVM: PPC: Add helper functions to call real mode loaders 2010-03-01 12:35:52 -03:00
book3s_64_interrupts.S KVM: PPC: Keep SRR1 flags around in shadow_msr 2010-03-01 12:35:56 -03:00
book3s_64_mmu_host.c Add book3s_64 Host MMU handling 2009-11-05 16:49:54 +11:00
book3s_64_mmu.c KVM: PPC: Make large pages work 2010-03-01 12:35:50 -03:00
book3s_64_rmhandlers.S KVM: PPC: Add helper functions to call real mode loaders 2010-03-01 12:35:52 -03:00
book3s_64_slb.S KVM: PPC: Call SLB patching code in interrupt safe manner 2010-03-01 12:35:49 -03:00
book3s_paired_singles.c KVM: PPC: Implement Paired Single emulation 2010-04-25 12:35:27 +03:00
book3s.c KVM: PPC: Enable program interrupt to do MMIO 2010-04-25 12:35:24 +03:00
booke_emulate.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
booke_interrupts.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
booke.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
booke.h
e500_emulate.c KVM: PPC E500: fix tlbcfg emulation 2010-03-01 12:36:06 -03:00
e500_tlb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
e500_tlb.h KVM: ppc: e500: Move to Book-3e MMU definitions 2009-09-10 08:32:47 +03:00
e500.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
emulate.c KVM: PPC: Add AGAIN type for emulation return 2010-04-25 12:34:47 +03:00
fpu.S KVM: PPC: Add helpers to call FPU instructions 2010-04-25 12:35:15 +03:00
Kconfig Merge branch 'kvm-updates/2.6.34' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2010-03-05 13:12:34 -08:00
Makefile KVM: PPC: Implement Paired Single emulation 2010-04-25 12:35:27 +03:00
powerpc.c KVM: PPC: Teach MMIO Signedness 2010-04-25 12:34:44 +03:00
timing.c powerpc/kvm: Fix non-modular build 2009-11-05 17:17:12 +11:00
timing.h KVM: powerpc: Fix BUILD_BUG_ON condition 2009-12-03 09:32:22 +02:00
trace.h Fix trace.h 2009-11-05 16:50:27 +11:00