summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/binutils-2.17
diff options
context:
space:
mode:
authorChristian Weisgerber <naddy@cvs.openbsd.org>2012-09-07 22:33:02 +0000
committerChristian Weisgerber <naddy@cvs.openbsd.org>2012-09-07 22:33:02 +0000
commit3d31d03122482af0e2e8615bd4c3f27b73b7048d (patch)
tree4670d99b1212c7c296d418a0311cd33dbe92b3ff /gnu/usr.bin/binutils-2.17
parent0cc08fbe6c2d8094923a6d3146fc0aaf679f877d (diff)
disassemble the rdrand instruction on i386/amd64
Diffstat (limited to 'gnu/usr.bin/binutils-2.17')
-rw-r--r--gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c b/gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c
index d8fcf6d36c1..f0db2b45b7f 100644
--- a/gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c
+++ b/gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c
@@ -5259,14 +5259,22 @@ VMX_Fixup (int extrachar ATTRIBUTE_UNUSED, int sizeflag)
static void
OP_VMX (int bytemode, int sizeflag)
{
- used_prefixes |= (prefixes & (PREFIX_DATA | PREFIX_REPZ));
- if (prefixes & PREFIX_DATA)
- strcpy (obuf, "vmclear");
- else if (prefixes & PREFIX_REPZ)
- strcpy (obuf, "vmxon");
+ if (mod == 3)
+ {
+ strcpy (obuf, "rdrand");
+ OP_E (v_mode, sizeflag);
+ }
else
- strcpy (obuf, "vmptrld");
- OP_E (bytemode, sizeflag);
+ {
+ used_prefixes |= (prefixes & (PREFIX_DATA | PREFIX_REPZ));
+ if (prefixes & PREFIX_DATA)
+ strcpy (obuf, "vmclear");
+ else if (prefixes & PREFIX_REPZ)
+ strcpy (obuf, "vmxon");
+ else
+ strcpy (obuf, "vmptrld");
+ OP_E (bytemode, sizeflag);
+ }
}
static void