|  | //===- MCAsmMacro.h - Assembly Macros ---------------------------*- C++ -*-===// | 
|  | // | 
|  | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
|  | // See https://llvm.org/LICENSE.txt for license information. | 
|  | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #include "llvm/MC/MCAsmMacro.h" | 
|  | #include "llvm/Support/raw_ostream.h" | 
|  |  | 
|  | using namespace llvm; | 
|  |  | 
|  | #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) | 
|  | void MCAsmMacroParameter::dump(raw_ostream &OS) const { | 
|  | OS << "\"" << Name << "\""; | 
|  | if (Required) | 
|  | OS << ":req"; | 
|  | if (Vararg) | 
|  | OS << ":vararg"; | 
|  | if (!Value.empty()) { | 
|  | OS << " = "; | 
|  | bool first = true; | 
|  | for (const AsmToken &T : Value) { | 
|  | if (!first) | 
|  | OS << ", "; | 
|  | first = false; | 
|  | OS << T.getString(); | 
|  | } | 
|  | } | 
|  | OS << "\n"; | 
|  | } | 
|  |  | 
|  | void MCAsmMacro::dump(raw_ostream &OS) const { | 
|  | OS << "Macro " << Name << ":\n"; | 
|  | OS << "  Parameters:\n"; | 
|  | for (const MCAsmMacroParameter &P : Parameters) { | 
|  | OS << "    "; | 
|  | P.dump(); | 
|  | } | 
|  | if (!Locals.empty()) { | 
|  | OS << "  Locals:\n"; | 
|  | for (StringRef L : Locals) | 
|  | OS << "    " << L << '\n'; | 
|  | } | 
|  | OS << "  (BEGIN BODY)" << Body << "(END BODY)\n"; | 
|  | } | 
|  | #endif |