| //===- 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 |