summaryrefslogtreecommitdiffstats
path: root/disassembler
diff options
context:
space:
mode:
authorNingsheng Jian <ningsheng.jian@arm.com>2014-11-25 16:48:07 +0800
committerNingsheng Jian <ningsheng.jian@arm.com>2014-12-11 09:08:22 +0800
commita262f7707330dccfb50af6345813083182b61043 (patch)
treea8ab4e42654f47c9deea517f6c4e2020c62d5724 /disassembler
parent3e465bec65067ebfdf662469cf85dd82cd077bdd (diff)
downloadart-a262f7707330dccfb50af6345813083182b61043.zip
art-a262f7707330dccfb50af6345813083182b61043.tar.gz
art-a262f7707330dccfb50af6345813083182b61043.tar.bz2
ARM: Combine multiply accumulate operations.
Try to combine integer multiply and add(sub) into a MAC operation. For AArch64, also try to combine long type multiply and add(sub). Change-Id: Ic85812e941eb5a66abc355cab81a4dd16de1b66e
Diffstat (limited to 'disassembler')
-rw-r--r--disassembler/disassembler_arm.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/disassembler/disassembler_arm.cc b/disassembler/disassembler_arm.cc
index 9243b1a..52fd736 100644
--- a/disassembler/disassembler_arm.cc
+++ b/disassembler/disassembler_arm.cc
@@ -1498,7 +1498,7 @@ size_t DisassemblerArm::DumpThumb32(std::ostream& os, const uint8_t* instr_ptr)
} else if ((op2 >> 3) == 6) { // 0110xxx
// Multiply, multiply accumulate, and absolute difference
op1 = (instr >> 20) & 0x7;
- op2 = (instr >> 4) & 0x2;
+ op2 = (instr >> 4) & 0x1;
ArmRegister Ra(instr, 12);
ArmRegister Rn(instr, 16);
ArmRegister Rm(instr, 0);