diff options
author | Richard Henderson <rth@twiddle.net> | 2016-11-16 12:22:15 +0100 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2017-01-10 08:06:11 -0800 |
commit | f7749a3317fe02be9c57f4413d185c2ff643d634 (patch) | |
tree | d54091cae92109b00313aa0c91d67c86011241af /disas/i386.c | |
parent | 0e28d0063bbd9e59a981ea2d20f82f30c5d956a8 (diff) | |
download | qemu-f7749a3317fe02be9c57f4413d185c2ff643d634.zip qemu-f7749a3317fe02be9c57f4413d185c2ff643d634.tar.gz qemu-f7749a3317fe02be9c57f4413d185c2ff643d634.tar.bz2 |
disas/i386.c: Handle tzcnt
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'disas/i386.c')
-rw-r--r-- | disas/i386.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/disas/i386.c b/disas/i386.c index 57145d0..07f871f 100644 --- a/disas/i386.c +++ b/disas/i386.c @@ -682,6 +682,7 @@ fetch_data(struct disassemble_info *info, bfd_byte *addr) #define PREGRP104 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 104 } } #define PREGRP105 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 105 } } #define PREGRP106 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 106 } } +#define PREGRP107 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 107 } } #define X86_64_0 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 0 } } #define X86_64_1 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 1 } } @@ -1247,7 +1248,7 @@ static const struct dis386 dis386_twobyte[] = { { "ud2b", { XX } }, { GRP8 }, { "btcS", { Ev, Gv } }, - { "bsfS", { Gv, Ev } }, + { PREGRP107 }, { PREGRP36 }, { "movs{bR|x|bR|x}", { Gv, Eb } }, { "movs{wR|x|wR|x}", { Gv, Ew } }, /* yes, there really is movsww ! */ @@ -1431,7 +1432,7 @@ static const unsigned char twobyte_uses_REPZ_prefix[256] = { /* 80 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 8f */ /* 90 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 9f */ /* a0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* af */ - /* b0 */ 0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0, /* bf */ + /* b0 */ 0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0, /* bf */ /* c0 */ 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, /* cf */ /* d0 */ 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, /* df */ /* e0 */ 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, /* ef */ @@ -2800,6 +2801,13 @@ static const struct dis386 prefix_user_table[][4] = { { "shrxS", { Gv, Ev, Bv } }, }, + /* PREGRP107 */ + { + { "bsfS", { Gv, Ev } }, + { "tzcntS", { Gv, Ev } }, + { "bsfS", { Gv, Ev } }, + { "(bad)", { XX } }, + }, }; static const struct dis386 x86_64_table[][2] = { |