On Sat, Jun 14, 2008 at 4:26 PM, Andi Kleen <[EMAIL PROTECTED]> wrote:
> "Mohammed Gamal" <[EMAIL PROTECTED]> writes:
>>       ByteOp | DstReg | SrcMem | Mov | MemAbs, DstReg | SrcMem | Mov | 
>> MemAbs,
>> @@ -1560,6 +1560,9 @@ special_insn:
>>               if (rc != 0)
>>                       goto done;
>>               break;
>> +     case 0x90: /* nop */
>> +             if(! (c->rex_prefix & 1) )
>> +                     break;
>>       case 0x9c: /* pushf */
>>               c->src.val =  (unsigned long) ctxt->eflags;
>>               emulate_push(ctxt);
>
> Is falling through to pushf really correct?  And not sure what the if checks.
>
> iirc it should be just
>
>     case 0x90: /* nop */
>          break;
>
> BTW there are lots more nop encodings.
>
> -Andi
>

Thanks for pointing this out. 0x90 is also the opcode for xchg r8,rAX
instruction. The code should rather fall to the yet-to-be added xchg
instructions. A patch will be underway ;)
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to