diff options
| author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2016-06-03 13:19:43 +0000 |
|---|---|---|
| committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2016-06-03 13:19:43 +0000 |
| commit | 9da258d8e5ba3e9b4f4e173865ce191d8634dca8 (patch) | |
| tree | d2664e3c02b1649bd3972aff6679b69e4c9c239f /llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h | |
| parent | 3c2f78576912244ec7917bd70c2fe241a2e798b2 (diff) | |
| download | bcm5719-llvm-9da258d8e5ba3e9b4f4e173865ce191d8634dca8.tar.gz bcm5719-llvm-9da258d8e5ba3e9b4f4e173865ce191d8634dca8.zip | |
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
llvm-svn: 271667
Diffstat (limited to 'llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h')
| -rw-r--r-- | llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h index f550b68cae3..9d80eed84dc 100644 --- a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h +++ b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h @@ -30,6 +30,12 @@ public: // Autogenerated by tblgen. void printInstruction(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O); + virtual bool printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, + raw_ostream &O); + virtual void printCustomAliasOperand(const MCInst *MI, unsigned OpIdx, + unsigned PrintMethodIdx, + const MCSubtargetInfo &STI, + raw_ostream &O); static const char *getRegisterName(unsigned RegNo); void printOperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, |

