include "llvm/Option/OptParser.td" multiclass Eq<string name, string help> { def NAME : Separate<["--"], name>; def NAME #_eq : Joined<["--"], name #"=">, Alias<!cast<Separate>(NAME)>, HelpText<help>; } def help : Flag<["--"], "help">, HelpText<"Display available options (--help-hidden for more)">; def help_hidden : Flag<["--"], "help-hidden">, Flags<[HelpHidden]>, HelpText<"Display all available options">; def version : Flag<["--"], "version">, HelpText<"Display the version of this program">; def : Flag<["-"], "v">, Alias<version>, HelpText<"Alias for --version">; def adjust_vma_EQ : Joined<["--"], "adjust-vma=">, MetaVarName<"offset">, HelpText<"Increase the displayed address by the specified offset">; def all_headers : Flag<["--"], "all-headers">, HelpText<"Display all available header information, " "relocation entries and the symbol table">; def : Flag<["-"], "x">, Alias<all_headers>, HelpText<"Alias for --all-headers">; def arch_name_EQ : Joined<["--"], "arch-name=">, HelpText<"Target arch to disassemble for, " "see --version for available targets">; def archive_headers : Flag<["--"], "archive-headers">, HelpText<"Display archive header information">; def : Flag<["-"], "a">, Alias<archive_headers>, HelpText<"Alias for --archive-headers">; def demangle : Flag<["--"], "demangle">, HelpText<"Demangle symbol names">; def : Flag<["-"], "C">, Alias<demangle>, HelpText<"Alias for --demangle">; def disassemble : Flag<["--"], "disassemble">, HelpText<"Disassemble all executable sections found in the input files">; def : Flag<["-"], "d">, Alias<disassemble>, HelpText<"Alias for --disassemble">; def disassemble_all : Flag<["--"], "disassemble-all">, HelpText<"Disassemble all sections found in the input files">; def : Flag<["-"], "D">, Alias<disassemble_all>, HelpText<"Alias for --disassemble-all">; def symbol_description : Flag<["--"], "symbol-description">, HelpText<"Add symbol description for disassembly. This " "option is for XCOFF files only.">; def disassemble_symbols_EQ : Joined<["--"], "disassemble-symbols=">, HelpText<"List of symbols to disassemble. " "Accept demangled names when --demangle is " "specified, otherwise accept mangled names">; def disassemble_zeroes : Flag<["--"], "disassemble-zeroes">, HelpText<"Do not skip blocks of zeroes when disassembling">; def : Flag<["-"], "z">, Alias<disassemble_zeroes>, HelpText<"Alias for --disassemble-zeroes">; def disassembler_options_EQ : Joined<["--"], "disassembler-options=">, MetaVarName<"options">, HelpText<"Pass target specific disassembler options">; def : JoinedOrSeparate<["-"], "M">, Alias<disassembler_options_EQ>, HelpText<"Alias for --disassembler-options=">; def dynamic_reloc : Flag<["--"], "dynamic-reloc">, HelpText<"Display the dynamic relocation entries in the file">; def : Flag<["-"], "R">, Alias<dynamic_reloc>, HelpText<"Alias for --dynamic-reloc">; def dwarf_EQ : Joined<["--"], "dwarf=">, HelpText<"Dump the specified DWARF debug sections. The " "only supported value is 'frames'">, Values<"frames">; def fault_map_section : Flag<["--"], "fault-map-section">, HelpText<"Display the content of the fault map section">; def offloading : Flag<["--"], "offloading">, HelpText<"Display the content of the offloading section">; def file_headers : Flag<["--"], "file-headers">, HelpText<"Display the contents of the overall file header">; def : Flag<["-"], "f">, Alias<file_headers>, HelpText<"Alias for --file-headers">; def full_contents : Flag<["--"], "full-contents">, HelpText<"Display the content of each section">; def : Flag<["-"], "s">, Alias<full_contents>, HelpText<"Alias for --full-contents">; def line_numbers : Flag<["--"], "line-numbers">, HelpText<"When disassembling, display source line numbers. " "Implies --disassemble">; def : Flag<["-"], "l">, Alias<line_numbers>, HelpText<"Alias for --line-numbers">; def macho : Flag<["--"], "macho">, HelpText<"Use MachO specific object file parser">; def : Flag<["-"], "m">, Alias<macho>, HelpText<"Alias for --macho">; def mcpu_EQ : Joined<["--"], "mcpu=">, MetaVarName<"cpu-name">, HelpText<"Target a specific cpu type (--mcpu=help for details)">; def mattr_EQ : Joined<["--"], "mattr=">, MetaVarName<"a1,+a2,-a3,...">, HelpText<"Target specific attributes (--mattr=help for details)">; def no_show_raw_insn : Flag<["--"], "no-show-raw-insn">, HelpText<"When disassembling instructions, " "do not print the instruction bytes.">; def no_leading_addr : Flag<["--"], "no-leading-addr">, HelpText<"When disassembling, do not print leading addresses">; def raw_clang_ast : Flag<["--"], "raw-clang-ast">, HelpText<"Dump the raw binary contents of the clang AST section">; def reloc : Flag<["--"], "reloc">, HelpText<"Display the relocation entries in the file">; def : Flag<["-"], "r">, Alias<reloc>, HelpText<"Alias for --reloc">; def print_imm_hex : Flag<["--"], "print-imm-hex">, HelpText<"Use hex format for immediate values">; def no_print_imm_hex : Flag<["--"], "no-print-imm-hex">, HelpText<"Do not use hex format for immediate values (default)">; def : Flag<["--"], "print-imm-hex=false">, Alias<no_print_imm_hex>; def private_headers : Flag<["--"], "private-headers">, HelpText<"Display format specific file headers">; def : Flag<["-"], "p">, Alias<private_headers>, HelpText<"Alias for --private-headers">; def section_EQ : Joined<["--"], "section=">, HelpText<"Operate on the specified sections only. " "With --macho dump segment,section">; def : Separate<["--"], "section">, Alias<section_EQ>; def : JoinedOrSeparate<["-"], "j">, Alias<section_EQ>, HelpText<"Alias for --section">; def section_headers : Flag<["--"], "section-headers">, HelpText<"Display summaries of the headers for each section.">; def : Flag<["--"], "headers">, Alias<section_headers>, HelpText<"Alias for --section-headers">; def : Flag<["-"], "h">, Alias<section_headers>, HelpText<"Alias for --section-headers">; def show_lma : Flag<["--"], "show-lma">, HelpText<"Display LMA column when dumping ELF section headers">; def source : Flag<["--"], "source">, HelpText<"When disassembling, display source interleaved with the " "disassembly. Implies --disassemble">; def : Flag<["-"], "S">, Alias<source>, HelpText<"Alias for --source">; def start_address_EQ : Joined<["--"], "start-address=">, MetaVarName<"address">, HelpText<"Set the start address for disassembling, " "printing relocations and printing symbols">; def stop_address_EQ : Joined<["--"], "stop-address=">, MetaVarName<"address">, HelpText<"Set the stop address for disassembling, " "printing relocations and printing symbols">; def syms : Flag<["--"], "syms">, HelpText<"Display the symbol table">; def : Flag<["-"], "t">, Alias<syms>, HelpText<"Alias for --syms">; def symbolize_operands : Flag<["--"], "symbolize-operands">, HelpText<"Symbolize instruction operands when disassembling">; def dynamic_syms : Flag<["--"], "dynamic-syms">, HelpText<"Display the contents of the dynamic symbol table">; def : Flag<["-"], "T">, Alias<dynamic_syms>, HelpText<"Alias for --dynamic-syms">; def triple_EQ : Joined<["--"], "triple=">, HelpText<"Target triple to disassemble for, " "see --version for available targets">; def : Separate<["--"], "triple">, Alias<triple_EQ>; def unwind_info : Flag<["--"], "unwind-info">, HelpText<"Display unwind information">; def : Flag<["-"], "u">, Alias<unwind_info>, HelpText<"Alias for --unwind-info">; def wide : Flag<["--"], "wide">, HelpText<"Ignored for compatibility with GNU objdump">; def : Flag<["-"], "w">, Alias<wide>; defm prefix : Eq<"prefix", "Add prefix to absolute paths">, MetaVarName<"prefix">; defm prefix_strip : Eq<"prefix-strip", "Strip out initial directories from absolute " "paths. No effect without --prefix">, MetaVarName<"prefix">; def debug_vars_EQ : Joined<["--"], "debug-vars=">, HelpText<"Print the locations (in registers or memory) of " "source-level variables alongside disassembly. " "Supported formats: ascii, unicode (default)">, Values<"unicode,ascii">; def : Flag<["--"], "debug-vars">, Alias<debug_vars_EQ>, AliasArgs<["unicode"]>; def debug_vars_indent_EQ : Joined<["--"], "debug-vars-indent=">, HelpText<"Distance to indent the source-level variable display, " "relative to the start of the disassembly">; def x86_asm_syntax_att : Flag<["--"], "x86-asm-syntax=att">, HelpText<"Emit AT&T-style disassembly">; def x86_asm_syntax_intel : Flag<["--"], "x86-asm-syntax=intel">, HelpText<"Emit Intel-style disassembly">; def grp_mach_o : OptionGroup<"kind">, HelpText<"llvm-objdump MachO Specific Options">; def private_header : Flag<["--"], "private-header">, HelpText<"Display only the first format specific file header">, Group<grp_mach_o>; def exports_trie : Flag<["--"], "exports-trie">, HelpText<"Display mach-o exported symbols">, Group<grp_mach_o>; def rebase : Flag<["--"], "rebase">, HelpText<"Display mach-o rebasing info">, Group<grp_mach_o>; def bind : Flag<["--"], "bind">, HelpText<"Display mach-o binding info">, Group<grp_mach_o>; def lazy_bind : Flag<["--"], "lazy-bind">, HelpText<"Display mach-o lazy binding info">, Group<grp_mach_o>; def weak_bind : Flag<["--"], "weak-bind">, HelpText<"Display mach-o weak binding info">, Group<grp_mach_o>; def g : Flag<["-"], "g">, HelpText<"Print line information from debug info if available">, Group<grp_mach_o>; def dsym_EQ : Joined<["--"], "dsym=">, HelpText<"Use .dSYM file for debug info">, Group<grp_mach_o>; def : Separate<["--"], "dsym">, Alias<dsym_EQ>, Group<grp_mach_o>; def full_leading_addr : Flag<["--"], "full-leading-addr">, HelpText<"Print full leading address">, Group<grp_mach_o>; def no_leading_headers : Flag<["--"], "no-leading-headers">, HelpText<"Print no leading headers">, Group<grp_mach_o>; def universal_headers : Flag<["--"], "universal-headers">, HelpText<"Print Mach-O universal headers (requires --macho)">, Group<grp_mach_o>; def archive_member_offsets : Flag<["--"], "archive-member-offsets">, HelpText<"Print the offset to each archive member for Mach-O archives " "(requires --macho and --archive-headers)">, Group<grp_mach_o>; def indirect_symbols : Flag<["--"], "indirect-symbols">, HelpText<"Print indirect symbol table for Mach-O objects (requires --macho)">, Group<grp_mach_o>; def data_in_code : Flag<["--"], "data-in-code">, HelpText<"Print the data in code table for Mach-O objects (requires --macho)">, Group<grp_mach_o>; def function_starts : Flag<["--"], "function-starts">, HelpText<"Print the function starts table for " "Mach-O objects (requires --macho)">, Group<grp_mach_o>; def link_opt_hints : Flag<["--"], "link-opt-hints">, HelpText<"Print the linker optimization hints for " "Mach-O objects (requires --macho)">, Group<grp_mach_o>; def info_plist : Flag<["--"], "info-plist">, HelpText<"Print the info plist section as strings for " "Mach-O objects (requires --macho)">, Group<grp_mach_o>; def dyld_info : Flag<["--"], "dyld_info">, HelpText<"Print bind and rebase information used by dyld to resolve " "external references in a final linked binary " "(requires --macho)">, Group<grp_mach_o>; def dylibs_used : Flag<["--"], "dylibs-used">, HelpText<"Print the shared libraries used for linked " "Mach-O files (requires --macho)">, Group<grp_mach_o>; def dylib_id : Flag<["--"], "dylib-id">, HelpText<"Print the shared library's id for the " "dylib Mach-O file (requires --macho)">, Group<grp_mach_o>; def rpaths : Flag<["--"], "rpaths">, HelpText<"Print the runtime search paths for the " "Mach-O file (requires --macho)">, Group<grp_mach_o>; def non_verbose : Flag<["--"], "non-verbose">, HelpText<"Print the info for Mach-O objects in non-verbose or " "numeric form (requires --macho)">, Group<grp_mach_o>; def objc_meta_data : Flag<["--"], "objc-meta-data">, HelpText<"Print the Objective-C runtime meta data " "for Mach-O files (requires --macho)">, Group<grp_mach_o>; def dis_symname : Separate<["--"], "dis-symname">, HelpText<"disassemble just this symbol's instructions (requires --macho)">, Group<grp_mach_o>; def no_symbolic_operands : Flag<["--"], "no-symbolic-operands">, HelpText<"do not symbolic operands when disassembling (requires --macho)">, Group<grp_mach_o>; def arch_EQ : Joined<["--"], "arch=">, HelpText<"architecture(s) from a Mach-O file to dump">, Group<grp_mach_o>; def : Separate<["--"], "arch">, Alias<arch_EQ>, Group<grp_mach_o>;