diff options
| author | 2013-12-03 15:25:24 +0000 | |
|---|---|---|
| committer | 2013-12-03 18:32:29 +0000 | |
| commit | 70b797d998f2a28e39f7d6ffc8a07c9cbc47da14 (patch) | |
| tree | e5607068be133899ff9111e33327e0c2aa525cd1 /disassembler/disassembler_x86.cc | |
| parent | 057c74a3a2d50d1247d4e6472763ca6f59060762 (diff) | |
Unsafe.compareAndSwapLong() intrinsic for x86.
Change-Id: Idbc5371a62dfdd84485a657d4548990519200205
Diffstat (limited to 'disassembler/disassembler_x86.cc')
| -rw-r--r-- | disassembler/disassembler_x86.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/disassembler/disassembler_x86.cc b/disassembler/disassembler_x86.cc index 9ed65cd80a..8781c7a274 100644 --- a/disassembler/disassembler_x86.cc +++ b/disassembler/disassembler_x86.cc @@ -520,6 +520,13 @@ DISASSEMBLER_ENTRY(cmp, case 0xB7: opcode << "movzxw"; has_modrm = true; load = true; break; case 0xBE: opcode << "movsxb"; has_modrm = true; load = true; break; case 0xBF: opcode << "movsxw"; has_modrm = true; load = true; break; + case 0xC7: + static const char* x0FxC7_opcodes[] = { "unknown-0f-c7", "cmpxchg8b", "unknown-0f-c7", "unknown-0f-c7", "unknown-0f-c7", "unknown-0f-c7", "unknown-0f-c7", "unknown-0f-c7" }; + modrm_opcodes = x0FxC7_opcodes; + has_modrm = true; + reg_is_opcode = true; + store = true; + break; case 0xC8: case 0xC9: case 0xCA: case 0xCB: case 0xCC: case 0xCD: case 0xCE: case 0xCF: opcode << "bswap"; reg_in_opcode = true; |