diff options
Diffstat (limited to 'lib/Target/ARM/ARMInstrFormats.td')
-rw-r--r-- | lib/Target/ARM/ARMInstrFormats.td | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/Target/ARM/ARMInstrFormats.td b/lib/Target/ARM/ARMInstrFormats.td index f9969b9..c5bf607 100644 --- a/lib/Target/ARM/ARMInstrFormats.td +++ b/lib/Target/ARM/ARMInstrFormats.td @@ -293,21 +293,27 @@ class InstThumb<AddrMode am, int sz, IndexMode im, // Pseudo-instructions for alternate assembly syntax (never used by codegen). // These are aliases that require C++ handling to convert to the target // instruction, while InstAliases can be handled directly by tblgen. -class AsmPseudoInst<dag iops> +class AsmPseudoInst<string asm, dag iops> : InstTemplate<AddrModeNone, 0, IndexModeNone, Pseudo, GenericDomain, "", NoItinerary> { - let OutOperandList = (ops); + let OutOperandList = (outs); let InOperandList = iops; let Pattern = []; let isCodeGenOnly = 0; // So we get asm matcher for it. + let AsmString = asm; let isPseudo = 1; } -class ARMAsmPseudo<dag iops> : AsmPseudoInst<iops>, Requires<[IsARM]>; -class tAsmPseudo<dag iops> : AsmPseudoInst<iops>, Requires<[IsThumb]>; -class t2AsmPseudo<dag iops> : AsmPseudoInst<iops>, Requires<[IsThumb2]>; -class VFP2AsmPseudo<dag iops> : AsmPseudoInst<iops>, Requires<[HasVFP2]>; -class NEONAsmPseudo<dag iops> : AsmPseudoInst<iops>, Requires<[HasNEON]>; +class ARMAsmPseudo<string asm, dag iops> : AsmPseudoInst<asm, iops>, + Requires<[IsARM]>; +class tAsmPseudo<string asm, dag iops> : AsmPseudoInst<asm, iops>, + Requires<[IsThumb]>; +class t2AsmPseudo<string asm, dag iops> : AsmPseudoInst<asm, iops>, + Requires<[IsThumb2]>; +class VFP2AsmPseudo<string asm, dag iops> : AsmPseudoInst<asm, iops>, + Requires<[HasVFP2]>; +class NEONAsmPseudo<string asm, dag iops> : AsmPseudoInst<asm, iops>, + Requires<[HasNEON]>; // Pseudo instructions for the code generator. class PseudoInst<dag oops, dag iops, InstrItinClass itin, list<dag> pattern> |