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 | |
12 | using namespace llvm; |
13 | |
14 | #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) |
15 | void 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 | |
34 | void 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 | #endif |
49 | |