OSDN Git Service

ARM target does not use printAliasInstr machinery which
authorSjoerd Meijer <sjoerd.meijer@arm.com>
Fri, 3 Jun 2016 13:19:43 +0000 (13:19 +0000)
committerSjoerd Meijer <sjoerd.meijer@arm.com>
Fri, 3 Jun 2016 13:19:43 +0000 (13:19 +0000)
commitd8f5dc0ff2c394c47147d89e36a8b00cd27df529
treedfffdb193b7ec67b75b26766865d7c6448378867
parentd02bd6484d433e349e6074402a804b9952a39b24
ARM target does not use printAliasInstr machinery which
forces having special checks in ArmInstPrinter::printInstruction. This
patch addresses this issue.

Not all special checks could be removed: either they involve elaborated
conditions under which the alias is emitted (e.g. ldm/stm on sp may be
pop/push but only if the number of registers is >= 2) or the number
of registers is multivalued (like happens again with ldm/stm) and they
do not match the InstAlias pattern which assumes single-valued operands
in the pattern.

Patch by: Roger Ferrer Ibanez

Differential Revision: http://reviews.llvm.org/D20237

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271667 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstrFormats.td
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb.td
lib/Target/ARM/ARMInstrThumb2.td
lib/Target/ARM/ARMInstrVFP.td
lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
lib/Target/ARM/InstPrinter/ARMInstPrinter.h