X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gas%2Fconfig%2Fm68k-parse.y;h=11874298c0f4b6aaf203578e3d712ba42901ff13;hb=2a1ebfb221f5f52a743b7ea4c504a7318956c49c;hp=66e410f21569d0cc2b224863072a097dbbc1e4e0;hpb=cf869cce6215e2b8cc0daeccf06ace32d3798bd6;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/m68k-parse.y b/gas/config/m68k-parse.y index 66e410f215..11874298c0 100644 --- a/gas/config/m68k-parse.y +++ b/gas/config/m68k-parse.y @@ -1,6 +1,5 @@ /* m68k.y -- bison grammar for m68k operand parsing - Copyright 1995, 1996, 1997, 1998, 2001, 2003, 2004, 2005, 2007 - Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. Written by Ken Raeburn and Ian Lance Taylor, Cygnus Support This file is part of GAS, the GNU Assembler. @@ -45,13 +44,13 @@ #define yylval m68k_lval #define yychar m68k_char #define yydebug m68k_debug -#define yypact m68k_pact -#define yyr1 m68k_r1 -#define yyr2 m68k_r2 -#define yydef m68k_def -#define yychk m68k_chk -#define yypgo m68k_pgo -#define yyact m68k_act +#define yypact m68k_pact +#define yyr1 m68k_r1 +#define yyr2 m68k_r2 +#define yydef m68k_def +#define yychk m68k_chk +#define yypgo m68k_pgo +#define yyact m68k_act #define yyexca m68k_exca #define yyerrflag m68k_errflag #define yynerrs m68k_nerrs @@ -686,8 +685,7 @@ static char *strorig; *CCP. Otherwise don't change *CCP, and return 0. */ static enum m68k_register -m68k_reg_parse (ccp) - register char **ccp; +m68k_reg_parse (char **ccp) { char *start = *ccp; char c; @@ -749,14 +747,13 @@ m68k_reg_parse (ccp) /* The lexer. */ static int -yylex () +yylex (void) { enum m68k_register reg; char *s; int parens; int c = 0; int tail = 0; - char *hold; if (*str == ' ') ++str; @@ -915,11 +912,10 @@ yylex () ++s; - hold = input_line_pointer; - input_line_pointer = s; + temp_ilp (s); expression (&scale); s = input_line_pointer; - input_line_pointer = hold; + restore_ilp (); if (scale.X_op != O_constant) yyerror (_("scale specification must resolve to a number")); @@ -1044,12 +1040,12 @@ yylex () { yylval.exp.pic_reloc = pic_tls_ie; tail += 6; - } + } else if (strncmp (cp - 6, "@TLSLE", 6) == 0) { yylval.exp.pic_reloc = pic_tls_le; tail += 6; - } + } } else if (cp - 4 > str && cp[-4] == '@') { @@ -1073,11 +1069,10 @@ yylex () s[-tail] = 0; } - hold = input_line_pointer; - input_line_pointer = str; + temp_ilp (str); expression (&yylval.exp.exp); str = input_line_pointer; - input_line_pointer = hold; + restore_ilp (); if (tail != 0) { @@ -1092,9 +1087,7 @@ yylex () from outside this file. */ int -m68k_ip_op (s, oparg) - char *s; - struct m68k_op *oparg; +m68k_ip_op (char *s, struct m68k_op *oparg) { memset (oparg, 0, sizeof *oparg); oparg->error = NULL; @@ -1112,8 +1105,7 @@ m68k_ip_op (s, oparg) /* The error handler. */ static void -yyerror (s) - const char *s; +yyerror (const char *s) { op->error = s; }