brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · bc95f98 Raw
49 lines · cpp
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-exception6//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  if (!Locals.empty()) {42    OS << "  Locals:\n";43    for (StringRef L : Locals)44      OS << "    " << L << '\n';45  }46  OS << "  (BEGIN BODY)" << Body << "(END BODY)\n";47}48#endif49