1include "llvm/Option/OptParser.td" 2 3// For LLVM-specific options, we prefer a two-dash prefix, but accept one for 4// compatibility with llvm-mc. For clear separation from ML.EXE compatible 5// options, slash is not accepted. 6class LLVMFlag<string name> : Flag<["--", "-"], name>; 7class LLVMJoined<string name> : Joined<["--", "-"], name>; 8class LLVMJoinedOrSeparate<string name> : JoinedOrSeparate<["--", "-"], name>; 9class LLVMSeparate<string name> : Separate<["--", "-"], name>; 10class LLVMCommaJoined<string name> : CommaJoined<["--", "-"], name>; 11 12def ml_Group : OptionGroup<"<ml options>">, 13 HelpText<"ML.EXE COMPATIBILITY OPTIONS">; 14class MLFlag<string name> : Flag<["/", "-"], name>, Group<ml_Group>; 15class MLJoined<string name> : Joined<["/", "-"], name>, Group<ml_Group>; 16class MLJoinedOrSeparate<string name> : JoinedOrSeparate<["/", "-"], name>, 17 Group<ml_Group>; 18class MLSeparate<string name> : Separate<["/", "-"], name>, Group<ml_Group>; 19 20def unsupported_Group : OptionGroup<"unsupported">, Flags<[HelpHidden]>, 21 HelpText<"UNSUPPORTED ML.EXE COMPATIBILITY OPTIONS">; 22class UnsupportedFlag<string name> : Flag<["/", "-"], name>, 23 Group<unsupported_Group>; 24class UnsupportedJoined<string name> : Joined<["/", "-"], name>, 25 Group<unsupported_Group>; 26class UnsupportedJoinedOrSeparate<string name> : 27 JoinedOrSeparate<["/", "-"], name>, Group<unsupported_Group>; 28class UnsupportedSeparate<string name> : Separate<["/", "-"], name>, 29 Group<unsupported_Group>; 30 31def bitness : LLVMJoined<"m">, Values<"32,64">, 32 HelpText<"Target platform (x86 or x86-64)">; 33def as_lex : LLVMFlag<"as-lex">, 34 HelpText<"Lex tokens from a file without assembling">; 35def debug : LLVMFlag<"debug">, Flags<[HelpHidden]>, 36 HelpText<"Enable debug output">; 37def debug_only : LLVMCommaJoined<"debug-only=">, Flags<[HelpHidden]>, 38 HelpText<"Enable a specific type of debug output (comma " 39 "separated list of types)">; 40def fatal_warnings : LLVMFlag<"fatal-warnings">, 41 HelpText<"Treat warnings as errors">; 42def filetype : LLVMJoined<"filetype=">, Values<"obj,s,null">, 43 HelpText<"Emit a file with the given type">; 44def output_att_asm : LLVMFlag<"output-att-asm">, 45 HelpText<"Use ATT syntax for output assembly">; 46def show_encoding : LLVMFlag<"show-encoding">, 47 HelpText<"Show instruction encodings in output assembly">; 48def show_inst : LLVMFlag<"show-inst">, 49 HelpText<"Show internal instruction representation in output " 50 "assembly">; 51def show_inst_operands : LLVMFlag<"show-inst-operands">, 52 HelpText<"Show instructions operands as parsed">; 53def print_imm_hex : LLVMFlag<"print-imm-hex">, 54 HelpText<"Prefer hex format for immediate values in output " 55 "assembly">; 56def preserve_comments : LLVMFlag<"preserve-comments">, 57 HelpText<"Preserve comments in output assembly">; 58def save_temp_labels : LLVMFlag<"save-temp-labels">, 59 HelpText<"Don't discard temporary labels">; 60def timestamp : LLVMJoined<"timestamp=">, 61 HelpText<"Specify the assembly timestamp (used for @Date and " 62 "@Time built-ins)">; 63def utc : LLVMFlag<"utc">, 64 HelpText<"Render @Date and @Time built-ins in GMT/UTC">; 65def gmtime : LLVMFlag<"gmtime">, Alias<utc>; 66 67def help : MLFlag<"?">, 68 HelpText<"Display available options">; 69def help_long : MLFlag<"help">, Alias<help>; 70def assemble_only : MLFlag<"c">, HelpText<"Assemble only; do not link">; 71def define : MLJoinedOrSeparate<"D">, MetaVarName<"<macro>=<value>">, 72 HelpText<"Define <macro> to <value> (or blank if <value> " 73 "omitted)">; 74def no_logo : MLFlag<"nologo">, HelpText<"">; 75def quiet : MLFlag<"quiet">, HelpText<"">; 76def output_file : MLJoinedOrSeparate<"Fo">, HelpText<"Names the output file">; 77def include_path : MLJoinedOrSeparate<"I">, 78 HelpText<"Sets path for include files">; 79def safeseh : MLFlag<"safeseh">, 80 HelpText<"Mark resulting object files as either containing no " 81 "exception handlers or containing exception handlers " 82 "that are all declared with .SAFESEH. Only available in " 83 "32-bit.">; 84def assembly_file : MLJoinedOrSeparate<"Ta">, 85 HelpText<"Assemble source file with the given name. Used " 86 "if the filename begins with a forward slash.">; 87def error_on_warning : MLFlag<"WX">, Alias<fatal_warnings>; 88def parse_only : MLFlag<"Zs">, HelpText<"Run a syntax-check only">, 89 Alias<filetype>, AliasArgs<["null"]>; 90def ignore_include_envvar : MLFlag<"X">, 91 HelpText<"Ignore the INCLUDE environment variable">; 92 93def tiny_model_support : UnsupportedFlag<"AT">, HelpText<"">; 94def alternate_linker : UnsupportedJoined<"Bl">, HelpText<"">; 95def coff_object_file : UnsupportedFlag<"coff">, HelpText<"">; 96def preserve_identifier_case : UnsupportedFlag<"Cp">, HelpText<"">; 97def uppercase_identifiers : UnsupportedFlag<"Cu">, HelpText<"">; 98def preserve_extern_case : UnsupportedFlag<"Cx">, HelpText<"">; 99def output_preprocessed : UnsupportedFlag<"EP">, HelpText<"">; 100def errorreport : UnsupportedJoined<"ERRORREPORT">, HelpText<"">; 101def stacksize : UnsupportedSeparate<"F">, HelpText<"">; 102def executable_file : UnsupportedSeparate<"Fe">, HelpText<"">; 103def code_listing_file : UnsupportedJoined<"FI">, HelpText<"">; 104def linker_map_file : UnsupportedJoined<"Fm">, HelpText<"">; 105def fp_emulator_fixups : UnsupportedFlag<"FPi">, HelpText<"">; 106def source_browser_file : UnsupportedJoined<"Fr">, HelpText<"">; 107def extended_source_browser_file : UnsupportedJoined<"FR">, HelpText<"">; 108def pascal_conventions : UnsupportedFlag<"Gc">, HelpText<"">; 109def c_conventions : UnsupportedFlag<"Gd">, HelpText<"">; 110def stdcall_conventions : UnsupportedFlag<"GZ">, HelpText<"">; 111def extern_name_limit : UnsupportedSeparate<"H">, HelpText<"">; 112def omf_object_file : UnsupportedFlag<"omf">, HelpText<"">; 113def full_listing : UnsupportedFlag<"Sa">, HelpText<"">; 114def first_pass_listing : UnsupportedFlag<"Sf">, HelpText<"">; 115def listing_width : UnsupportedSeparate<"SI">, HelpText<"">; 116def listing_without_symbols : UnsupportedFlag<"Sn">, HelpText<"">; 117def listing_page_length : UnsupportedSeparate<"Sp">, HelpText<"">; 118def listing_subtitle : UnsupportedSeparate<"Ss">, HelpText<"">; 119def listing_title : UnsupportedSeparate<"St">, HelpText<"">; 120def listing_false_conditionals : UnsupportedFlag<"Sx">, HelpText<"">; 121def extra_warnings : UnsupportedFlag<"w">, HelpText<"">; 122def warning_level : UnsupportedJoined<"W">, HelpText<"">; 123def line_number_info : UnsupportedFlag<"Zd">, HelpText<"">; 124def export_all_symbols : UnsupportedFlag<"Zf">, HelpText<"">; 125def codeview_info : UnsupportedFlag<"Zi">, HelpText<"">; 126def enable_m510_option : UnsupportedFlag<"Zm">, HelpText<"">; 127def structure_packing : UnsupportedJoined<"Zp">, HelpText<"">; 128