KVM: PPC: Add fields to shadow vcpu
authorAlexander Graf <agraf@suse.de>
Thu, 15 Apr 2010 22:11:39 +0000 (00:11 +0200)
committerAvi Kivity <avi@redhat.com>
Mon, 17 May 2010 09:18:24 +0000 (12:18 +0300)
After a lot of thought on how to make the entry / exit code easier,
I figured it'd be clever to put even more register state into the
shadow vcpu. That way we have more registers available to use, making
the code easier to read.

So this patch adds a few new fields to that shadow vcpu. Later on we
will remove the originals from the vcpu and paca.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/powerpc/include/asm/kvm_book3s_asm.h

index 183461b484076e25fd5ca714cce4426b82b0e1e6..e915e7dfa62205a07a96c7e2fc5c0aa923ae4563 100644 (file)
@@ -63,12 +63,33 @@ struct kvmppc_book3s_shadow_vcpu {
        ulong gpr[14];
        u32 cr;
        u32 xer;
+
+       u32 fault_dsisr;
+       u32 last_inst;
+       ulong ctr;
+       ulong lr;
+       ulong pc;
+       ulong shadow_srr1;
+       ulong fault_dar;
+
        ulong host_r1;
        ulong host_r2;
        ulong handler;
        ulong scratch0;
        ulong scratch1;
        ulong vmhandler;
+       u8 in_guest;
+
+#ifdef CONFIG_PPC_BOOK3S_32
+       u32     sr[16];                 /* Guest SRs */
+#endif
+#ifdef CONFIG_PPC_BOOK3S_64
+       u8 slb_max;                     /* highest used guest slb entry */
+       struct  {
+               u64     esid;
+               u64     vsid;
+       } slb[64];                      /* guest SLB */
+#endif
 };
 
 #endif /*__ASSEMBLY__ */