2020-11-30 21:15:18 +01:00
|
|
|
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<string name> : Flag<["--", "-"], name>;
|
|
|
|
class LLVMJoined<string name> : Joined<["--", "-"], name>;
|
|
|
|
class LLVMJoinedOrSeparate<string name> : JoinedOrSeparate<["--", "-"], name>;
|
|
|
|
class LLVMSeparate<string name> : Separate<["--", "-"], name>;
|
|
|
|
|
|
|
|
def ml_Group : OptionGroup<"<ml options>">,
|
|
|
|
HelpText<"ML.EXE COMPATIBILITY OPTIONS">;
|
|
|
|
class MLFlag<string name> : Flag<["/", "-"], name>, Group<ml_Group>;
|
|
|
|
class MLJoined<string name> : Joined<["/", "-"], name>, Group<ml_Group>;
|
|
|
|
class MLJoinedOrSeparate<string name> : JoinedOrSeparate<["/", "-"], name>,
|
|
|
|
Group<ml_Group>;
|
|
|
|
class MLSeparate<string name> : Separate<["/", "-"], name>, Group<ml_Group>;
|
|
|
|
|
|
|
|
def unsupported_Group : OptionGroup<"unsupported">, Flags<[HelpHidden]>,
|
|
|
|
HelpText<"UNSUPPORTED ML.EXE COMPATIBILITY OPTIONS">;
|
|
|
|
class UnsupportedFlag<string name> : Flag<["/", "-"], name>,
|
|
|
|
Group<unsupported_Group>;
|
|
|
|
class UnsupportedJoined<string name> : Joined<["/", "-"], name>,
|
|
|
|
Group<unsupported_Group>;
|
|
|
|
class UnsupportedJoinedOrSeparate<string name> :
|
|
|
|
JoinedOrSeparate<["/", "-"], name>, Group<unsupported_Group>;
|
|
|
|
class UnsupportedSeparate<string name> : Separate<["/", "-"], name>,
|
|
|
|
Group<unsupported_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 .asm file without assembling">;
|
2021-04-02 20:09:39 +02:00
|
|
|
def fatal_warnings : LLVMFlag<"fatal-warnings">,
|
|
|
|
HelpText<"Treat warnings as errors">;
|
2020-11-30 21:15:18 +01:00
|
|
|
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">;
|
2021-07-21 17:43:25 +02:00
|
|
|
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<utc>;
|
2020-11-30 21:15:18 +01:00
|
|
|
|
2021-03-17 17:10:11 +01:00
|
|
|
def help : MLFlag<"?">,
|
|
|
|
HelpText<"Display available options">;
|
|
|
|
def help_long : MLFlag<"help">, Alias<help>;
|
|
|
|
def assemble_only : MLFlag<"c">, HelpText<"Assemble only; do not link">;
|
|
|
|
def define : MLJoinedOrSeparate<"D">, MetaVarName<"<macro>=<value>">,
|
|
|
|
HelpText<"Define <macro> to <value> (or blank if <value> "
|
|
|
|
"omitted)">;
|
|
|
|
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 name not ending with "
|
|
|
|
"the .asm extension">;
|
2021-04-02 20:09:39 +02:00
|
|
|
def error_on_warning : MLFlag<"WX">, Alias<fatal_warnings>;
|
2021-03-17 17:10:11 +01:00
|
|
|
def parse_only : MLFlag<"Zs">, HelpText<"Run a syntax-check only">,
|
|
|
|
Alias<filetype>, AliasArgs<["null"]>;
|
2021-06-09 22:05:12 +02:00
|
|
|
def ignore_include_envvar : MLFlag<"X">,
|
|
|
|
HelpText<"Ignore the INCLUDE environment variable">;
|
2021-03-17 17:10:11 +01:00
|
|
|
|
2020-11-30 21:15:18 +01:00
|
|
|
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 nologo : UnsupportedFlag<"nologo">, 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<"">;
|