From 7023d638de1db6cf3694ac81343101a1bcf6751e Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Mon, 16 Aug 2010 22:13:14 -0700 Subject: ndisasm: fix handing of byte codes 250-253, 324 Fix handling of byte codes 250-253 (sign-extended 32-bit immediate, extended to 64 bits) and 324 (instruction must have osize 64). Signed-off-by: H. Peter Anvin --- disasm.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/disasm.c b/disasm.c index 588c8328..f2ec76bf 100644 --- a/disasm.c +++ b/disasm.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * Copyright 1996-2010 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -674,6 +674,16 @@ static int matches(const struct itemplate *t, uint8_t *data, break; } + case4(0250): + if (s_field_for == op1) { + opx->offset = gets8(data); + data++; + } else { + opx->offset = gets32(data); + data += 4; + } + break; + case4(0260): { int vexm = *r++; @@ -823,7 +833,7 @@ static int matches(const struct itemplate *t, uint8_t *data, break; case 0324: - if (!(ins->rex & (REX_P|REX_W)) || osize != 64) + if (osize != 64) return false; o_used = true; break; -- cgit v1.2.1