diff options
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 1841488..76ecb5a 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -933,7 +933,9 @@ enum PREFIX_0FBD, PREFIX_0FC2, PREFIX_0FC3, - PREFIX_0FC7_REG_6, + PREFIX_MOD_0_0FC7_REG_6, + PREFIX_MOD_3_0FC7_REG_6, + PREFIX_MOD_3_0FC7_REG_7, PREFIX_0FD0, PREFIX_0FD6, PREFIX_0FE6, @@ -4047,13 +4049,27 @@ static const struct dis386 prefix_table[][4] = { { "movntiS", { Ma, Gv }, PREFIX_OPCODE }, }, - /* PREFIX_0FC7_REG_6 */ + /* PREFIX_MOD_0_0FC7_REG_6 */ { { "vmptrld",{ Mq }, 0 }, { "vmxon", { Mq }, 0 }, { "vmclear",{ Mq }, 0 }, }, + /* PREFIX_MOD_3_0FC7_REG_6 */ + { + { "rdrand", { Ev }, 0 }, + { Bad_Opcode }, + { "rdrand", { Ev }, 0 } + }, + + /* PREFIX_MOD_3_0FC7_REG_7 */ + { + { "rdseed", { Ev }, 0 }, + { Bad_Opcode }, + { "rdseed", { Ev }, 0 }, + }, + /* PREFIX_0FD0 */ { { Bad_Opcode }, @@ -11808,13 +11824,13 @@ static const struct dis386 mod_table[][2] = { }, { /* MOD_0FC7_REG_6 */ - { PREFIX_TABLE (PREFIX_0FC7_REG_6) }, - { "rdrand", { Ev }, 0 }, + { PREFIX_TABLE (PREFIX_MOD_0_0FC7_REG_6) }, + { PREFIX_TABLE (PREFIX_MOD_3_0FC7_REG_6) } }, { /* MOD_0FC7_REG_7 */ { "vmptrst", { Mq }, 0 }, - { "rdseed", { Ev }, 0 }, + { PREFIX_TABLE (PREFIX_MOD_3_0FC7_REG_7) } }, { /* MOD_0FD7 */ |