]> git.karo-electronics.de Git - karo-tx-linux.git/commit
KVM: PPC: Book3S: Get/set guest FP regs using the GET/SET_ONE_REG interface
authorPaul Mackerras <paulus@samba.org>
Tue, 25 Sep 2012 20:32:30 +0000 (20:32 +0000)
committerAlexander Graf <agraf@suse.de>
Fri, 28 Sep 2012 00:19:11 +0000 (02:19 +0200)
commit510bf186d5fa38d50f606fea95d9a8bea2d15bad
tree1099606d523fed049ec5c80c83f9a50fdeb00c2f
parent8ca568f2bc71ae8a2bf913518fca3592f7813e45
KVM: PPC: Book3S: Get/set guest FP regs using the GET/SET_ONE_REG interface

This enables userspace to get and set all the guest floating-point
state using the KVM_[GS]ET_ONE_REG ioctls.  The floating-point state
includes all of the traditional floating-point registers and the
FPSCR (floating point status/control register), all the VMX/Altivec
vector registers and the VSCR (vector status/control register), and
on POWER7, the vector-scalar registers (note that each FP register
is the high-order half of the corresponding VSR).

Most of these are implemented in common Book 3S code, except for VSX
on POWER7.  Because HV and PR differ in how they store the FP and VSX
registers on POWER7, the code for these cases is not common.  On POWER7,
the FP registers are the upper halves of the VSX registers vsr0 - vsr31.
PR KVM stores vsr0 - vsr31 in two halves, with the upper halves in the
arch.fpr[] array and the lower halves in the arch.vsr[] array, whereas
HV KVM on POWER7 stores the whole VSX register in arch.vsr[].

Signed-off-by: Paul Mackerras <paulus@samba.org>
[agraf: fix whitespace, vsx compilation]
Signed-off-by: Alexander Graf <agraf@suse.de>
Documentation/virtual/kvm/api.txt
arch/powerpc/include/asm/kvm.h
arch/powerpc/include/asm/kvm_ppc.h
arch/powerpc/kvm/book3s.c
arch/powerpc/kvm/book3s_hv.c
arch/powerpc/kvm/book3s_pr.c