KVM: x86 emulator: introduce DstImmUByte for dst operand decode
Introduce DstImmUByte for dst operand decode, which will be used for out instruction. Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
@@ -54,6 +54,7 @@
|
|||||||
#define DstAcc (4<<1) /* Destination Accumulator */
|
#define DstAcc (4<<1) /* Destination Accumulator */
|
||||||
#define DstDI (5<<1) /* Destination is in ES:(E)DI */
|
#define DstDI (5<<1) /* Destination is in ES:(E)DI */
|
||||||
#define DstMem64 (6<<1) /* 64bit memory operand */
|
#define DstMem64 (6<<1) /* 64bit memory operand */
|
||||||
|
#define DstImmUByte (7<<1) /* 8-bit unsigned immediate operand */
|
||||||
#define DstMask (7<<1)
|
#define DstMask (7<<1)
|
||||||
/* Source operand type. */
|
/* Source operand type. */
|
||||||
#define SrcNone (0<<4) /* No source operand. */
|
#define SrcNone (0<<4) /* No source operand. */
|
||||||
@@ -2693,6 +2694,12 @@ done_prefixes:
|
|||||||
decode_register_operand(&c->dst, c,
|
decode_register_operand(&c->dst, c,
|
||||||
c->twobyte && (c->b == 0xb6 || c->b == 0xb7));
|
c->twobyte && (c->b == 0xb6 || c->b == 0xb7));
|
||||||
break;
|
break;
|
||||||
|
case DstImmUByte:
|
||||||
|
c->dst.type = OP_IMM;
|
||||||
|
c->dst.addr.mem = c->eip;
|
||||||
|
c->dst.bytes = 1;
|
||||||
|
c->dst.val = insn_fetch(u8, 1, c->eip);
|
||||||
|
break;
|
||||||
case DstMem:
|
case DstMem:
|
||||||
case DstMem64:
|
case DstMem64:
|
||||||
c->dst = memop;
|
c->dst = memop;
|
||||||
|
Reference in New Issue
Block a user