1include "llvm/Option/OptParser.td"
2
3def help : Flag<["--"], "help">,
4  HelpText<"Display available options (--help-hidden for more)">;
5
6def help_hidden : Flag<["--"], "help-hidden">,
7  Flags<[HelpHidden]>,
8  HelpText<"Display all available options">;
9
10def version : Flag<["--"], "version">,
11  HelpText<"Display the version of this program">;
12def : Flag<["-"], "v">, Alias<version>, HelpText<"Alias for --version">;
13
14def adjust_vma_EQ : Joined<["--"], "adjust-vma=">,
15  MetaVarName<"offset">,
16  HelpText<"Increase the displayed address by the specified offset">;
17
18def all_headers : Flag<["--"], "all-headers">,
19  HelpText<"Display all available header information">;
20def : Flag<["-"], "x">, Alias<all_headers>, HelpText<"Alias for --all-headers">;
21
22def arch_name_EQ : Joined<["--"], "arch-name=">,
23  HelpText<"Target arch to disassemble for, "
24            "see --version for available targets">;
25def archive_headers : Flag<["--"], "archive-headers">,
26  HelpText<"Display archive header information">;
27
28def : Flag<["-"], "a">, Alias<archive_headers>,
29  HelpText<"Alias for --archive-headers">;
30
31def demangle : Flag<["--"], "demangle">, HelpText<"Demangle symbol names">;
32def : Flag<["-"], "C">, Alias<demangle>, HelpText<"Alias for --demangle">;
33
34def disassemble : Flag<["--"], "disassemble">,
35  HelpText<"Display assembler mnemonics for the machine instructions">;
36def : Flag<["-"], "d">, Alias<disassemble>, HelpText<"Alias for --disassemble">;
37
38def disassemble_all : Flag<["--"], "disassemble-all">,
39  HelpText<"Display assembler mnemonics for the machine instructions">;
40def : Flag<["-"], "D">, Alias<disassemble_all>,
41  HelpText<"Alias for --disassemble-all">;
42
43def symbol_description : Flag<["--"], "symbol-description">,
44  HelpText<"Add symbol description for disassembly. This "
45           "option is for XCOFF files only.">;
46
47def disassemble_symbols_EQ : Joined<["--"], "disassemble-symbols=">,
48  HelpText<"List of symbols to disassemble. "
49           "Accept demangled names when --demangle is "
50           "specified, otherwise accept mangled names">;
51
52def disassemble_zeroes : Flag<["--"], "disassemble-zeroes">,
53  HelpText<"Do not skip blocks of zeroes when disassembling">;
54def : Flag<["-"], "z">, Alias<disassemble_zeroes>,
55  HelpText<"Alias for --disassemble-zeroes">;
56
57def disassembler_options_EQ : Joined<["--"], "disassembler-options=">,
58  MetaVarName<"options">,
59  HelpText<"Pass target specific disassembler options">;
60def : JoinedOrSeparate<["-"], "M">, Alias<disassembler_options_EQ>,
61  HelpText<"Alias for --disassembler-options=">;
62
63def dynamic_reloc : Flag<["--"], "dynamic-reloc">,
64  HelpText<"Display the dynamic relocation entries in the file">;
65def : Flag<["-"], "R">, Alias<dynamic_reloc>,
66  HelpText<"Alias for --dynamic-reloc">;
67
68def dwarf_EQ : Joined<["--"], "dwarf=">,
69  HelpText<"Dump of dwarf debug sections">, Values<"frames">;
70
71def fault_map_section : Flag<["--"], "fault-map-section">,
72  HelpText<"Display contents of faultmap section">;
73
74def file_headers : Flag<["--"], "file-headers">,
75  HelpText<"Display the contents of the overall file header">;
76def : Flag<["-"], "f">, Alias<file_headers>,
77  HelpText<"Alias for --file-headers">;
78
79def full_contents : Flag<["--"], "full-contents">,
80  HelpText<"Display the content of each section">;
81def : Flag<["-"], "s">, Alias<full_contents>,
82  HelpText<"Alias for --full-contents">;
83
84def line_numbers : Flag<["--"], "line-numbers">,
85  HelpText<"Display source line numbers with "
86            "disassembly. Implies disassemble object">;
87def : Flag<["-"], "l">, Alias<line_numbers>,
88  HelpText<"Alias for --line-numbers">;
89
90def macho : Flag<["--"], "macho">,
91  HelpText<"Use MachO specific object file parser">;
92def : Flag<["-"], "m">, Alias<macho>, HelpText<"Alias for --macho">;
93
94def mcpu_EQ : Joined<["--"], "mcpu=">,
95  MetaVarName<"cpu-name">,
96  HelpText<"Target a specific cpu type (--mcpu=help for details)">;
97
98def mattr_EQ : Joined<["--"], "mattr=">,
99  MetaVarName<"a1,+a2,-a3,...">,
100  HelpText<"Target specific attributes (--mattr=help for details)">;
101
102def no_show_raw_insn : Flag<["--"], "no-show-raw-insn">,
103  HelpText<"When disassembling instructions, "
104           "do not print the instruction bytes.">;
105
106def no_leading_addr : Flag<["--"], "no-leading-addr">,
107  HelpText<"Print no leading address">;
108
109def raw_clang_ast : Flag<["--"], "raw-clang-ast">,
110  HelpText<"Dump the raw binary contents of the clang AST section">;
111
112def reloc : Flag<["--"], "reloc">,
113  HelpText<"Display the relocation entries in the file">;
114def : Flag<["-"], "r">, Alias<reloc>, HelpText<"Alias for --reloc">;
115
116def print_imm_hex : Flag<["--"], "print-imm-hex">,
117  HelpText<"Use hex format for immediate values">;
118
119def no_print_imm_hex : Flag<["--"], "no-print-imm-hex">,
120  HelpText<"Do not use hex format for immediate values (default)">;
121def : Flag<["--"], "print-imm-hex=false">, Alias<no_print_imm_hex>;
122
123def private_headers : Flag<["--"], "private-headers">,
124  HelpText<"Display format specific file headers">;
125def : Flag<["-"], "p">, Alias<private_headers>,
126  HelpText<"Alias for --private-headers">;
127
128def section_EQ : Joined<["--"], "section=">,
129  HelpText<"Operate on the specified sections only. "
130           "With --macho dump segment,section">;
131def : Separate<["--"], "section">, Alias<section_EQ>;
132def : JoinedOrSeparate<["-"], "j">, Alias<section_EQ>,
133  HelpText<"Alias for --section">;
134
135def section_headers : Flag<["--"], "section-headers">,
136  HelpText<"Display summaries of the headers for each section.">;
137def : Flag<["--"], "headers">, Alias<section_headers>,
138  HelpText<"Alias for --section-headers">;
139def : Flag<["-"], "h">, Alias<section_headers>,
140  HelpText<"Alias for --section-headers">;
141
142def show_lma : Flag<["--"], "show-lma">,
143  HelpText<"Display LMA column when dumping ELF section headers">;
144
145def source : Flag<["--"], "source">,
146  HelpText<"Display source inlined with disassembly. Implies disassemble object">;
147def : Flag<["-"], "S">, Alias<source>, HelpText<"Alias for --source">;
148
149def start_address_EQ : Joined<["--"], "start-address=">,
150  MetaVarName<"address">,
151  HelpText<"Disassemble beginning at address">;
152def stop_address_EQ : Joined<["--"], "stop-address=">,
153  MetaVarName<"address">,
154  HelpText<"Stop disassembly at address">;
155
156def syms : Flag<["--"], "syms">,
157  HelpText<"Display the symbol table">;
158def : Flag<["-"], "t">, Alias<syms>, HelpText<"Alias for --syms">;
159
160def symbolize_operands : Flag<["--"], "symbolize-operands">,
161  HelpText<"Symbolize instruction operands when disassembling">;
162
163def dynamic_syms : Flag<["--"], "dynamic-syms">,
164  HelpText<"Display the contents of the dynamic symbol table">;
165def : Flag<["-"], "T">, Alias<dynamic_syms>,
166  HelpText<"Alias for --dynamic-syms">;
167
168def triple_EQ : Joined<["--"], "triple=">,
169  HelpText<"Target triple to disassemble for, "
170            "see --version for available targets">;
171def : Separate<["--"], "triple">,
172  Alias<triple_EQ>;
173
174def unwind_info : Flag<["--"], "unwind-info">,
175  HelpText<"Display unwind information">;
176def : Flag<["-"], "u">, Alias<unwind_info>,
177  HelpText<"Alias for --unwind-info">;
178
179def wide : Flag<["--"], "wide">,
180  HelpText<"Ignored for compatibility with GNU objdump">;
181def : Flag<["-"], "w">, Alias<wide>;
182
183def prefix : Separate<["--"], "prefix">,
184  HelpText<"Add prefix to absolute paths">;
185
186def prefix_strip : Separate<["--"], "prefix-strip">,
187  HelpText<"Strip out initial directories from absolute "
188           "paths. No effect without --prefix">;
189
190def debug_vars_EQ : Joined<["--"], "debug-vars=">,
191  Values<"unicode,ascii">;
192def : Flag<["--"], "debug-vars">,
193  HelpText<"Print the locations (in registers or memory) of "
194           "source-level variables alongside disassembly">,
195  Alias<debug_vars_EQ>, AliasArgs<["unicode"]>;
196
197def debug_vars_indent_EQ : Joined<["--"], "debug-vars-indent=">,
198  HelpText<"Distance to indent the source-level variable display, "
199           "relative to the start of the disassembly">;
200
201def x86_asm_syntax_att : Flag<["--"], "x86-asm-syntax=att">,
202  HelpText<"Emit AT&T-style disassembly">;
203
204def x86_asm_syntax_intel : Flag<["--"], "x86-asm-syntax=intel">,
205  HelpText<"Emit Intel-style disassembly">;
206
207
208def grp_mach_o : OptionGroup<"kind">, HelpText<"llvm-objdump MachO Specific Options">;
209
210def private_header : Flag<["--"], "private-header">,
211  HelpText<"Display only the first format specific file header">,
212  Group<grp_mach_o>;
213
214def exports_trie : Flag<["--"], "exports-trie">,
215  HelpText<"Display mach-o exported symbols">,
216  Group<grp_mach_o>;
217
218def rebase : Flag<["--"], "rebase">,
219  HelpText<"Display mach-o rebasing info">,
220  Group<grp_mach_o>;
221
222def bind : Flag<["--"], "bind">,
223  HelpText<"Display mach-o binding info">,
224  Group<grp_mach_o>;
225
226def lazy_bind : Flag<["--"], "lazy-bind">,
227  HelpText<"Display mach-o lazy binding info">,
228  Group<grp_mach_o>;
229
230def weak_bind : Flag<["--"], "weak-bind">,
231  HelpText<"Display mach-o weak binding info">,
232  Group<grp_mach_o>;
233
234def g : Flag<["-"], "g">,
235  HelpText<"Print line information from debug info if available">,
236  Group<grp_mach_o>;
237
238def dsym_EQ : Joined<["--"], "dsym=">,
239  HelpText<"Use .dSYM file for debug info">,
240  Group<grp_mach_o>;
241def : Separate<["--"], "dsym">,
242  Alias<dsym_EQ>,
243  Group<grp_mach_o>;
244
245def full_leading_addr : Flag<["--"], "full-leading-addr">,
246  HelpText<"Print full leading address">,
247  Group<grp_mach_o>;
248
249def no_leading_headers : Flag<["--"], "no-leading-headers">,
250  HelpText<"Print no leading headers">,
251  Group<grp_mach_o>;
252
253def universal_headers : Flag<["--"], "universal-headers">,
254  HelpText<"Print Mach-O universal headers (requires --macho)">,
255  Group<grp_mach_o>;
256
257def archive_member_offsets : Flag<["--"], "archive-member-offsets">,
258  HelpText<"Print the offset to each archive member for Mach-O archives "
259           "(requires --macho and --archive-headers)">,
260  Group<grp_mach_o>;
261
262def indirect_symbols : Flag<["--"], "indirect-symbols">,
263  HelpText<"Print indirect symbol table for Mach-O objects (requires --macho)">,
264  Group<grp_mach_o>;
265
266def data_in_code : Flag<["--"], "data-in-code">,
267  HelpText<"Print the data in code table for Mach-O objects (requires --macho)">,
268  Group<grp_mach_o>;
269
270def function_starts : Flag<["--"], "function-starts">,
271  HelpText<"Print the function starts table for "
272           "Mach-O objects (requires --macho)">,
273  Group<grp_mach_o>;
274
275def link_opt_hints : Flag<["--"], "link-opt-hints">,
276  HelpText<"Print the linker optimization hints for "
277           "Mach-O objects (requires --macho)">,
278  Group<grp_mach_o>;
279
280def info_plist : Flag<["--"], "info-plist">,
281  HelpText<"Print the info plist section as strings for "
282           "Mach-O objects (requires --macho)">,
283  Group<grp_mach_o>;
284
285def dylibs_used : Flag<["--"], "dylibs-used">,
286  HelpText<"Print the shared libraries used for linked "
287           "Mach-O files (requires --macho)">,
288  Group<grp_mach_o>;
289
290def dylib_id : Flag<["--"], "dylib-id">,
291  HelpText<"Print the shared library's id for the "
292           "dylib Mach-O file (requires --macho)">,
293  Group<grp_mach_o>;
294
295def rpaths : Flag<["--"], "rpaths">,
296  HelpText<"Print the runtime search paths for the "
297           "Mach-O file (requires --macho)">,
298  Group<grp_mach_o>;
299
300def non_verbose : Flag<["--"], "non-verbose">,
301  HelpText<"Print the info for Mach-O objects in non-verbose or "
302           "numeric form (requires --macho)">,
303  Group<grp_mach_o>;
304
305def objc_meta_data : Flag<["--"], "objc-meta-data">,
306  HelpText<"Print the Objective-C runtime meta data "
307           "for Mach-O files (requires --macho)">,
308  Group<grp_mach_o>;
309
310def dis_symname : Separate<["--"], "dis-symname">,
311  HelpText<"disassemble just this symbol's instructions (requires --macho)">,
312  Group<grp_mach_o>;
313
314def no_symbolic_operands : Flag<["--"], "no-symbolic-operands">,
315  HelpText<"do not symbolic operands when disassembling (requires --macho)">,
316  Group<grp_mach_o>;
317
318def arch_EQ : Joined<["--"], "arch=">,
319  HelpText<"architecture(s) from a Mach-O file to dump">,
320  Group<grp_mach_o>;
321def : Separate<["--"], "arch">,
322  Alias<arch_EQ>,
323  Group<grp_mach_o>;
324