aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/emulate.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kvm/emulate.c')
-rw-r--r--arch/powerpc/kvm/emulate.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/emulate.c b/arch/powerpc/kvm/emulate.c
index cb72a65f4ecc..11789dd33a13 100644
--- a/arch/powerpc/kvm/emulate.c
+++ b/arch/powerpc/kvm/emulate.c
@@ -62,6 +62,8 @@
62#define OP_STBU 39 62#define OP_STBU 39
63#define OP_LHZ 40 63#define OP_LHZ 40
64#define OP_LHZU 41 64#define OP_LHZU 41
65#define OP_LHA 42
66#define OP_LHAU 43
65#define OP_STH 44 67#define OP_STH 44
66#define OP_STHU 45 68#define OP_STHU 45
67 69
@@ -450,6 +452,18 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
450 kvmppc_set_gpr(vcpu, ra, vcpu->arch.paddr_accessed); 452 kvmppc_set_gpr(vcpu, ra, vcpu->arch.paddr_accessed);
451 break; 453 break;
452 454
455 case OP_LHA:
456 rt = get_rt(inst);
457 emulated = kvmppc_handle_loads(run, vcpu, rt, 2, 1);
458 break;
459
460 case OP_LHAU:
461 ra = get_ra(inst);
462 rt = get_rt(inst);
463 emulated = kvmppc_handle_loads(run, vcpu, rt, 2, 1);
464 kvmppc_set_gpr(vcpu, ra, vcpu->arch.paddr_accessed);
465 break;
466
453 case OP_STH: 467 case OP_STH:
454 rs = get_rs(inst); 468 rs = get_rs(inst);
455 emulated = kvmppc_handle_store(run, vcpu, 469 emulated = kvmppc_handle_store(run, vcpu,