+1999-04-02 20:16 -0500 Zack Weinberg <zack@rabi.columbia.edu>
+
+ * config/i386/i386.h: Document all TARGET_SWITCHES or add
+ explicit null initializer.
+
+ * config/i386/cygwin.h: Document all SUBTARGET_SWITCHES.
+ * config/i386/dgux.h: Likewise.
+ * config/i386/osf1elf.h: Likewise.
+ * config/i386/win32.h: Likewise.
+ * config/i386/osfrose.h: Likewise. Drop obsolete -mno-ident option.
+
Fri Apr 2 17:49:44 1999 Toshiyasu Morita <tm@netcom.com>
* regmove.c (fixup_match_1): Remove now useless if (0).
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
-{ "no-cygwin", MASK_WIN32 }, \
-{ "cygwin", MASK_CYGWIN }, \
-{ "windows", MASK_WINDOWS }, \
-{ "dll", MASK_DLL }, \
-{ "nop-fun-dllimport", MASK_NOP_FUN_DLLIMPORT }, \
-{ "no-nop-fun-dllimport", MASK_NOP_FUN_DLLIMPORT },
+{ "no-cygwin", MASK_WIN32, "Use the Mingw32 interface" }, \
+{ "cygwin", MASK_CYGWIN, "Use the Cygwin interface" }, \
+{ "windows", MASK_WINDOWS, "Use the bare Windows interface" }, \
+{ "dll", MASK_DLL, "Generate code for a DLL" }, \
+{ "nop-fun-dllimport", MASK_NOP_FUN_DLLIMPORT, "Ignore dllimport for functions" }, \
+{ "no-nop-fun-dllimport", MASK_NOP_FUN_DLLIMPORT, "" },
/* Support the __declspec keyword by turning them into attributes.
#define MASK_NOLEGEND 0x20000000 /* Discard legend information */
#define MASK_EXTERNAL_LEGEND 0x10000000 /* Make external legends */
#define MASK_IDENTIFY_REVISION 0x08000000 /* Emit 'ident' to .s */
-#define MASK_WARN_PASS_STRUCT 0x04000000 /* Emit 'ident' to .s */
+#define MASK_WARN_PASS_STRUCT 0x04000000 /* Warn when structures are passed */
#define TARGET_STANDARD (target_flags & MASK_STANDARD)
#define TARGET_NOLEGEND (target_flags & MASK_NOLEGEND)
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
- { "standard", MASK_STANDARD }, \
- { "legend", -MASK_NOLEGEND }, \
- { "no-legend", MASK_NOLEGEND }, \
- { "external-legend", MASK_EXTERNAL_LEGEND }, \
- { "identify-revision", MASK_IDENTIFY_REVISION }, \
- { "warn-passed-structs", MASK_WARN_PASS_STRUCT },
+ { "standard", MASK_STANDARD, "Retain standard MXDB information" }, \
+ { "legend", -MASK_NOLEGEND, "Retain legend information" }, \
+ { "no-legend", MASK_NOLEGEND, "" }, \
+ { "external-legend", MASK_EXTERNAL_LEGEND, "Generate external legend information" }, \
+ { "identify-revision", MASK_IDENTIFY_REVISION, "Emit identifying info in .s file" }, \
+ { "warn-passed-structs", MASK_WARN_PASS_STRUCT, "Warn when a function arg is a structure" },
#undef DWARF_DEBUGGING_INFO
#define DWARF_DEBUGGING_INFO
{ "no-fp-ret-in-387", -MASK_FLOAT_RETURNS , "Do not return values of functions in FPU registers"}, \
{ "no-fancy-math-387", MASK_NO_FANCY_MATH_387, "Do not generate sin, cos, sqrt for 387" }, \
{ "fancy-math-387", -MASK_NO_FANCY_MATH_387, "Generate sin, cos, sqrt for FPU"}, \
- { "omit-leaf-frame-pointer", MASK_OMIT_LEAF_FRAME_POINTER }, \
- { "no-omit-leaf-frame-pointer",-MASK_OMIT_LEAF_FRAME_POINTER }, \
+ { "omit-leaf-frame-pointer", MASK_OMIT_LEAF_FRAME_POINTER, "Omit the frame pointer in leaf functions" }, \
+ { "no-omit-leaf-frame-pointer",-MASK_OMIT_LEAF_FRAME_POINTER, "" }, \
{ "no-wide-multiply", MASK_NO_WIDE_MULTIPLY, "multiplies of 32 bits constrained to 32 bits" }, \
{ "wide-multiply", -MASK_NO_WIDE_MULTIPLY, "multiplies of 32 bits are 64 bits" }, \
- { "schedule-prologue", MASK_SCHEDULE_PROLOGUE }, \
- { "no-schedule-prologue", -MASK_SCHEDULE_PROLOGUE }, \
- { "debug-addr", MASK_DEBUG_ADDR }, \
- { "no-debug-addr", -MASK_DEBUG_ADDR }, \
- { "move", -MASK_NO_MOVE }, \
- { "no-move", MASK_NO_MOVE }, \
- { "debug-arg", MASK_DEBUG_ARG }, \
- { "no-debug-arg", -MASK_DEBUG_ARG }, \
- { "stack-arg-probe", MASK_STACK_PROBE }, \
- { "no-stack-arg-probe", -MASK_STACK_PROBE }, \
- { "windows", 0 }, \
- { "dll", 0 }, \
+ { "schedule-prologue", MASK_SCHEDULE_PROLOGUE, "Schedule function prologues" }, \
+ { "no-schedule-prologue", -MASK_SCHEDULE_PROLOGUE, "" }, \
+ { "debug-addr", MASK_DEBUG_ADDR, 0 /* intentionally undoc */ }, \
+ { "no-debug-addr", -MASK_DEBUG_ADDR, 0 /* intentionally undoc */ }, \
+ { "move", -MASK_NO_MOVE, "Generate mem-mem moves" }, \
+ { "no-move", MASK_NO_MOVE, "Don't generate mem-mem moves" }, \
+ { "debug-arg", MASK_DEBUG_ARG, 0 /* intentionally undoc */ }, \
+ { "no-debug-arg", -MASK_DEBUG_ARG, 0 /* intentionally undoc */ }, \
+ { "stack-arg-probe", MASK_STACK_PROBE, "Enable stack probing" }, \
+ { "no-stack-arg-probe", -MASK_STACK_PROBE, "" }, \
+ { "windows", 0, 0 /* intentionally undoc */ }, \
+ { "dll", 0, 0 /* intentionally undoc */ }, \
SUBTARGET_SWITCHES \
- { "", MASK_SCHEDULE_PROLOGUE | TARGET_DEFAULT}}
+ { "", MASK_SCHEDULE_PROLOGUE | TARGET_DEFAULT, 0 }}
/* Which processor to schedule for. The cpu attribute defines a list that
mirrors this list, so changes to i386.md must be made at the same time. */
{ "align-loops=", &i386_align_loops_string, "Loop code aligned to this power of 2" }, \
{ "align-jumps=", &i386_align_jumps_string, "Jump targets are aligned to this power of 2" }, \
{ "align-functions=", &i386_align_funcs_string, "Function starts are aligned to this power of 2" }, \
- { "branch-cost=", &i386_branch_cost_string }, \
+ { "branch-cost=", &i386_branch_cost_string, "Branches are this expensive (1-5, arbitrary units)" }, \
SUBTARGET_OPTIONS \
}
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
- { "mcount", -MASK_NO_MCOUNT}, \
- { "no-mcount", MASK_NO_MCOUNT},
+ { "mcount", -MASK_NO_MCOUNT, "Profiling uses mcount" }, \
+ { "no-mcount", MASK_NO_MCOUNT, "" },
/* This macro generates the assembly code for function entry.
FILE is a stdio stream to output the code to.
#define MASK_HALF_PIC 010000000000 /* Mask for half-pic code */
#define MASK_HALF_PIC_DEBUG 004000000000 /* Debug flag */
#define MASK_ELF 002000000000 /* ELF not rose */
-#define MASK_NO_IDENT 001000000000 /* suppress .ident */
#define MASK_NO_UNDERSCORES 000400000000 /* suppress leading _ */
#define MASK_LARGE_ALIGN 000200000000 /* align to >word boundaries */
#define MASK_NO_MCOUNT 000100000000 /* profiling uses mcount_ptr */
#define HALF_PIC_DEBUG TARGET_DEBUG
#define TARGET_ELF (target_flags & MASK_ELF)
#define TARGET_ROSE ((target_flags & MASK_ELF) == 0)
-#define TARGET_IDENT ((target_flags & MASK_NO_IDENT) == 0)
#define TARGET_UNDERSCORES ((target_flags & MASK_NO_UNDERSCORES) == 0)
#define TARGET_LARGE_ALIGN (target_flags & MASK_LARGE_ALIGN)
#define TARGET_MCOUNT ((target_flags & MASK_NO_MCOUNT) == 0)
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
- { "half-pic", MASK_HALF_PIC}, \
- { "no-half-pic", -MASK_HALF_PIC}, \
- { "debug-half-pic", MASK_HALF_PIC_DEBUG}, \
- { "debugb", MASK_HALF_PIC_DEBUG}, \
- { "elf", MASK_ELF}, \
- { "rose", -MASK_ELF}, \
- { "ident", -MASK_NO_IDENT}, \
- { "no-ident", MASK_NO_IDENT}, \
- { "underscores", -MASK_NO_UNDERSCORES}, \
- { "no-underscores", MASK_NO_UNDERSCORES}, \
- { "large-align", MASK_LARGE_ALIGN}, \
- { "no-large-align", -MASK_LARGE_ALIGN}, \
- { "mcount", -MASK_NO_MCOUNT}, \
- { "mcount-ptr", MASK_NO_MCOUNT}, \
- { "no-mcount", MASK_NO_MCOUNT},
+ { "half-pic", MASK_HALF_PIC, "Emit half-PIC code" }, \
+ { "no-half-pic", -MASK_HALF_PIC, "" } \
+ { "debug-half-pic", MASK_HALF_PIC_DEBUG, 0 /* intentionally undoc */ }, \
+ { "debugb", MASK_HALF_PIC_DEBUG, 0 /* intentionally undoc */ }, \
+ { "elf", MASK_ELF, "Emit ELF object code" }, \
+ { "rose", -MASK_ELF, "Emit ROSE object code" }, \
+ { "underscores", -MASK_NO_UNDERSCORES, "Symbols have a leading underscore" }, \
+ { "no-underscores", MASK_NO_UNDERSCORES, "" }, \
+ { "large-align", MASK_LARGE_ALIGN, "Align to >word boundaries" }, \
+ { "no-large-align", -MASK_LARGE_ALIGN, "" }, \
+ { "mcount", -MASK_NO_MCOUNT, "Use mcount for profiling" }, \
+ { "mcount-ptr", MASK_NO_MCOUNT, "Use mcount_ptr for profiling" }, \
+ { "no-mcount", MASK_NO_MCOUNT, "" },
/* OSF/rose uses stabs, not dwarf. */
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
if (HALF_PIC_P ()) \
HALF_PIC_FINISH (STREAM); \
\
- if (TARGET_IDENT && !flag_no_ident) \
+ if (!flag_no_ident) \
{ \
char *fstart = main_input_filename; \
char *fname; \
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
- { "win32", MASK_WIN32 }, \
- { "cygwin", MASK_CYGWIN }, \
- { "windows", MASK_WINDOWS }, \
- { "dll", MASK_DLL }, \
- { "nop-fun-dllimport", MASK_NOP_FUN_DLLIMPORT }, \
- { "no-nop-fun-dllimport", MASK_NOP_FUN_DLLIMPORT },
+ { "win32", MASK_WIN32, "Use Mingw32 interface" }, \
+ { "cygwin", MASK_CYGWIN, "Use Cygwin interface" }, \
+ { "windows", MASK_WINDOWS, "Use bare Windows interface" }, \
+ { "dll", MASK_DLL, "Generate code for a DLL" }, \
+ { "nop-fun-dllimport", MASK_NOP_FUN_DLLIMPORT, "Ignore dllimport for functions" }, \
+ { "no-nop-fun-dllimport", MASK_NOP_FUN_DLLIMPORT, "" },
#undef CPP_PREDEFINES