diff options
author | Ian Rogers <irogers@google.com> | 2014-07-09 07:44:21 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-07-08 22:56:31 +0000 |
commit | 2cfe30bd592cb6ae63bb4c28ccaf4b069d6ab565 (patch) | |
tree | 3eb01d4c9f9a36985f70450822c0bb3f4065db02 /disassembler/disassembler_x86.cc | |
parent | 7b68fb3b9b421d4b20c1993704986d637f1cab91 (diff) | |
parent | 60bfe7b3e8f00f0a8ef3f5d8716adfdf86b71f43 (diff) | |
download | art-2cfe30bd592cb6ae63bb4c28ccaf4b069d6ab565.tar.gz art-2cfe30bd592cb6ae63bb4c28ccaf4b069d6ab565.tar.bz2 art-2cfe30bd592cb6ae63bb4c28ccaf4b069d6ab565.zip |
Merge "X86 Backend support for vectorized float and byte 16x16 operations"
Diffstat (limited to 'disassembler/disassembler_x86.cc')
-rw-r--r-- | disassembler/disassembler_x86.cc | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/disassembler/disassembler_x86.cc b/disassembler/disassembler_x86.cc index 61d5c81837..a6f9a8a22b 100644 --- a/disassembler/disassembler_x86.cc +++ b/disassembler/disassembler_x86.cc @@ -427,6 +427,20 @@ DISASSEMBLER_ENTRY(cmp, instr++; if (prefix[2] == 0x66) { switch (*instr) { + case 0x01: + opcode << "phaddw"; + prefix[2] = 0; + has_modrm = true; + load = true; + src_reg_file = dst_reg_file = SSE; + break; + case 0x02: + opcode << "phaddd"; + prefix[2] = 0; + has_modrm = true; + load = true; + src_reg_file = dst_reg_file = SSE; + break; case 0x40: opcode << "pmulld"; prefix[2] = 0; @@ -450,7 +464,7 @@ DISASSEMBLER_ENTRY(cmp, prefix[2] = 0; has_modrm = true; store = true; - dst_reg_file = SSE; + src_reg_file = SSE; immediate_bytes = 1; break; case 0x16: @@ -458,7 +472,7 @@ DISASSEMBLER_ENTRY(cmp, prefix[2] = 0; has_modrm = true; store = true; - dst_reg_file = SSE; + src_reg_file = SSE; immediate_bytes = 1; break; default: @@ -743,7 +757,7 @@ DISASSEMBLER_ENTRY(cmp, prefix[2] = 0; has_modrm = true; store = true; - src_reg_file = dst_reg_file = SSE; + src_reg_file = SSE; immediate_bytes = 1; } else { opcode << StringPrintf("unknown opcode '0F %02X'", *instr); |