Selected bits from GNU gas 2.3
Remove label parsing hack. (RCS file fixup by cgd.)
This commit is contained in:
parent
56de4ac628
commit
4c34eff417
@ -19,7 +19,7 @@
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#ifndef lint
|
||||
static char rcsid[] = "$Id: read.c,v 1.7 1994/05/25 21:05:30 phil Exp $";
|
||||
static char rcsid[] = "$Id: read.c,v 1.8 1994/05/25 21:06:13 pk Exp $";
|
||||
#endif
|
||||
|
||||
#define MASK_CHAR (0xFF) /* If your chars aren't 8 bits, you will
|
||||
@ -214,7 +214,8 @@ static const pseudo_typeS
|
||||
/* err */
|
||||
/* extend */
|
||||
{ "extern", s_ignore, 0 }, /* We treat all undef as ext */
|
||||
{ "app-file", s_app_file, 0 },
|
||||
{ "appline", s_app_line, 0 },
|
||||
{ "appfile", s_app_file, 1 },
|
||||
{ "file", s_app_file, 0 },
|
||||
{ "fill", s_fill, 0 },
|
||||
{ "float", float_cons, 'f' },
|
||||
@ -408,17 +409,6 @@ char *name;
|
||||
* [In case of pseudo-op, s->'.'.]
|
||||
* Input_line_pointer->'\0' where c was.
|
||||
*/
|
||||
if (c==' ' || c=='\t') {
|
||||
int i=1;
|
||||
while(input_line_pointer[i] != '\0' &&
|
||||
input_line_pointer[i] == ' ' &&
|
||||
input_line_pointer[i] == '\t') i++;
|
||||
if (input_line_pointer[i] == ':') {
|
||||
input_line_pointer += i;
|
||||
*input_line_pointer = '\0';
|
||||
c = ':';
|
||||
}
|
||||
}
|
||||
if (c == ':') {
|
||||
colon(s); /* user-defined label */
|
||||
* input_line_pointer ++ = ':'; /* Put ':' back for error messages' sake. */
|
||||
@ -762,13 +752,26 @@ void
|
||||
demand_empty_rest_of_line();
|
||||
}
|
||||
|
||||
void s_app_file() {
|
||||
/* Handle the .appfile pseudo-op. This is automatically generated by
|
||||
do_scrub_next_char when a preprocessor # line comment is seen with
|
||||
a file name. This default definition may be overridden by the
|
||||
object or CPU specific pseudo-ops. This function is also the
|
||||
default definition for .file; the APPFILE argument is 1 for
|
||||
.appfile, 0 for .file. */
|
||||
|
||||
void s_app_file(appfile)
|
||||
int appfile;
|
||||
{
|
||||
register char *s;
|
||||
int length;
|
||||
|
||||
/* Some assemblers tolerate immediately following '"' */
|
||||
if ((s = demand_copy_string(&length)) != 0) {
|
||||
new_logical_line(s, -1);
|
||||
/* If this is a fake .appfile, a fake newline was inserted
|
||||
* into the buffer. Passing -2 to new_logical_line tells it
|
||||
* to account for it.
|
||||
*/
|
||||
new_logical_line (s, appfile ? -2 : -1);
|
||||
demand_empty_rest_of_line();
|
||||
}
|
||||
#ifdef OBJ_COFF
|
||||
@ -776,6 +779,27 @@ void s_app_file() {
|
||||
#endif /* OBJ_COFF */
|
||||
} /* s_app_file() */
|
||||
|
||||
/* Handle the .appline pseudo-op. This is automatically generated by
|
||||
do_scrub_next_char when a preprocessor # line comment is seen.
|
||||
This default definition may be overridden by the object or CPU
|
||||
specific pseudo-ops. */
|
||||
|
||||
void
|
||||
s_app_line (ignore)
|
||||
int ignore;
|
||||
{
|
||||
int l;
|
||||
|
||||
/* The given number is that of the next line. */
|
||||
l = get_absolute_expression () - 1;
|
||||
new_logical_line ((char *) NULL, l);
|
||||
#ifdef LISTING
|
||||
if (listing)
|
||||
listing_source_line (l);
|
||||
#endif
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
void s_fill() {
|
||||
long temp_repeat;
|
||||
long temp_size;
|
||||
|
Loading…
Reference in New Issue
Block a user