summaryrefslogtreecommitdiff
path: root/disasm.c
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-05-22 11:24:35 -0700
committerH. Peter Anvin <hpa@zytor.com>2008-05-22 11:24:35 -0700
commitbd420c70959b22a8cfb44501208aa771b540678f (patch)
treeab0be6110b72c6e953e97ccffafcc9378d203ff8 /disasm.c
parent7c719499319f613de02f2439dc64435bd546ec7f (diff)
downloadnasm-bd420c70959b22a8cfb44501208aa771b540678f.tar.gz
nasm-bd420c70959b22a8cfb44501208aa771b540678f.tar.bz2
nasm-bd420c70959b22a8cfb44501208aa771b540678f.zip
Add tokens vex.ww and vex.wx; vex.wx is the default
Add vex.ww (for VEX.W follows REX.W) and vex.wx (for VEX.W is a don't care); vex.wx is the default since that seems to match existing usage better.
Diffstat (limited to 'disasm.c')
-rw-r--r--disasm.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/disasm.c b/disasm.c
index 33cdfd4..77b87b0 100644
--- a/disasm.c
+++ b/disasm.c
@@ -709,9 +709,13 @@ static int matches(const struct itemplate *t, uint8_t *data,
case 010:
if (!(prefix->rex & REX_W))
return false;
+ ins->rex &= ~REX_W;
+ break;
+ case 020: /* VEX.W is a don't care */
+ ins->rex &= ~REX_W;
+ break;
+ case 030:
break;
- default:
- break; /* XXX: Need to do anything special here? */
}
if ((vexwlp & 007) != prefix->vex_lp)