arm_prog_mode = TARGET_APCS_32 ? PROG_MODE_PROG32 : PROG_MODE_PROG26;
}
-
-#define MAX_LINE 79
-
-struct asm_option
-{
- char *string;
- int *variable;
- int on_value;
-};
-
-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%s", ASM_COMMENT_START, 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;
-extern char *version_string, *language_string;
-
-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 %s", ASM_COMMENT_START, 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 (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 (arm_select) / sizeof(arm_select[0]); j++)
- if (arm_select[j].string != (char *)0)
- pos = output_option (file, arm_select[j].name, arm_select[j].string,
- pos);
-
- fputs ("\n\n", file);
-}
-
-
\f
/* Return 1 if it is possible to return using a single instruction */