Skip to content

Commit

Permalink
mips/kvm: Fix ABI for use of 64-bit registers.
Browse files Browse the repository at this point in the history
All registers are 64-bits wide, 32-bit guests use the least
significant portion of the register storage fields.

Signed-off-by: David Daney <david.daney@cavium.com>
Acked-by: Sanjay Lal <sanjayl@kymasys.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
daviddaney authored and Gleb Natapov committed Jun 3, 2013
1 parent 1f3dc6d commit 688cded
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions arch/mips/include/uapi/asm/kvm.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,18 @@
#define N_MIPS_COPROC_REGS 32
#define N_MIPS_COPROC_SEL 8

/* for KVM_GET_REGS and KVM_SET_REGS */
/*
* for KVM_GET_REGS and KVM_SET_REGS
*
* If Config[AT] is zero (32-bit CPU), the register contents are
* stored in the lower 32-bits of the struct kvm_regs fields and sign
* extended to 64-bits.
*/
struct kvm_regs {
__u32 gprs[32];
__u32 hi;
__u32 lo;
__u32 pc;
__u64 gprs[32];
__u64 hi;
__u64 lo;
__u64 pc;

__u32 cp0reg[N_MIPS_COPROC_REGS][N_MIPS_COPROC_SEL];
};
Expand Down

0 comments on commit 688cded

Please sign in to comment.