Make labels work in asm blocks; allow labels as
parameters.  Rename ValueRefList to ParamList
in AsmParser, since its only use is for parameters.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43734 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp
index e7c7448..3500d12 100644
--- a/lib/CodeGen/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter.cpp
@@ -1188,13 +1188,18 @@
           unsigned OpFlags = MI->getOperand(OpNo).getImmedValue();
           ++OpNo;  // Skip over the ID number.
 
-          AsmPrinter *AP = const_cast<AsmPrinter*>(this);
-          if ((OpFlags & 7) == 4 /*ADDR MODE*/) {
-            Error = AP->PrintAsmMemoryOperand(MI, OpNo, AsmPrinterVariant,
-                                              Modifier[0] ? Modifier : 0);
-          } else {
-            Error = AP->PrintAsmOperand(MI, OpNo, AsmPrinterVariant,
-                                        Modifier[0] ? Modifier : 0);
+          if (Modifier[0]=='l')  // labels are target independent
+            printBasicBlockLabel(MI->getOperand(OpNo).getMachineBasicBlock(), 
+                                 false, false);
+          else {
+            AsmPrinter *AP = const_cast<AsmPrinter*>(this);
+            if ((OpFlags & 7) == 4 /*ADDR MODE*/) {
+              Error = AP->PrintAsmMemoryOperand(MI, OpNo, AsmPrinterVariant,
+                                                Modifier[0] ? Modifier : 0);
+            } else {
+              Error = AP->PrintAsmOperand(MI, OpNo, AsmPrinterVariant,
+                                          Modifier[0] ? Modifier : 0);
+            }
           }
         }
         if (Error) {