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