AArch64: support 'c' and 'n' inline asm modifiers.
authorTim Northover <tnorthover@apple.com>
Tue, 27 May 2014 07:37:21 +0000 (07:37 +0000)
committerTim Northover <tnorthover@apple.com>
Tue, 27 May 2014 07:37:21 +0000 (07:37 +0000)
These are tested by test/CodeGen/Generic, so we should probably know
how to deal with them. Fortunately generic code does it if asked.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209646 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64AsmPrinter.cpp

index 8553a591fee1ea24d4cf8f5017b6b14ffb8c5152..c3ee9bbb81790b1424bfd5611bb227ea77d85964 100644 (file)
@@ -266,6 +266,11 @@ bool AArch64AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
                                         unsigned AsmVariant,
                                         const char *ExtraCode, raw_ostream &O) {
   const MachineOperand &MO = MI->getOperand(OpNum);
+
+  // First try the generic code, which knows about modifiers like 'c' and 'n'.
+  if (!AsmPrinter::PrintAsmOperand(MI, OpNum, AsmVariant, ExtraCode, O))
+    return false;
+
   // Does this asm operand have a single letter operand modifier?
   if (ExtraCode && ExtraCode[0]) {
     if (ExtraCode[1] != 0)