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