OSDN Git Service

ARM/ARM64: Extend support of instruction combining.
authorIlmir Usmanov <i.usmanov@samsung.com>
Fri, 11 Dec 2015 08:39:44 +0000 (11:39 +0300)
committerArtem Udovichenko <artem.u@samsung.com>
Thu, 21 Jan 2016 08:07:38 +0000 (11:07 +0300)
commitdebeb98aaa8950caf1a19df490f2ac9bf563075b
treeb2a7a7cc6fb2f56d4bcc6cecaa80035668f38dc4
parent6aadaef35ea52506db61e463910c2520b702ca5e
ARM/ARM64: Extend support of instruction combining.

Combine multiply instructions in the following way:
ARM64:
MUL/NEG -> MNEG
ARM32 (32-bit integers only):
MUL/ADD -> MLA
MUL/SUB -> MLS

Change-Id: If20f2d8fb060145ab6fbceeb5a8f1a3d02e0ecdb
17 files changed:
compiler/Android.mk
compiler/optimizing/code_generator_arm.cc
compiler/optimizing/code_generator_arm.h
compiler/optimizing/code_generator_arm64.cc
compiler/optimizing/code_generator_arm64.h
compiler/optimizing/graph_visualizer.cc
compiler/optimizing/instruction_simplifier_arm.cc [new file with mode: 0644]
compiler/optimizing/instruction_simplifier_arm.h [new file with mode: 0644]
compiler/optimizing/instruction_simplifier_arm64.cc
compiler/optimizing/instruction_simplifier_arm64.h
compiler/optimizing/instruction_simplifier_shared.cc [new file with mode: 0644]
compiler/optimizing/instruction_simplifier_shared.h [new file with mode: 0644]
compiler/optimizing/nodes.h
compiler/optimizing/nodes_arm64.h
compiler/optimizing/nodes_shared.h [new file with mode: 0644]
compiler/optimizing/optimizing_compiler.cc
test/550-checker-multiply-accumulate/src/Main.java