include "llvm/Option/OptParser.td" // For LLVM-specific options, we prefer a two-dash prefix, but accept one for // compatibility with llvm-mc. For clear separation from ML.EXE compatible // options, slash is not accepted. class LLVMFlag : Flag<["--", "-"], name>; class LLVMJoined : Joined<["--", "-"], name>; class LLVMJoinedOrSeparate : JoinedOrSeparate<["--", "-"], name>; class LLVMSeparate : Separate<["--", "-"], name>; class LLVMCommaJoined : CommaJoined<["--", "-"], name>; def ml_Group : OptionGroup<"">, HelpText<"ML.EXE COMPATIBILITY OPTIONS">; class MLFlag : Flag<["/", "-"], name>, Group; class MLJoined : Joined<["/", "-"], name>, Group; class MLJoinedOrSeparate : JoinedOrSeparate<["/", "-"], name>, Group; class MLSeparate : Separate<["/", "-"], name>, Group; def unsupported_Group : OptionGroup<"unsupported">, Flags<[HelpHidden]>, HelpText<"UNSUPPORTED ML.EXE COMPATIBILITY OPTIONS">; class UnsupportedFlag : Flag<["/", "-"], name>, Group; class UnsupportedJoined : Joined<["/", "-"], name>, Group; class UnsupportedJoinedOrSeparate : JoinedOrSeparate<["/", "-"], name>, Group; class UnsupportedSeparate : Separate<["/", "-"], name>, Group; def bitness : LLVMJoined<"m">, Values<"32,64">, HelpText<"Target platform (x86 or x86-64)">; def as_lex : LLVMFlag<"as-lex">, HelpText<"Lex tokens from a file without assembling">; def debug : LLVMFlag<"debug">, Flags<[HelpHidden]>, HelpText<"Enable debug output">; def debug_only : LLVMCommaJoined<"debug-only=">, Flags<[HelpHidden]>, HelpText<"Enable a specific type of debug output (comma " "separated list of types)">; def fatal_warnings : LLVMFlag<"fatal-warnings">, HelpText<"Treat warnings as errors">; def filetype : LLVMJoined<"filetype=">, Values<"obj,s,null">, HelpText<"Emit a file with the given type">; def output_att_asm : LLVMFlag<"output-att-asm">, HelpText<"Use ATT syntax for output assembly">; def show_encoding : LLVMFlag<"show-encoding">, HelpText<"Show instruction encodings in output assembly">; def show_inst : LLVMFlag<"show-inst">, HelpText<"Show internal instruction representation in output " "assembly">; def show_inst_operands : LLVMFlag<"show-inst-operands">, HelpText<"Show instructions operands as parsed">; def print_imm_hex : LLVMFlag<"print-imm-hex">, HelpText<"Prefer hex format for immediate values in output " "assembly">; def preserve_comments : LLVMFlag<"preserve-comments">, HelpText<"Preserve comments in output assembly">; def save_temp_labels : LLVMFlag<"save-temp-labels">, HelpText<"Don't discard temporary labels">; def timestamp : LLVMJoined<"timestamp=">, HelpText<"Specify the assembly timestamp (used for @Date and " "@Time built-ins)">; def utc : LLVMFlag<"utc">, HelpText<"Render @Date and @Time built-ins in GMT/UTC">; def gmtime : LLVMFlag<"gmtime">, Alias; def help : MLFlag<"?">, HelpText<"Display available options">; def help_long : MLFlag<"help">, Alias; def assemble_only : MLFlag<"c">, HelpText<"Assemble only; do not link">; def define : MLJoinedOrSeparate<"D">, MetaVarName<"=">, HelpText<"Define to (or blank if " "omitted)">; def no_logo : MLFlag<"nologo">, HelpText<"">; def output_file : MLJoinedOrSeparate<"Fo">, HelpText<"Names the output file">; def include_path : MLJoinedOrSeparate<"I">, HelpText<"Sets path for include files">; def safeseh : MLFlag<"safeseh">, HelpText<"Mark resulting object files as either containing no " "exception handlers or containing exception handlers " "that are all declared with .SAFESEH. Only available in " "32-bit.">; def assembly_file : MLJoinedOrSeparate<"Ta">, HelpText<"Assemble source file with the given name. Used " "if the filename begins with a forward slash.">; def error_on_warning : MLFlag<"WX">, Alias; def parse_only : MLFlag<"Zs">, HelpText<"Run a syntax-check only">, Alias, AliasArgs<["null"]>; def ignore_include_envvar : MLFlag<"X">, HelpText<"Ignore the INCLUDE environment variable">; def tiny_model_support : UnsupportedFlag<"AT">, HelpText<"">; def alternate_linker : UnsupportedJoined<"Bl">, HelpText<"">; def coff_object_file : UnsupportedFlag<"coff">, HelpText<"">; def preserve_identifier_case : UnsupportedFlag<"Cp">, HelpText<"">; def uppercase_identifiers : UnsupportedFlag<"Cu">, HelpText<"">; def preserve_extern_case : UnsupportedFlag<"Cx">, HelpText<"">; def output_preprocessed : UnsupportedFlag<"EP">, HelpText<"">; def errorreport : UnsupportedJoined<"ERRORREPORT">, HelpText<"">; def stacksize : UnsupportedSeparate<"F">, HelpText<"">; def executable_file : UnsupportedSeparate<"Fe">, HelpText<"">; def code_listing_file : UnsupportedJoined<"FI">, HelpText<"">; def linker_map_file : UnsupportedJoined<"Fm">, HelpText<"">; def fp_emulator_fixups : UnsupportedFlag<"FPi">, HelpText<"">; def source_browser_file : UnsupportedJoined<"Fr">, HelpText<"">; def extended_source_browser_file : UnsupportedJoined<"FR">, HelpText<"">; def pascal_conventions : UnsupportedFlag<"Gc">, HelpText<"">; def c_conventions : UnsupportedFlag<"Gd">, HelpText<"">; def stdcall_conventions : UnsupportedFlag<"GZ">, HelpText<"">; def extern_name_limit : UnsupportedSeparate<"H">, HelpText<"">; def omf_object_file : UnsupportedFlag<"omf">, HelpText<"">; def full_listing : UnsupportedFlag<"Sa">, HelpText<"">; def first_pass_listing : UnsupportedFlag<"Sf">, HelpText<"">; def listing_width : UnsupportedSeparate<"SI">, HelpText<"">; def listing_without_symbols : UnsupportedFlag<"Sn">, HelpText<"">; def listing_page_length : UnsupportedSeparate<"Sp">, HelpText<"">; def listing_subtitle : UnsupportedSeparate<"Ss">, HelpText<"">; def listing_title : UnsupportedSeparate<"St">, HelpText<"">; def listing_false_conditionals : UnsupportedFlag<"Sx">, HelpText<"">; def extra_warnings : UnsupportedFlag<"w">, HelpText<"">; def warning_level : UnsupportedJoined<"W">, HelpText<"">; def line_number_info : UnsupportedFlag<"Zd">, HelpText<"">; def export_all_symbols : UnsupportedFlag<"Zf">, HelpText<"">; def codeview_info : UnsupportedFlag<"Zi">, HelpText<"">; def enable_m510_option : UnsupportedFlag<"Zm">, HelpText<"">; def structure_packing : UnsupportedJoined<"Zp">, HelpText<"">;