diff options
author | Avi Kivity <avi@redhat.com> | 2010-08-18 12:25:28 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-10-24 04:51:15 -0400 |
commit | 7db41eb76244ae623de842e818e459755968a33b (patch) | |
tree | 9661ee9702be3746bb52cbc9ca9d6e5bb4c8fc99 /arch | |
parent | 39f21ee546cf7d563d813c5fb4473431c1d8fce7 (diff) |
KVM: x86 emulator: add Src2Imm decoding
Needed for 3-operand IMUL.
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kvm/emulate.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 95543a6beb53..f456d7e11b3e 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c | |||
@@ -95,6 +95,7 @@ | |||
95 | #define Src2CL (1<<29) | 95 | #define Src2CL (1<<29) |
96 | #define Src2ImmByte (2<<29) | 96 | #define Src2ImmByte (2<<29) |
97 | #define Src2One (3<<29) | 97 | #define Src2One (3<<29) |
98 | #define Src2Imm (4<<29) | ||
98 | #define Src2Mask (7<<29) | 99 | #define Src2Mask (7<<29) |
99 | 100 | ||
100 | #define X2(x...) x, x | 101 | #define X2(x...) x, x |
@@ -2844,6 +2845,9 @@ done_prefixes: | |||
2844 | c->src2.bytes = 1; | 2845 | c->src2.bytes = 1; |
2845 | c->src2.val = 1; | 2846 | c->src2.val = 1; |
2846 | break; | 2847 | break; |
2848 | case Src2Imm: | ||
2849 | rc = decode_imm(ctxt, &c->src2, imm_size(c), true); | ||
2850 | break; | ||
2847 | } | 2851 | } |
2848 | 2852 | ||
2849 | if (rc != X86EMUL_CONTINUE) | 2853 | if (rc != X86EMUL_CONTINUE) |