"%cr0", "%cr1", "%cr2", "%cr3", "%cr4", "%cr5", "%cr6", "%cr7"
};
#endif
-
-
-\f
-/* Print the options used in the assembly file. */
-
-extern char *version_string, *language_string;
-
-struct asm_option
-{
- char *string;
- int *variable;
- int on_value;
-};
-
-#define MAX_LINE 79
-
-static int
-output_option (file, type, name, pos)
- FILE *file;
- char *type;
- char *name;
- int pos;
-{
- int type_len = strlen (type);
- int name_len = strlen (name);
-
- if (1 + type_len + name_len + pos > MAX_LINE)
- {
- fprintf (file, "\n # %s%s", type, name);
- return 3 + type_len + name_len;
- }
- fprintf (file, " %s%s", type, name);
- return pos + 1 + type_len + name_len;
-}
-
-static struct { char *name; int value; } m_options[] = TARGET_SWITCHES;
-
-void
-output_options (file, f_options, f_len, W_options, W_len)
- FILE *file;
- struct asm_option *f_options;
- int f_len;
- struct asm_option *W_options;
- int W_len;
-{
- int j;
- int flags = target_flags;
- int pos = 32767;
-
- fprintf (file, " # %s %s", language_string, version_string);
-
- if (optimize)
- {
- char opt_string[20];
- sprintf (opt_string, "%d", optimize);
- pos = output_option (file, "-O", opt_string, pos);
- }
-
- if (profile_flag)
- pos = output_option (file, "-p", "", pos);
-
- if (profile_block_flag)
- pos = output_option (file, "-a", "", pos);
-
- if (inhibit_warnings)
- pos = output_option (file, "-w", "", pos);
-
- for (j = 0; j < f_len; j++)
- {
- if (*f_options[j].variable == f_options[j].on_value)
- pos = output_option (file, "-f", f_options[j].string, pos);
- }
-
- for (j = 0; j < W_len; j++)
- {
- if (*W_options[j].variable == W_options[j].on_value)
- pos = output_option (file, "-W", W_options[j].string, pos);
- }
-
- for (j = 0; j < sizeof m_options / sizeof m_options[0]; j++)
- {
- if (m_options[j].name[0] != '\0'
- && m_options[j].value > 0
- && ((m_options[j].value & flags) == m_options[j].value))
- {
- pos = output_option (file, "-m", m_options[j].name, pos);
- flags &= ~ m_options[j].value;
- }
- }
-
- for (j = 0; j < sizeof (rs6000_select) / sizeof(rs6000_select[0]); j++)
- if (rs6000_select[j].string != (char *)0)
- pos = output_option (file, rs6000_select[j].name, rs6000_select[j].string, pos);
-
-#ifdef USING_SVR4_H
- switch (rs6000_sdata)
- {
- case SDATA_NONE: pos = output_option (file, "-msdata=", "none", pos); break;
- case SDATA_DATA: pos = output_option (file, "-msdata=", "data", pos); break;
- case SDATA_SYSV: pos = output_option (file, "-msdata=", "sysv", pos); break;
- case SDATA_EABI: pos = output_option (file, "-msdata=", "eabi", pos); break;
- }
-#endif
-
- fputs ("\n\n", file);
-}
-
\f
/* Override command line options. Mostly we process the processor
type and sometimes adjust other TARGET_ options. */