(root)/
binutils-2.41/
gas/
config/
bfin-lex.c
       1  
       2  #line 2 "config/bfin-lex.c"
       3  
       4  #define  YY_INT_ALIGNED short int
       5  
       6  /* A lexical scanner generated by flex */
       7  
       8  #define FLEX_SCANNER
       9  #define YY_FLEX_MAJOR_VERSION 2
      10  #define YY_FLEX_MINOR_VERSION 6
      11  #define YY_FLEX_SUBMINOR_VERSION 4
      12  #if YY_FLEX_SUBMINOR_VERSION > 0
      13  #define FLEX_BETA
      14  #endif
      15  
      16  /* First, we deal with  platform-specific or compiler-specific issues. */
      17  
      18  /* begin standard C headers. */
      19  #include <stdio.h>
      20  #include <string.h>
      21  #include <errno.h>
      22  #include <stdlib.h>
      23  
      24  /* end standard C headers. */
      25  
      26  /* flex integer type definitions */
      27  
      28  #ifndef FLEXINT_H
      29  #define FLEXINT_H
      30  
      31  /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
      32  
      33  #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
      34  
      35  /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
      36   * if you want the limit (max/min) macros for int types. 
      37   */
      38  #ifndef __STDC_LIMIT_MACROS
      39  #define __STDC_LIMIT_MACROS 1
      40  #endif
      41  
      42  #include <inttypes.h>
      43  typedef int8_t flex_int8_t;
      44  typedef uint8_t flex_uint8_t;
      45  typedef int16_t flex_int16_t;
      46  typedef uint16_t flex_uint16_t;
      47  typedef int32_t flex_int32_t;
      48  typedef uint32_t flex_uint32_t;
      49  #else
      50  typedef signed char flex_int8_t;
      51  typedef short int flex_int16_t;
      52  typedef int flex_int32_t;
      53  typedef unsigned char flex_uint8_t; 
      54  typedef unsigned short int flex_uint16_t;
      55  typedef unsigned int flex_uint32_t;
      56  
      57  /* Limits of integral types. */
      58  #ifndef INT8_MIN
      59  #define INT8_MIN               (-128)
      60  #endif
      61  #ifndef INT16_MIN
      62  #define INT16_MIN              (-32767-1)
      63  #endif
      64  #ifndef INT32_MIN
      65  #define INT32_MIN              (-2147483647-1)
      66  #endif
      67  #ifndef INT8_MAX
      68  #define INT8_MAX               (127)
      69  #endif
      70  #ifndef INT16_MAX
      71  #define INT16_MAX              (32767)
      72  #endif
      73  #ifndef INT32_MAX
      74  #define INT32_MAX              (2147483647)
      75  #endif
      76  #ifndef UINT8_MAX
      77  #define UINT8_MAX              (255U)
      78  #endif
      79  #ifndef UINT16_MAX
      80  #define UINT16_MAX             (65535U)
      81  #endif
      82  #ifndef UINT32_MAX
      83  #define UINT32_MAX             (4294967295U)
      84  #endif
      85  
      86  #ifndef SIZE_MAX
      87  #define SIZE_MAX               (~(size_t)0)
      88  #endif
      89  
      90  #endif /* ! C99 */
      91  
      92  #endif /* ! FLEXINT_H */
      93  
      94  /* begin standard C++ headers. */
      95  
      96  /* TODO: this is always defined, so inline it */
      97  #define yyconst const
      98  
      99  #if defined(__GNUC__) && __GNUC__ >= 3
     100  #define yynoreturn __attribute__((__noreturn__))
     101  #else
     102  #define yynoreturn
     103  #endif
     104  
     105  /* Returned upon end-of-file. */
     106  #define YY_NULL 0
     107  
     108  /* Promotes a possibly negative, possibly signed char to an
     109   *   integer in range [0..255] for use as an array index.
     110   */
     111  #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
     112  
     113  /* Enter a start condition.  This macro really ought to take a parameter,
     114   * but we do it the disgusting crufty way forced on us by the ()-less
     115   * definition of BEGIN.
     116   */
     117  #define BEGIN (yy_start) = 1 + 2 *
     118  /* Translate the current start state into a value that can be later handed
     119   * to BEGIN to return to the state.  The YYSTATE alias is for lex
     120   * compatibility.
     121   */
     122  #define YY_START (((yy_start) - 1) / 2)
     123  #define YYSTATE YY_START
     124  /* Action number for EOF rule of a given start state. */
     125  #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
     126  /* Special action meaning "start processing a new file". */
     127  #define YY_NEW_FILE yyrestart( yyin  )
     128  #define YY_END_OF_BUFFER_CHAR 0
     129  
     130  /* Size of default input buffer. */
     131  #ifndef YY_BUF_SIZE
     132  #ifdef __ia64__
     133  /* On IA-64, the buffer size is 16k, not 8k.
     134   * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
     135   * Ditto for the __ia64__ case accordingly.
     136   */
     137  #define YY_BUF_SIZE 32768
     138  #else
     139  #define YY_BUF_SIZE 16384
     140  #endif /* __ia64__ */
     141  #endif
     142  
     143  /* The state buf must be large enough to hold one state per character in the main buffer.
     144   */
     145  #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
     146  
     147  #ifndef YY_TYPEDEF_YY_BUFFER_STATE
     148  #define YY_TYPEDEF_YY_BUFFER_STATE
     149  typedef struct yy_buffer_state *YY_BUFFER_STATE;
     150  #endif
     151  
     152  #ifndef YY_TYPEDEF_YY_SIZE_T
     153  #define YY_TYPEDEF_YY_SIZE_T
     154  typedef size_t yy_size_t;
     155  #endif
     156  
     157  extern int yyleng;
     158  
     159  extern FILE *yyin, *yyout;
     160  
     161  #define EOB_ACT_CONTINUE_SCAN 0
     162  #define EOB_ACT_END_OF_FILE 1
     163  #define EOB_ACT_LAST_MATCH 2
     164      
     165      #define YY_LESS_LINENO(n)
     166      #define YY_LINENO_REWIND_TO(ptr)
     167      
     168  /* Return all but the first "n" matched characters back to the input stream. */
     169  #define yyless(n) \
     170  	do \
     171  		{ \
     172  		/* Undo effects of setting up yytext. */ \
     173          int yyless_macro_arg = (n); \
     174          YY_LESS_LINENO(yyless_macro_arg);\
     175  		*yy_cp = (yy_hold_char); \
     176  		YY_RESTORE_YY_MORE_OFFSET \
     177  		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
     178  		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
     179  		} \
     180  	while ( 0 )
     181  #define unput(c) yyunput( c, (yytext_ptr)  )
     182  
     183  #ifndef YY_STRUCT_YY_BUFFER_STATE
     184  #define YY_STRUCT_YY_BUFFER_STATE
     185  struct yy_buffer_state
     186  	{
     187  	FILE *yy_input_file;
     188  
     189  	char *yy_ch_buf;		/* input buffer */
     190  	char *yy_buf_pos;		/* current position in input buffer */
     191  
     192  	/* Size of input buffer in bytes, not including room for EOB
     193  	 * characters.
     194  	 */
     195  	int yy_buf_size;
     196  
     197  	/* Number of characters read into yy_ch_buf, not including EOB
     198  	 * characters.
     199  	 */
     200  	int yy_n_chars;
     201  
     202  	/* Whether we "own" the buffer - i.e., we know we created it,
     203  	 * and can realloc() it to grow it, and should free() it to
     204  	 * delete it.
     205  	 */
     206  	int yy_is_our_buffer;
     207  
     208  	/* Whether this is an "interactive" input source; if so, and
     209  	 * if we're using stdio for input, then we want to use getc()
     210  	 * instead of fread(), to make sure we stop fetching input after
     211  	 * each newline.
     212  	 */
     213  	int yy_is_interactive;
     214  
     215  	/* Whether we're considered to be at the beginning of a line.
     216  	 * If so, '^' rules will be active on the next match, otherwise
     217  	 * not.
     218  	 */
     219  	int yy_at_bol;
     220  
     221      int yy_bs_lineno; /**< The line count. */
     222      int yy_bs_column; /**< The column count. */
     223  
     224  	/* Whether to try to fill the input buffer when we reach the
     225  	 * end of it.
     226  	 */
     227  	int yy_fill_buffer;
     228  
     229  	int yy_buffer_status;
     230  
     231  #define YY_BUFFER_NEW 0
     232  #define YY_BUFFER_NORMAL 1
     233  	/* When an EOF's been seen but there's still some text to process
     234  	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
     235  	 * shouldn't try reading from the input source any more.  We might
     236  	 * still have a bunch of tokens to match, though, because of
     237  	 * possible backing-up.
     238  	 *
     239  	 * When we actually see the EOF, we change the status to "new"
     240  	 * (via yyrestart()), so that the user can continue scanning by
     241  	 * just pointing yyin at a new input file.
     242  	 */
     243  #define YY_BUFFER_EOF_PENDING 2
     244  
     245  	};
     246  #endif /* !YY_STRUCT_YY_BUFFER_STATE */
     247  
     248  /* Stack of input buffers. */
     249  static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
     250  static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
     251  static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
     252  
     253  /* We provide macros for accessing buffer states in case in the
     254   * future we want to put the buffer states in a more general
     255   * "scanner state".
     256   *
     257   * Returns the top of the stack, or NULL.
     258   */
     259  #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
     260                            ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
     261                            : NULL)
     262  /* Same as previous macro, but useful when we know that the buffer stack is not
     263   * NULL or when we need an lvalue. For internal use only.
     264   */
     265  #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
     266  
     267  /* yy_hold_char holds the character lost when yytext is formed. */
     268  static char yy_hold_char;
     269  static int yy_n_chars;		/* number of characters read into yy_ch_buf */
     270  int yyleng;
     271  
     272  /* Points to current character in buffer. */
     273  static char *yy_c_buf_p = NULL;
     274  static int yy_init = 0;		/* whether we need to initialize */
     275  static int yy_start = 0;	/* start state number */
     276  
     277  /* Flag which is used to allow yywrap()'s to do buffer switches
     278   * instead of setting up a fresh yyin.  A bit of a hack ...
     279   */
     280  static int yy_did_buffer_switch_on_eof;
     281  
     282  void yyrestart ( FILE *input_file  );
     283  void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
     284  YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
     285  void yy_delete_buffer ( YY_BUFFER_STATE b  );
     286  void yy_flush_buffer ( YY_BUFFER_STATE b  );
     287  void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
     288  void yypop_buffer_state ( void );
     289  
     290  static void yyensure_buffer_stack ( void );
     291  static void yy_load_buffer_state ( void );
     292  static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
     293  #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
     294  
     295  YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
     296  YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
     297  YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
     298  
     299  void *yyalloc ( yy_size_t  );
     300  void *yyrealloc ( void *, yy_size_t  );
     301  void yyfree ( void *  );
     302  
     303  #define yy_new_buffer yy_create_buffer
     304  #define yy_set_interactive(is_interactive) \
     305  	{ \
     306  	if ( ! YY_CURRENT_BUFFER ){ \
     307          yyensure_buffer_stack (); \
     308  		YY_CURRENT_BUFFER_LVALUE =    \
     309              yy_create_buffer( yyin, YY_BUF_SIZE ); \
     310  	} \
     311  	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
     312  	}
     313  #define yy_set_bol(at_bol) \
     314  	{ \
     315  	if ( ! YY_CURRENT_BUFFER ){\
     316          yyensure_buffer_stack (); \
     317  		YY_CURRENT_BUFFER_LVALUE =    \
     318              yy_create_buffer( yyin, YY_BUF_SIZE ); \
     319  	} \
     320  	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
     321  	}
     322  #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
     323  
     324  /* Begin user sect3 */
     325  
     326  #define yywrap() (/*CONSTCOND*/1)
     327  #define YY_SKIP_YYWRAP
     328  typedef flex_uint8_t YY_CHAR;
     329  
     330  FILE *yyin = NULL, *yyout = NULL;
     331  
     332  typedef int yy_state_type;
     333  
     334  extern int yylineno;
     335  int yylineno = 1;
     336  
     337  extern char *yytext;
     338  #ifdef yytext_ptr
     339  #undef yytext_ptr
     340  #endif
     341  #define yytext_ptr yytext
     342  
     343  static yy_state_type yy_get_previous_state ( void );
     344  static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
     345  static int yy_get_next_buffer ( void );
     346  static void yynoreturn yy_fatal_error ( const char* msg  );
     347  
     348  /* Done after the current pattern has been matched and before the
     349   * corresponding action - sets up yytext.
     350   */
     351  #define YY_DO_BEFORE_ACTION \
     352  	(yytext_ptr) = yy_bp; \
     353  	yyleng = (int) (yy_cp - yy_bp); \
     354  	(yy_hold_char) = *yy_cp; \
     355  	*yy_cp = '\0'; \
     356  	(yy_c_buf_p) = yy_cp;
     357  #define YY_NUM_RULES 239
     358  #define YY_END_OF_BUFFER 240
     359  /* This struct is not used in this scanner,
     360     but its presence is necessary. */
     361  struct yy_trans_info
     362  	{
     363  	flex_int32_t yy_verify;
     364  	flex_int32_t yy_nxt;
     365  	};
     366  static const flex_int16_t yy_accept[571] =
     367      {   0,
     368          0,    0,    0,    0,    0,    0,  240,  238,  236,  236,
     369        221,  234,  220,  219,  201,  202,  217,  215,  212,  211,
     370        204,  233,  233,  203,  222,  200,  196,  238,  225,  234,
     371        147,  234,  234,  234,  234,  234,  234,  234,  234,  234,
     372        234,  234,  234,  234,   54,  234,  234,  234,   12,   10,
     373        190,  189,  188,  186,  184,  234,  234,  234,  234,  234,
     374         70,   19,   18,    8,    7,  234,  218,  216,  214,  213,
     375          0,  210,  205,    0,    0,    0,  233,  235,    0,  199,
     376        197,  223,  195,  194,  179,  176,  234,  234,  234,  149,
     377        152,  234,  234,  148,    0,  146,  234,  139,  234,  234,
     378  
     379        135,  234,  125,  234,  123,  234,  234,  234,  234,  234,
     380        234,  234,  103,  102,  101,  234,  100,   99,  234,  234,
     381         97,  234,   95,   94,   93,   91,  234,   85,  234,  234,
     382         77,   86,  234,   71,   69,  234,  234,  234,  234,   65,
     383        234,  234,  234,   59,  234,   56,  234,  234,   53,  234,
     384        234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
     385        234,   25,  234,  234,  234,  234,  234,   15,   14,  234,
     386        234,  159,  234,  234,  187,  185,  224,  234,  234,   95,
     387        234,  234,  234,  206,  208,  207,  209,    0,    0,  233,
     388        233,  198,  192,  193,  234,  234,  234,  172,  153,  154,
     389  
     390        234,  234,  163,  164,  234,  155,  157,  233,  234,  234,
     391        234,  234,  234,  234,  124,  234,  234,  119,  234,  234,
     392        234,  234,  234,  234,  234,  234,  234,  180,   98,  234,
     393        234,  234,  234,  234,  234,   80,   83,   78,   81,  234,
     394        234,  234,   79,   82,  234,   67,   66,  234,   63,   62,
     395        234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
     396         44,   39,   38,   37,   36,   35,   34,  234,   32,   31,
     397        234,  234,  234,  234,  234,  234,  234,   21,  234,  234,
     398         16,   13,  234,  234,    9,  234,  234,  234,  234,  234,
     399        234,  237,  191,  171,  169,  178,  177,  170,  168,  175,
     400  
     401        174,  234,  234,  234,  234,  234,  156,  158,  145,  234,
     402        234,  234,  234,  138,  137,  234,  127,  234,  234,  118,
     403        234,  234,  234,  234,  111,  110,  234,  234,  234,  234,
     404        234,  234,  234,  105,  104,  234,  234,  234,   96,  234,
     405         92,   89,   84,   74,  234,  234,   68,   64,  234,   61,
     406         60,   58,   57,  234,   55,   45,  234,   50,   47,   49,
     407         46,   48,  234,  234,   43,   42,  234,  234,  234,  234,
     408        234,  234,   27,   24,   23,  234,  234,  234,  234,  234,
     409        234,  229,  234,  228,  234,  234,  173,  234,  234,  234,
     410        161,  234,  234,  234,  234,  234,  234,  234,  234,  234,
     411  
     412        234,  122,  234,  117,  116,  234,  234,  234,  234,  234,
     413        234,  234,  234,  108,  234,  234,  234,  234,  234,  234,
     414        234,  234,  234,  234,    2,  183,   52,   41,   40,  234,
     415         33,  234,  234,  234,   30,  234,   22,  234,  234,  234,
     416        234,  232,  234,  234,  234,  234,  234,  234,  165,  162,
     417        144,  143,  142,  141,  140,  234,  234,  234,  234,  126,
     418        121,  234,  234,  234,  234,  234,   51,  234,  234,  107,
     419        234,  234,  234,  234,  234,   88,   87,   90,  234,  234,
     420         73,   72,  234,   29,  234,  234,  234,   20,  234,  234,
     421        151,  234,  230,  234,  227,  234,  166,  167,  234,  234,
     422  
     423        234,  234,  234,  234,  120,  234,  114,  113,  234,  234,
     424        234,    5,  106,  234,  181,  234,  234,  234,  234,  160,
     425         28,  234,  234,   17,   11,  234,  234,  150,  234,  234,
     426        134,  133,  132,  129,  234,  115,  234,    6,  109,  234,
     427        234,    3,  234,   76,    1,   26,  231,  226,  136,  130,
     428        131,  234,  234,  234,  234,  234,  128,  234,  234,    4,
     429         75,  234,  234,  112,  234,  234,  234,  234,  182,    0
     430      } ;
     431  
     432  static const YY_CHAR yy_ec[256] =
     433      {   0,
     434          1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
     435          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     436          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     437          1,    2,    4,    1,    5,    6,    7,    8,    1,    9,
     438         10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
     439         20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
     440         30,   31,    1,   32,   33,   34,   35,   36,   37,   38,
     441         39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
     442         49,   50,   51,   52,   53,   54,   55,   56,   57,   58,
     443         59,    1,   60,   61,   62,    1,   33,   34,   35,   36,
     444  
     445         37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
     446         47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
     447         57,   58,    1,   63,    1,   64,    1,    6,    6,    6,
     448          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     449          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     450          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     451          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     452          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     453          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     454          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     455  
     456          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     457          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     458          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     459          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     460          6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
     461          6,    6,    6,    6,    6
     462      } ;
     463  
     464  static const YY_CHAR yy_meta[65] =
     465      {   0,
     466          1,    1,    2,    1,    1,    3,    1,    1,    1,    1,
     467          1,    1,    1,    1,    4,    1,    5,    5,    5,    5,
     468          5,    5,    5,    5,    5,    5,    1,    1,    1,    1,
     469          1,    1,    6,    7,    6,    6,    6,    7,    3,    3,
     470          3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
     471          3,    3,    3,    3,    3,    4,    3,    3,    1,    1,
     472          1,    3,    1,    1
     473      } ;
     474  
     475  static const flex_int16_t yy_base[577] =
     476      {   0,
     477          0,    0,   27,   28,   32,   40,  666,  667,  667,  667,
     478        667,    0,  667,  635,  667,  667,  634,   67,  667,   56,
     479        652,   67,   72,  667,  667,   44,   63,  631,  667,  114,
     480        168,   67,   99,   33,   89,   70,  111,  157,  608,  209,
     481        161,   48,   98,  245,  279,  313,  101,  609,   84,  639,
     482        667,  667,  628,   90,  667,  152,   77,  616,  606,   75,
     483        235,    0,  175,    0,    0,    0,  667,  667,  667,  667,
     484        115,  667,  667,  142,  644,    0,   74,  667,    0,  624,
     485        667,  667,  667,  131,  638,  637,  120,  152,  610,    0,
     486          0,  190,  165,    0,    0,  635,  597,    0,  611,  600,
     487  
     488        594,  601,    0,  603,    0,  586,  607,  602,  592,   96,
     489        586,  169,  623,  591,    0,  584,    0,    0,  583,  597,
     490        618,  588,    0,    0,  580,    0,  585,  614,  172,  174,
     491          0,  581,  161,  205,  612,  570,  579,  577,  151,    0,
     492        576,  585,  569,  605,  584,    0,  566,  571,  601,  574,
     493        562,  577,  560,  236,  561,  577,  562,  187,  556,  566,
     494        567,  590,  547,  562,  551,  550,  547,    0,    0,  551,
     495        546,    0,  562,  577,  667,  667,  667,  542,  550,  549,
     496        546,  195,  547,  667,  667,  667,  667,  579,  148,    0,
     497          0,  667,  667,  559,  193,  195,  538,    0,  525,    0,
     498  
     499        547,  544,    0,    0,  551,  532,  531,    0,  230,  234,
     500        527,  530,  542,  534,    0,  531,  532,  271,  528,  541,
     501        196,  222,  242,  540,  522,  244,  536,  552,    0,  519,
     502        265,  531,  548,  518,  270,    0,    0,    0,    0,  517,
     503        512,  522,    0,    0,  273,    0,    0,  514,    0,    0,
     504        525,  509,  524,  275,  515,  509,  504,  284,  504,  293,
     505        318,    0,    0,    0,    0,    0,    0,  508,    0,    0,
     506        503,  501,  501,  512,  503,  283,  502,    0,  512,  494,
     507          0,    0,  483,  497,    0,  492,  505,  488,  497,  501,
     508        497,  526,  667,    0,    0,    0,    0,    0,    0,    0,
     509  
     510          0,  484,  500,  488,  495,  480,    0,    0,    0,  487,
     511        477,  492,  232,    0,  477,  294,  512,  491,  488,  289,
     512        479,  490,  471,  477,    0,    0,  487,  486,  462,  464,
     513        464,  479,  481,    0,    0,  477,  488,  461,    0,  448,
     514          0,  494,    0,  446,  454,  468,    0,    0,  468,    0,
     515          0,    0,    0,  469,    0,    0,  466,    0,    0,    0,
     516          0,    0,  483,  484,    0,    0,  455,  463,  463,  445,
     517        459,  443,  460,    0,    0,  458,  454,  440,  445,  441,
     518        448,  425,  435,    0,  448,  438,    0,  436,  338,  430,
     519          0,  431,  424,  427,  434,  425,  436,  427,  441,  427,
     520  
     521        416,    0,  420,    0,    0,  422,  425,  427,  428,  413,
     522        413,  429,  412,    0,  420,  426,  423,  414,  423,  407,
     523        315,  177,  408,  403,    0,    0,    0,    0,    0,  407,
     524          0,  413,  419,  400,    0,  409,    0,  410,  411,  414,
     525        389,  404,  404,  391,  399,  393,  417,  418,    0,    0,
     526          0,    0,    0,    0,    0,  397,  302,  402,  388,    0,
     527        416,  390,  381,  380,  385,  379,    0,  381,  391,    0,
     528        375,  375,  404,  391,  386,    0,    0,    0,  385,  375,
     529          0,    0,  384,    0,  367,  381,  365,    0,  364,  359,
     530          0,  368,    0,  378,    0,  355,    0,    0,  373,   86,
     531  
     532        362,  361,  365,  374,    0,  350,    0,    0,  368,  367,
     533        351,    0,    0,  356,    0,  335,  330,  339,  341,    0,
     534          0,  324,  324,    0,    0,  320,  333,    0,  320,  246,
     535          0,    0,    0,    0,  334,    0,  312,    0,    0,  305,
     536        309,    0,  314,    0,    0,    0,    0,    0,    0,    0,
     537          0,  309,  310,  304,  303,  292,    0,  287,  261,    0,
     538          0,  255,  241,    0,  254,  214,  186,  185,    0,  667,
     539        378,  382,  389,  179,  392,  395
     540      } ;
     541  
     542  static const flex_int16_t yy_def[577] =
     543      {   0,
     544        570,    1,    1,    1,    1,    1,  570,  570,  570,  570,
     545        570,  571,  570,  570,  570,  570,  570,  570,  570,  570,
     546        570,  572,  572,  570,  570,  570,  570,  570,  570,  571,
     547        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     548        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     549        570,  570,  570,  570,  570,  571,   38,   40,   44,  571,
     550        571,   46,  571,  571,  571,  571,  570,  570,  570,  570,
     551        570,  570,  570,  570,  573,  574,   23,  570,  575,  570,
     552        570,  570,  570,  570,  571,  571,  571,  571,  571,  571,
     553        571,  571,  571,  571,  576,  571,  571,  571,  571,  571,
     554  
     555        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     556        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     557        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     558        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     559        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     560        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     561        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     562        571,  571,  571,  571,  570,  570,  570,  571,  571,  571,
     563        571,  571,  571,  570,  570,  570,  570,  573,  573,  574,
     564        575,  570,  570,  570,  571,  571,  571,  571,  571,  571,
     565  
     566        571,  571,  571,  571,  571,  571,  571,  576,  571,  571,
     567        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     568        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     569        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     570        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     571        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     572        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     573        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     574        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     575        571,  573,  570,  571,  571,  571,  571,  571,  571,  571,
     576  
     577        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     578        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     579        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     580        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     581        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     582        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     583        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     584        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     585        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     586        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     587  
     588        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     589        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     590        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     591        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     592        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     593        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     594        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     595        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     596        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     597        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     598  
     599        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     600        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     601        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     602        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     603        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     604        571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
     605        571,  571,  571,  571,  571,  571,  571,  571,  571,    0,
     606        570,  570,  570,  570,  570,  570
     607      } ;
     608  
     609  static const flex_int16_t yy_nxt[732] =
     610      {   0,
     611          8,    9,   10,   11,    8,   12,   13,   14,   15,   16,
     612         17,   18,   19,   20,   12,   21,   22,   23,   23,   23,
     613         23,   23,   23,   23,   23,   23,   24,   25,   26,   27,
     614         28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
     615         38,   39,   12,   40,   41,   42,   43,   44,   12,   45,
     616         46,   47,   48,   49,   50,   12,   12,   12,   51,   52,
     617         53,   12,   54,   55,   56,   56,   82,   57,   57,   72,
     618         58,   58,   80,   81,   59,   59,   61,  111,   69,   60,
     619         60,   76,   62,   63,   61,   73,  570,   64,  112,   65,
     620         62,   63,   83,   95,  139,   64,   70,   65,  140,  102,
     621  
     622         78,  103,   95,   95,   78,   78,  115,  570,  530,   78,
     623        104,  570,  179,  105,  180,   95,  116,  106,   74,  176,
     624        183,  117,   79,  107,  171,  170,  184,  570,  185,   71,
     625         85,   86,  108,  531,  172,  109,  113,  166,  167,  110,
     626        168,  114,  141,  142,  169,  173,  220,   87,   88,  221,
     627        143,  118,  177,  186,  119,  187,   95,   89,  189,   90,
     628        193,  194,   91,  292,   92,  120,  197,   93,  199,  200,
     629        198,   94,   95,  121,  121,  121,  121,  135,  135,  135,
     630        135,  206,  207,  190,   96,   96,   96,   96,  236,  237,
     631        238,  239,  122,  136,  123,  178,  124,  241,  249,  113,
     632  
     633        242,  137,  250,  223,  114,  569,  138,  125,   97,  126,
     634        479,  166,  167,  480,  168,   98,  224,   99,  169,  271,
     635        225,  243,  244,  100,  101,  128,  128,  128,  128,  202,
     636        568,  290,  294,  203,  298,  272,  295,  567,  299,  204,
     637        257,  205,  129,  130,  325,  131,  326,  296,  297,  300,
     638        301,  135,  135,  135,  135,  132,  327,  328,  329,  133,
     639        134,  144,  144,  144,  144,  144,  144,  136,  310,  309,
     640        395,  566,  263,  309,  330,  137,  264,  145,  311,  146,
     641        138,  265,  396,  334,  312,  313,  266,  335,  147,  331,
     642        550,  267,  565,  551,  148,  149,  149,  149,  149,  149,
     643  
     644        149,  149,  149,  320,  339,  321,  564,  563,  339,  343,
     645        322,  150,  347,  343,  352,  151,  347,  356,  352,  500,
     646        501,  502,  374,  356,  152,  153,  375,  356,  404,  358,
     647        154,  155,  405,  359,  562,  363,  364,  561,  360,  560,
     648        398,  399,  559,  361,  558,  156,  400,  157,  362,  158,
     649        159,  557,  160,  161,  556,  447,  448,  365,  476,  555,
     650        162,  366,  449,  163,  164,  477,  554,  553,  552,  165,
     651        478,  549,  548,  547,  546,  545,  544,  543,  542,  367,
     652         66,   66,   66,   66,   66,   77,   77,  541,   77,  188,
     653        540,  188,  188,  188,  188,  188,  191,  191,  191,  208,
     654  
     655        208,  208,  539,  538,  537,  536,  535,  534,  533,  532,
     656        529,  528,  527,  526,  525,  524,  523,  522,  521,  520,
     657        519,  518,  517,  516,  515,  514,  513,  512,  511,  510,
     658        509,  508,  507,  506,  505,  504,  503,  499,  498,  497,
     659        496,  495,  494,  493,  492,  491,  490,  489,  488,  487,
     660        486,  485,  484,  483,  482,  481,  475,  474,  473,  472,
     661        471,  470,  469,  468,  467,  466,  465,  464,  463,  462,
     662        461,  460,  459,  458,  457,  456,  455,  454,  453,  452,
     663        451,  450,  446,  445,  444,  443,  420,  442,  441,  440,
     664        439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
     665  
     666        429,  428,  427,  426,  425,  424,  423,  422,  421,  420,
     667        419,  418,  417,  416,  415,  414,  413,  412,  411,  410,
     668        409,  408,  407,  406,  403,  402,  401,  397,  394,  393,
     669        392,  391,  390,  389,  388,  387,  189,  386,  385,  384,
     670        383,  382,  381,  380,  379,  378,  377,  376,  373,  372,
     671        371,  370,  369,  368,  357,  355,  354,  353,  351,  350,
     672        349,  348,  346,  345,  344,  342,  341,  340,  338,  337,
     673        336,  333,  332,  324,  323,  319,  318,  317,  316,  315,
     674        314,  308,  307,  306,  305,  304,  303,  302,  293,  189,
     675        291,  289,  288,  287,  286,  285,  284,  283,  282,  281,
     676  
     677        280,  279,  278,  277,  276,  275,  274,  273,  270,  269,
     678        268,  262,  261,  260,  259,  258,  257,  256,  255,  254,
     679        253,  252,  251,  248,  247,  246,  245,  240,  235,  234,
     680        233,  232,  231,  230,  229,  228,  227,  226,  222,  219,
     681        218,  217,  216,  215,  214,  213,  212,  211,  210,  209,
     682        201,  196,  195,  192,  189,  182,  181,  175,  174,  170,
     683        127,   84,   75,   68,   67,  570,    7,  570,  570,  570,
     684        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     685        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     686        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     687  
     688        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     689        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     690        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     691        570
     692      } ;
     693  
     694  static const flex_int16_t yy_chk[732] =
     695      {   0,
     696          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     697          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     698          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     699          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     700          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     701          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     702          1,    1,    1,    1,    3,    4,   27,    3,    4,   20,
     703          3,    4,   26,   26,    3,    4,    5,   34,   18,    3,
     704          4,   22,    5,    5,    6,   20,   23,    5,   34,    5,
     705          6,    6,   27,   35,   42,    6,   18,    6,   42,   32,
     706  
     707         22,   32,   43,   33,   22,   23,   36,   77,  500,   23,
     708         32,   77,   57,   32,   57,   37,   36,   32,   20,   54,
     709         60,   36,   22,   32,   49,   60,   71,   23,   71,   18,
     710         30,   30,   33,  500,   49,   33,   35,   47,   47,   33,
     711         47,   35,   43,   43,   47,   49,  110,   30,   30,  110,
     712         43,   37,   54,   74,   37,   74,   56,   30,  189,   30,
     713         84,   84,   30,  189,   30,   37,   87,   30,   88,   88,
     714         87,   30,   31,   38,   38,   38,   38,   41,   41,   41,
     715         41,   93,   93,  574,   31,   31,   31,   31,  129,  129,
     716        130,  130,   38,   41,   38,   56,   38,  133,  139,   56,
     717  
     718        133,   41,  139,  112,   56,  568,   41,   38,   31,   38,
     719        422,   63,   63,  422,   63,   31,  112,   31,   63,  158,
     720        112,  134,  134,   31,   31,   40,   40,   40,   40,   92,
     721        567,  182,  195,   92,  196,  158,  195,  566,  196,   92,
     722        182,   92,   40,   40,  221,   40,  221,  195,  195,  196,
     723        196,   61,   61,   61,   61,   40,  222,  222,  222,   40,
     724         40,   44,   44,   44,   44,   44,   44,   61,  210,  209,
     725        313,  565,  154,  209,  223,   61,  154,   44,  210,   44,
     726         61,  154,  313,  226,  210,  210,  154,  226,   44,  223,
     727        530,  154,  563,  530,   44,   45,   45,   45,   45,   45,
     728  
     729         45,   45,   45,  218,  231,  218,  562,  559,  231,  235,
     730        218,   45,  245,  235,  254,   45,  245,  258,  254,  457,
     731        457,  457,  276,  258,   45,   45,  276,  258,  320,  260,
     732         45,   46,  320,  260,  558,  261,  261,  556,  260,  555,
     733        316,  316,  554,  260,  553,   46,  316,   46,  260,   46,
     734         46,  552,   46,   46,  543,  389,  389,  261,  421,  541,
     735         46,  261,  389,   46,   46,  421,  540,  537,  535,   46,
     736        421,  529,  527,  526,  523,  522,  519,  518,  517,  261,
     737        571,  571,  571,  571,  571,  572,  572,  516,  572,  573,
     738        514,  573,  573,  573,  573,  573,  575,  575,  575,  576,
     739  
     740        576,  576,  511,  510,  509,  506,  504,  503,  502,  501,
     741        499,  496,  494,  492,  490,  489,  487,  486,  485,  483,
     742        480,  479,  475,  474,  473,  472,  471,  469,  468,  466,
     743        465,  464,  463,  462,  461,  459,  458,  456,  448,  447,
     744        446,  445,  444,  443,  442,  441,  440,  439,  438,  436,
     745        434,  433,  432,  430,  424,  423,  420,  419,  418,  417,
     746        416,  415,  413,  412,  411,  410,  409,  408,  407,  406,
     747        403,  401,  400,  399,  398,  397,  396,  395,  394,  393,
     748        392,  390,  388,  386,  385,  383,  382,  381,  380,  379,
     749        378,  377,  376,  373,  372,  371,  370,  369,  368,  367,
     750  
     751        364,  363,  357,  354,  349,  346,  345,  344,  342,  340,
     752        338,  337,  336,  333,  332,  331,  330,  329,  328,  327,
     753        324,  323,  322,  321,  319,  318,  317,  315,  312,  311,
     754        310,  306,  305,  304,  303,  302,  292,  291,  290,  289,
     755        288,  287,  286,  284,  283,  280,  279,  277,  275,  274,
     756        273,  272,  271,  268,  259,  257,  256,  255,  253,  252,
     757        251,  248,  242,  241,  240,  234,  233,  232,  230,  228,
     758        227,  225,  224,  220,  219,  217,  216,  214,  213,  212,
     759        211,  207,  206,  205,  202,  201,  199,  197,  194,  188,
     760        183,  181,  180,  179,  178,  174,  173,  171,  170,  167,
     761  
     762        166,  165,  164,  163,  162,  161,  160,  159,  157,  156,
     763        155,  153,  152,  151,  150,  149,  148,  147,  145,  144,
     764        143,  142,  141,  138,  137,  136,  135,  132,  128,  127,
     765        125,  122,  121,  120,  119,  116,  114,  113,  111,  109,
     766        108,  107,  106,  104,  102,  101,  100,   99,   97,   96,
     767         89,   86,   85,   80,   75,   59,   58,   53,   50,   48,
     768         39,   28,   21,   17,   14,    7,  570,  570,  570,  570,
     769        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     770        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     771        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     772  
     773        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     774        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     775        570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
     776        570
     777      } ;
     778  
     779  static yy_state_type yy_last_accepting_state;
     780  static char *yy_last_accepting_cpos;
     781  
     782  extern int yy_flex_debug;
     783  int yy_flex_debug = 0;
     784  
     785  /* The intent behind this definition is that it'll catch
     786   * any uses of REJECT which flex missed.
     787   */
     788  #define REJECT reject_used_but_not_detected
     789  #define yymore() yymore_used_but_not_detected
     790  #define YY_MORE_ADJ 0
     791  #define YY_RESTORE_YY_MORE_OFFSET
     792  char *yytext;
     793  #line 1 "./config/bfin-lex.l"
     794  /* bfin-lex.l  ADI Blackfin lexer
     795     Copyright (C) 2005-2023 Free Software Foundation, Inc.
     796  
     797     This file is part of GAS, the GNU Assembler.
     798  
     799     GAS is free software; you can redistribute it and/or modify
     800     it under the terms of the GNU General Public License as published by
     801     the Free Software Foundation; either version 3, or (at your option)
     802     any later version.
     803  
     804     GAS is distributed in the hope that it will be useful,
     805     but WITHOUT ANY WARRANTY; without even the implied warranty of
     806     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     807     GNU General Public License for more details.
     808  
     809     You should have received a copy of the GNU General Public License
     810     along with GAS; see the file COPYING.  If not, write to the Free
     811     Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
     812     02110-1301, USA.  */
     813  #line 23 "./config/bfin-lex.l"
     814  #include "bfin-defs.h"
     815  #include "config/bfin-parse.h"
     816  
     817  static long parse_int (char **end);
     818  static int parse_halfreg (Register *r, int cl, char *hr);
     819  static int parse_reg (Register *r, int type, char *rt);
     820  int yylex (void);
     821  
     822  #define _REG yylval.reg
     823  
     824  /* Flex generates static functions "input" & "unput" which are not used.  */
     825  #define YY_NO_INPUT
     826  #define YY_NO_UNPUT
     827  
     828  #line 828 "config/bfin-lex.c"
     829  /* Define Start States ... Actually we will use exclusion.
     830     If no start state is specified it should match any state
     831     and <INITIAL> would match some keyword rules only with
     832     initial.  */
     833  
     834  #line 834 "config/bfin-lex.c"
     835  
     836  #define INITIAL 0
     837  #define KEYWORD 1
     838  #define FLAGS 2
     839  
     840  #ifndef YY_NO_UNISTD_H
     841  /* Special case for "unistd.h", since it is non-ANSI. We include it way
     842   * down here because we want the user's section 1 to have been scanned first.
     843   * The user has a chance to override it with an option.
     844   */
     845  #include <unistd.h>
     846  #endif
     847  
     848  #ifndef YY_EXTRA_TYPE
     849  #define YY_EXTRA_TYPE void *
     850  #endif
     851  
     852  static int yy_init_globals ( void );
     853  
     854  /* Accessor methods to globals.
     855     These are made visible to non-reentrant scanners for convenience. */
     856  
     857  int yylex_destroy ( void );
     858  
     859  int yyget_debug ( void );
     860  
     861  void yyset_debug ( int debug_flag  );
     862  
     863  YY_EXTRA_TYPE yyget_extra ( void );
     864  
     865  void yyset_extra ( YY_EXTRA_TYPE user_defined  );
     866  
     867  FILE *yyget_in ( void );
     868  
     869  void yyset_in  ( FILE * _in_str  );
     870  
     871  FILE *yyget_out ( void );
     872  
     873  void yyset_out  ( FILE * _out_str  );
     874  
     875  			int yyget_leng ( void );
     876  
     877  char *yyget_text ( void );
     878  
     879  int yyget_lineno ( void );
     880  
     881  void yyset_lineno ( int _line_number  );
     882  
     883  /* Macros after this point can all be overridden by user definitions in
     884   * section 1.
     885   */
     886  
     887  #ifndef YY_SKIP_YYWRAP
     888  #ifdef __cplusplus
     889  extern "C" int yywrap ( void );
     890  #else
     891  extern int yywrap ( void );
     892  #endif
     893  #endif
     894  
     895  #ifndef YY_NO_UNPUT
     896      
     897      static void yyunput ( int c, char *buf_ptr  );
     898      
     899  #endif
     900  
     901  #ifndef yytext_ptr
     902  static void yy_flex_strncpy ( char *, const char *, int );
     903  #endif
     904  
     905  #ifdef YY_NEED_STRLEN
     906  static int yy_flex_strlen ( const char * );
     907  #endif
     908  
     909  #ifndef YY_NO_INPUT
     910  #ifdef __cplusplus
     911  static int yyinput ( void );
     912  #else
     913  static int input ( void );
     914  #endif
     915  
     916  #endif
     917  
     918  /* Amount of stuff to slurp up with each read. */
     919  #ifndef YY_READ_BUF_SIZE
     920  #ifdef __ia64__
     921  /* On IA-64, the buffer size is 16k, not 8k */
     922  #define YY_READ_BUF_SIZE 16384
     923  #else
     924  #define YY_READ_BUF_SIZE 8192
     925  #endif /* __ia64__ */
     926  #endif
     927  
     928  /* Copy whatever the last rule matched to the standard output. */
     929  #ifndef ECHO
     930  /* This used to be an fputs(), but since the string might contain NUL's,
     931   * we now use fwrite().
     932   */
     933  #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
     934  #endif
     935  
     936  /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
     937   * is returned in "result".
     938   */
     939  #ifndef YY_INPUT
     940  #define YY_INPUT(buf,result,max_size) \
     941  	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
     942  		{ \
     943  		int c = '*'; \
     944  		int n; \
     945  		for ( n = 0; n < max_size && \
     946  			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
     947  			buf[n] = (char) c; \
     948  		if ( c == '\n' ) \
     949  			buf[n++] = (char) c; \
     950  		if ( c == EOF && ferror( yyin ) ) \
     951  			YY_FATAL_ERROR( "input in flex scanner failed" ); \
     952  		result = n; \
     953  		} \
     954  	else \
     955  		{ \
     956  		errno=0; \
     957  		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
     958  			{ \
     959  			if( errno != EINTR) \
     960  				{ \
     961  				YY_FATAL_ERROR( "input in flex scanner failed" ); \
     962  				break; \
     963  				} \
     964  			errno=0; \
     965  			clearerr(yyin); \
     966  			} \
     967  		}\
     968  \
     969  
     970  #endif
     971  
     972  /* No semi-colon after return; correct usage is to write "yyterminate();" -
     973   * we don't want an extra ';' after the "return" because that will cause
     974   * some compilers to complain about unreachable statements.
     975   */
     976  #ifndef yyterminate
     977  #define yyterminate() return YY_NULL
     978  #endif
     979  
     980  /* Number of entries by which start-condition stack grows. */
     981  #ifndef YY_START_STACK_INCR
     982  #define YY_START_STACK_INCR 25
     983  #endif
     984  
     985  /* Report a fatal error. */
     986  #ifndef YY_FATAL_ERROR
     987  #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
     988  #endif
     989  
     990  /* end tables serialization structures and prototypes */
     991  
     992  /* Default declaration of generated scanner - a define so the user can
     993   * easily add parameters.
     994   */
     995  #ifndef YY_DECL
     996  #define YY_DECL_IS_OURS 1
     997  
     998  extern int yylex (void);
     999  
    1000  #define YY_DECL int yylex (void)
    1001  #endif /* !YY_DECL */
    1002  
    1003  /* Code executed at the beginning of each rule, after yytext and yyleng
    1004   * have been set up.
    1005   */
    1006  #ifndef YY_USER_ACTION
    1007  #define YY_USER_ACTION
    1008  #endif
    1009  
    1010  /* Code executed at the end of each rule. */
    1011  #ifndef YY_BREAK
    1012  #define YY_BREAK /*LINTED*/break;
    1013  #endif
    1014  
    1015  #define YY_RULE_SETUP \
    1016  	YY_USER_ACTION
    1017  
    1018  /** The main scanner function which does all the work.
    1019   */
    1020  YY_DECL
    1021  {
    1022  	yy_state_type yy_current_state;
    1023  	char *yy_cp, *yy_bp;
    1024  	int yy_act;
    1025      
    1026  	if ( !(yy_init) )
    1027  		{
    1028  		(yy_init) = 1;
    1029  
    1030  #ifdef YY_USER_INIT
    1031  		YY_USER_INIT;
    1032  #endif
    1033  
    1034  		if ( ! (yy_start) )
    1035  			(yy_start) = 1;	/* first start state */
    1036  
    1037  		if ( ! yyin )
    1038  			yyin = stdin;
    1039  
    1040  		if ( ! yyout )
    1041  			yyout = stdout;
    1042  
    1043  		if ( ! YY_CURRENT_BUFFER ) {
    1044  			yyensure_buffer_stack ();
    1045  			YY_CURRENT_BUFFER_LVALUE =
    1046  				yy_create_buffer( yyin, YY_BUF_SIZE );
    1047  		}
    1048  
    1049  		yy_load_buffer_state(  );
    1050  		}
    1051  
    1052  	{
    1053  #line 46 "./config/bfin-lex.l"
    1054  
    1055  #line 1055 "config/bfin-lex.c"
    1056  
    1057  	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
    1058  		{
    1059  		yy_cp = (yy_c_buf_p);
    1060  
    1061  		/* Support of yytext. */
    1062  		*yy_cp = (yy_hold_char);
    1063  
    1064  		/* yy_bp points to the position in yy_ch_buf of the start of
    1065  		 * the current run.
    1066  		 */
    1067  		yy_bp = yy_cp;
    1068  
    1069  		yy_current_state = (yy_start);
    1070  yy_match:
    1071  		do
    1072  			{
    1073  			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
    1074  			if ( yy_accept[yy_current_state] )
    1075  				{
    1076  				(yy_last_accepting_state) = yy_current_state;
    1077  				(yy_last_accepting_cpos) = yy_cp;
    1078  				}
    1079  			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    1080  				{
    1081  				yy_current_state = (int) yy_def[yy_current_state];
    1082  				if ( yy_current_state >= 571 )
    1083  					yy_c = yy_meta[yy_c];
    1084  				}
    1085  			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
    1086  			++yy_cp;
    1087  			}
    1088  		while ( yy_base[yy_current_state] != 667 );
    1089  
    1090  yy_find_action:
    1091  		yy_act = yy_accept[yy_current_state];
    1092  		if ( yy_act == 0 )
    1093  			{ /* have to back up */
    1094  			yy_cp = (yy_last_accepting_cpos);
    1095  			yy_current_state = (yy_last_accepting_state);
    1096  			yy_act = yy_accept[yy_current_state];
    1097  			}
    1098  
    1099  		YY_DO_BEFORE_ACTION;
    1100  
    1101  do_action:	/* This label is used only to access EOF actions. */
    1102  
    1103  		switch ( yy_act )
    1104  	{ /* beginning of action switch */
    1105  			case 0: /* must back up */
    1106  			/* undo the effects of YY_DO_BEFORE_ACTION */
    1107  			*yy_cp = (yy_hold_char);
    1108  			yy_cp = (yy_last_accepting_cpos);
    1109  			yy_current_state = (yy_last_accepting_state);
    1110  			goto yy_find_action;
    1111  
    1112  case 1:
    1113  YY_RULE_SETUP
    1114  #line 47 "./config/bfin-lex.l"
    1115  _REG.regno = REG_sftreset;  return REG;
    1116  	YY_BREAK
    1117  case 2:
    1118  YY_RULE_SETUP
    1119  #line 48 "./config/bfin-lex.l"
    1120  _REG.regno = REG_omode;     return REG;
    1121  	YY_BREAK
    1122  case 3:
    1123  YY_RULE_SETUP
    1124  #line 49 "./config/bfin-lex.l"
    1125  _REG.regno = REG_idle_req;  return REG;
    1126  	YY_BREAK
    1127  case 4:
    1128  YY_RULE_SETUP
    1129  #line 50 "./config/bfin-lex.l"
    1130  _REG.regno = REG_hwerrcause; return REG;
    1131  	YY_BREAK
    1132  case 5:
    1133  YY_RULE_SETUP
    1134  #line 51 "./config/bfin-lex.l"
    1135  _REG.regno = REG_excause;   return REG;
    1136  	YY_BREAK
    1137  case 6:
    1138  YY_RULE_SETUP
    1139  #line 52 "./config/bfin-lex.l"
    1140  _REG.regno = REG_emucause;  return REG;
    1141  	YY_BREAK
    1142  case 7:
    1143  YY_RULE_SETUP
    1144  #line 53 "./config/bfin-lex.l"
    1145  return Z;
    1146  	YY_BREAK
    1147  case 8:
    1148  YY_RULE_SETUP
    1149  #line 54 "./config/bfin-lex.l"
    1150  return X;
    1151  	YY_BREAK
    1152  case 9:
    1153  YY_RULE_SETUP
    1154  #line 55 "./config/bfin-lex.l"
    1155  yylval.value = M_W32; return MMOD;
    1156  	YY_BREAK
    1157  case 10:
    1158  YY_RULE_SETUP
    1159  #line 56 "./config/bfin-lex.l"
    1160  return W;
    1161  	YY_BREAK
    1162  case 11:
    1163  YY_RULE_SETUP
    1164  #line 57 "./config/bfin-lex.l"
    1165  return VIT_MAX;
    1166  	YY_BREAK
    1167  case 12:
    1168  YY_RULE_SETUP
    1169  #line 58 "./config/bfin-lex.l"
    1170  return V; /* Special: V is a statflag and a modifier.  */
    1171  	YY_BREAK
    1172  case 13:
    1173  YY_RULE_SETUP
    1174  #line 59 "./config/bfin-lex.l"
    1175  _REG.regno = REG_USP; return REG;
    1176  	YY_BREAK
    1177  case 14:
    1178  YY_RULE_SETUP
    1179  #line 60 "./config/bfin-lex.l"
    1180  return TL;
    1181  	YY_BREAK
    1182  case 15:
    1183  YY_RULE_SETUP
    1184  #line 61 "./config/bfin-lex.l"
    1185  return TH;
    1186  	YY_BREAK
    1187  case 16:
    1188  YY_RULE_SETUP
    1189  #line 62 "./config/bfin-lex.l"
    1190  yylval.value = M_TFU; return MMOD;
    1191  	YY_BREAK
    1192  case 17:
    1193  YY_RULE_SETUP
    1194  #line 63 "./config/bfin-lex.l"
    1195  return TESTSET;
    1196  	YY_BREAK
    1197  case 18:
    1198  YY_RULE_SETUP
    1199  #line 64 "./config/bfin-lex.l"
    1200  yylval.value = M_T; return MMOD;
    1201  	YY_BREAK
    1202  case 19:
    1203  YY_RULE_SETUP
    1204  #line 65 "./config/bfin-lex.l"
    1205  return S;
    1206  	YY_BREAK
    1207  case 20:
    1208  YY_RULE_SETUP
    1209  #line 66 "./config/bfin-lex.l"
    1210  _REG.regno = REG_SYSCFG; return REG;
    1211  	YY_BREAK
    1212  case 21:
    1213  YY_RULE_SETUP
    1214  #line 67 "./config/bfin-lex.l"
    1215  return STI;
    1216  	YY_BREAK
    1217  case 22:
    1218  YY_RULE_SETUP
    1219  #line 68 "./config/bfin-lex.l"
    1220  return SSYNC;
    1221  	YY_BREAK
    1222  case 23:
    1223  YY_RULE_SETUP
    1224  #line 69 "./config/bfin-lex.l"
    1225  _REG.regno = REG_SP; _REG.flags = F_REG_LOW; return HALF_REG;
    1226  	YY_BREAK
    1227  case 24:
    1228  YY_RULE_SETUP
    1229  #line 70 "./config/bfin-lex.l"
    1230  _REG.regno = REG_SP; _REG.flags = F_REG_HIGH; return HALF_REG;
    1231  	YY_BREAK
    1232  case 25:
    1233  YY_RULE_SETUP
    1234  #line 71 "./config/bfin-lex.l"
    1235  _REG.regno = REG_SP; return REG;
    1236  	YY_BREAK
    1237  case 26:
    1238  YY_RULE_SETUP
    1239  #line 72 "./config/bfin-lex.l"
    1240  return SIGNBITS;
    1241  	YY_BREAK
    1242  case 27:
    1243  YY_RULE_SETUP
    1244  #line 73 "./config/bfin-lex.l"
    1245  return SIGN;
    1246  	YY_BREAK
    1247  case 28:
    1248  YY_RULE_SETUP
    1249  #line 74 "./config/bfin-lex.l"
    1250  _REG.regno = REG_SEQSTAT; return REG;
    1251  	YY_BREAK
    1252  case 29:
    1253  YY_RULE_SETUP
    1254  #line 75 "./config/bfin-lex.l"
    1255  return SEARCH;
    1256  	YY_BREAK
    1257  case 30:
    1258  YY_RULE_SETUP
    1259  #line 76 "./config/bfin-lex.l"
    1260  return SHIFT;
    1261  	YY_BREAK
    1262  case 31:
    1263  YY_RULE_SETUP
    1264  #line 77 "./config/bfin-lex.l"
    1265  return SCO;
    1266  	YY_BREAK
    1267  case 32:
    1268  YY_RULE_SETUP
    1269  #line 79 "./config/bfin-lex.l"
    1270  return SAA;
    1271  	YY_BREAK
    1272  case 33:
    1273  YY_RULE_SETUP
    1274  #line 80 "./config/bfin-lex.l"
    1275  yylval.value = M_S2RND; return MMOD;
    1276  	YY_BREAK
    1277  case 34:
    1278  YY_RULE_SETUP
    1279  #line 81 "./config/bfin-lex.l"
    1280  return RTX;
    1281  	YY_BREAK
    1282  case 35:
    1283  YY_RULE_SETUP
    1284  #line 82 "./config/bfin-lex.l"
    1285  return RTS;
    1286  	YY_BREAK
    1287  case 36:
    1288  YY_RULE_SETUP
    1289  #line 83 "./config/bfin-lex.l"
    1290  return RTN;
    1291  	YY_BREAK
    1292  case 37:
    1293  YY_RULE_SETUP
    1294  #line 84 "./config/bfin-lex.l"
    1295  return RTI;
    1296  	YY_BREAK
    1297  case 38:
    1298  YY_RULE_SETUP
    1299  #line 85 "./config/bfin-lex.l"
    1300  return RTE;
    1301  	YY_BREAK
    1302  case 39:
    1303  YY_RULE_SETUP
    1304  #line 86 "./config/bfin-lex.l"
    1305  return ROT;
    1306  	YY_BREAK
    1307  case 40:
    1308  YY_RULE_SETUP
    1309  #line 87 "./config/bfin-lex.l"
    1310  return RND20;
    1311  	YY_BREAK
    1312  case 41:
    1313  YY_RULE_SETUP
    1314  #line 88 "./config/bfin-lex.l"
    1315  return RND12;
    1316  	YY_BREAK
    1317  case 42:
    1318  YY_RULE_SETUP
    1319  #line 89 "./config/bfin-lex.l"
    1320  return RNDL;
    1321  	YY_BREAK
    1322  case 43:
    1323  YY_RULE_SETUP
    1324  #line 90 "./config/bfin-lex.l"
    1325  return RNDH;
    1326  	YY_BREAK
    1327  case 44:
    1328  YY_RULE_SETUP
    1329  #line 91 "./config/bfin-lex.l"
    1330  return RND;
    1331  	YY_BREAK
    1332  case 45:
    1333  YY_RULE_SETUP
    1334  #line 93 "./config/bfin-lex.l"
    1335  return parse_halfreg(&yylval.reg, T_REG_R, yytext);
    1336  	YY_BREAK
    1337  case 46:
    1338  YY_RULE_SETUP
    1339  #line 95 "./config/bfin-lex.l"
    1340  _REG.regno = REG_RETS; return REG;
    1341  	YY_BREAK
    1342  case 47:
    1343  YY_RULE_SETUP
    1344  #line 96 "./config/bfin-lex.l"
    1345  _REG.regno = REG_RETI; return REG;
    1346  	YY_BREAK
    1347  case 48:
    1348  YY_RULE_SETUP
    1349  #line 97 "./config/bfin-lex.l"
    1350  _REG.regno = REG_RETX; return REG;
    1351  	YY_BREAK
    1352  case 49:
    1353  YY_RULE_SETUP
    1354  #line 98 "./config/bfin-lex.l"
    1355  _REG.regno = REG_RETN; return REG;
    1356  	YY_BREAK
    1357  case 50:
    1358  YY_RULE_SETUP
    1359  #line 99 "./config/bfin-lex.l"
    1360  _REG.regno = REG_RETE; return REG;
    1361  	YY_BREAK
    1362  case 51:
    1363  YY_RULE_SETUP
    1364  #line 100 "./config/bfin-lex.l"
    1365  _REG.regno = REG_EMUDAT; return REG;
    1366  	YY_BREAK
    1367  case 52:
    1368  YY_RULE_SETUP
    1369  #line 101 "./config/bfin-lex.l"
    1370  return RAISE;
    1371  	YY_BREAK
    1372  case 53:
    1373  YY_RULE_SETUP
    1374  #line 103 "./config/bfin-lex.l"
    1375  return parse_reg (&yylval.reg, T_REG_R, yytext);
    1376  	YY_BREAK
    1377  case 54:
    1378  YY_RULE_SETUP
    1379  #line 105 "./config/bfin-lex.l"
    1380  return R;
    1381  	YY_BREAK
    1382  case 55:
    1383  YY_RULE_SETUP
    1384  #line 106 "./config/bfin-lex.l"
    1385  return PRNT;
    1386  	YY_BREAK
    1387  case 56:
    1388  YY_RULE_SETUP
    1389  #line 107 "./config/bfin-lex.l"
    1390  return PC;
    1391  	YY_BREAK
    1392  case 57:
    1393  YY_RULE_SETUP
    1394  #line 108 "./config/bfin-lex.l"
    1395  return PACK;
    1396  	YY_BREAK
    1397  case 58:
    1398  YY_RULE_SETUP
    1399  #line 110 "./config/bfin-lex.l"
    1400  return parse_halfreg (&yylval.reg, T_REG_P, yytext);
    1401  	YY_BREAK
    1402  case 59:
    1403  YY_RULE_SETUP
    1404  #line 111 "./config/bfin-lex.l"
    1405  return parse_reg (&yylval.reg, T_REG_P, yytext);
    1406  	YY_BREAK
    1407  case 60:
    1408  YY_RULE_SETUP
    1409  #line 113 "./config/bfin-lex.l"
    1410  return OUTC;
    1411  	YY_BREAK
    1412  case 61:
    1413  YY_RULE_SETUP
    1414  #line 114 "./config/bfin-lex.l"
    1415  return ONES;
    1416  	YY_BREAK
    1417  case 62:
    1418  YY_RULE_SETUP
    1419  #line 116 "./config/bfin-lex.l"
    1420  return NOT;
    1421  	YY_BREAK
    1422  case 63:
    1423  YY_RULE_SETUP
    1424  #line 117 "./config/bfin-lex.l"
    1425  return NOP;
    1426  	YY_BREAK
    1427  case 64:
    1428  YY_RULE_SETUP
    1429  #line 118 "./config/bfin-lex.l"
    1430  return MNOP;
    1431  	YY_BREAK
    1432  case 65:
    1433  YY_RULE_SETUP
    1434  #line 119 "./config/bfin-lex.l"
    1435  return NS;
    1436  	YY_BREAK
    1437  case 66:
    1438  YY_RULE_SETUP
    1439  #line 122 "./config/bfin-lex.l"
    1440  return MIN;
    1441  	YY_BREAK
    1442  case 67:
    1443  YY_RULE_SETUP
    1444  #line 123 "./config/bfin-lex.l"
    1445  return MAX;
    1446  	YY_BREAK
    1447  case 68:
    1448  YY_RULE_SETUP
    1449  #line 125 "./config/bfin-lex.l"
    1450  return parse_halfreg (&yylval.reg, T_REG_M, yytext);
    1451  	YY_BREAK
    1452  case 69:
    1453  YY_RULE_SETUP
    1454  #line 126 "./config/bfin-lex.l"
    1455  return parse_reg (&yylval.reg, T_REG_M, yytext);
    1456  	YY_BREAK
    1457  case 70:
    1458  YY_RULE_SETUP
    1459  #line 128 "./config/bfin-lex.l"
    1460  return M;
    1461  	YY_BREAK
    1462  case 71:
    1463  YY_RULE_SETUP
    1464  #line 129 "./config/bfin-lex.l"
    1465  return LT;
    1466  	YY_BREAK
    1467  case 72:
    1468  YY_RULE_SETUP
    1469  #line 130 "./config/bfin-lex.l"
    1470  return LSHIFT;
    1471  	YY_BREAK
    1472  case 73:
    1473  YY_RULE_SETUP
    1474  #line 131 "./config/bfin-lex.l"
    1475  return LSETUP;
    1476  	YY_BREAK
    1477  case 74:
    1478  YY_RULE_SETUP
    1479  #line 132 "./config/bfin-lex.l"
    1480  return LOOP;
    1481  	YY_BREAK
    1482  case 75:
    1483  YY_RULE_SETUP
    1484  #line 133 "./config/bfin-lex.l"
    1485  return LOOP_BEGIN;
    1486  	YY_BREAK
    1487  case 76:
    1488  YY_RULE_SETUP
    1489  #line 134 "./config/bfin-lex.l"
    1490  return LOOP_END;
    1491  	YY_BREAK
    1492  case 77:
    1493  YY_RULE_SETUP
    1494  #line 136 "./config/bfin-lex.l"
    1495  return LE;
    1496  	YY_BREAK
    1497  case 78:
    1498  YY_RULE_SETUP
    1499  #line 137 "./config/bfin-lex.l"
    1500  _REG.regno = REG_LC0; return REG;
    1501  	YY_BREAK
    1502  case 79:
    1503  YY_RULE_SETUP
    1504  #line 138 "./config/bfin-lex.l"
    1505  _REG.regno = REG_LT0; return REG;
    1506  	YY_BREAK
    1507  case 80:
    1508  YY_RULE_SETUP
    1509  #line 139 "./config/bfin-lex.l"
    1510  _REG.regno = REG_LB0; return REG;
    1511  	YY_BREAK
    1512  case 81:
    1513  YY_RULE_SETUP
    1514  #line 140 "./config/bfin-lex.l"
    1515  _REG.regno = REG_LC1; return REG;
    1516  	YY_BREAK
    1517  case 82:
    1518  YY_RULE_SETUP
    1519  #line 141 "./config/bfin-lex.l"
    1520  _REG.regno = REG_LT1; return REG;
    1521  	YY_BREAK
    1522  case 83:
    1523  YY_RULE_SETUP
    1524  #line 142 "./config/bfin-lex.l"
    1525  _REG.regno = REG_LB1; return REG;
    1526  	YY_BREAK
    1527  case 84:
    1528  YY_RULE_SETUP
    1529  #line 144 "./config/bfin-lex.l"
    1530  return parse_halfreg (&yylval.reg, T_REG_L, yytext);
    1531  	YY_BREAK
    1532  case 85:
    1533  YY_RULE_SETUP
    1534  #line 145 "./config/bfin-lex.l"
    1535  return parse_reg (&yylval.reg, T_REG_L, yytext);
    1536  	YY_BREAK
    1537  case 86:
    1538  YY_RULE_SETUP
    1539  #line 146 "./config/bfin-lex.l"
    1540  return LO;
    1541  	YY_BREAK
    1542  case 87:
    1543  YY_RULE_SETUP
    1544  #line 147 "./config/bfin-lex.l"
    1545  { BEGIN 0; return JUMP_DOT_S;}
    1546  	YY_BREAK
    1547  case 88:
    1548  YY_RULE_SETUP
    1549  #line 148 "./config/bfin-lex.l"
    1550  { BEGIN 0; return JUMP_DOT_L;}
    1551  	YY_BREAK
    1552  case 89:
    1553  YY_RULE_SETUP
    1554  #line 149 "./config/bfin-lex.l"
    1555  { BEGIN 0; return JUMP;}
    1556  	YY_BREAK
    1557  case 90:
    1558  YY_RULE_SETUP
    1559  #line 150 "./config/bfin-lex.l"
    1560  { BEGIN 0; return JUMP_DOT_L; }
    1561  	YY_BREAK
    1562  case 91:
    1563  YY_RULE_SETUP
    1564  #line 151 "./config/bfin-lex.l"
    1565  yylval.value = M_IU;   return MMOD;
    1566  	YY_BREAK
    1567  case 92:
    1568  YY_RULE_SETUP
    1569  #line 152 "./config/bfin-lex.l"
    1570  yylval.value = M_ISS2; return MMOD;
    1571  	YY_BREAK
    1572  case 93:
    1573  YY_RULE_SETUP
    1574  #line 153 "./config/bfin-lex.l"
    1575  yylval.value = M_IS;   return MMOD;
    1576  	YY_BREAK
    1577  case 94:
    1578  YY_RULE_SETUP
    1579  #line 154 "./config/bfin-lex.l"
    1580  yylval.value = M_IH;   return MMOD;
    1581  	YY_BREAK
    1582  case 95:
    1583  YY_RULE_SETUP
    1584  #line 155 "./config/bfin-lex.l"
    1585  return IF;
    1586  	YY_BREAK
    1587  case 96:
    1588  YY_RULE_SETUP
    1589  #line 156 "./config/bfin-lex.l"
    1590  return parse_halfreg (&yylval.reg, T_REG_I, yytext);
    1591  	YY_BREAK
    1592  case 97:
    1593  YY_RULE_SETUP
    1594  #line 157 "./config/bfin-lex.l"
    1595  return parse_reg (&yylval.reg, T_REG_I, yytext);
    1596  	YY_BREAK
    1597  case 98:
    1598  YY_RULE_SETUP
    1599  #line 158 "./config/bfin-lex.l"
    1600  return HLT;
    1601  	YY_BREAK
    1602  case 99:
    1603  YY_RULE_SETUP
    1604  #line 159 "./config/bfin-lex.l"
    1605  return HI;
    1606  	YY_BREAK
    1607  case 100:
    1608  YY_RULE_SETUP
    1609  #line 160 "./config/bfin-lex.l"
    1610  return GT;
    1611  	YY_BREAK
    1612  case 101:
    1613  YY_RULE_SETUP
    1614  #line 161 "./config/bfin-lex.l"
    1615  return GE;
    1616  	YY_BREAK
    1617  case 102:
    1618  YY_RULE_SETUP
    1619  #line 162 "./config/bfin-lex.l"
    1620  yylval.value = M_FU; return MMOD;
    1621  	YY_BREAK
    1622  case 103:
    1623  YY_RULE_SETUP
    1624  #line 163 "./config/bfin-lex.l"
    1625  _REG.regno = REG_FP; return REG;
    1626  	YY_BREAK
    1627  case 104:
    1628  YY_RULE_SETUP
    1629  #line 164 "./config/bfin-lex.l"
    1630  _REG.regno = REG_FP; _REG.flags = F_REG_LOW; return HALF_REG;
    1631  	YY_BREAK
    1632  case 105:
    1633  YY_RULE_SETUP
    1634  #line 165 "./config/bfin-lex.l"
    1635  _REG.regno = REG_FP; _REG.flags = F_REG_HIGH; return HALF_REG;
    1636  	YY_BREAK
    1637  case 106:
    1638  YY_RULE_SETUP
    1639  #line 167 "./config/bfin-lex.l"
    1640  return EXTRACT;
    1641  	YY_BREAK
    1642  case 107:
    1643  YY_RULE_SETUP
    1644  #line 168 "./config/bfin-lex.l"
    1645  return EXPADJ;
    1646  	YY_BREAK
    1647  case 108:
    1648  YY_RULE_SETUP
    1649  #line 169 "./config/bfin-lex.l"
    1650  return EXCPT;
    1651  	YY_BREAK
    1652  case 109:
    1653  YY_RULE_SETUP
    1654  #line 170 "./config/bfin-lex.l"
    1655  return EMUEXCPT;
    1656  	YY_BREAK
    1657  case 110:
    1658  YY_RULE_SETUP
    1659  #line 171 "./config/bfin-lex.l"
    1660  return DIVS;
    1661  	YY_BREAK
    1662  case 111:
    1663  YY_RULE_SETUP
    1664  #line 172 "./config/bfin-lex.l"
    1665  return DIVQ;
    1666  	YY_BREAK
    1667  case 112:
    1668  YY_RULE_SETUP
    1669  #line 173 "./config/bfin-lex.l"
    1670  return DISALGNEXCPT;
    1671  	YY_BREAK
    1672  case 113:
    1673  YY_RULE_SETUP
    1674  #line 174 "./config/bfin-lex.l"
    1675  return DEPOSIT;
    1676  	YY_BREAK
    1677  case 114:
    1678  YY_RULE_SETUP
    1679  #line 175 "./config/bfin-lex.l"
    1680  return DBGHALT;
    1681  	YY_BREAK
    1682  case 115:
    1683  YY_RULE_SETUP
    1684  #line 176 "./config/bfin-lex.l"
    1685  return DBGCMPLX;
    1686  	YY_BREAK
    1687  case 116:
    1688  YY_RULE_SETUP
    1689  #line 177 "./config/bfin-lex.l"
    1690  return DBGAL;
    1691  	YY_BREAK
    1692  case 117:
    1693  YY_RULE_SETUP
    1694  #line 178 "./config/bfin-lex.l"
    1695  return DBGAH;
    1696  	YY_BREAK
    1697  case 118:
    1698  YY_RULE_SETUP
    1699  #line 179 "./config/bfin-lex.l"
    1700  return DBGA;
    1701  	YY_BREAK
    1702  case 119:
    1703  YY_RULE_SETUP
    1704  #line 180 "./config/bfin-lex.l"
    1705  return DBG;
    1706  	YY_BREAK
    1707  case 120:
    1708  YY_RULE_SETUP
    1709  #line 181 "./config/bfin-lex.l"
    1710  { _REG.regno = REG_CYCLES2; return REG; }
    1711  	YY_BREAK
    1712  case 121:
    1713  YY_RULE_SETUP
    1714  #line 182 "./config/bfin-lex.l"
    1715  { _REG.regno = REG_CYCLES; return REG; }
    1716  	YY_BREAK
    1717  case 122:
    1718  YY_RULE_SETUP
    1719  #line 183 "./config/bfin-lex.l"
    1720  return CSYNC;
    1721  	YY_BREAK
    1722  case 123:
    1723  YY_RULE_SETUP
    1724  #line 184 "./config/bfin-lex.l"
    1725  return CO;
    1726  	YY_BREAK
    1727  case 124:
    1728  YY_RULE_SETUP
    1729  #line 185 "./config/bfin-lex.l"
    1730  return CLI;
    1731  	YY_BREAK
    1732  case 125:
    1733  YY_RULE_SETUP
    1734  #line 187 "./config/bfin-lex.l"
    1735  _REG.regno = REG_CC; return CCREG;
    1736  	YY_BREAK
    1737  case 126:
    1738  YY_RULE_SETUP
    1739  #line 188 "./config/bfin-lex.l"
    1740  { BEGIN 0; return CALL;}
    1741  	YY_BREAK
    1742  case 127:
    1743  YY_RULE_SETUP
    1744  #line 189 "./config/bfin-lex.l"
    1745  { BEGIN 0; return CALL;}
    1746  	YY_BREAK
    1747  case 128:
    1748  YY_RULE_SETUP
    1749  #line 190 "./config/bfin-lex.l"
    1750  return BYTEUNPACK;
    1751  	YY_BREAK
    1752  case 129:
    1753  YY_RULE_SETUP
    1754  #line 191 "./config/bfin-lex.l"
    1755  return BYTEPACK;
    1756  	YY_BREAK
    1757  case 130:
    1758  YY_RULE_SETUP
    1759  #line 192 "./config/bfin-lex.l"
    1760  return BYTEOP16M;
    1761  	YY_BREAK
    1762  case 131:
    1763  YY_RULE_SETUP
    1764  #line 193 "./config/bfin-lex.l"
    1765  return BYTEOP16P;
    1766  	YY_BREAK
    1767  case 132:
    1768  YY_RULE_SETUP
    1769  #line 194 "./config/bfin-lex.l"
    1770  return BYTEOP3P;
    1771  	YY_BREAK
    1772  case 133:
    1773  YY_RULE_SETUP
    1774  #line 195 "./config/bfin-lex.l"
    1775  return BYTEOP2P;
    1776  	YY_BREAK
    1777  case 134:
    1778  YY_RULE_SETUP
    1779  #line 196 "./config/bfin-lex.l"
    1780  return BYTEOP1P;
    1781  	YY_BREAK
    1782  case 135:
    1783  YY_RULE_SETUP
    1784  #line 197 "./config/bfin-lex.l"
    1785  return BY;
    1786  	YY_BREAK
    1787  case 136:
    1788  YY_RULE_SETUP
    1789  #line 198 "./config/bfin-lex.l"
    1790  return BXORSHIFT;
    1791  	YY_BREAK
    1792  case 137:
    1793  YY_RULE_SETUP
    1794  #line 199 "./config/bfin-lex.l"
    1795  return BXOR;
    1796  	YY_BREAK
    1797  case 138:
    1798  YY_RULE_SETUP
    1799  #line 201 "./config/bfin-lex.l"
    1800  return BREV;
    1801  	YY_BREAK
    1802  case 139:
    1803  YY_RULE_SETUP
    1804  #line 202 "./config/bfin-lex.l"
    1805  return BP;
    1806  	YY_BREAK
    1807  case 140:
    1808  YY_RULE_SETUP
    1809  #line 203 "./config/bfin-lex.l"
    1810  return BITTST;
    1811  	YY_BREAK
    1812  case 141:
    1813  YY_RULE_SETUP
    1814  #line 204 "./config/bfin-lex.l"
    1815  return BITTGL;
    1816  	YY_BREAK
    1817  case 142:
    1818  YY_RULE_SETUP
    1819  #line 205 "./config/bfin-lex.l"
    1820  return BITSET;
    1821  	YY_BREAK
    1822  case 143:
    1823  YY_RULE_SETUP
    1824  #line 206 "./config/bfin-lex.l"
    1825  return BITMUX;
    1826  	YY_BREAK
    1827  case 144:
    1828  YY_RULE_SETUP
    1829  #line 207 "./config/bfin-lex.l"
    1830  return BITCLR;
    1831  	YY_BREAK
    1832  case 145:
    1833  YY_RULE_SETUP
    1834  #line 208 "./config/bfin-lex.l"
    1835  return parse_halfreg (&yylval.reg, T_REG_B, yytext);
    1836  	YY_BREAK
    1837  case 146:
    1838  YY_RULE_SETUP
    1839  #line 209 "./config/bfin-lex.l"
    1840  return parse_reg (&yylval.reg, T_REG_B, yytext);
    1841  	YY_BREAK
    1842  case 147:
    1843  YY_RULE_SETUP
    1844  #line 210 "./config/bfin-lex.l"
    1845  return B;
    1846  	YY_BREAK
    1847  case 148:
    1848  YY_RULE_SETUP
    1849  #line 211 "./config/bfin-lex.l"
    1850  _REG.regno = S_AZ;   return STATUS_REG;
    1851  	YY_BREAK
    1852  case 149:
    1853  YY_RULE_SETUP
    1854  #line 212 "./config/bfin-lex.l"
    1855  _REG.regno = S_AN;   return STATUS_REG;
    1856  	YY_BREAK
    1857  case 150:
    1858  YY_RULE_SETUP
    1859  #line 213 "./config/bfin-lex.l"
    1860  _REG.regno = S_AC0_COPY; return STATUS_REG;
    1861  	YY_BREAK
    1862  case 151:
    1863  YY_RULE_SETUP
    1864  #line 214 "./config/bfin-lex.l"
    1865  _REG.regno = S_V_COPY;   return STATUS_REG;
    1866  	YY_BREAK
    1867  case 152:
    1868  YY_RULE_SETUP
    1869  #line 215 "./config/bfin-lex.l"
    1870  _REG.regno = S_AQ;   return STATUS_REG;
    1871  	YY_BREAK
    1872  case 153:
    1873  YY_RULE_SETUP
    1874  #line 216 "./config/bfin-lex.l"
    1875  _REG.regno = S_AC0;  return STATUS_REG;
    1876  	YY_BREAK
    1877  case 154:
    1878  YY_RULE_SETUP
    1879  #line 217 "./config/bfin-lex.l"
    1880  _REG.regno = S_AC1;  return STATUS_REG;
    1881  	YY_BREAK
    1882  case 155:
    1883  YY_RULE_SETUP
    1884  #line 218 "./config/bfin-lex.l"
    1885  _REG.regno = S_AV0;  return STATUS_REG;
    1886  	YY_BREAK
    1887  case 156:
    1888  YY_RULE_SETUP
    1889  #line 219 "./config/bfin-lex.l"
    1890  _REG.regno = S_AV0S; return STATUS_REG;
    1891  	YY_BREAK
    1892  case 157:
    1893  YY_RULE_SETUP
    1894  #line 220 "./config/bfin-lex.l"
    1895  _REG.regno = S_AV1;  return STATUS_REG;
    1896  	YY_BREAK
    1897  case 158:
    1898  YY_RULE_SETUP
    1899  #line 221 "./config/bfin-lex.l"
    1900  _REG.regno = S_AV1S; return STATUS_REG;
    1901  	YY_BREAK
    1902  case 159:
    1903  YY_RULE_SETUP
    1904  #line 222 "./config/bfin-lex.l"
    1905  _REG.regno = S_VS;   return STATUS_REG;
    1906  	YY_BREAK
    1907  case 160:
    1908  YY_RULE_SETUP
    1909  #line 223 "./config/bfin-lex.l"
    1910  _REG.regno = S_RND_MOD; return STATUS_REG;
    1911  	YY_BREAK
    1912  case 161:
    1913  YY_RULE_SETUP
    1914  #line 226 "./config/bfin-lex.l"
    1915  _REG.regno = REG_ASTAT; return REG;
    1916  	YY_BREAK
    1917  case 162:
    1918  YY_RULE_SETUP
    1919  #line 227 "./config/bfin-lex.l"
    1920  return ASHIFT;
    1921  	YY_BREAK
    1922  case 163:
    1923  YY_RULE_SETUP
    1924  #line 228 "./config/bfin-lex.l"
    1925  return ASL;
    1926  	YY_BREAK
    1927  case 164:
    1928  YY_RULE_SETUP
    1929  #line 229 "./config/bfin-lex.l"
    1930  return ASR;
    1931  	YY_BREAK
    1932  case 165:
    1933  YY_RULE_SETUP
    1934  #line 230 "./config/bfin-lex.l"
    1935  return ALIGN8;
    1936  	YY_BREAK
    1937  case 166:
    1938  YY_RULE_SETUP
    1939  #line 231 "./config/bfin-lex.l"
    1940  return ALIGN16;
    1941  	YY_BREAK
    1942  case 167:
    1943  YY_RULE_SETUP
    1944  #line 232 "./config/bfin-lex.l"
    1945  return ALIGN24;
    1946  	YY_BREAK
    1947  case 168:
    1948  YY_RULE_SETUP
    1949  #line 233 "./config/bfin-lex.l"
    1950  return A_ONE_DOT_L;
    1951  	YY_BREAK
    1952  case 169:
    1953  YY_RULE_SETUP
    1954  #line 234 "./config/bfin-lex.l"
    1955  return A_ZERO_DOT_L;
    1956  	YY_BREAK
    1957  case 170:
    1958  YY_RULE_SETUP
    1959  #line 235 "./config/bfin-lex.l"
    1960  return A_ONE_DOT_H;
    1961  	YY_BREAK
    1962  case 171:
    1963  YY_RULE_SETUP
    1964  #line 236 "./config/bfin-lex.l"
    1965  return A_ZERO_DOT_H;
    1966  	YY_BREAK
    1967  case 172:
    1968  YY_RULE_SETUP
    1969  #line 237 "./config/bfin-lex.l"
    1970  return ABS;
    1971  	YY_BREAK
    1972  case 173:
    1973  YY_RULE_SETUP
    1974  #line 238 "./config/bfin-lex.l"
    1975  return ABORT;
    1976  	YY_BREAK
    1977  case 174:
    1978  YY_RULE_SETUP
    1979  #line 239 "./config/bfin-lex.l"
    1980  _REG.regno = REG_A1x; return REG;
    1981  	YY_BREAK
    1982  case 175:
    1983  YY_RULE_SETUP
    1984  #line 240 "./config/bfin-lex.l"
    1985  _REG.regno = REG_A1w; return REG;
    1986  	YY_BREAK
    1987  case 176:
    1988  YY_RULE_SETUP
    1989  #line 241 "./config/bfin-lex.l"
    1990  _REG.regno = REG_A1;  return REG_A_DOUBLE_ONE;
    1991  	YY_BREAK
    1992  case 177:
    1993  YY_RULE_SETUP
    1994  #line 242 "./config/bfin-lex.l"
    1995  _REG.regno = REG_A0x; return REG;
    1996  	YY_BREAK
    1997  case 178:
    1998  YY_RULE_SETUP
    1999  #line 243 "./config/bfin-lex.l"
    2000  _REG.regno = REG_A0w; return REG;
    2001  	YY_BREAK
    2002  case 179:
    2003  YY_RULE_SETUP
    2004  #line 244 "./config/bfin-lex.l"
    2005  _REG.regno = REG_A0;  return REG_A_DOUBLE_ZERO;
    2006  	YY_BREAK
    2007  case 180:
    2008  YY_RULE_SETUP
    2009  #line 245 "./config/bfin-lex.l"
    2010  return GOT;
    2011  	YY_BREAK
    2012  case 181:
    2013  YY_RULE_SETUP
    2014  #line 246 "./config/bfin-lex.l"
    2015  return GOT17M4;
    2016  	YY_BREAK
    2017  case 182:
    2018  YY_RULE_SETUP
    2019  #line 247 "./config/bfin-lex.l"
    2020  return FUNCDESC_GOT17M4;
    2021  	YY_BREAK
    2022  case 183:
    2023  YY_RULE_SETUP
    2024  #line 248 "./config/bfin-lex.l"
    2025  return PLTPC;
    2026  	YY_BREAK
    2027  case 184:
    2028  YY_RULE_SETUP
    2029  #line 251 "./config/bfin-lex.l"
    2030  return TILDA;
    2031  	YY_BREAK
    2032  case 185:
    2033  YY_RULE_SETUP
    2034  #line 252 "./config/bfin-lex.l"
    2035  return _BAR_ASSIGN;
    2036  	YY_BREAK
    2037  case 186:
    2038  YY_RULE_SETUP
    2039  #line 253 "./config/bfin-lex.l"
    2040  return BAR;
    2041  	YY_BREAK
    2042  case 187:
    2043  YY_RULE_SETUP
    2044  #line 254 "./config/bfin-lex.l"
    2045  return _CARET_ASSIGN;
    2046  	YY_BREAK
    2047  case 188:
    2048  YY_RULE_SETUP
    2049  #line 255 "./config/bfin-lex.l"
    2050  return CARET;
    2051  	YY_BREAK
    2052  case 189:
    2053  YY_RULE_SETUP
    2054  #line 256 "./config/bfin-lex.l"
    2055  return RBRACK;
    2056  	YY_BREAK
    2057  case 190:
    2058  YY_RULE_SETUP
    2059  #line 257 "./config/bfin-lex.l"
    2060  return LBRACK;
    2061  	YY_BREAK
    2062  case 191:
    2063  YY_RULE_SETUP
    2064  #line 258 "./config/bfin-lex.l"
    2065  return _GREATER_GREATER_GREATER_THAN_ASSIGN;
    2066  	YY_BREAK
    2067  case 192:
    2068  YY_RULE_SETUP
    2069  #line 259 "./config/bfin-lex.l"
    2070  return _GREATER_GREATER_ASSIGN;
    2071  	YY_BREAK
    2072  case 193:
    2073  YY_RULE_SETUP
    2074  #line 260 "./config/bfin-lex.l"
    2075  return _GREATER_GREATER_GREATER;
    2076  	YY_BREAK
    2077  case 194:
    2078  YY_RULE_SETUP
    2079  #line 261 "./config/bfin-lex.l"
    2080  return GREATER_GREATER;
    2081  	YY_BREAK
    2082  case 195:
    2083  YY_RULE_SETUP
    2084  #line 262 "./config/bfin-lex.l"
    2085  return _ASSIGN_ASSIGN;
    2086  	YY_BREAK
    2087  case 196:
    2088  YY_RULE_SETUP
    2089  #line 263 "./config/bfin-lex.l"
    2090  return ASSIGN;
    2091  	YY_BREAK
    2092  case 197:
    2093  YY_RULE_SETUP
    2094  #line 264 "./config/bfin-lex.l"
    2095  return _LESS_THAN_ASSIGN;
    2096  	YY_BREAK
    2097  case 198:
    2098  YY_RULE_SETUP
    2099  #line 265 "./config/bfin-lex.l"
    2100  return _LESS_LESS_ASSIGN;
    2101  	YY_BREAK
    2102  case 199:
    2103  YY_RULE_SETUP
    2104  #line 266 "./config/bfin-lex.l"
    2105  return LESS_LESS;
    2106  	YY_BREAK
    2107  case 200:
    2108  YY_RULE_SETUP
    2109  #line 267 "./config/bfin-lex.l"
    2110  return LESS_THAN;
    2111  	YY_BREAK
    2112  case 201:
    2113  YY_RULE_SETUP
    2114  #line 268 "./config/bfin-lex.l"
    2115  BEGIN(FLAGS); return LPAREN;
    2116  	YY_BREAK
    2117  case 202:
    2118  YY_RULE_SETUP
    2119  #line 269 "./config/bfin-lex.l"
    2120  BEGIN(INITIAL); return RPAREN;
    2121  	YY_BREAK
    2122  case 203:
    2123  YY_RULE_SETUP
    2124  #line 270 "./config/bfin-lex.l"
    2125  return COLON;
    2126  	YY_BREAK
    2127  case 204:
    2128  YY_RULE_SETUP
    2129  #line 271 "./config/bfin-lex.l"
    2130  return SLASH;
    2131  	YY_BREAK
    2132  case 205:
    2133  YY_RULE_SETUP
    2134  #line 272 "./config/bfin-lex.l"
    2135  return _MINUS_ASSIGN;
    2136  	YY_BREAK
    2137  case 206:
    2138  YY_RULE_SETUP
    2139  #line 273 "./config/bfin-lex.l"
    2140  return _PLUS_BAR_PLUS;
    2141  	YY_BREAK
    2142  case 207:
    2143  YY_RULE_SETUP
    2144  #line 274 "./config/bfin-lex.l"
    2145  return _MINUS_BAR_PLUS;
    2146  	YY_BREAK
    2147  case 208:
    2148  YY_RULE_SETUP
    2149  #line 275 "./config/bfin-lex.l"
    2150  return _PLUS_BAR_MINUS;
    2151  	YY_BREAK
    2152  case 209:
    2153  YY_RULE_SETUP
    2154  #line 276 "./config/bfin-lex.l"
    2155  return _MINUS_BAR_MINUS;
    2156  	YY_BREAK
    2157  case 210:
    2158  YY_RULE_SETUP
    2159  #line 277 "./config/bfin-lex.l"
    2160  return _MINUS_MINUS;
    2161  	YY_BREAK
    2162  case 211:
    2163  YY_RULE_SETUP
    2164  #line 278 "./config/bfin-lex.l"
    2165  return MINUS;
    2166  	YY_BREAK
    2167  case 212:
    2168  YY_RULE_SETUP
    2169  #line 279 "./config/bfin-lex.l"
    2170  return COMMA;
    2171  	YY_BREAK
    2172  case 213:
    2173  YY_RULE_SETUP
    2174  #line 280 "./config/bfin-lex.l"
    2175  return _PLUS_ASSIGN;
    2176  	YY_BREAK
    2177  case 214:
    2178  YY_RULE_SETUP
    2179  #line 281 "./config/bfin-lex.l"
    2180  return _PLUS_PLUS;
    2181  	YY_BREAK
    2182  case 215:
    2183  YY_RULE_SETUP
    2184  #line 282 "./config/bfin-lex.l"
    2185  return PLUS;
    2186  	YY_BREAK
    2187  case 216:
    2188  YY_RULE_SETUP
    2189  #line 283 "./config/bfin-lex.l"
    2190  return _STAR_ASSIGN;
    2191  	YY_BREAK
    2192  case 217:
    2193  YY_RULE_SETUP
    2194  #line 284 "./config/bfin-lex.l"
    2195  return STAR;
    2196  	YY_BREAK
    2197  case 218:
    2198  YY_RULE_SETUP
    2199  #line 285 "./config/bfin-lex.l"
    2200  return _AMPERSAND_ASSIGN;
    2201  	YY_BREAK
    2202  case 219:
    2203  YY_RULE_SETUP
    2204  #line 286 "./config/bfin-lex.l"
    2205  return AMPERSAND;
    2206  	YY_BREAK
    2207  case 220:
    2208  YY_RULE_SETUP
    2209  #line 287 "./config/bfin-lex.l"
    2210  return PERCENT;
    2211  	YY_BREAK
    2212  case 221:
    2213  YY_RULE_SETUP
    2214  #line 288 "./config/bfin-lex.l"
    2215  return BANG;
    2216  	YY_BREAK
    2217  case 222:
    2218  YY_RULE_SETUP
    2219  #line 289 "./config/bfin-lex.l"
    2220  return SEMICOLON;
    2221  	YY_BREAK
    2222  case 223:
    2223  YY_RULE_SETUP
    2224  #line 290 "./config/bfin-lex.l"
    2225  return _ASSIGN_BANG;
    2226  	YY_BREAK
    2227  case 224:
    2228  YY_RULE_SETUP
    2229  #line 291 "./config/bfin-lex.l"
    2230  return DOUBLE_BAR;
    2231  	YY_BREAK
    2232  case 225:
    2233  YY_RULE_SETUP
    2234  #line 292 "./config/bfin-lex.l"
    2235  return AT;
    2236  	YY_BREAK
    2237  case 226:
    2238  YY_RULE_SETUP
    2239  #line 293 "./config/bfin-lex.l"
    2240  return PREFETCH;
    2241  	YY_BREAK
    2242  case 227:
    2243  YY_RULE_SETUP
    2244  #line 294 "./config/bfin-lex.l"
    2245  return UNLINK;
    2246  	YY_BREAK
    2247  case 228:
    2248  YY_RULE_SETUP
    2249  #line 295 "./config/bfin-lex.l"
    2250  return LINK;
    2251  	YY_BREAK
    2252  case 229:
    2253  YY_RULE_SETUP
    2254  #line 296 "./config/bfin-lex.l"
    2255  return IDLE;
    2256  	YY_BREAK
    2257  case 230:
    2258  YY_RULE_SETUP
    2259  #line 297 "./config/bfin-lex.l"
    2260  return IFLUSH;
    2261  	YY_BREAK
    2262  case 231:
    2263  YY_RULE_SETUP
    2264  #line 298 "./config/bfin-lex.l"
    2265  return FLUSHINV;
    2266  	YY_BREAK
    2267  case 232:
    2268  YY_RULE_SETUP
    2269  #line 299 "./config/bfin-lex.l"
    2270  return FLUSH;
    2271  	YY_BREAK
    2272  case 233:
    2273  YY_RULE_SETUP
    2274  #line 300 "./config/bfin-lex.l"
    2275  {
    2276      yylval.value = parse_int (&yytext);
    2277      return NUMBER;
    2278    }
    2279  	YY_BREAK
    2280  case 234:
    2281  YY_RULE_SETUP
    2282  #line 304 "./config/bfin-lex.l"
    2283  {
    2284      yylval.symbol = symbol_find_or_make (yytext);
    2285      symbol_mark_used (yylval.symbol);
    2286      return SYMBOL;
    2287    }
    2288  	YY_BREAK
    2289  case 235:
    2290  YY_RULE_SETUP
    2291  #line 309 "./config/bfin-lex.l"
    2292  {
    2293      char *name;
    2294      char *ref = strdup (yytext);
    2295      if (ref[1] == 'b' || ref[1] == 'B')
    2296        {
    2297          name = fb_label_name (ref[0] - '0', 0);
    2298  	yylval.symbol = symbol_find (name);
    2299  
    2300  	if ((yylval.symbol != NULL)
    2301               && (S_IS_DEFINED (yylval.symbol)))
    2302            return SYMBOL;
    2303  	as_bad ("backward reference to unknown label %d:",
    2304  						  (int) (ref[0] - '0'));
    2305        }
    2306      else if (ref[1] == 'f' || ref[1] == 'F')
    2307        {
    2308          /* Forward reference.  Expect symbol to be undefined or
    2309             unknown.  undefined: seen it before.  unknown: never seen
    2310             it before.
    2311  
    2312             Construct a local label name, then an undefined symbol.
    2313             Just return it as never seen before.  */
    2314  
    2315          name = fb_label_name (ref[0] - '0', 1);
    2316  	yylval.symbol = symbol_find_or_make (name);
    2317  	/* We have no need to check symbol properties.  */
    2318  	return SYMBOL;
    2319        }
    2320    }
    2321  	YY_BREAK
    2322  case 236:
    2323  /* rule 236 can match eol */
    2324  YY_RULE_SETUP
    2325  #line 338 "./config/bfin-lex.l"
    2326  ;
    2327  	YY_BREAK
    2328  case 237:
    2329  YY_RULE_SETUP
    2330  #line 339 "./config/bfin-lex.l"
    2331  ;
    2332  	YY_BREAK
    2333  case 238:
    2334  YY_RULE_SETUP
    2335  #line 340 "./config/bfin-lex.l"
    2336  return yytext[0];
    2337  	YY_BREAK
    2338  case 239:
    2339  YY_RULE_SETUP
    2340  #line 341 "./config/bfin-lex.l"
    2341  ECHO;
    2342  	YY_BREAK
    2343  #line 2343 "config/bfin-lex.c"
    2344  case YY_STATE_EOF(INITIAL):
    2345  case YY_STATE_EOF(KEYWORD):
    2346  case YY_STATE_EOF(FLAGS):
    2347  	yyterminate();
    2348  
    2349  	case YY_END_OF_BUFFER:
    2350  		{
    2351  		/* Amount of text matched not including the EOB char. */
    2352  		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
    2353  
    2354  		/* Undo the effects of YY_DO_BEFORE_ACTION. */
    2355  		*yy_cp = (yy_hold_char);
    2356  		YY_RESTORE_YY_MORE_OFFSET
    2357  
    2358  		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
    2359  			{
    2360  			/* We're scanning a new file or input source.  It's
    2361  			 * possible that this happened because the user
    2362  			 * just pointed yyin at a new source and called
    2363  			 * yylex().  If so, then we have to assure
    2364  			 * consistency between YY_CURRENT_BUFFER and our
    2365  			 * globals.  Here is the right place to do so, because
    2366  			 * this is the first action (other than possibly a
    2367  			 * back-up) that will match for the new input source.
    2368  			 */
    2369  			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
    2370  			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
    2371  			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
    2372  			}
    2373  
    2374  		/* Note that here we test for yy_c_buf_p "<=" to the position
    2375  		 * of the first EOB in the buffer, since yy_c_buf_p will
    2376  		 * already have been incremented past the NUL character
    2377  		 * (since all states make transitions on EOB to the
    2378  		 * end-of-buffer state).  Contrast this with the test
    2379  		 * in input().
    2380  		 */
    2381  		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
    2382  			{ /* This was really a NUL. */
    2383  			yy_state_type yy_next_state;
    2384  
    2385  			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
    2386  
    2387  			yy_current_state = yy_get_previous_state(  );
    2388  
    2389  			/* Okay, we're now positioned to make the NUL
    2390  			 * transition.  We couldn't have
    2391  			 * yy_get_previous_state() go ahead and do it
    2392  			 * for us because it doesn't know how to deal
    2393  			 * with the possibility of jamming (and we don't
    2394  			 * want to build jamming into it because then it
    2395  			 * will run more slowly).
    2396  			 */
    2397  
    2398  			yy_next_state = yy_try_NUL_trans( yy_current_state );
    2399  
    2400  			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    2401  
    2402  			if ( yy_next_state )
    2403  				{
    2404  				/* Consume the NUL. */
    2405  				yy_cp = ++(yy_c_buf_p);
    2406  				yy_current_state = yy_next_state;
    2407  				goto yy_match;
    2408  				}
    2409  
    2410  			else
    2411  				{
    2412  				yy_cp = (yy_c_buf_p);
    2413  				goto yy_find_action;
    2414  				}
    2415  			}
    2416  
    2417  		else switch ( yy_get_next_buffer(  ) )
    2418  			{
    2419  			case EOB_ACT_END_OF_FILE:
    2420  				{
    2421  				(yy_did_buffer_switch_on_eof) = 0;
    2422  
    2423  				if ( yywrap(  ) )
    2424  					{
    2425  					/* Note: because we've taken care in
    2426  					 * yy_get_next_buffer() to have set up
    2427  					 * yytext, we can now set up
    2428  					 * yy_c_buf_p so that if some total
    2429  					 * hoser (like flex itself) wants to
    2430  					 * call the scanner after we return the
    2431  					 * YY_NULL, it'll still work - another
    2432  					 * YY_NULL will get returned.
    2433  					 */
    2434  					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
    2435  
    2436  					yy_act = YY_STATE_EOF(YY_START);
    2437  					goto do_action;
    2438  					}
    2439  
    2440  				else
    2441  					{
    2442  					if ( ! (yy_did_buffer_switch_on_eof) )
    2443  						YY_NEW_FILE;
    2444  					}
    2445  				break;
    2446  				}
    2447  
    2448  			case EOB_ACT_CONTINUE_SCAN:
    2449  				(yy_c_buf_p) =
    2450  					(yytext_ptr) + yy_amount_of_matched_text;
    2451  
    2452  				yy_current_state = yy_get_previous_state(  );
    2453  
    2454  				yy_cp = (yy_c_buf_p);
    2455  				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    2456  				goto yy_match;
    2457  
    2458  			case EOB_ACT_LAST_MATCH:
    2459  				(yy_c_buf_p) =
    2460  				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
    2461  
    2462  				yy_current_state = yy_get_previous_state(  );
    2463  
    2464  				yy_cp = (yy_c_buf_p);
    2465  				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    2466  				goto yy_find_action;
    2467  			}
    2468  		break;
    2469  		}
    2470  
    2471  	default:
    2472  		YY_FATAL_ERROR(
    2473  			"fatal flex scanner internal error--no action found" );
    2474  	} /* end of action switch */
    2475  		} /* end of scanning one token */
    2476  	} /* end of user's declarations */
    2477  } /* end of yylex */
    2478  
    2479  /* yy_get_next_buffer - try to read in a new buffer
    2480   *
    2481   * Returns a code representing an action:
    2482   *	EOB_ACT_LAST_MATCH -
    2483   *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
    2484   *	EOB_ACT_END_OF_FILE - end of file
    2485   */
    2486  static int yy_get_next_buffer (void)
    2487  {
    2488      	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
    2489  	char *source = (yytext_ptr);
    2490  	int number_to_move, i;
    2491  	int ret_val;
    2492  
    2493  	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
    2494  		YY_FATAL_ERROR(
    2495  		"fatal flex scanner internal error--end of buffer missed" );
    2496  
    2497  	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
    2498  		{ /* Don't try to fill the buffer, so this is an EOF. */
    2499  		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
    2500  			{
    2501  			/* We matched a single character, the EOB, so
    2502  			 * treat this as a final EOF.
    2503  			 */
    2504  			return EOB_ACT_END_OF_FILE;
    2505  			}
    2506  
    2507  		else
    2508  			{
    2509  			/* We matched some text prior to the EOB, first
    2510  			 * process it.
    2511  			 */
    2512  			return EOB_ACT_LAST_MATCH;
    2513  			}
    2514  		}
    2515  
    2516  	/* Try to read more data. */
    2517  
    2518  	/* First move last chars to start of buffer. */
    2519  	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
    2520  
    2521  	for ( i = 0; i < number_to_move; ++i )
    2522  		*(dest++) = *(source++);
    2523  
    2524  	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
    2525  		/* don't do the read, it's not guaranteed to return an EOF,
    2526  		 * just force an EOF
    2527  		 */
    2528  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
    2529  
    2530  	else
    2531  		{
    2532  			int num_to_read =
    2533  			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
    2534  
    2535  		while ( num_to_read <= 0 )
    2536  			{ /* Not enough room in the buffer - grow it. */
    2537  
    2538  			/* just a shorter name for the current buffer */
    2539  			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
    2540  
    2541  			int yy_c_buf_p_offset =
    2542  				(int) ((yy_c_buf_p) - b->yy_ch_buf);
    2543  
    2544  			if ( b->yy_is_our_buffer )
    2545  				{
    2546  				int new_size = b->yy_buf_size * 2;
    2547  
    2548  				if ( new_size <= 0 )
    2549  					b->yy_buf_size += b->yy_buf_size / 8;
    2550  				else
    2551  					b->yy_buf_size *= 2;
    2552  
    2553  				b->yy_ch_buf = (char *)
    2554  					/* Include room in for 2 EOB chars. */
    2555  					yyrealloc( (void *) b->yy_ch_buf,
    2556  							 (yy_size_t) (b->yy_buf_size + 2)  );
    2557  				}
    2558  			else
    2559  				/* Can't grow it, we don't own it. */
    2560  				b->yy_ch_buf = NULL;
    2561  
    2562  			if ( ! b->yy_ch_buf )
    2563  				YY_FATAL_ERROR(
    2564  				"fatal error - scanner input buffer overflow" );
    2565  
    2566  			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
    2567  
    2568  			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
    2569  						number_to_move - 1;
    2570  
    2571  			}
    2572  
    2573  		if ( num_to_read > YY_READ_BUF_SIZE )
    2574  			num_to_read = YY_READ_BUF_SIZE;
    2575  
    2576  		/* Read in more data. */
    2577  		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
    2578  			(yy_n_chars), num_to_read );
    2579  
    2580  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    2581  		}
    2582  
    2583  	if ( (yy_n_chars) == 0 )
    2584  		{
    2585  		if ( number_to_move == YY_MORE_ADJ )
    2586  			{
    2587  			ret_val = EOB_ACT_END_OF_FILE;
    2588  			yyrestart( yyin  );
    2589  			}
    2590  
    2591  		else
    2592  			{
    2593  			ret_val = EOB_ACT_LAST_MATCH;
    2594  			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
    2595  				YY_BUFFER_EOF_PENDING;
    2596  			}
    2597  		}
    2598  
    2599  	else
    2600  		ret_val = EOB_ACT_CONTINUE_SCAN;
    2601  
    2602  	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
    2603  		/* Extend the array by 50%, plus the number we really need. */
    2604  		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
    2605  		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
    2606  			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
    2607  		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    2608  			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
    2609  		/* "- 2" to take care of EOB's */
    2610  		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
    2611  	}
    2612  
    2613  	(yy_n_chars) += number_to_move;
    2614  	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
    2615  	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
    2616  
    2617  	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
    2618  
    2619  	return ret_val;
    2620  }
    2621  
    2622  /* yy_get_previous_state - get the state just before the EOB char was reached */
    2623  
    2624      static yy_state_type yy_get_previous_state (void)
    2625  {
    2626  	yy_state_type yy_current_state;
    2627  	char *yy_cp;
    2628      
    2629  	yy_current_state = (yy_start);
    2630  
    2631  	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
    2632  		{
    2633  		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
    2634  		if ( yy_accept[yy_current_state] )
    2635  			{
    2636  			(yy_last_accepting_state) = yy_current_state;
    2637  			(yy_last_accepting_cpos) = yy_cp;
    2638  			}
    2639  		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    2640  			{
    2641  			yy_current_state = (int) yy_def[yy_current_state];
    2642  			if ( yy_current_state >= 571 )
    2643  				yy_c = yy_meta[yy_c];
    2644  			}
    2645  		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
    2646  		}
    2647  
    2648  	return yy_current_state;
    2649  }
    2650  
    2651  /* yy_try_NUL_trans - try to make a transition on the NUL character
    2652   *
    2653   * synopsis
    2654   *	next_state = yy_try_NUL_trans( current_state );
    2655   */
    2656      static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
    2657  {
    2658  	int yy_is_jam;
    2659      	char *yy_cp = (yy_c_buf_p);
    2660  
    2661  	YY_CHAR yy_c = 1;
    2662  	if ( yy_accept[yy_current_state] )
    2663  		{
    2664  		(yy_last_accepting_state) = yy_current_state;
    2665  		(yy_last_accepting_cpos) = yy_cp;
    2666  		}
    2667  	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    2668  		{
    2669  		yy_current_state = (int) yy_def[yy_current_state];
    2670  		if ( yy_current_state >= 571 )
    2671  			yy_c = yy_meta[yy_c];
    2672  		}
    2673  	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
    2674  	yy_is_jam = (yy_current_state == 570);
    2675  
    2676  		return yy_is_jam ? 0 : yy_current_state;
    2677  }
    2678  
    2679  #ifndef YY_NO_UNPUT
    2680  
    2681      static void yyunput (int c, char * yy_bp )
    2682  {
    2683  	char *yy_cp;
    2684      
    2685      yy_cp = (yy_c_buf_p);
    2686  
    2687  	/* undo effects of setting up yytext */
    2688  	*yy_cp = (yy_hold_char);
    2689  
    2690  	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    2691  		{ /* need to shift things up to make room */
    2692  		/* +2 for EOB chars. */
    2693  		int number_to_move = (yy_n_chars) + 2;
    2694  		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
    2695  					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
    2696  		char *source =
    2697  				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
    2698  
    2699  		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    2700  			*--dest = *--source;
    2701  
    2702  		yy_cp += (int) (dest - source);
    2703  		yy_bp += (int) (dest - source);
    2704  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
    2705  			(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
    2706  
    2707  		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    2708  			YY_FATAL_ERROR( "flex scanner push-back overflow" );
    2709  		}
    2710  
    2711  	*--yy_cp = (char) c;
    2712  
    2713  	(yytext_ptr) = yy_bp;
    2714  	(yy_hold_char) = *yy_cp;
    2715  	(yy_c_buf_p) = yy_cp;
    2716  }
    2717  
    2718  #endif
    2719  
    2720  #ifndef YY_NO_INPUT
    2721  #ifdef __cplusplus
    2722      static int yyinput (void)
    2723  #else
    2724      static int input  (void)
    2725  #endif
    2726  
    2727  {
    2728  	int c;
    2729      
    2730  	*(yy_c_buf_p) = (yy_hold_char);
    2731  
    2732  	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
    2733  		{
    2734  		/* yy_c_buf_p now points to the character we want to return.
    2735  		 * If this occurs *before* the EOB characters, then it's a
    2736  		 * valid NUL; if not, then we've hit the end of the buffer.
    2737  		 */
    2738  		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
    2739  			/* This was really a NUL. */
    2740  			*(yy_c_buf_p) = '\0';
    2741  
    2742  		else
    2743  			{ /* need more input */
    2744  			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
    2745  			++(yy_c_buf_p);
    2746  
    2747  			switch ( yy_get_next_buffer(  ) )
    2748  				{
    2749  				case EOB_ACT_LAST_MATCH:
    2750  					/* This happens because yy_g_n_b()
    2751  					 * sees that we've accumulated a
    2752  					 * token and flags that we need to
    2753  					 * try matching the token before
    2754  					 * proceeding.  But for input(),
    2755  					 * there's no matching to consider.
    2756  					 * So convert the EOB_ACT_LAST_MATCH
    2757  					 * to EOB_ACT_END_OF_FILE.
    2758  					 */
    2759  
    2760  					/* Reset buffer status. */
    2761  					yyrestart( yyin );
    2762  
    2763  					/*FALLTHROUGH*/
    2764  
    2765  				case EOB_ACT_END_OF_FILE:
    2766  					{
    2767  					if ( yywrap(  ) )
    2768  						return 0;
    2769  
    2770  					if ( ! (yy_did_buffer_switch_on_eof) )
    2771  						YY_NEW_FILE;
    2772  #ifdef __cplusplus
    2773  					return yyinput();
    2774  #else
    2775  					return input();
    2776  #endif
    2777  					}
    2778  
    2779  				case EOB_ACT_CONTINUE_SCAN:
    2780  					(yy_c_buf_p) = (yytext_ptr) + offset;
    2781  					break;
    2782  				}
    2783  			}
    2784  		}
    2785  
    2786  	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
    2787  	*(yy_c_buf_p) = '\0';	/* preserve yytext */
    2788  	(yy_hold_char) = *++(yy_c_buf_p);
    2789  
    2790  	return c;
    2791  }
    2792  #endif	/* ifndef YY_NO_INPUT */
    2793  
    2794  /** Immediately switch to a different input stream.
    2795   * @param input_file A readable stream.
    2796   * 
    2797   * @note This function does not reset the start condition to @c INITIAL .
    2798   */
    2799      void yyrestart  (FILE * input_file )
    2800  {
    2801      
    2802  	if ( ! YY_CURRENT_BUFFER ){
    2803          yyensure_buffer_stack ();
    2804  		YY_CURRENT_BUFFER_LVALUE =
    2805              yy_create_buffer( yyin, YY_BUF_SIZE );
    2806  	}
    2807  
    2808  	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
    2809  	yy_load_buffer_state(  );
    2810  }
    2811  
    2812  /** Switch to a different input buffer.
    2813   * @param new_buffer The new input buffer.
    2814   * 
    2815   */
    2816      void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
    2817  {
    2818      
    2819  	/* TODO. We should be able to replace this entire function body
    2820  	 * with
    2821  	 *		yypop_buffer_state();
    2822  	 *		yypush_buffer_state(new_buffer);
    2823       */
    2824  	yyensure_buffer_stack ();
    2825  	if ( YY_CURRENT_BUFFER == new_buffer )
    2826  		return;
    2827  
    2828  	if ( YY_CURRENT_BUFFER )
    2829  		{
    2830  		/* Flush out information for old buffer. */
    2831  		*(yy_c_buf_p) = (yy_hold_char);
    2832  		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
    2833  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    2834  		}
    2835  
    2836  	YY_CURRENT_BUFFER_LVALUE = new_buffer;
    2837  	yy_load_buffer_state(  );
    2838  
    2839  	/* We don't actually know whether we did this switch during
    2840  	 * EOF (yywrap()) processing, but the only time this flag
    2841  	 * is looked at is after yywrap() is called, so it's safe
    2842  	 * to go ahead and always set it.
    2843  	 */
    2844  	(yy_did_buffer_switch_on_eof) = 1;
    2845  }
    2846  
    2847  static void yy_load_buffer_state  (void)
    2848  {
    2849      	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
    2850  	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
    2851  	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
    2852  	(yy_hold_char) = *(yy_c_buf_p);
    2853  }
    2854  
    2855  /** Allocate and initialize an input buffer state.
    2856   * @param file A readable stream.
    2857   * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
    2858   * 
    2859   * @return the allocated buffer state.
    2860   */
    2861      YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
    2862  {
    2863  	YY_BUFFER_STATE b;
    2864      
    2865  	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
    2866  	if ( ! b )
    2867  		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
    2868  
    2869  	b->yy_buf_size = size;
    2870  
    2871  	/* yy_ch_buf has to be 2 characters longer than the size given because
    2872  	 * we need to put in 2 end-of-buffer characters.
    2873  	 */
    2874  	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
    2875  	if ( ! b->yy_ch_buf )
    2876  		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
    2877  
    2878  	b->yy_is_our_buffer = 1;
    2879  
    2880  	yy_init_buffer( b, file );
    2881  
    2882  	return b;
    2883  }
    2884  
    2885  /** Destroy the buffer.
    2886   * @param b a buffer created with yy_create_buffer()
    2887   * 
    2888   */
    2889      void yy_delete_buffer (YY_BUFFER_STATE  b )
    2890  {
    2891      
    2892  	if ( ! b )
    2893  		return;
    2894  
    2895  	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
    2896  		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
    2897  
    2898  	if ( b->yy_is_our_buffer )
    2899  		yyfree( (void *) b->yy_ch_buf  );
    2900  
    2901  	yyfree( (void *) b  );
    2902  }
    2903  
    2904  /* Initializes or reinitializes a buffer.
    2905   * This function is sometimes called more than once on the same buffer,
    2906   * such as during a yyrestart() or at EOF.
    2907   */
    2908      static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
    2909  
    2910  {
    2911  	int oerrno = errno;
    2912      
    2913  	yy_flush_buffer( b );
    2914  
    2915  	b->yy_input_file = file;
    2916  	b->yy_fill_buffer = 1;
    2917  
    2918      /* If b is the current buffer, then yy_init_buffer was _probably_
    2919       * called from yyrestart() or through yy_get_next_buffer.
    2920       * In that case, we don't want to reset the lineno or column.
    2921       */
    2922      if (b != YY_CURRENT_BUFFER){
    2923          b->yy_bs_lineno = 1;
    2924          b->yy_bs_column = 0;
    2925      }
    2926  
    2927          b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
    2928      
    2929  	errno = oerrno;
    2930  }
    2931  
    2932  /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
    2933   * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
    2934   * 
    2935   */
    2936      void yy_flush_buffer (YY_BUFFER_STATE  b )
    2937  {
    2938      	if ( ! b )
    2939  		return;
    2940  
    2941  	b->yy_n_chars = 0;
    2942  
    2943  	/* We always need two end-of-buffer characters.  The first causes
    2944  	 * a transition to the end-of-buffer state.  The second causes
    2945  	 * a jam in that state.
    2946  	 */
    2947  	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
    2948  	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
    2949  
    2950  	b->yy_buf_pos = &b->yy_ch_buf[0];
    2951  
    2952  	b->yy_at_bol = 1;
    2953  	b->yy_buffer_status = YY_BUFFER_NEW;
    2954  
    2955  	if ( b == YY_CURRENT_BUFFER )
    2956  		yy_load_buffer_state(  );
    2957  }
    2958  
    2959  /** Pushes the new state onto the stack. The new state becomes
    2960   *  the current state. This function will allocate the stack
    2961   *  if necessary.
    2962   *  @param new_buffer The new state.
    2963   *  
    2964   */
    2965  void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
    2966  {
    2967      	if (new_buffer == NULL)
    2968  		return;
    2969  
    2970  	yyensure_buffer_stack();
    2971  
    2972  	/* This block is copied from yy_switch_to_buffer. */
    2973  	if ( YY_CURRENT_BUFFER )
    2974  		{
    2975  		/* Flush out information for old buffer. */
    2976  		*(yy_c_buf_p) = (yy_hold_char);
    2977  		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
    2978  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    2979  		}
    2980  
    2981  	/* Only push if top exists. Otherwise, replace top. */
    2982  	if (YY_CURRENT_BUFFER)
    2983  		(yy_buffer_stack_top)++;
    2984  	YY_CURRENT_BUFFER_LVALUE = new_buffer;
    2985  
    2986  	/* copied from yy_switch_to_buffer. */
    2987  	yy_load_buffer_state(  );
    2988  	(yy_did_buffer_switch_on_eof) = 1;
    2989  }
    2990  
    2991  /** Removes and deletes the top of the stack, if present.
    2992   *  The next element becomes the new top.
    2993   *  
    2994   */
    2995  void yypop_buffer_state (void)
    2996  {
    2997      	if (!YY_CURRENT_BUFFER)
    2998  		return;
    2999  
    3000  	yy_delete_buffer(YY_CURRENT_BUFFER );
    3001  	YY_CURRENT_BUFFER_LVALUE = NULL;
    3002  	if ((yy_buffer_stack_top) > 0)
    3003  		--(yy_buffer_stack_top);
    3004  
    3005  	if (YY_CURRENT_BUFFER) {
    3006  		yy_load_buffer_state(  );
    3007  		(yy_did_buffer_switch_on_eof) = 1;
    3008  	}
    3009  }
    3010  
    3011  /* Allocates the stack if it does not exist.
    3012   *  Guarantees space for at least one push.
    3013   */
    3014  static void yyensure_buffer_stack (void)
    3015  {
    3016  	yy_size_t num_to_alloc;
    3017      
    3018  	if (!(yy_buffer_stack)) {
    3019  
    3020  		/* First allocation is just for 2 elements, since we don't know if this
    3021  		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
    3022  		 * immediate realloc on the next call.
    3023           */
    3024        num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
    3025  		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
    3026  								(num_to_alloc * sizeof(struct yy_buffer_state*)
    3027  								);
    3028  		if ( ! (yy_buffer_stack) )
    3029  			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
    3030  
    3031  		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
    3032  
    3033  		(yy_buffer_stack_max) = num_to_alloc;
    3034  		(yy_buffer_stack_top) = 0;
    3035  		return;
    3036  	}
    3037  
    3038  	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
    3039  
    3040  		/* Increase the buffer to prepare for a possible push. */
    3041  		yy_size_t grow_size = 8 /* arbitrary grow size */;
    3042  
    3043  		num_to_alloc = (yy_buffer_stack_max) + grow_size;
    3044  		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
    3045  								((yy_buffer_stack),
    3046  								num_to_alloc * sizeof(struct yy_buffer_state*)
    3047  								);
    3048  		if ( ! (yy_buffer_stack) )
    3049  			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
    3050  
    3051  		/* zero only the new slots.*/
    3052  		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
    3053  		(yy_buffer_stack_max) = num_to_alloc;
    3054  	}
    3055  }
    3056  
    3057  /** Setup the input buffer state to scan directly from a user-specified character buffer.
    3058   * @param base the character buffer
    3059   * @param size the size in bytes of the character buffer
    3060   * 
    3061   * @return the newly allocated buffer state object.
    3062   */
    3063  YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
    3064  {
    3065  	YY_BUFFER_STATE b;
    3066      
    3067  	if ( size < 2 ||
    3068  	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
    3069  	     base[size-1] != YY_END_OF_BUFFER_CHAR )
    3070  		/* They forgot to leave room for the EOB's. */
    3071  		return NULL;
    3072  
    3073  	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
    3074  	if ( ! b )
    3075  		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
    3076  
    3077  	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
    3078  	b->yy_buf_pos = b->yy_ch_buf = base;
    3079  	b->yy_is_our_buffer = 0;
    3080  	b->yy_input_file = NULL;
    3081  	b->yy_n_chars = b->yy_buf_size;
    3082  	b->yy_is_interactive = 0;
    3083  	b->yy_at_bol = 1;
    3084  	b->yy_fill_buffer = 0;
    3085  	b->yy_buffer_status = YY_BUFFER_NEW;
    3086  
    3087  	yy_switch_to_buffer( b  );
    3088  
    3089  	return b;
    3090  }
    3091  
    3092  /** Setup the input buffer state to scan a string. The next call to yylex() will
    3093   * scan from a @e copy of @a str.
    3094   * @param yystr a NUL-terminated string to scan
    3095   * 
    3096   * @return the newly allocated buffer state object.
    3097   * @note If you want to scan bytes that may contain NUL values, then use
    3098   *       yy_scan_bytes() instead.
    3099   */
    3100  YY_BUFFER_STATE yy_scan_string (const char * yystr )
    3101  {
    3102      
    3103  	return yy_scan_bytes( yystr, (int) strlen(yystr) );
    3104  }
    3105  
    3106  /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
    3107   * scan from a @e copy of @a bytes.
    3108   * @param yybytes the byte buffer to scan
    3109   * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
    3110   * 
    3111   * @return the newly allocated buffer state object.
    3112   */
    3113  YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
    3114  {
    3115  	YY_BUFFER_STATE b;
    3116  	char *buf;
    3117  	yy_size_t n;
    3118  	int i;
    3119      
    3120  	/* Get memory for full buffer, including space for trailing EOB's. */
    3121  	n = (yy_size_t) (_yybytes_len + 2);
    3122  	buf = (char *) yyalloc( n  );
    3123  	if ( ! buf )
    3124  		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
    3125  
    3126  	for ( i = 0; i < _yybytes_len; ++i )
    3127  		buf[i] = yybytes[i];
    3128  
    3129  	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
    3130  
    3131  	b = yy_scan_buffer( buf, n );
    3132  	if ( ! b )
    3133  		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
    3134  
    3135  	/* It's okay to grow etc. this buffer, and we should throw it
    3136  	 * away when we're done.
    3137  	 */
    3138  	b->yy_is_our_buffer = 1;
    3139  
    3140  	return b;
    3141  }
    3142  
    3143  #ifndef YY_EXIT_FAILURE
    3144  #define YY_EXIT_FAILURE 2
    3145  #endif
    3146  
    3147  static void yynoreturn yy_fatal_error (const char* msg )
    3148  {
    3149  			fprintf( stderr, "%s\n", msg );
    3150  	exit( YY_EXIT_FAILURE );
    3151  }
    3152  
    3153  /* Redefine yyless() so it works in section 3 code. */
    3154  
    3155  #undef yyless
    3156  #define yyless(n) \
    3157  	do \
    3158  		{ \
    3159  		/* Undo effects of setting up yytext. */ \
    3160          int yyless_macro_arg = (n); \
    3161          YY_LESS_LINENO(yyless_macro_arg);\
    3162  		yytext[yyleng] = (yy_hold_char); \
    3163  		(yy_c_buf_p) = yytext + yyless_macro_arg; \
    3164  		(yy_hold_char) = *(yy_c_buf_p); \
    3165  		*(yy_c_buf_p) = '\0'; \
    3166  		yyleng = yyless_macro_arg; \
    3167  		} \
    3168  	while ( 0 )
    3169  
    3170  /* Accessor  methods (get/set functions) to struct members. */
    3171  
    3172  /** Get the current line number.
    3173   * 
    3174   */
    3175  int yyget_lineno  (void)
    3176  {
    3177      
    3178      return yylineno;
    3179  }
    3180  
    3181  /** Get the input stream.
    3182   * 
    3183   */
    3184  FILE *yyget_in  (void)
    3185  {
    3186          return yyin;
    3187  }
    3188  
    3189  /** Get the output stream.
    3190   * 
    3191   */
    3192  FILE *yyget_out  (void)
    3193  {
    3194          return yyout;
    3195  }
    3196  
    3197  /** Get the length of the current token.
    3198   * 
    3199   */
    3200  int yyget_leng  (void)
    3201  {
    3202          return yyleng;
    3203  }
    3204  
    3205  /** Get the current token.
    3206   * 
    3207   */
    3208  
    3209  char *yyget_text  (void)
    3210  {
    3211          return yytext;
    3212  }
    3213  
    3214  /** Set the current line number.
    3215   * @param _line_number line number
    3216   * 
    3217   */
    3218  void yyset_lineno (int  _line_number )
    3219  {
    3220      
    3221      yylineno = _line_number;
    3222  }
    3223  
    3224  /** Set the input stream. This does not discard the current
    3225   * input buffer.
    3226   * @param _in_str A readable stream.
    3227   * 
    3228   * @see yy_switch_to_buffer
    3229   */
    3230  void yyset_in (FILE *  _in_str )
    3231  {
    3232          yyin = _in_str ;
    3233  }
    3234  
    3235  void yyset_out (FILE *  _out_str )
    3236  {
    3237          yyout = _out_str ;
    3238  }
    3239  
    3240  int yyget_debug  (void)
    3241  {
    3242          return yy_flex_debug;
    3243  }
    3244  
    3245  void yyset_debug (int  _bdebug )
    3246  {
    3247          yy_flex_debug = _bdebug ;
    3248  }
    3249  
    3250  static int yy_init_globals (void)
    3251  {
    3252          /* Initialization is the same as for the non-reentrant scanner.
    3253       * This function is called from yylex_destroy(), so don't allocate here.
    3254       */
    3255  
    3256      (yy_buffer_stack) = NULL;
    3257      (yy_buffer_stack_top) = 0;
    3258      (yy_buffer_stack_max) = 0;
    3259      (yy_c_buf_p) = NULL;
    3260      (yy_init) = 0;
    3261      (yy_start) = 0;
    3262  
    3263  /* Defined in main.c */
    3264  #ifdef YY_STDINIT
    3265      yyin = stdin;
    3266      yyout = stdout;
    3267  #else
    3268      yyin = NULL;
    3269      yyout = NULL;
    3270  #endif
    3271  
    3272      /* For future reference: Set errno on error, since we are called by
    3273       * yylex_init()
    3274       */
    3275      return 0;
    3276  }
    3277  
    3278  /* yylex_destroy is for both reentrant and non-reentrant scanners. */
    3279  int yylex_destroy  (void)
    3280  {
    3281      
    3282      /* Pop the buffer stack, destroying each element. */
    3283  	while(YY_CURRENT_BUFFER){
    3284  		yy_delete_buffer( YY_CURRENT_BUFFER  );
    3285  		YY_CURRENT_BUFFER_LVALUE = NULL;
    3286  		yypop_buffer_state();
    3287  	}
    3288  
    3289  	/* Destroy the stack itself. */
    3290  	yyfree((yy_buffer_stack) );
    3291  	(yy_buffer_stack) = NULL;
    3292  
    3293      /* Reset the globals. This is important in a non-reentrant scanner so the next time
    3294       * yylex() is called, initialization will occur. */
    3295      yy_init_globals( );
    3296  
    3297      return 0;
    3298  }
    3299  
    3300  /*
    3301   * Internal utility routines.
    3302   */
    3303  
    3304  #ifndef yytext_ptr
    3305  static void yy_flex_strncpy (char* s1, const char * s2, int n )
    3306  {
    3307  		
    3308  	int i;
    3309  	for ( i = 0; i < n; ++i )
    3310  		s1[i] = s2[i];
    3311  }
    3312  #endif
    3313  
    3314  #ifdef YY_NEED_STRLEN
    3315  static int yy_flex_strlen (const char * s )
    3316  {
    3317  	int n;
    3318  	for ( n = 0; s[n]; ++n )
    3319  		;
    3320  
    3321  	return n;
    3322  }
    3323  #endif
    3324  
    3325  void *yyalloc (yy_size_t  size )
    3326  {
    3327  			return malloc(size);
    3328  }
    3329  
    3330  void *yyrealloc  (void * ptr, yy_size_t  size )
    3331  {
    3332  		
    3333  	/* The cast to (char *) in the following accommodates both
    3334  	 * implementations that use char* generic pointers, and those
    3335  	 * that use void* generic pointers.  It works with the latter
    3336  	 * because both ANSI C and C++ allow castless assignment from
    3337  	 * any pointer type to void*, and deal with argument conversions
    3338  	 * as though doing an assignment.
    3339  	 */
    3340  	return realloc(ptr, size);
    3341  }
    3342  
    3343  void yyfree (void * ptr )
    3344  {
    3345  			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
    3346  }
    3347  
    3348  #define YYTABLES_NAME "yytables"
    3349  
    3350  #line 341 "./config/bfin-lex.l"
    3351  
    3352  static long parse_int (char **end)
    3353  {
    3354    char fmt = '\0';
    3355    int not_done = 1;
    3356    int shiftvalue = 0;
    3357    const char *char_bag;
    3358    unsigned long value = 0;
    3359    char *arg = *end;
    3360  
    3361    while (*arg && *arg == ' ')
    3362      arg++;
    3363  
    3364    switch (*arg)
    3365      {
    3366        case '1':
    3367        case '2':
    3368        case '3':
    3369        case '4':
    3370        case '5':
    3371        case '6':
    3372        case '7':
    3373        case '8':
    3374        case '9':
    3375          fmt = 'd';
    3376          break;
    3377  
    3378        case '0':  /* Accept different formatted integers hex octal and binary. */
    3379          {
    3380  	  char c = *++arg;
    3381            arg++;
    3382  	  if (c == 'x' || c == 'X') /* Hex input.  */
    3383  	    fmt = 'h';
    3384  	  else if (c == 'b' || c == 'B')
    3385  	    fmt = 'b';
    3386  	  else if (c == '.')
    3387  	    fmt = 'f';
    3388  	  else
    3389              {             /* Octal.  */
    3390  	      arg--;
    3391  	      fmt = 'o';
    3392  	    }
    3393  	  break;
    3394          }
    3395  
    3396        case 'd':
    3397        case 'D':
    3398        case 'h':
    3399        case 'H':
    3400        case 'o':
    3401        case 'O':
    3402        case 'b':
    3403        case 'B':
    3404        case 'f':
    3405        case 'F':
    3406          {
    3407  	  fmt = *arg++;
    3408  	  if (*arg == '#')
    3409  	    arg++;
    3410          }
    3411      }
    3412  
    3413    switch (fmt)
    3414      {
    3415        case 'h':
    3416        case 'H':
    3417          shiftvalue = 4;
    3418          char_bag = "0123456789ABCDEFabcdef";
    3419          break;
    3420  
    3421        case 'o':
    3422        case 'O':
    3423          shiftvalue = 3;
    3424          char_bag = "01234567";
    3425          break;
    3426  
    3427        case 'b':
    3428        case 'B':
    3429          shiftvalue = 1;
    3430          char_bag = "01";
    3431          break;
    3432  
    3433  /* The assembler allows for fractional constants to be created
    3434     by either the 0.xxxx or the f#xxxx format
    3435  
    3436     i.e.   0.5 would result in 0x4000
    3437  
    3438     note .5 would result in the identifier .5.
    3439  
    3440     The assembler converts to fractional format 1.15 by the simple rule:
    3441  
    3442               value = (short) (finput * (1 << 15)).  */
    3443  
    3444        case 'f':
    3445        case 'F':
    3446          {
    3447            float fval = 0.0;
    3448            float pos = 10.0;
    3449            while (1)
    3450              {
    3451                int c;
    3452                c = *arg++;
    3453  
    3454                if (c >= '0' && c <= '9')
    3455                  {
    3456                    float digit = (c - '0') / pos;
    3457                    fval = fval + digit;
    3458                    pos = pos * 10.0;
    3459                  }
    3460                else
    3461                  {
    3462  	          *--arg = c;
    3463                    value = (short) (fval * (1 << 15));
    3464                    break;
    3465                  }
    3466              }
    3467            *end = arg+1;
    3468            return value;
    3469          }
    3470  
    3471        case 'd':
    3472        case 'D':
    3473        default:
    3474          {
    3475            while (1)
    3476              {
    3477                char c;
    3478                c = *arg++;
    3479                if (c >= '0' && c <= '9')
    3480                  value = (value * 10) + (c - '0');
    3481                else
    3482                  {
    3483                    /* Constants that are suffixed with k|K are multiplied by 1024
    3484                       This suffix is only allowed on decimal constants. */
    3485                    if (c == 'k' || c == 'K')
    3486                      value *= 1024;
    3487                    else
    3488                      *--arg = c;
    3489                    break;
    3490                  }
    3491              }
    3492            *end = arg+1;
    3493            return value;
    3494          }
    3495      }
    3496  
    3497    while (not_done)
    3498      {
    3499        char c;
    3500        c = *arg++;
    3501        if (c == 0 || !strchr (char_bag, c))
    3502  	{
    3503            not_done = 0;
    3504            *--arg = c;
    3505          }
    3506        else
    3507          {
    3508            if (c >= 'a' && c <= 'z')
    3509              c = c - ('a' - '9') + 1;
    3510            else if (c >= 'A' && c <= 'Z')
    3511              c = c - ('A' - '9') + 1;
    3512  
    3513            c -= '0';
    3514            value = (value << shiftvalue) + c;
    3515          }
    3516      }
    3517    *end = arg+1;
    3518    return value;
    3519  }
    3520  
    3521  
    3522  static int parse_reg (Register *r, int cl, char *rt)
    3523  {
    3524    r->regno = cl | (rt[1] - '0');
    3525    r->flags = F_REG_NONE;
    3526    return REG;
    3527  }
    3528  
    3529  static int parse_halfreg (Register *r, int cl, char *rt)
    3530  {
    3531    r->regno = cl | (rt[1] - '0');
    3532  
    3533    switch (rt[3])
    3534      {
    3535        case 'b':
    3536        case 'B':
    3537  	return BYTE_DREG;
    3538  
    3539        case 'l':
    3540        case 'L':
    3541  	r->flags = F_REG_LOW;
    3542  	break;
    3543  
    3544        case 'h':
    3545        case 'H':
    3546  	r->flags = F_REG_HIGH;
    3547  	break;
    3548      }
    3549  
    3550    return HALF_REG;
    3551  }
    3552  
    3553  /* Our start state is KEYWORD as we have
    3554     command keywords such as PREFETCH.  */
    3555  
    3556  void
    3557  set_start_state (void)
    3558  {
    3559    BEGIN KEYWORD;
    3560  }
    3561