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