1a930111cSOliver Stannard //===- MCAsmMacro.h - Assembly Macros ---------------------------*- C++ -*-===// 2a930111cSOliver Stannard // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6a930111cSOliver Stannard // 7a930111cSOliver Stannard //===----------------------------------------------------------------------===// 8a930111cSOliver Stannard 9a930111cSOliver Stannard #include "llvm/MC/MCAsmMacro.h" 10a930111cSOliver Stannard #include "llvm/Support/raw_ostream.h" 11a930111cSOliver Stannard 12a930111cSOliver Stannard using namespace llvm; 13a930111cSOliver Stannard 14ce21c3e1SFangrui Song #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) dump(raw_ostream & OS) const15a930111cSOliver Stannardvoid MCAsmMacroParameter::dump(raw_ostream &OS) const { 16a930111cSOliver Stannard OS << "\"" << Name << "\""; 17a930111cSOliver Stannard if (Required) 18a930111cSOliver Stannard OS << ":req"; 19a930111cSOliver Stannard if (Vararg) 20a930111cSOliver Stannard OS << ":vararg"; 21a930111cSOliver Stannard if (!Value.empty()) { 22a930111cSOliver Stannard OS << " = "; 23a930111cSOliver Stannard bool first = true; 24a930111cSOliver Stannard for (const AsmToken &T : Value) { 25a930111cSOliver Stannard if (!first) 26a930111cSOliver Stannard OS << ", "; 27a930111cSOliver Stannard first = false; 2844681074SOliver Stannard OS << T.getString(); 29a930111cSOliver Stannard } 30a930111cSOliver Stannard } 31a930111cSOliver Stannard OS << "\n"; 32a930111cSOliver Stannard } 33a930111cSOliver Stannard dump(raw_ostream & OS) const34a930111cSOliver Stannardvoid MCAsmMacro::dump(raw_ostream &OS) const { 35a930111cSOliver Stannard OS << "Macro " << Name << ":\n"; 36a930111cSOliver Stannard OS << " Parameters:\n"; 37a930111cSOliver Stannard for (const MCAsmMacroParameter &P : Parameters) { 38a930111cSOliver Stannard OS << " "; 39a930111cSOliver Stannard P.dump(); 40a930111cSOliver Stannard } 41*bf027da0SEric Astor if (!Locals.empty()) { 42*bf027da0SEric Astor OS << " Locals:\n"; 43*bf027da0SEric Astor for (StringRef L : Locals) 44*bf027da0SEric Astor OS << " " << L << '\n'; 45*bf027da0SEric Astor } 46a930111cSOliver Stannard OS << " (BEGIN BODY)" << Body << "(END BODY)\n"; 47a930111cSOliver Stannard } 48ce21c3e1SFangrui Song #endif 49