|
@@ -99,11 +99,13 @@ static inline void vcpu_set_thumb(struct kvm_vcpu *vcpu)
|
|
*vcpu_cpsr(vcpu) |= COMPAT_PSR_T_BIT;
|
|
*vcpu_cpsr(vcpu) |= COMPAT_PSR_T_BIT;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * vcpu_reg should always be passed a register number coming from a
|
|
|
|
+ * read of ESR_EL2. Otherwise, it may give the wrong result on AArch32
|
|
|
|
+ * with banked registers.
|
|
|
|
+ */
|
|
static inline unsigned long *vcpu_reg(const struct kvm_vcpu *vcpu, u8 reg_num)
|
|
static inline unsigned long *vcpu_reg(const struct kvm_vcpu *vcpu, u8 reg_num)
|
|
{
|
|
{
|
|
- if (vcpu_mode_is_32bit(vcpu))
|
|
|
|
- return vcpu_reg32(vcpu, reg_num);
|
|
|
|
-
|
|
|
|
return (unsigned long *)&vcpu_gp_regs(vcpu)->regs.regs[reg_num];
|
|
return (unsigned long *)&vcpu_gp_regs(vcpu)->regs.regs[reg_num];
|
|
}
|
|
}
|
|
|
|
|