summaryrefslogtreecommitdiffstats
path: root/disassembler
diff options
context:
space:
mode:
authornikolay serdjuk <nikolay.y.serdjuk@intel.com>2015-04-27 17:52:57 +0600
committerVladimir Marko <vmarko@google.com>2015-04-29 13:13:50 +0100
commitdd17bc3806e800d3b82d5cb27e85ccc1c4e2ee1d (patch)
treeba05dcae43e620e16e02a4cf4063592fbfb36fb9 /disassembler
parenta81a746cad998e4cbfb7b18193879d8d1e1f8772 (diff)
downloadart-dd17bc3806e800d3b82d5cb27e85ccc1c4e2ee1d.zip
art-dd17bc3806e800d3b82d5cb27e85ccc1c4e2ee1d.tar.gz
art-dd17bc3806e800d3b82d5cb27e85ccc1c4e2ee1d.tar.bz2
Fix for incorrect encode and parse of PEXTRW instruction
The instruction PEXTRW encoded by sequence 66 0F 3A 15 was incorrectly encoded in compiler table and incorrectly parsed by disassembler. Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com> (cherry picked from commit e0705f51fdc71e9670a29f8c3a47168f50724b35) Change-Id: I7f051e23789aa3745d6eb854c97f80c475748b74
Diffstat (limited to 'disassembler')
-rw-r--r--disassembler/disassembler_x86.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/disassembler/disassembler_x86.cc b/disassembler/disassembler_x86.cc
index ba0c0bd..2ead4a2 100644
--- a/disassembler/disassembler_x86.cc
+++ b/disassembler/disassembler_x86.cc
@@ -587,6 +587,14 @@ DISASSEMBLER_ENTRY(cmp,
src_reg_file = SSE;
immediate_bytes = 1;
break;
+ case 0x15:
+ opcode1 = "pextrw";
+ prefix[2] = 0;
+ has_modrm = true;
+ store = true;
+ src_reg_file = SSE;
+ immediate_bytes = 1;
+ break;
case 0x16:
opcode1 = "pextrd";
prefix[2] = 0;