1//===- MCAsmMacro.h - Assembly Macros ---------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#include "llvm/MC/MCAsmMacro.h" 10#include "llvm/Support/raw_ostream.h" 11 12using namespace llvm; 13 14#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) 15void MCAsmMacroParameter::dump(raw_ostream &OS) const { 16 OS << "\"" << Name << "\""; 17 if (Required) 18 OS << ":req"; 19 if (Vararg) 20 OS << ":vararg"; 21 if (!Value.empty()) { 22 OS << " = "; 23 bool first = true; 24 for (const AsmToken &T : Value) { 25 if (!first) 26 OS << ", "; 27 first = false; 28 OS << T.getString(); 29 } 30 } 31 OS << "\n"; 32} 33 34void MCAsmMacro::dump(raw_ostream &OS) const { 35 OS << "Macro " << Name << ":\n"; 36 OS << " Parameters:\n"; 37 for (const MCAsmMacroParameter &P : Parameters) { 38 OS << " "; 39 P.dump(); 40 } 41 OS << " (BEGIN BODY)" << Body << "(END BODY)\n"; 42} 43#endif 44