2000-08-31 Kazu Hirata <kazu@hxi.com>
* as.c: Fix formatting. * cond.c: Likewise.
This commit is contained in:
parent
6ef554e3f6
commit
76b0a8c0ed
3 changed files with 95 additions and 95 deletions
|
@ -1,6 +1,8 @@
|
|||
2000-08-31 Kazu Hirata <kazu@hxi.com>
|
||||
|
||||
* frags.c: Fix formatting.
|
||||
* as.c: Fix formatting.
|
||||
* cond.c: Likewise.
|
||||
* frags.c: Likewise.
|
||||
* macro.c: Likewise.
|
||||
|
||||
2000-08-31 Eric Christopher <echristo@cygnus.com>
|
||||
|
|
135
gas/as.c
135
gas/as.c
|
@ -17,21 +17,18 @@
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with GAS; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA. */
|
||||
02111-1307, USA. */
|
||||
|
||||
/*
|
||||
* Main program for AS; a 32-bit assembler of GNU.
|
||||
/* Main program for AS; a 32-bit assembler of GNU.
|
||||
* Understands command arguments.
|
||||
* Has a few routines that don't fit in other modules because they
|
||||
* are shared.
|
||||
*
|
||||
*
|
||||
* bugs
|
||||
*
|
||||
* : initialisers
|
||||
* Since no-one else says they will support them in future: I
|
||||
* don't support them now.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ansidecl.h"
|
||||
|
@ -63,19 +60,21 @@ static void dump_statistics PARAMS ((void));
|
|||
static void perform_an_assembly_pass PARAMS ((int argc, char **argv));
|
||||
static int macro_expr PARAMS ((const char *, int, sb *, int *));
|
||||
|
||||
int listing; /* true if a listing is wanted */
|
||||
/* True if a listing is wanted. */
|
||||
int listing;
|
||||
|
||||
static char *listing_filename = NULL; /* Name of listing file. */
|
||||
/* Name of listing file. */
|
||||
static char *listing_filename = NULL;
|
||||
|
||||
/* Type of debugging to generate. */
|
||||
|
||||
enum debug_info_type debug_type = DEBUG_NONE;
|
||||
|
||||
/* Maximum level of macro nesting. */
|
||||
|
||||
int max_macro_nest = 100;
|
||||
|
||||
char *myname; /* argv[0] */
|
||||
/* argv[0] */
|
||||
char *myname;
|
||||
#ifdef BFD_ASSEMBLER
|
||||
segT reg_section, expr_section;
|
||||
segT text_section, data_section, bss_section;
|
||||
|
@ -101,7 +100,7 @@ struct defsym_list
|
|||
|
||||
static struct defsym_list *defsyms;
|
||||
|
||||
/* Keep a record of the itbl files we read in. */
|
||||
/* Keep a record of the itbl files we read in. */
|
||||
|
||||
struct itbl_file_list
|
||||
{
|
||||
|
@ -143,7 +142,7 @@ select_emulation_mode (argc, argv)
|
|||
if (p)
|
||||
p++;
|
||||
else
|
||||
p = argv[i+1];
|
||||
p = argv[i + 1];
|
||||
|
||||
if (!p || !*p)
|
||||
as_fatal (_("missing emulation mode name"));
|
||||
|
@ -247,12 +246,12 @@ Options:\n\
|
|||
|
||||
fprintf (stream, "\
|
||||
--em=[");
|
||||
for (i = 0; i < n_emulations-1; i++)
|
||||
for (i = 0; i < n_emulations - 1; i++)
|
||||
fprintf (stream, "%s | ", emulations[i]->name);
|
||||
fprintf (stream, "%s]\n", emulations[i]->name);
|
||||
|
||||
def_em = getenv (EMULATION_ENVIRON);
|
||||
if (!def_em)
|
||||
if (!def_em)
|
||||
def_em = DEFAULT_EMULATION;
|
||||
fprintf (stream, _("\
|
||||
emulate output (default %s)\n"), def_em);
|
||||
|
@ -327,16 +326,14 @@ Options:\n\
|
|||
fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
|
||||
}
|
||||
|
||||
/*
|
||||
* Since it is easy to do here we interpret the special arg "-"
|
||||
* to mean "use stdin" and we set that argv[] pointing to "".
|
||||
* After we have munged argv[], the only things left are source file
|
||||
* name(s) and ""(s) denoting stdin. These file names are used
|
||||
* (perhaps more than once) later.
|
||||
*
|
||||
* check for new machine-dep cmdline options in
|
||||
* md_parse_option definitions in config/tc-*.c
|
||||
*/
|
||||
/* Since it is easy to do here we interpret the special arg "-"
|
||||
to mean "use stdin" and we set that argv[] pointing to "".
|
||||
After we have munged argv[], the only things left are source file
|
||||
name(s) and ""(s) denoting stdin. These file names are used
|
||||
(perhaps more than once) later.
|
||||
|
||||
check for new machine-dep cmdline options in
|
||||
md_parse_option definitions in config/tc-*.c. */
|
||||
|
||||
static void
|
||||
parse_args (pargc, pargv)
|
||||
|
@ -367,7 +364,7 @@ parse_args (pargc, pargv)
|
|||
'v',
|
||||
#endif
|
||||
'w', 'X',
|
||||
/* New option for extending instruction set (see also --itbl below) */
|
||||
/* New option for extending instruction set (see also --itbl below) */
|
||||
't', ':',
|
||||
'\0'
|
||||
};
|
||||
|
@ -428,7 +425,7 @@ parse_args (pargc, pargv)
|
|||
|
||||
/* Construct the option lists from the standard list and the target
|
||||
dependent list. Include space for an extra NULL option and
|
||||
always NULL terminate. */
|
||||
always NULL terminate. */
|
||||
shortopts = concat (std_shortopts, md_shortopts, (char *) NULL);
|
||||
longopts = (struct option *) xmalloc (sizeof (std_longopts)
|
||||
+ md_longopts_size
|
||||
|
@ -486,7 +483,7 @@ parse_args (pargc, pargv)
|
|||
print_version_id ();
|
||||
break;
|
||||
}
|
||||
/*FALLTHRU*/
|
||||
/* Fall through. */
|
||||
|
||||
case '?':
|
||||
exit (EXIT_FAILURE);
|
||||
|
@ -576,29 +573,29 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
|
|||
case OPTION_INSTTBL:
|
||||
case 't':
|
||||
{
|
||||
/* optarg is the name of the file containing the instruction
|
||||
formats, opcodes, register names, etc. */
|
||||
/* optarg is the name of the file containing the instruction
|
||||
formats, opcodes, register names, etc. */
|
||||
struct itbl_file_list *n;
|
||||
|
||||
if (optarg == NULL)
|
||||
{
|
||||
as_warn ( _("No file name following -t option\n") );
|
||||
as_warn (_("No file name following -t option\n"));
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
n = (struct itbl_file_list *) xmalloc (sizeof *n);
|
||||
n->next = itbl_files;
|
||||
n->name = optarg;
|
||||
itbl_files = n;
|
||||
|
||||
/* Parse the file and add the new instructions to our internal
|
||||
table. If multiple instruction tables are specified, the
|
||||
information from this table gets appended onto the existing
|
||||
internal table. */
|
||||
table. If multiple instruction tables are specified, the
|
||||
information from this table gets appended onto the existing
|
||||
internal table. */
|
||||
itbl_files->name = xstrdup (optarg);
|
||||
if (itbl_parse (itbl_files->name) != 0)
|
||||
{
|
||||
fprintf (stderr, _("Failed to read instruction table %s\n"),
|
||||
fprintf (stderr, _("Failed to read instruction table %s\n"),
|
||||
itbl_files->name);
|
||||
exit (EXIT_SUCCESS);
|
||||
}
|
||||
|
@ -612,7 +609,7 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
|
|||
case OPTION_GSTABS:
|
||||
debug_type = DEBUG_STABS;
|
||||
break;
|
||||
|
||||
|
||||
case OPTION_GDWARF2:
|
||||
debug_type = DEBUG_DWARF2;
|
||||
break;
|
||||
|
@ -632,22 +629,22 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
|
|||
break;
|
||||
|
||||
case OPTION_LISTING_LHS_WIDTH:
|
||||
listing_lhs_width = atoi(optarg);
|
||||
listing_lhs_width = atoi (optarg);
|
||||
if (listing_lhs_width_second < listing_lhs_width)
|
||||
listing_lhs_width_second = listing_lhs_width;
|
||||
break;
|
||||
case OPTION_LISTING_LHS_WIDTH2:
|
||||
{
|
||||
int tmp = atoi(optarg);
|
||||
int tmp = atoi (optarg);
|
||||
if (tmp > listing_lhs_width)
|
||||
listing_lhs_width_second = tmp;
|
||||
}
|
||||
break;
|
||||
case OPTION_LISTING_RHS_WIDTH:
|
||||
listing_rhs_width = atoi(optarg);
|
||||
listing_rhs_width = atoi (optarg);
|
||||
break;
|
||||
case OPTION_LISTING_CONT_LINES:
|
||||
listing_lhs_cont_lines = atoi(optarg);
|
||||
listing_lhs_cont_lines = atoi (optarg);
|
||||
break;
|
||||
|
||||
case 'M':
|
||||
|
@ -726,8 +723,8 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
|
|||
break;
|
||||
|
||||
case 'D':
|
||||
/* DEBUG is implemented: it debugs different */
|
||||
/* things from other people's assemblers. */
|
||||
/* DEBUG is implemented: it debugs different
|
||||
things from other people's assemblers. */
|
||||
flag_debug = 1;
|
||||
break;
|
||||
|
||||
|
@ -736,7 +733,7 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
|
|||
break;
|
||||
|
||||
case 'I':
|
||||
{ /* Include file directory */
|
||||
{ /* Include file directory. */
|
||||
char *temp = xstrdup (optarg);
|
||||
add_include_dir (temp);
|
||||
break;
|
||||
|
@ -750,7 +747,7 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
|
|||
break;
|
||||
|
||||
case 'X':
|
||||
/* -X means treat warnings as errors */
|
||||
/* -X means treat warnings as errors. */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -764,7 +761,7 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
|
|||
|
||||
static long start_time;
|
||||
|
||||
int
|
||||
int
|
||||
main (argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
|
@ -819,7 +816,7 @@ main (argc, argv)
|
|||
symbol_begin ();
|
||||
frag_init ();
|
||||
subsegs_begin ();
|
||||
parse_args (&argc, &argv);
|
||||
parse_args (&argc, &argv);
|
||||
read_begin ();
|
||||
input_scrub_begin ();
|
||||
expr_begin ();
|
||||
|
@ -872,7 +869,8 @@ main (argc, argv)
|
|||
|
||||
PROGRESS (1);
|
||||
|
||||
perform_an_assembly_pass (argc, argv); /* Assemble it. */
|
||||
/* Assemble it. */
|
||||
perform_an_assembly_pass (argc, argv);
|
||||
|
||||
cond_finish_check (-1);
|
||||
|
||||
|
@ -908,8 +906,8 @@ main (argc, argv)
|
|||
output_file_close (out_file_name);
|
||||
#endif
|
||||
|
||||
if (flag_fatal_warnings && had_warnings() > 0 && had_errors () == 0)
|
||||
as_bad (_("%d warnings, treating warnings as errors"), had_warnings());
|
||||
if (flag_fatal_warnings && had_warnings () > 0 && had_errors () == 0)
|
||||
as_bad (_("%d warnings, treating warnings as errors"), had_warnings ());
|
||||
|
||||
if (had_errors () > 0 && ! flag_always_generate_output)
|
||||
keep_it = 0;
|
||||
|
@ -960,19 +958,16 @@ dump_statistics ()
|
|||
#endif
|
||||
}
|
||||
|
||||
/* Here to attempt 1 pass over each input file.
|
||||
We scan argv[*] looking for filenames or exactly "" which is
|
||||
shorthand for stdin. Any argv that is NULL is not a file-name.
|
||||
We set need_pass_2 TRUE if, after this, we still have unresolved
|
||||
expressions of the form (unknown value)+-(unknown value).
|
||||
|
||||
/* perform_an_assembly_pass()
|
||||
*
|
||||
* Here to attempt 1 pass over each input file.
|
||||
* We scan argv[*] looking for filenames or exactly "" which is
|
||||
* shorthand for stdin. Any argv that is NULL is not a file-name.
|
||||
* We set need_pass_2 TRUE if, after this, we still have unresolved
|
||||
* expressions of the form (unknown value)+-(unknown value).
|
||||
*
|
||||
* Note the un*x semantics: there is only 1 logical input file, but it
|
||||
* may be a catenation of many 'physical' input files.
|
||||
*/
|
||||
static void
|
||||
Note the un*x semantics: there is only 1 logical input file, but it
|
||||
may be a catenation of many 'physical' input files. */
|
||||
|
||||
static void
|
||||
perform_an_assembly_pass (argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
|
@ -991,7 +986,7 @@ perform_an_assembly_pass (argc, argv)
|
|||
for (i = SEG_E0; i < SEG_UNKNOWN; i++)
|
||||
segment_info[i].fix_root = 0;
|
||||
}
|
||||
/* Create the three fixed ones */
|
||||
/* Create the three fixed ones. */
|
||||
{
|
||||
segT seg;
|
||||
|
||||
|
@ -1022,7 +1017,7 @@ perform_an_assembly_pass (argc, argv)
|
|||
data_section = subseg_new (DATA_SECTION_NAME, 0);
|
||||
bss_section = subseg_new (BSS_SECTION_NAME, 0);
|
||||
/* @@ FIXME -- we're setting the RELOC flag so that sections are assumed
|
||||
to have relocs, otherwise we don't find out in time. */
|
||||
to have relocs, otherwise we don't find out in time. */
|
||||
applicable = bfd_applicable_section_flags (stdoutput);
|
||||
bfd_set_section_flags (stdoutput, text_section,
|
||||
applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC
|
||||
|
@ -1049,22 +1044,24 @@ perform_an_assembly_pass (argc, argv)
|
|||
obj_begin ();
|
||||
#endif
|
||||
|
||||
argv++; /* skip argv[0] */
|
||||
argc--; /* skip argv[0] */
|
||||
/* Skip argv[0]. */
|
||||
argv++;
|
||||
argc--;
|
||||
|
||||
while (argc--)
|
||||
{
|
||||
if (*argv)
|
||||
{ /* Is it a file-name argument? */
|
||||
{ /* Is it a file-name argument? */
|
||||
PROGRESS (1);
|
||||
saw_a_file++;
|
||||
/* argv->"" if stdin desired, else->filename */
|
||||
/* argv->"" if stdin desired, else->filename */
|
||||
read_a_source_file (*argv);
|
||||
}
|
||||
argv++; /* completed that argv */
|
||||
argv++; /* completed that argv */
|
||||
}
|
||||
if (!saw_a_file)
|
||||
read_a_source_file ("");
|
||||
} /* perform_an_assembly_pass() */
|
||||
}
|
||||
|
||||
/* The interface between the macro code and gas expression handling. */
|
||||
|
||||
|
@ -1093,5 +1090,3 @@ macro_expr (emsg, idx, in, val)
|
|||
|
||||
return idx;
|
||||
}
|
||||
|
||||
/* end of as.c */
|
||||
|
|
51
gas/cond.c
51
gas/cond.c
|
@ -24,7 +24,8 @@
|
|||
|
||||
#include "obstack.h"
|
||||
|
||||
/* This is allocated to grow and shrink as .ifdef/.endif pairs are scanned. */
|
||||
/* This is allocated to grow and shrink as .ifdef/.endif pairs are
|
||||
scanned. */
|
||||
struct obstack cond_obstack;
|
||||
|
||||
struct file_line
|
||||
|
@ -59,15 +60,18 @@ static char *get_mri_string PARAMS ((int, int *));
|
|||
|
||||
static struct conditional_frame *current_cframe = NULL;
|
||||
|
||||
void
|
||||
void
|
||||
s_ifdef (arg)
|
||||
int arg;
|
||||
{
|
||||
register char *name; /* points to name of symbol */
|
||||
register symbolS *symbolP; /* Points to symbol */
|
||||
/* Points to name of symbol. */
|
||||
register char *name;
|
||||
/* Points to symbol. */
|
||||
register symbolS *symbolP;
|
||||
struct conditional_frame cframe;
|
||||
|
||||
SKIP_WHITESPACE (); /* Leading whitespace is part of operand. */
|
||||
/* Leading whitespace is part of operand. */
|
||||
SKIP_WHITESPACE ();
|
||||
name = input_line_pointer;
|
||||
|
||||
if (!is_name_beginner (*name))
|
||||
|
@ -98,9 +102,9 @@ s_ifdef (arg)
|
|||
|
||||
demand_empty_rest_of_line ();
|
||||
} /* if a valid identifyer name */
|
||||
} /* s_ifdef() */
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
s_if (arg)
|
||||
int arg;
|
||||
{
|
||||
|
@ -113,7 +117,8 @@ s_if (arg)
|
|||
if (flag_mri)
|
||||
stop = mri_comment_field (&stopc);
|
||||
|
||||
SKIP_WHITESPACE (); /* Leading whitespace is part of operand. */
|
||||
/* Leading whitespace is part of operand. */
|
||||
SKIP_WHITESPACE ();
|
||||
|
||||
if (current_cframe != NULL && current_cframe->ignoring)
|
||||
{
|
||||
|
@ -158,7 +163,7 @@ s_if (arg)
|
|||
mri_comment_end (stop, stopc);
|
||||
|
||||
demand_empty_rest_of_line ();
|
||||
} /* s_if() */
|
||||
}
|
||||
|
||||
/* Get a string for the MRI IFC or IFNC pseudo-ops. */
|
||||
|
||||
|
@ -246,7 +251,7 @@ s_ifc (arg)
|
|||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
s_elseif (arg)
|
||||
int arg;
|
||||
{
|
||||
|
@ -286,8 +291,8 @@ s_elseif (arg)
|
|||
} /* if not a dead tree */
|
||||
} /* if error else do it */
|
||||
|
||||
|
||||
SKIP_WHITESPACE (); /* Leading whitespace is part of operand. */
|
||||
/* Leading whitespace is part of operand. */
|
||||
SKIP_WHITESPACE ();
|
||||
|
||||
if (current_cframe != NULL && current_cframe->ignoring)
|
||||
{
|
||||
|
@ -301,7 +306,7 @@ s_elseif (arg)
|
|||
if (operand.X_op != O_constant)
|
||||
as_bad (_("non-constant expression in \".elseif\" statement"));
|
||||
}
|
||||
|
||||
|
||||
switch ((operatorT) arg)
|
||||
{
|
||||
case O_eq: t = operand.X_add_number == 0; break;
|
||||
|
@ -326,7 +331,7 @@ s_elseif (arg)
|
|||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
s_endif (arg)
|
||||
int arg ATTRIBUTE_UNUSED;
|
||||
{
|
||||
|
@ -356,9 +361,9 @@ s_endif (arg)
|
|||
}
|
||||
|
||||
demand_empty_rest_of_line ();
|
||||
} /* s_endif() */
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
s_else (arg)
|
||||
int arg ATTRIBUTE_UNUSED;
|
||||
{
|
||||
|
@ -404,9 +409,9 @@ s_else (arg)
|
|||
}
|
||||
|
||||
demand_empty_rest_of_line ();
|
||||
} /* s_else() */
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
s_ifeqs (arg)
|
||||
int arg;
|
||||
{
|
||||
|
@ -443,9 +448,9 @@ s_ifeqs (arg)
|
|||
listing_list (2);
|
||||
|
||||
demand_empty_rest_of_line ();
|
||||
} /* s_ifeqs() */
|
||||
}
|
||||
|
||||
int
|
||||
int
|
||||
ignore_input ()
|
||||
{
|
||||
char *s;
|
||||
|
@ -477,9 +482,9 @@ ignore_input ()
|
|||
return 0;
|
||||
|
||||
return (current_cframe != NULL) && (current_cframe->ignoring);
|
||||
} /* ignore_input() */
|
||||
}
|
||||
|
||||
static void
|
||||
static void
|
||||
initialize_cframe (cframe)
|
||||
struct conditional_frame *cframe;
|
||||
{
|
||||
|
@ -533,5 +538,3 @@ cond_exit_macro (nest)
|
|||
obstack_free (&cond_obstack, hold);
|
||||
}
|
||||
}
|
||||
|
||||
/* end of cond.c */
|
||||
|
|
Loading…
Reference in a new issue