Commit c8ca97ca authored by Bharat Bhushan's avatar Bharat Bhushan Committed by Alexander Graf

KVM: PPC: BOOKE : Emulate rfdi instruction

This patch adds "rfdi" instruction emulation which is required for
guest debug hander on BOOKE-HV
Signed-off-by: default avatarBharat Bhushan <Bharat.Bhushan@freescale.com>
Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
parent 9fee7563
...@@ -139,6 +139,7 @@ enum kvm_exit_types { ...@@ -139,6 +139,7 @@ enum kvm_exit_types {
EMULATED_TLBWE_EXITS, EMULATED_TLBWE_EXITS,
EMULATED_RFI_EXITS, EMULATED_RFI_EXITS,
EMULATED_RFCI_EXITS, EMULATED_RFCI_EXITS,
EMULATED_RFDI_EXITS,
DEC_EXITS, DEC_EXITS,
EXT_INTR_EXITS, EXT_INTR_EXITS,
HALT_WAKEUP, HALT_WAKEUP,
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#define OP_19_XOP_RFI 50 #define OP_19_XOP_RFI 50
#define OP_19_XOP_RFCI 51 #define OP_19_XOP_RFCI 51
#define OP_19_XOP_RFDI 39
#define OP_31_XOP_MFMSR 83 #define OP_31_XOP_MFMSR 83
#define OP_31_XOP_WRTEE 131 #define OP_31_XOP_WRTEE 131
...@@ -37,6 +38,12 @@ static void kvmppc_emul_rfi(struct kvm_vcpu *vcpu) ...@@ -37,6 +38,12 @@ static void kvmppc_emul_rfi(struct kvm_vcpu *vcpu)
kvmppc_set_msr(vcpu, vcpu->arch.shared->srr1); kvmppc_set_msr(vcpu, vcpu->arch.shared->srr1);
} }
static void kvmppc_emul_rfdi(struct kvm_vcpu *vcpu)
{
vcpu->arch.pc = vcpu->arch.dsrr0;
kvmppc_set_msr(vcpu, vcpu->arch.dsrr1);
}
static void kvmppc_emul_rfci(struct kvm_vcpu *vcpu) static void kvmppc_emul_rfci(struct kvm_vcpu *vcpu)
{ {
vcpu->arch.pc = vcpu->arch.csrr0; vcpu->arch.pc = vcpu->arch.csrr0;
...@@ -65,6 +72,12 @@ int kvmppc_booke_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu, ...@@ -65,6 +72,12 @@ int kvmppc_booke_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
*advance = 0; *advance = 0;
break; break;
case OP_19_XOP_RFDI:
kvmppc_emul_rfdi(vcpu);
kvmppc_set_exit_type(vcpu, EMULATED_RFDI_EXITS);
*advance = 0;
break;
default: default:
emulated = EMULATE_FAIL; emulated = EMULATE_FAIL;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment