Re: [PATCH non-atomic-injection] x86 emulator: Add 2 operand imul instruction (opcode 0x0f 0xaf)

Mohammed Gamal
2010-08-18T19:25:24Z

On Wed, Aug 18, 2010 at 9:04 PM, Mohammed Gamal <m.gamal005@gmail.com> wrote:
> On Wed, Aug 18, 2010 at 8:56 PM, Avi Kivity <avi@redhat.com> wrote:
>>  On 08/18/2010 08:40 PM, Mohammed Gamal wrote:
>>>
>>> Signed-off-by: Mohammed Gamal<m.gamal005@gmail.com>
>>> ---
>>>  arch/x86/kvm/emulate.c |    5 ++++-
>>>  1 files changed, 4 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
>>> index cb3282c..3311c68 100644
>>> --- a/arch/x86/kvm/emulate.c
>>> +++ b/arch/x86/kvm/emulate.c
>>> @@ -2474,7 +2474,7 @@ static struct opcode twobyte_table[256] = {
>>>        N, D(DstMem | SrcReg | ModRM | BitOp | Lock),
>>>        D(DstMem | SrcReg | Src2ImmByte | ModRM),
>>>        D(DstMem | SrcReg | Src2CL | ModRM),
>>> -       D(ModRM), N,
>>> +       D(ModRM), D(DstReg | SrcMem | ModRM),
>>>        /* 0xB0 - 0xB7 */
>>>        D(ByteOp | DstMem | SrcReg | ModRM | Lock), D(DstMem | SrcReg |
>>> ModRM | Lock),
>>>        N, D(DstMem | SrcReg | ModRM | BitOp | Lock),
>>> @@ -3567,6 +3567,9 @@ twobyte_insn:
>>>                break;
>>>        case 0xae:              /* clflush */
>>>                break;
>>> +       case 0xaf:
>>> +               emulate_2op_SrcV_nobyte("imul", c->src, c->dst,
>>> ctxt->eflags);
>>> +               break;
>>>        case 0xb0 ... 0xb1:     /* cmpxchg */
>>>                /*
>>>                 * Save real source value, then compare EAX against
>>
>> I already added this, please look at the non-atomic-injection branch.
>>
> Looks like you beat me to it. I'll pull again.
Pulled again and no signs of such patch. imul is not implemented
there. Did you push your changes?