* config/bfin-aux.h: Remove argument names in function
[deliverable/binutils-gdb.git] / gas / config / bfin-lex.l
index 3a0077cd9854f72eceac923e580d15b07c8a78b8..fc659499190b16dd7d4e3658c4d29b79c45cad66 100644 (file)
@@ -1,12 +1,12 @@
 /* bfin-lex.l  ADI Blackfin lexer
-   Copyright 2005
+   Copyright 2005, 2006, 2007, 2008, 2010
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
    GAS is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    GAS is distributed in the hope that it will be useful,
    02110-1301, USA.  */
 %{
 
-#include <stdlib.h>
-#include <string.h>
+#include "as.h"
 #include "bfin-defs.h"
 #include "bfin-parse.h"
-#include "as.h"
 
 static long parse_int (char **end);
 static int parse_halfreg (Register *r, int cl, char *hr);
@@ -65,8 +63,8 @@ int yylex (void);
 [sS][yY][sS][cC][fF][gG]       _REG.regno = REG_SYSCFG; return REG;
 [sS][tT][iI]                            return STI;
 [sS][sS][yY][nN][cC]                    return SSYNC;
-[sS][pP]"."[lL]                         _REG.regno = REG_SP; return HALF_REG;
-[sS][pP]"."[hH]                         _REG.regno = REG_SP | F_REG_HIGH; return HALF_REG;
+[sS][pP]"."[lL]                         _REG.regno = REG_SP; _REG.flags = F_REG_LOW; return HALF_REG;
+[sS][pP]"."[hH]                         _REG.regno = REG_SP; _REG.flags = F_REG_HIGH; return HALF_REG;
 [sS][pP]                                _REG.regno = REG_SP; return REG;
 [sS][iI][gG][nN][bB][iI][tT][sS]        return SIGNBITS;
 [sS][iI][gG][nN]                        return SIGN;
@@ -160,8 +158,8 @@ int yylex (void);
 [gG][eE]                                return GE;
 [fF][uU]                                yylval.value = M_FU; return MMOD;
 [fF][pP]         _REG.regno = REG_FP; return REG;
-[fF][pP]"."[lL]  _REG.regno = REG_FP; return HALF_REG;
-[fF][pP]"."[hH]  _REG.regno = REG_FP | F_REG_HIGH; return HALF_REG;
+[fF][pP]"."[lL]  _REG.regno = REG_FP; _REG.flags = F_REG_LOW; return HALF_REG;
+[fF][pP]"."[hH]  _REG.regno = REG_FP; _REG.flags = F_REG_HIGH; return HALF_REG;
 
 [eE][xX][tT][rR][aA][cC][tT]            return EXTRACT;
 [eE][xX][pP][aA][dD][jJ]                return EXPADJ;
@@ -217,7 +215,6 @@ int yylex (void);
 [aA][vV]0[sS] _REG.regno = S_AV0S; return STATUS_REG;
 [aA][vV]1 _REG.regno = S_AV1;  return STATUS_REG;
 [aA][vV]1[sS] _REG.regno = S_AV1S; return STATUS_REG;
-[vV] _REG.regno = S_V; return STATUS_REG;
 [vV][sS]  _REG.regno = S_VS;   return STATUS_REG;
 
 
@@ -295,7 +292,7 @@ abort                                   return ABORT;
 <KEYWORD>[iI][fF][lL][uU][sS][hH]                return IFLUSH;
 <KEYWORD>[fF][lL][uU][sS][hH][iI][nN][vV]        return FLUSHINV;
 <KEYWORD>[fF][lL][uU][sS][hH]                    return FLUSH;
-([0-9]+)|(0[xX][0-9a-fA-F]+)|([bhfodBHOFD]#[0-9a-fA-F]+)|(0.[0-9]+) {
+([0-9]+)|(0[xX][0-9a-fA-F]+)|([bhfodBHOFD]#[0-9a-fA-F]+)|(0"."[0-9]+) {
     yylval.value = parse_int (&yytext);
     return NUMBER;
   }
@@ -344,7 +341,6 @@ static long parse_int (char **end)
   int shiftvalue = 0;
   char * char_bag;
   long value = 0;
-  char c;
   char *arg = *end;
 
   while (*arg && *arg == ' ')
@@ -366,7 +362,7 @@ static long parse_int (char **end)
 
       case '0':  /* Accept different formated integers hex octal and binary. */
         {
-         c = *++arg;
+         char c = *++arg;
           arg++;
          if (c == 'x' || c == 'X') /* Hex input.  */
            fmt = 'h';
@@ -463,7 +459,7 @@ static long parse_int (char **end)
         {
           while (1)
             {
-              int c;
+              char c;
               c = *arg++;
               if (c >= '0' && c <= '9')
                 value = (value * 10) + (c - '0');
@@ -511,6 +507,7 @@ static long parse_int (char **end)
 static int parse_reg (Register *r, int cl, char *rt)
 {
   r->regno = cl | (rt[1] - '0');
+  r->flags = F_REG_NONE;
   return REG;
 }
 
@@ -526,11 +523,12 @@ static int parse_halfreg (Register *r, int cl, char *rt)
 
       case 'l':
       case 'L':
+       r->flags = F_REG_LOW;
        break;
 
       case 'h':
       case 'H':
-       r->regno |= F_REG_HIGH;
+       r->flags = F_REG_HIGH;
        break;
     }
 
This page took 0.024989 seconds and 4 git commands to generate.