Re: [PATCH] x86 emulator: Add opcodes 0xb9-0xbf (mov r,imm)

Mohammed Gamal
2008-08-06T15:01:45Z

On Thu, Jul 31, 2008 at 4:31 PM, Mohammed Gamal <m.gamal005@gmail.com> wrote:
> The emulator only supported opcode 0xb8 for mov r,imm. However 0xb9-0xbf
> are also mov r,imm. This patch adds support for these instructions.
>
> Signed-off-by: Mohammed Gamal <m.gamal005@gmail.com>
>
> ---
> arch/x86/kvm/x86_emulate.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c
> index 005f1db..4c7ca7f 100644
> --- a/arch/x86/kvm/x86_emulate.c
> +++ b/arch/x86/kvm/x86_emulate.c
> @@ -156,7 +156,9 @@ static u16 opcode_table[256] = {
> ByteOp | ImplicitOps | String, ImplicitOps | String,
> /* 0xB0 - 0xBF */
> 0, 0, 0, 0, 0, 0, 0, 0,
> - DstReg | SrcImm | Mov, 0, 0, 0, 0, 0, 0, 0,
> + DstReg | SrcImm | Mov, DstReg | SrcImm | Mov, DstReg | SrcImm | Mov,
> + DstReg | SrcImm | Mov, DstReg | SrcImm | Mov, DstReg | SrcImm | Mov,
> + DstReg | SrcImm | Mov, DstReg | SrcImm | Mov,
> /* 0xC0 - 0xC7 */
> ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImmByte | ModRM,
> 0, ImplicitOps | Stack, 0, 0,
> @@ -1660,7 +1662,7 @@ special_insn:
> case 0xae ... 0xaf: /* scas */
> DPRINTF("Urk! I don't handle SCAS.\n");
> goto cannot_emulate;
> - case 0xb8: /* mov r, imm */
> + case 0xb8 ... 0xbf: /* mov r, imm */
> goto mov;
> case 0xc0 ... 0xc1:
> emulate_grp2(ctxt);
> --
> 1.5.4.3
>
>
>

Sorry for the typo, it adds instruction opcodes (0xb8-0xbf)