diff options
Diffstat (limited to 'binutils-2.17/gas/bfin-lex.c')
-rw-r--r-- | binutils-2.17/gas/bfin-lex.c | 3368 |
1 files changed, 0 insertions, 3368 deletions
diff --git a/binutils-2.17/gas/bfin-lex.c b/binutils-2.17/gas/bfin-lex.c deleted file mode 100644 index cfc1fe7f..00000000 --- a/binutils-2.17/gas/bfin-lex.c +++ /dev/null @@ -1,3368 +0,0 @@ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header: /cvs/src/src/gas/Attic/bfin-lex.c,v 1.1.2.1 2006/04/16 18:36:43 drow Exp $ - */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 - -#include <stdio.h> -#include <errno.h> - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include <stdlib.h> -#ifndef _WIN32 -#include <unistd.h> -#endif - -/* Use prototypes in function declarations. */ -#define YY_USE_PROTOS - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -#if __STDC__ - -#define YY_USE_PROTOS -#define YY_USE_CONST - -#endif /* __STDC__ */ -#endif /* ! __cplusplus */ - -#ifdef __TURBOC__ - #pragma warn -rch - #pragma warn -use -#include <io.h> -#include <stdlib.h> -#define YY_USE_CONST -#define YY_USE_PROTOS -#endif - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - - -#ifdef YY_USE_PROTOS -#define YY_PROTO(proto) proto -#else -#define YY_PROTO(proto) () -#endif - - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN yy_start = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START ((yy_start - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#define YY_BUF_SIZE 16384 - -typedef struct yy_buffer_state *YY_BUFFER_STATE; - -extern int yyleng; -extern FILE *yyin, *yyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - -/* The funky do-while in the following #define is used to turn the definition - * int a single C statement (which needs a semi-colon terminator). This - * avoids problems with code like: - * - * if ( condition_holds ) - * yyless( 5 ); - * else - * do_something_else(); - * - * Prior to using the do-while the compiler would get upset at the - * "else" because it interpreted the "if" statement as being all - * done when it reached the ';' after the yyless() call. - */ - -/* Return all but the first 'n' matched characters back to the input stream. */ - -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - *yy_cp = yy_hold_char; \ - YY_RESTORE_YY_MORE_OFFSET \ - yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, yytext_ptr ) - -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ -typedef unsigned int yy_size_t; - - -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - }; - -static YY_BUFFER_STATE yy_current_buffer = 0; - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - */ -#define YY_CURRENT_BUFFER yy_current_buffer - - -/* yy_hold_char holds the character lost when yytext is formed. */ -static char yy_hold_char; - -static int yy_n_chars; /* number of characters read into yy_ch_buf */ - - -int yyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 1; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void yyrestart YY_PROTO(( FILE *input_file )); - -void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); -void yy_load_buffer_state YY_PROTO(( void )); -YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); -void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); -void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); -void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); -#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) - -YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); -YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); -YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); - -static void *yy_flex_alloc YY_PROTO(( yy_size_t )); -static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); -static void yy_flex_free YY_PROTO(( void * )); - -#define yy_new_buffer yy_create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ - yy_current_buffer->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ - yy_current_buffer->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (yy_current_buffer->yy_at_bol) - -typedef unsigned char YY_CHAR; -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; -typedef int yy_state_type; -extern char *yytext; -#define yytext_ptr yytext - -static yy_state_type yy_get_previous_state YY_PROTO(( void )); -static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); -static int yy_get_next_buffer YY_PROTO(( void )); -static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ -#define YY_DO_BEFORE_ACTION \ - yytext_ptr = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - yy_hold_char = *yy_cp; \ - *yy_cp = '\0'; \ - yy_c_buf_p = yy_cp; - -#define YY_NUM_RULES 238 -#define YY_END_OF_BUFFER 239 -static yyconst short int yy_accept[559] = - { 0, - 0, 0, 0, 0, 239, 237, 235, 235, 220, 233, - 219, 218, 200, 201, 216, 214, 211, 210, 203, 232, - 232, 202, 221, 199, 195, 237, 224, 233, 148, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 70, 233, - 233, 233, 54, 19, 18, 233, 12, 10, 8, 7, - 189, 188, 187, 233, 185, 183, 233, 233, 233, 233, - 233, 233, 217, 215, 213, 212, 0, 209, 204, 0, - 0, 0, 232, 234, 0, 232, 234, 198, 196, 222, - 194, 193, 178, 175, 233, 233, 233, 150, 151, 233, - 233, 149, 0, 147, 233, 140, 233, 233, 136, 233, - - 125, 233, 123, 233, 233, 233, 233, 233, 233, 233, - 103, 102, 101, 233, 100, 99, 233, 233, 97, 233, - 95, 94, 93, 91, 233, 85, 233, 233, 77, 86, - 233, 71, 69, 233, 233, 233, 233, 65, 233, 233, - 233, 59, 233, 56, 233, 233, 53, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 25, - 233, 233, 233, 233, 233, 15, 14, 233, 233, 159, - 233, 186, 233, 184, 223, 233, 233, 95, 233, 233, - 233, 205, 207, 206, 208, 0, 0, 232, 232, 232, - 232, 197, 191, 192, 233, 233, 171, 152, 153, 233, - - 233, 162, 163, 233, 154, 156, 232, 233, 233, 233, - 233, 233, 233, 124, 233, 233, 119, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 179, 98, 233, 233, - 233, 233, 233, 233, 80, 83, 78, 81, 233, 233, - 233, 79, 82, 233, 67, 66, 233, 63, 62, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 44, - 39, 38, 37, 36, 35, 34, 233, 32, 31, 233, - 233, 233, 233, 233, 233, 233, 21, 233, 233, 16, - 13, 233, 9, 233, 233, 233, 233, 233, 233, 233, - 236, 190, 170, 168, 177, 176, 169, 167, 174, 173, - - 233, 233, 233, 155, 157, 146, 233, 233, 233, 233, - 139, 138, 233, 127, 233, 233, 118, 233, 233, 233, - 233, 111, 110, 233, 233, 233, 233, 233, 233, 233, - 105, 104, 233, 233, 233, 96, 233, 92, 89, 84, - 74, 233, 233, 68, 64, 233, 61, 60, 58, 57, - 233, 55, 45, 233, 50, 47, 49, 46, 48, 233, - 233, 43, 42, 233, 233, 233, 233, 233, 27, 24, - 23, 233, 233, 233, 233, 233, 233, 228, 233, 227, - 233, 233, 233, 233, 160, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 122, 233, 117, 116, 233, - - 233, 233, 233, 233, 233, 233, 233, 108, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 2, 182, - 52, 41, 40, 33, 233, 233, 233, 30, 233, 22, - 233, 233, 233, 172, 231, 233, 233, 233, 233, 233, - 164, 161, 145, 144, 143, 142, 141, 233, 233, 233, - 233, 126, 121, 233, 233, 233, 233, 233, 51, 233, - 233, 107, 233, 233, 233, 233, 233, 88, 87, 90, - 233, 233, 73, 72, 29, 233, 233, 233, 20, 233, - 233, 233, 229, 233, 226, 165, 166, 233, 233, 233, - 233, 233, 233, 120, 233, 114, 113, 233, 233, 233, - - 5, 106, 233, 180, 233, 233, 233, 233, 28, 233, - 233, 17, 11, 233, 233, 233, 233, 135, 133, 134, - 132, 129, 233, 115, 233, 6, 109, 233, 233, 3, - 233, 76, 1, 26, 230, 225, 137, 130, 131, 233, - 233, 233, 233, 233, 128, 233, 233, 4, 75, 233, - 233, 112, 233, 233, 233, 233, 181, 0 - } ; - -static yyconst int yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 4, 1, 5, 6, 7, 8, 1, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 1, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 1, 60, 61, 62, 1, 63, 64, 35, 36, - - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 65, 48, 49, 66, 51, 67, 53, 54, 55, 56, - 57, 58, 1, 68, 1, 69, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst int yy_meta[70] = - { 0, - 1, 1, 2, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 1, 5, 4, 5, 5, 5, 4, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, - 1, 3, 5, 4, 3, 3, 3, 1, 1 - } ; - -static yyconst short int yy_base[565] = - { 0, - 0, 0, 32, 33, 814, 815, 815, 815, 815, 0, - 815, 783, 815, 815, 782, 60, 815, 61, 800, 113, - 44, 815, 815, 54, 75, 779, 815, 161, 221, 59, - 84, 42, 92, 105, 109, 148, 756, 271, 141, 48, - 110, 322, 372, 421, 153, 757, 60, 787, 0, 0, - 815, 815, 776, 741, 58, 815, 141, 64, 763, 43, - 61, 0, 815, 815, 815, 815, 105, 815, 815, 129, - 792, 210, 225, 235, 472, 275, 815, 772, 815, 815, - 815, 145, 786, 785, 748, 163, 757, 0, 0, 263, - 185, 0, 0, 782, 131, 0, 759, 97, 154, 751, - - 0, 753, 0, 736, 757, 752, 742, 69, 736, 279, - 773, 741, 0, 156, 0, 0, 157, 749, 770, 740, - 0, 0, 732, 0, 737, 766, 196, 199, 0, 153, - 226, 247, 765, 723, 732, 220, 280, 0, 221, 740, - 170, 761, 740, 0, 250, 728, 758, 731, 252, 735, - 257, 308, 260, 248, 269, 288, 281, 729, 730, 753, - 710, 725, 714, 713, 710, 0, 0, 714, 298, 0, - 742, 815, 219, 815, 815, 707, 715, 714, 711, 174, - 712, 815, 815, 815, 815, 744, 138, 356, 408, 0, - 0, 815, 815, 724, 312, 343, 0, 0, 0, 714, - - 711, 0, 0, 249, 700, 699, 0, 232, 369, 695, - 303, 711, 703, 0, 700, 701, 375, 337, 337, 122, - 238, 338, 378, 347, 239, 709, 725, 0, 356, 318, - 705, 722, 692, 363, 0, 0, 0, 0, 691, 390, - 697, 0, 0, 372, 0, 0, 689, 0, 0, 700, - 684, 699, 403, 690, 684, 393, 436, 680, 474, 431, - 0, 0, 0, 0, 0, 0, 684, 0, 0, 398, - 678, 401, 690, 681, 437, 680, 0, 690, 401, 0, - 0, 662, 0, 657, 671, 684, 667, 676, 680, 676, - 705, 815, 0, 0, 0, 0, 0, 0, 0, 0, - - 669, 676, 434, 0, 0, 0, 669, 659, 674, 448, - 0, 659, 466, 694, 673, 670, 439, 661, 411, 654, - 660, 0, 0, 419, 422, 647, 649, 450, 665, 470, - 0, 0, 664, 675, 462, 0, 636, 0, 682, 0, - 634, 642, 656, 0, 0, 656, 0, 0, 0, 0, - 657, 0, 0, 654, 0, 0, 0, 0, 0, 671, - 672, 0, 0, 652, 652, 470, 649, 471, 470, 0, - 0, 650, 646, 632, 637, 614, 640, 617, 627, 0, - 640, 630, 521, 474, 0, 466, 619, 475, 630, 477, - 633, 624, 485, 625, 614, 0, 618, 0, 0, 620, - - 623, 625, 626, 611, 491, 628, 611, 0, 619, 625, - 622, 613, 622, 495, 503, 487, 608, 497, 0, 0, - 0, 0, 0, 0, 615, 517, 603, 0, 612, 0, - 613, 614, 519, 0, 609, 609, 501, 605, 624, 625, - 0, 0, 0, 0, 0, 0, 0, 604, 537, 609, - 595, 0, 623, 597, 508, 510, 594, 588, 0, 590, - 600, 0, 511, 585, 614, 532, 597, 0, 0, 0, - 596, 586, 0, 0, 0, 514, 594, 517, 0, 518, - 574, 583, 0, 593, 0, 0, 0, 589, 544, 315, - 578, 582, 538, 0, 568, 0, 0, 586, 578, 520, - - 0, 0, 575, 0, 551, 554, 563, 564, 0, 521, - 548, 0, 0, 543, 556, 522, 418, 0, 0, 0, - 0, 0, 558, 0, 535, 0, 0, 524, 528, 0, - 424, 0, 0, 0, 0, 0, 0, 0, 0, 403, - 388, 378, 324, 279, 0, 272, 529, 0, 0, 531, - 538, 0, 262, 168, 82, 83, 0, 815, 603, 608, - 92, 613, 615, 617 - } ; - -static yyconst short int yy_def[565] = - { 0, - 558, 1, 1, 1, 558, 558, 558, 558, 558, 559, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 560, - 561, 558, 558, 558, 558, 558, 558, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 558, 558, 558, 28, 558, 558, 559, 36, 38, 42, - 559, 559, 558, 558, 558, 558, 558, 558, 558, 558, - 562, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 563, 559, 559, 559, 559, 559, 559, 559, - - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 558, 559, 558, 558, 559, 559, 559, 559, 559, - 559, 558, 558, 558, 558, 562, 562, 558, 558, 75, - 564, 558, 558, 558, 559, 559, 559, 559, 559, 559, - - 559, 559, 559, 559, 559, 559, 563, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 562, 558, 559, 559, 559, 559, 559, 559, 559, 559, - - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 559, 0, 558, 558, - 558, 558, 558, 558 - } ; - -static yyconst short int yy_nxt[885] = - { 0, - 6, 7, 8, 9, 6, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 10, 19, 20, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 10, 38, 39, 40, 41, 42, 10, 43, - 44, 45, 46, 47, 48, 49, 10, 50, 51, 52, - 53, 10, 54, 29, 41, 43, 45, 55, 56, 57, - 57, 65, 58, 58, 68, 59, 59, 77, 80, 60, - 60, 77, 78, 79, 61, 61, 109, 174, 93, 66, - 69, 100, 180, 101, 137, 76, 93, 110, 138, 177, - - 169, 178, 102, 557, 81, 103, 181, 77, 180, 104, - 170, 168, 137, 93, 93, 105, 182, 106, 183, 219, - 107, 100, 220, 103, 108, 175, 556, 67, 70, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 111, - 184, 113, 185, 211, 112, 93, 74, 106, 187, 116, - 74, 114, 117, 291, 139, 140, 115, 133, 133, 133, - 133, 211, 141, 118, 119, 119, 119, 119, 75, 114, - 322, 115, 323, 134, 193, 194, 74, 83, 84, 198, - 199, 135, 209, 120, 176, 121, 136, 122, 111, 164, - 165, 555, 166, 112, 85, 86, 167, 209, 123, 239, - - 124, 205, 206, 134, 87, 212, 88, 227, 228, 89, - 289, 90, 235, 236, 91, 237, 238, 239, 92, 256, - 212, 252, 227, 228, 85, 93, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 252, 94, 94, 94, - 94, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 95, 240, 242, 243, 241, 247, 250, 96, 197, - 97, 306, 324, 325, 326, 306, 98, 99, 331, 554, - 268, 303, 332, 284, 247, 250, 97, 126, 126, 126, - 126, 76, 76, 76, 76, 76, 76, 76, 76, 76, - - 76, 255, 201, 259, 127, 128, 202, 129, 261, 267, - 268, 303, 203, 222, 204, 269, 255, 130, 259, 550, - 270, 131, 132, 261, 549, 267, 223, 248, 203, 204, - 224, 249, 272, 269, 127, 130, 271, 132, 142, 142, - 142, 142, 142, 142, 262, 224, 249, 272, 263, 282, - 270, 293, 312, 264, 143, 294, 144, 336, 265, 519, - 548, 336, 520, 266, 282, 145, 295, 296, 312, 321, - 327, 146, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 297, 320, 143, 328, 298, 146, 147, 147, - 147, 147, 147, 147, 147, 147, 330, 299, 300, 321, - - 327, 320, 340, 307, 148, 335, 340, 317, 149, 318, - 329, 344, 330, 308, 319, 344, 547, 150, 151, 309, - 310, 335, 546, 152, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 148, 310, 151, 317, 152, 153, - 329, 342, 349, 401, 352, 545, 349, 365, 360, 361, - 367, 404, 374, 154, 405, 155, 342, 156, 157, 352, - 158, 159, 538, 365, 544, 539, 367, 374, 160, 353, - 362, 161, 162, 401, 363, 353, 370, 163, 398, 353, - 371, 404, 399, 154, 405, 385, 389, 162, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 390, 353, - - 385, 408, 410, 429, 191, 191, 191, 191, 191, 191, - 355, 413, 392, 393, 356, 443, 408, 450, 394, 357, - 471, 426, 428, 472, 358, 442, 445, 413, 447, 359, - 392, 443, 410, 429, 191, 191, 426, 428, 439, 440, - 442, 445, 459, 447, 467, 441, 468, 450, 474, 476, - 471, 481, 484, 469, 489, 490, 491, 459, 470, 496, - 467, 497, 502, 474, 505, 509, 517, 484, 511, 512, - 523, 527, 533, 537, 496, 551, 497, 502, 543, 476, - 509, 481, 552, 511, 512, 542, 527, 533, 537, 553, - 541, 518, 540, 551, 505, 536, 535, 552, 534, 532, - - 523, 531, 530, 529, 553, 62, 62, 62, 72, 528, - 72, 72, 72, 186, 526, 186, 186, 186, 207, 207, - 191, 191, 525, 524, 522, 521, 516, 515, 514, 513, - 510, 508, 507, 506, 504, 503, 501, 500, 499, 498, - 495, 494, 493, 492, 488, 487, 486, 485, 483, 482, - 480, 479, 478, 477, 475, 473, 466, 465, 464, 463, - 462, 461, 460, 458, 457, 456, 455, 454, 453, 452, - 451, 449, 448, 446, 444, 438, 437, 436, 414, 435, - 434, 433, 432, 431, 430, 427, 425, 424, 423, 422, - 421, 420, 419, 418, 417, 416, 415, 414, 412, 411, - - 409, 407, 406, 403, 402, 400, 397, 396, 395, 391, - 388, 387, 386, 384, 383, 187, 382, 381, 380, 379, - 378, 377, 376, 375, 373, 372, 369, 368, 366, 364, - 354, 351, 350, 348, 347, 346, 345, 343, 341, 339, - 338, 337, 334, 333, 316, 315, 314, 313, 311, 305, - 304, 302, 301, 292, 187, 290, 288, 287, 286, 285, - 283, 281, 280, 279, 278, 277, 276, 275, 274, 273, - 260, 258, 257, 256, 254, 253, 251, 246, 245, 244, - 234, 233, 232, 231, 230, 229, 226, 225, 221, 218, - 217, 216, 215, 214, 213, 210, 208, 200, 197, 196, - - 195, 192, 187, 179, 173, 172, 171, 168, 125, 82, - 71, 64, 63, 558, 5, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558 - } ; - -static yyconst short int yy_chk[885] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 4, 16, 3, 4, 18, 3, 4, 21, 25, 3, - 4, 21, 24, 24, 3, 4, 32, 55, 31, 16, - 18, 30, 60, 30, 40, 561, 33, 32, 40, 58, - - 47, 58, 30, 556, 25, 30, 61, 21, 60, 30, - 47, 61, 40, 35, 41, 30, 67, 31, 67, 108, - 31, 30, 108, 30, 31, 55, 555, 16, 18, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 33, - 70, 34, 70, 98, 33, 57, 20, 31, 187, 35, - 20, 34, 35, 187, 41, 41, 34, 39, 39, 39, - 39, 98, 41, 35, 36, 36, 36, 36, 20, 34, - 220, 34, 220, 39, 82, 82, 20, 28, 28, 86, - 86, 39, 95, 36, 57, 36, 39, 36, 57, 45, - 45, 554, 45, 57, 28, 28, 45, 95, 36, 130, - - 36, 91, 91, 39, 28, 99, 28, 114, 117, 28, - 180, 28, 127, 127, 28, 128, 128, 130, 28, 180, - 99, 141, 114, 117, 28, 29, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 141, 29, 29, 29, - 29, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 29, 131, 132, 132, 131, 136, 139, 29, 173, - 29, 208, 221, 221, 221, 208, 29, 29, 225, 553, - 154, 204, 225, 173, 136, 139, 29, 38, 38, 38, - 38, 76, 76, 76, 76, 76, 76, 76, 76, 76, - - 76, 145, 90, 149, 38, 38, 90, 38, 151, 153, - 154, 204, 90, 110, 90, 155, 145, 38, 149, 546, - 156, 38, 38, 151, 544, 153, 110, 137, 90, 90, - 110, 137, 157, 155, 38, 38, 156, 38, 42, 42, - 42, 42, 42, 42, 152, 110, 137, 157, 152, 169, - 156, 195, 211, 152, 42, 195, 42, 230, 152, 490, - 543, 230, 490, 152, 169, 42, 195, 195, 211, 219, - 222, 42, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 196, 218, 42, 222, 196, 42, 43, 43, - 43, 43, 43, 43, 43, 43, 224, 196, 196, 219, - - 222, 218, 234, 209, 43, 229, 234, 217, 43, 217, - 223, 244, 224, 209, 217, 244, 542, 43, 43, 209, - 209, 229, 541, 43, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 43, 209, 43, 217, 43, 44, - 223, 240, 253, 319, 256, 540, 253, 270, 260, 260, - 272, 324, 279, 44, 325, 44, 240, 44, 44, 256, - 44, 44, 517, 270, 531, 517, 272, 279, 44, 257, - 260, 44, 44, 319, 260, 257, 275, 44, 317, 257, - 275, 324, 317, 44, 325, 303, 310, 44, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 310, 257, - - 303, 328, 330, 369, 75, 75, 75, 75, 75, 75, - 259, 335, 313, 313, 259, 386, 328, 393, 313, 259, - 416, 366, 368, 416, 259, 384, 388, 335, 390, 259, - 313, 386, 330, 369, 75, 75, 366, 368, 383, 383, - 384, 388, 405, 390, 414, 383, 415, 393, 418, 426, - 416, 433, 437, 415, 449, 449, 449, 405, 415, 455, - 414, 456, 463, 418, 466, 476, 489, 437, 478, 480, - 493, 500, 510, 516, 455, 547, 456, 463, 529, 426, - 476, 433, 550, 478, 480, 528, 500, 510, 516, 551, - 525, 489, 523, 547, 466, 515, 514, 550, 511, 508, - - 493, 507, 506, 505, 551, 559, 559, 559, 560, 503, - 560, 560, 560, 562, 499, 562, 562, 562, 563, 563, - 564, 564, 498, 495, 492, 491, 488, 484, 482, 481, - 477, 472, 471, 467, 465, 464, 461, 460, 458, 457, - 454, 453, 451, 450, 448, 440, 439, 438, 436, 435, - 432, 431, 429, 427, 425, 417, 413, 412, 411, 410, - 409, 407, 406, 404, 403, 402, 401, 400, 397, 395, - 394, 392, 391, 389, 387, 382, 381, 379, 378, 377, - 376, 375, 374, 373, 372, 367, 365, 364, 361, 360, - 354, 351, 346, 343, 342, 341, 339, 337, 334, 333, - - 329, 327, 326, 321, 320, 318, 316, 315, 314, 312, - 309, 308, 307, 302, 301, 291, 290, 289, 288, 287, - 286, 285, 284, 282, 278, 276, 274, 273, 271, 267, - 258, 255, 254, 252, 251, 250, 247, 241, 239, 233, - 232, 231, 227, 226, 216, 215, 213, 212, 210, 206, - 205, 201, 200, 194, 186, 181, 179, 178, 177, 176, - 171, 168, 165, 164, 163, 162, 161, 160, 159, 158, - 150, 148, 147, 146, 143, 142, 140, 135, 134, 133, - 126, 125, 123, 120, 119, 118, 112, 111, 109, 107, - 106, 105, 104, 102, 100, 97, 94, 87, 85, 84, - - 83, 78, 71, 59, 54, 53, 48, 46, 37, 26, - 19, 15, 12, 5, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 558, 558, 558, 558 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *yytext; -#line 1 "bfin-lex.l" -#define INITIAL 0 -/* bfin-lex.l ADI Blackfin lexer - Copyright 2005 - Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler. - - GAS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GAS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ -#line 22 "bfin-lex.l" - -#include <stdlib.h> -#include <string.h> -#include "bfin-defs.h" -#include "bfin-parse.h" -#include "as.h" - -static long parse_int (char **end); -static int parse_halfreg (Register *r, int cl, char *hr); -static int parse_reg (Register *r, int type, char *rt); -int yylex (void); - -#define _REG yylval.reg - - -/* Define Start States ... Actually we will use exclusion. - If no start state is specified it should match any state - and <INITIAL> would match some keyword rules only with - initial. */ -#define KEYWORD 1 - -#line 788 "bfin-lex.c" - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int yywrap YY_PROTO(( void )); -#else -extern int yywrap YY_PROTO(( void )); -#endif -#endif - -#ifndef YY_NO_UNPUT -static void yyunput YY_PROTO(( int c, char *buf_ptr )); -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen YY_PROTO(( yyconst char * )); -#endif - -#ifndef YY_NO_INPUT -#ifdef __cplusplus -static int yyinput YY_PROTO(( void )); -#else -static int input YY_PROTO(( void )); -#endif -#endif - -#if YY_STACK_USED -static int yy_start_stack_ptr = 0; -static int yy_start_stack_depth = 0; -static int *yy_start_stack = 0; -#ifndef YY_NO_PUSH_STATE -static void yy_push_state YY_PROTO(( int new_state )); -#endif -#ifndef YY_NO_POP_STATE -static void yy_pop_state YY_PROTO(( void )); -#endif -#ifndef YY_NO_TOP_STATE -static int yy_top_state YY_PROTO(( void )); -#endif - -#else -#define YY_NO_PUSH_STATE 1 -#define YY_NO_POP_STATE 1 -#define YY_NO_TOP_STATE 1 -#endif - -#ifdef YY_MALLOC_DECL -YY_MALLOC_DECL -#else -#if __STDC__ -#ifndef __cplusplus -#include <stdlib.h> -#endif -#else -/* Just try to get by without declaring the routines. This will fail - * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) - * or sizeof(void*) != sizeof(int). - */ -#endif -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ - -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( yy_current_buffer->yy_is_interactive ) \ - { \ - int c = '*', n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - } -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL int yylex YY_PROTO(( void )) -#endif - -/* Code executed at the beginning of each rule, after yytext and yyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ - YY_USER_ACTION - -YY_DECL - { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -#line 45 "bfin-lex.l" - -#line 952 "bfin-lex.c" - - if ( yy_init ) - { - yy_init = 0; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! yy_start ) - yy_start = 1; /* first start state */ - - if ( ! yyin ) - yyin = stdin; - - if ( ! yyout ) - yyout = stdout; - - if ( ! yy_current_buffer ) - yy_current_buffer = - yy_create_buffer( yyin, YY_BUF_SIZE ); - - yy_load_buffer_state(); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = yy_c_buf_p; - - /* Support of yytext. */ - *yy_cp = yy_hold_char; - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = yy_start; -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 559 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 815 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = yy_last_accepting_cpos; - yy_current_state = yy_last_accepting_state; - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - - -do_action: /* This label is used only to access EOF actions. */ - - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = yy_hold_char; - yy_cp = yy_last_accepting_cpos; - yy_current_state = yy_last_accepting_state; - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 46 "bfin-lex.l" -_REG.regno = REG_sftreset; return REG; - YY_BREAK -case 2: -YY_RULE_SETUP -#line 47 "bfin-lex.l" -_REG.regno = REG_omode; return REG; - YY_BREAK -case 3: -YY_RULE_SETUP -#line 48 "bfin-lex.l" -_REG.regno = REG_idle_req; return REG; - YY_BREAK -case 4: -YY_RULE_SETUP -#line 49 "bfin-lex.l" -_REG.regno = REG_hwerrcause; return REG; - YY_BREAK -case 5: -YY_RULE_SETUP -#line 50 "bfin-lex.l" -_REG.regno = REG_excause; return REG; - YY_BREAK -case 6: -YY_RULE_SETUP -#line 51 "bfin-lex.l" -_REG.regno = REG_emucause; return REG; - YY_BREAK -case 7: -YY_RULE_SETUP -#line 52 "bfin-lex.l" -return Z; - YY_BREAK -case 8: -YY_RULE_SETUP -#line 53 "bfin-lex.l" -return X; - YY_BREAK -case 9: -YY_RULE_SETUP -#line 54 "bfin-lex.l" -yylval.value = M_W32; return MMOD; - YY_BREAK -case 10: -YY_RULE_SETUP -#line 55 "bfin-lex.l" -return W; - YY_BREAK -case 11: -YY_RULE_SETUP -#line 56 "bfin-lex.l" -return VIT_MAX; - YY_BREAK -case 12: -YY_RULE_SETUP -#line 57 "bfin-lex.l" -return V; /* Special: V is a statflag and a modifier. */ - YY_BREAK -case 13: -YY_RULE_SETUP -#line 58 "bfin-lex.l" -_REG.regno = REG_USP; return REG; - YY_BREAK -case 14: -YY_RULE_SETUP -#line 59 "bfin-lex.l" -return TL; - YY_BREAK -case 15: -YY_RULE_SETUP -#line 60 "bfin-lex.l" -return TH; - YY_BREAK -case 16: -YY_RULE_SETUP -#line 61 "bfin-lex.l" -yylval.value = M_TFU; return MMOD; - YY_BREAK -case 17: -YY_RULE_SETUP -#line 62 "bfin-lex.l" -return TESTSET; - YY_BREAK -case 18: -YY_RULE_SETUP -#line 63 "bfin-lex.l" -yylval.value = M_T; return MMOD; - YY_BREAK -case 19: -YY_RULE_SETUP -#line 64 "bfin-lex.l" -return S; - YY_BREAK -case 20: -YY_RULE_SETUP -#line 65 "bfin-lex.l" -_REG.regno = REG_SYSCFG; return REG; - YY_BREAK -case 21: -YY_RULE_SETUP -#line 66 "bfin-lex.l" -return STI; - YY_BREAK -case 22: -YY_RULE_SETUP -#line 67 "bfin-lex.l" -return SSYNC; - YY_BREAK -case 23: -YY_RULE_SETUP -#line 68 "bfin-lex.l" -_REG.regno = REG_SP; return HALF_REG; - YY_BREAK -case 24: -YY_RULE_SETUP -#line 69 "bfin-lex.l" -_REG.regno = REG_SP | F_REG_HIGH; return HALF_REG; - YY_BREAK -case 25: -YY_RULE_SETUP -#line 70 "bfin-lex.l" -_REG.regno = REG_SP; return REG; - YY_BREAK -case 26: -YY_RULE_SETUP -#line 71 "bfin-lex.l" -return SIGNBITS; - YY_BREAK -case 27: -YY_RULE_SETUP -#line 72 "bfin-lex.l" -return SIGN; - YY_BREAK -case 28: -YY_RULE_SETUP -#line 73 "bfin-lex.l" -_REG.regno = REG_SEQSTAT; return REG; - YY_BREAK -case 29: -YY_RULE_SETUP -#line 74 "bfin-lex.l" -return SEARCH; - YY_BREAK -case 30: -YY_RULE_SETUP -#line 75 "bfin-lex.l" -return SHIFT; - YY_BREAK -case 31: -YY_RULE_SETUP -#line 76 "bfin-lex.l" -return SCO; - YY_BREAK -case 32: -YY_RULE_SETUP -#line 78 "bfin-lex.l" -return SAA; - YY_BREAK -case 33: -YY_RULE_SETUP -#line 79 "bfin-lex.l" -yylval.value = M_S2RND; return MMOD; - YY_BREAK -case 34: -YY_RULE_SETUP -#line 80 "bfin-lex.l" -return RTX; - YY_BREAK -case 35: -YY_RULE_SETUP -#line 81 "bfin-lex.l" -return RTS; - YY_BREAK -case 36: -YY_RULE_SETUP -#line 82 "bfin-lex.l" -return RTN; - YY_BREAK -case 37: -YY_RULE_SETUP -#line 83 "bfin-lex.l" -return RTI; - YY_BREAK -case 38: -YY_RULE_SETUP -#line 84 "bfin-lex.l" -return RTE; - YY_BREAK -case 39: -YY_RULE_SETUP -#line 85 "bfin-lex.l" -return ROT; - YY_BREAK -case 40: -YY_RULE_SETUP -#line 86 "bfin-lex.l" -return RND20; - YY_BREAK -case 41: -YY_RULE_SETUP -#line 87 "bfin-lex.l" -return RND12; - YY_BREAK -case 42: -YY_RULE_SETUP -#line 88 "bfin-lex.l" -return RNDL; - YY_BREAK -case 43: -YY_RULE_SETUP -#line 89 "bfin-lex.l" -return RNDH; - YY_BREAK -case 44: -YY_RULE_SETUP -#line 90 "bfin-lex.l" -return RND; - YY_BREAK -case 45: -YY_RULE_SETUP -#line 92 "bfin-lex.l" -return parse_halfreg(&yylval.reg, T_REG_R, yytext); - YY_BREAK -case 46: -YY_RULE_SETUP -#line 94 "bfin-lex.l" -_REG.regno = REG_RETS; return REG; - YY_BREAK -case 47: -YY_RULE_SETUP -#line 95 "bfin-lex.l" -_REG.regno = REG_RETI; return REG; - YY_BREAK -case 48: -YY_RULE_SETUP -#line 96 "bfin-lex.l" -_REG.regno = REG_RETX; return REG; - YY_BREAK -case 49: -YY_RULE_SETUP -#line 97 "bfin-lex.l" -_REG.regno = REG_RETN; return REG; - YY_BREAK -case 50: -YY_RULE_SETUP -#line 98 "bfin-lex.l" -_REG.regno = REG_RETE; return REG; - YY_BREAK -case 51: -YY_RULE_SETUP -#line 99 "bfin-lex.l" -_REG.regno = REG_EMUDAT; return REG; - YY_BREAK -case 52: -YY_RULE_SETUP -#line 100 "bfin-lex.l" -return RAISE; - YY_BREAK -case 53: -YY_RULE_SETUP -#line 102 "bfin-lex.l" -return parse_reg (&yylval.reg, T_REG_R, yytext); - YY_BREAK -case 54: -YY_RULE_SETUP -#line 104 "bfin-lex.l" -return R; - YY_BREAK -case 55: -YY_RULE_SETUP -#line 105 "bfin-lex.l" -return PRNT; - YY_BREAK -case 56: -YY_RULE_SETUP -#line 106 "bfin-lex.l" -return PC; - YY_BREAK -case 57: -YY_RULE_SETUP -#line 107 "bfin-lex.l" -return PACK; - YY_BREAK -case 58: -YY_RULE_SETUP -#line 109 "bfin-lex.l" -return parse_halfreg (&yylval.reg, T_REG_P, yytext); - YY_BREAK -case 59: -YY_RULE_SETUP -#line 110 "bfin-lex.l" -return parse_reg (&yylval.reg, T_REG_P, yytext); - YY_BREAK -case 60: -YY_RULE_SETUP -#line 112 "bfin-lex.l" -return OUTC; - YY_BREAK -case 61: -YY_RULE_SETUP -#line 113 "bfin-lex.l" -return ONES; - YY_BREAK -case 62: -YY_RULE_SETUP -#line 115 "bfin-lex.l" -return NOT; - YY_BREAK -case 63: -YY_RULE_SETUP -#line 116 "bfin-lex.l" -return NOP; - YY_BREAK -case 64: -YY_RULE_SETUP -#line 117 "bfin-lex.l" -return MNOP; - YY_BREAK -case 65: -YY_RULE_SETUP -#line 118 "bfin-lex.l" -return NS; - YY_BREAK -case 66: -YY_RULE_SETUP -#line 121 "bfin-lex.l" -return MIN; - YY_BREAK -case 67: -YY_RULE_SETUP -#line 122 "bfin-lex.l" -return MAX; - YY_BREAK -case 68: -YY_RULE_SETUP -#line 124 "bfin-lex.l" -return parse_halfreg (&yylval.reg, T_REG_M, yytext); - YY_BREAK -case 69: -YY_RULE_SETUP -#line 125 "bfin-lex.l" -return parse_reg (&yylval.reg, T_REG_M, yytext); - YY_BREAK -case 70: -YY_RULE_SETUP -#line 127 "bfin-lex.l" -return M; - YY_BREAK -case 71: -YY_RULE_SETUP -#line 128 "bfin-lex.l" -return LT; - YY_BREAK -case 72: -YY_RULE_SETUP -#line 129 "bfin-lex.l" -return LSHIFT; - YY_BREAK -case 73: -YY_RULE_SETUP -#line 130 "bfin-lex.l" -return LSETUP; - YY_BREAK -case 74: -YY_RULE_SETUP -#line 131 "bfin-lex.l" -return LOOP; - YY_BREAK -case 75: -YY_RULE_SETUP -#line 132 "bfin-lex.l" -return LOOP_BEGIN; - YY_BREAK -case 76: -YY_RULE_SETUP -#line 133 "bfin-lex.l" -return LOOP_END; - YY_BREAK -case 77: -YY_RULE_SETUP -#line 135 "bfin-lex.l" -return LE; - YY_BREAK -case 78: -YY_RULE_SETUP -#line 136 "bfin-lex.l" -_REG.regno = REG_LC0; return REG; - YY_BREAK -case 79: -YY_RULE_SETUP -#line 137 "bfin-lex.l" -_REG.regno = REG_LT0; return REG; - YY_BREAK -case 80: -YY_RULE_SETUP -#line 138 "bfin-lex.l" -_REG.regno = REG_LB0; return REG; - YY_BREAK -case 81: -YY_RULE_SETUP -#line 139 "bfin-lex.l" -_REG.regno = REG_LC1; return REG; - YY_BREAK -case 82: -YY_RULE_SETUP -#line 140 "bfin-lex.l" -_REG.regno = REG_LT1; return REG; - YY_BREAK -case 83: -YY_RULE_SETUP -#line 141 "bfin-lex.l" -_REG.regno = REG_LB1; return REG; - YY_BREAK -case 84: -YY_RULE_SETUP -#line 143 "bfin-lex.l" -return parse_halfreg (&yylval.reg, T_REG_L, yytext); - YY_BREAK -case 85: -YY_RULE_SETUP -#line 144 "bfin-lex.l" -return parse_reg (&yylval.reg, T_REG_L, yytext); - YY_BREAK -case 86: -YY_RULE_SETUP -#line 145 "bfin-lex.l" -return LO; - YY_BREAK -case 87: -YY_RULE_SETUP -#line 146 "bfin-lex.l" -{ BEGIN 0; return JUMP_DOT_S;} - YY_BREAK -case 88: -YY_RULE_SETUP -#line 147 "bfin-lex.l" -{ BEGIN 0; return JUMP_DOT_L;} - YY_BREAK -case 89: -YY_RULE_SETUP -#line 148 "bfin-lex.l" -{ BEGIN 0; return JUMP;} - YY_BREAK -case 90: -YY_RULE_SETUP -#line 149 "bfin-lex.l" -{ BEGIN 0; return JUMP_DOT_L; } - YY_BREAK -case 91: -YY_RULE_SETUP -#line 150 "bfin-lex.l" -yylval.value = M_IU; return MMOD; - YY_BREAK -case 92: -YY_RULE_SETUP -#line 151 "bfin-lex.l" -yylval.value = M_ISS2; return MMOD; - YY_BREAK -case 93: -YY_RULE_SETUP -#line 152 "bfin-lex.l" -yylval.value = M_IS; return MMOD; - YY_BREAK -case 94: -YY_RULE_SETUP -#line 153 "bfin-lex.l" -yylval.value = M_IH; return MMOD; - YY_BREAK -case 95: -YY_RULE_SETUP -#line 154 "bfin-lex.l" -return IF; - YY_BREAK -case 96: -YY_RULE_SETUP -#line 155 "bfin-lex.l" -return parse_halfreg (&yylval.reg, T_REG_I, yytext); - YY_BREAK -case 97: -YY_RULE_SETUP -#line 156 "bfin-lex.l" -return parse_reg (&yylval.reg, T_REG_I, yytext); - YY_BREAK -case 98: -YY_RULE_SETUP -#line 157 "bfin-lex.l" -return HLT; - YY_BREAK -case 99: -YY_RULE_SETUP -#line 158 "bfin-lex.l" -return HI; - YY_BREAK -case 100: -YY_RULE_SETUP -#line 159 "bfin-lex.l" -return GT; - YY_BREAK -case 101: -YY_RULE_SETUP -#line 160 "bfin-lex.l" -return GE; - YY_BREAK -case 102: -YY_RULE_SETUP -#line 161 "bfin-lex.l" -yylval.value = M_FU; return MMOD; - YY_BREAK -case 103: -YY_RULE_SETUP -#line 162 "bfin-lex.l" -_REG.regno = REG_FP; return REG; - YY_BREAK -case 104: -YY_RULE_SETUP -#line 163 "bfin-lex.l" -_REG.regno = REG_FP; return HALF_REG; - YY_BREAK -case 105: -YY_RULE_SETUP -#line 164 "bfin-lex.l" -_REG.regno = REG_FP | F_REG_HIGH; return HALF_REG; - YY_BREAK -case 106: -YY_RULE_SETUP -#line 166 "bfin-lex.l" -return EXTRACT; - YY_BREAK -case 107: -YY_RULE_SETUP -#line 167 "bfin-lex.l" -return EXPADJ; - YY_BREAK -case 108: -YY_RULE_SETUP -#line 168 "bfin-lex.l" -return EXCPT; - YY_BREAK -case 109: -YY_RULE_SETUP -#line 169 "bfin-lex.l" -return EMUEXCPT; - YY_BREAK -case 110: -YY_RULE_SETUP -#line 170 "bfin-lex.l" -return DIVS; - YY_BREAK -case 111: -YY_RULE_SETUP -#line 171 "bfin-lex.l" -return DIVQ; - YY_BREAK -case 112: -YY_RULE_SETUP -#line 172 "bfin-lex.l" -return DISALGNEXCPT; - YY_BREAK -case 113: -YY_RULE_SETUP -#line 173 "bfin-lex.l" -return DEPOSIT; - YY_BREAK -case 114: -YY_RULE_SETUP -#line 174 "bfin-lex.l" -return DBGHALT; - YY_BREAK -case 115: -YY_RULE_SETUP -#line 175 "bfin-lex.l" -return DBGCMPLX; - YY_BREAK -case 116: -YY_RULE_SETUP -#line 176 "bfin-lex.l" -return DBGAL; - YY_BREAK -case 117: -YY_RULE_SETUP -#line 177 "bfin-lex.l" -return DBGAH; - YY_BREAK -case 118: -YY_RULE_SETUP -#line 178 "bfin-lex.l" -return DBGA; - YY_BREAK -case 119: -YY_RULE_SETUP -#line 179 "bfin-lex.l" -return DBG; - YY_BREAK -case 120: -YY_RULE_SETUP -#line 180 "bfin-lex.l" -{ _REG.regno = REG_CYCLES2; return REG; } - YY_BREAK -case 121: -YY_RULE_SETUP -#line 181 "bfin-lex.l" -{ _REG.regno = REG_CYCLES; return REG; } - YY_BREAK -case 122: -YY_RULE_SETUP -#line 182 "bfin-lex.l" -return CSYNC; - YY_BREAK -case 123: -YY_RULE_SETUP -#line 183 "bfin-lex.l" -return CO; - YY_BREAK -case 124: -YY_RULE_SETUP -#line 184 "bfin-lex.l" -return CLI; - YY_BREAK -case 125: -YY_RULE_SETUP -#line 186 "bfin-lex.l" -_REG.regno = REG_CC; return CCREG; - YY_BREAK -case 126: -YY_RULE_SETUP -#line 187 "bfin-lex.l" -{ BEGIN 0; return CALL;} - YY_BREAK -case 127: -YY_RULE_SETUP -#line 188 "bfin-lex.l" -{ BEGIN 0; return CALL;} - YY_BREAK -case 128: -YY_RULE_SETUP -#line 189 "bfin-lex.l" -return BYTEUNPACK; - YY_BREAK -case 129: -YY_RULE_SETUP -#line 190 "bfin-lex.l" -return BYTEPACK; - YY_BREAK -case 130: -YY_RULE_SETUP -#line 191 "bfin-lex.l" -return BYTEOP16M; - YY_BREAK -case 131: -YY_RULE_SETUP -#line 192 "bfin-lex.l" -return BYTEOP16P; - YY_BREAK -case 132: -YY_RULE_SETUP -#line 193 "bfin-lex.l" -return BYTEOP3P; - YY_BREAK -case 133: -YY_RULE_SETUP -#line 194 "bfin-lex.l" -return BYTEOP2M; - YY_BREAK -case 134: -YY_RULE_SETUP -#line 195 "bfin-lex.l" -return BYTEOP2P; - YY_BREAK -case 135: -YY_RULE_SETUP -#line 196 "bfin-lex.l" -return BYTEOP1P; - YY_BREAK -case 136: -YY_RULE_SETUP -#line 197 "bfin-lex.l" -return BY; - YY_BREAK -case 137: -YY_RULE_SETUP -#line 198 "bfin-lex.l" -return BXORSHIFT; - YY_BREAK -case 138: -YY_RULE_SETUP -#line 199 "bfin-lex.l" -return BXOR; - YY_BREAK -case 139: -YY_RULE_SETUP -#line 201 "bfin-lex.l" -return BREV; - YY_BREAK -case 140: -YY_RULE_SETUP -#line 202 "bfin-lex.l" -return BP; - YY_BREAK -case 141: -YY_RULE_SETUP -#line 203 "bfin-lex.l" -return BITTST; - YY_BREAK -case 142: -YY_RULE_SETUP -#line 204 "bfin-lex.l" -return BITTGL; - YY_BREAK -case 143: -YY_RULE_SETUP -#line 205 "bfin-lex.l" -return BITSET; - YY_BREAK -case 144: -YY_RULE_SETUP -#line 206 "bfin-lex.l" -return BITMUX; - YY_BREAK -case 145: -YY_RULE_SETUP -#line 207 "bfin-lex.l" -return BITCLR; - YY_BREAK -case 146: -YY_RULE_SETUP -#line 208 "bfin-lex.l" -return parse_halfreg (&yylval.reg, T_REG_B, yytext); - YY_BREAK -case 147: -YY_RULE_SETUP -#line 209 "bfin-lex.l" -return parse_reg (&yylval.reg, T_REG_B, yytext); - YY_BREAK -case 148: -YY_RULE_SETUP -#line 210 "bfin-lex.l" -return B; - YY_BREAK -case 149: -YY_RULE_SETUP -#line 211 "bfin-lex.l" -_REG.regno = S_AZ; return STATUS_REG; - YY_BREAK -case 150: -YY_RULE_SETUP -#line 212 "bfin-lex.l" -_REG.regno = S_AN; return STATUS_REG; - YY_BREAK -case 151: -YY_RULE_SETUP -#line 213 "bfin-lex.l" -_REG.regno = S_AQ; return STATUS_REG; - YY_BREAK -case 152: -YY_RULE_SETUP -#line 214 "bfin-lex.l" -_REG.regno = S_AC0; return STATUS_REG; - YY_BREAK -case 153: -YY_RULE_SETUP -#line 215 "bfin-lex.l" -_REG.regno = S_AC1; return STATUS_REG; - YY_BREAK -case 154: -YY_RULE_SETUP -#line 216 "bfin-lex.l" -_REG.regno = S_AV0; return STATUS_REG; - YY_BREAK -case 155: -YY_RULE_SETUP -#line 217 "bfin-lex.l" -_REG.regno = S_AV0S; return STATUS_REG; - YY_BREAK -case 156: -YY_RULE_SETUP -#line 218 "bfin-lex.l" -_REG.regno = S_AV1; return STATUS_REG; - YY_BREAK -case 157: -YY_RULE_SETUP -#line 219 "bfin-lex.l" -_REG.regno = S_AV1S; return STATUS_REG; - YY_BREAK -case 158: -YY_RULE_SETUP -#line 220 "bfin-lex.l" -_REG.regno = S_V; return STATUS_REG; - YY_BREAK -case 159: -YY_RULE_SETUP -#line 221 "bfin-lex.l" -_REG.regno = S_VS; return STATUS_REG; - YY_BREAK -case 160: -YY_RULE_SETUP -#line 224 "bfin-lex.l" -_REG.regno = REG_ASTAT; return REG; - YY_BREAK -case 161: -YY_RULE_SETUP -#line 225 "bfin-lex.l" -return ASHIFT; - YY_BREAK -case 162: -YY_RULE_SETUP -#line 226 "bfin-lex.l" -return ASL; - YY_BREAK -case 163: -YY_RULE_SETUP -#line 227 "bfin-lex.l" -return ASR; - YY_BREAK -case 164: -YY_RULE_SETUP -#line 228 "bfin-lex.l" -return ALIGN8; - YY_BREAK -case 165: -YY_RULE_SETUP -#line 229 "bfin-lex.l" -return ALIGN16; - YY_BREAK -case 166: -YY_RULE_SETUP -#line 230 "bfin-lex.l" -return ALIGN24; - YY_BREAK -case 167: -YY_RULE_SETUP -#line 231 "bfin-lex.l" -return A_ONE_DOT_L; - YY_BREAK -case 168: -YY_RULE_SETUP -#line 232 "bfin-lex.l" -return A_ZERO_DOT_L; - YY_BREAK -case 169: -YY_RULE_SETUP -#line 233 "bfin-lex.l" -return A_ONE_DOT_H; - YY_BREAK -case 170: -YY_RULE_SETUP -#line 234 "bfin-lex.l" -return A_ZERO_DOT_H; - YY_BREAK -case 171: -YY_RULE_SETUP -#line 235 "bfin-lex.l" -return ABS; - YY_BREAK -case 172: -YY_RULE_SETUP -#line 236 "bfin-lex.l" -return ABORT; - YY_BREAK -case 173: -YY_RULE_SETUP -#line 237 "bfin-lex.l" -_REG.regno = REG_A1x; return REG; - YY_BREAK -case 174: -YY_RULE_SETUP -#line 238 "bfin-lex.l" -_REG.regno = REG_A1w; return REG; - YY_BREAK -case 175: -YY_RULE_SETUP -#line 239 "bfin-lex.l" -_REG.regno = REG_A1; return REG_A_DOUBLE_ONE; - YY_BREAK -case 176: -YY_RULE_SETUP -#line 240 "bfin-lex.l" -_REG.regno = REG_A0x; return REG; - YY_BREAK -case 177: -YY_RULE_SETUP -#line 241 "bfin-lex.l" -_REG.regno = REG_A0w; return REG; - YY_BREAK -case 178: -YY_RULE_SETUP -#line 242 "bfin-lex.l" -_REG.regno = REG_A0; return REG_A_DOUBLE_ZERO; - YY_BREAK -case 179: -YY_RULE_SETUP -#line 243 "bfin-lex.l" -return GOT; - YY_BREAK -case 180: -YY_RULE_SETUP -#line 244 "bfin-lex.l" -return GOT17M4; - YY_BREAK -case 181: -YY_RULE_SETUP -#line 245 "bfin-lex.l" -return FUNCDESC_GOT17M4; - YY_BREAK -case 182: -YY_RULE_SETUP -#line 246 "bfin-lex.l" -return PLTPC; - YY_BREAK -case 183: -YY_RULE_SETUP -#line 249 "bfin-lex.l" -return TILDA; - YY_BREAK -case 184: -YY_RULE_SETUP -#line 250 "bfin-lex.l" -return _BAR_ASSIGN; - YY_BREAK -case 185: -YY_RULE_SETUP -#line 251 "bfin-lex.l" -return BAR; - YY_BREAK -case 186: -YY_RULE_SETUP -#line 252 "bfin-lex.l" -return _CARET_ASSIGN; - YY_BREAK -case 187: -YY_RULE_SETUP -#line 253 "bfin-lex.l" -return CARET; - YY_BREAK -case 188: -YY_RULE_SETUP -#line 254 "bfin-lex.l" -return RBRACK; - YY_BREAK -case 189: -YY_RULE_SETUP -#line 255 "bfin-lex.l" -return LBRACK; - YY_BREAK -case 190: -YY_RULE_SETUP -#line 256 "bfin-lex.l" -return _GREATER_GREATER_GREATER_THAN_ASSIGN; - YY_BREAK -case 191: -YY_RULE_SETUP -#line 257 "bfin-lex.l" -return _GREATER_GREATER_ASSIGN; - YY_BREAK -case 192: -YY_RULE_SETUP -#line 258 "bfin-lex.l" -return _GREATER_GREATER_GREATER; - YY_BREAK -case 193: -YY_RULE_SETUP -#line 259 "bfin-lex.l" -return GREATER_GREATER; - YY_BREAK -case 194: -YY_RULE_SETUP -#line 260 "bfin-lex.l" -return _ASSIGN_ASSIGN; - YY_BREAK -case 195: -YY_RULE_SETUP -#line 261 "bfin-lex.l" -return ASSIGN; - YY_BREAK -case 196: -YY_RULE_SETUP -#line 262 "bfin-lex.l" -return _LESS_THAN_ASSIGN; - YY_BREAK -case 197: -YY_RULE_SETUP -#line 263 "bfin-lex.l" -return _LESS_LESS_ASSIGN; - YY_BREAK -case 198: -YY_RULE_SETUP -#line 264 "bfin-lex.l" -return LESS_LESS; - YY_BREAK -case 199: -YY_RULE_SETUP -#line 265 "bfin-lex.l" -return LESS_THAN; - YY_BREAK -case 200: -YY_RULE_SETUP -#line 266 "bfin-lex.l" -return LPAREN; - YY_BREAK -case 201: -YY_RULE_SETUP -#line 267 "bfin-lex.l" -return RPAREN; - YY_BREAK -case 202: -YY_RULE_SETUP -#line 268 "bfin-lex.l" -return COLON; - YY_BREAK -case 203: -YY_RULE_SETUP -#line 269 "bfin-lex.l" -return SLASH; - YY_BREAK -case 204: -YY_RULE_SETUP -#line 270 "bfin-lex.l" -return _MINUS_ASSIGN; - YY_BREAK -case 205: -YY_RULE_SETUP -#line 271 "bfin-lex.l" -return _PLUS_BAR_PLUS; - YY_BREAK -case 206: -YY_RULE_SETUP -#line 272 "bfin-lex.l" -return _MINUS_BAR_PLUS; - YY_BREAK -case 207: -YY_RULE_SETUP -#line 273 "bfin-lex.l" -return _PLUS_BAR_MINUS; - YY_BREAK -case 208: -YY_RULE_SETUP -#line 274 "bfin-lex.l" -return _MINUS_BAR_MINUS; - YY_BREAK -case 209: -YY_RULE_SETUP -#line 275 "bfin-lex.l" -return _MINUS_MINUS; - YY_BREAK -case 210: -YY_RULE_SETUP -#line 276 "bfin-lex.l" -return MINUS; - YY_BREAK -case 211: -YY_RULE_SETUP -#line 277 "bfin-lex.l" -return COMMA; - YY_BREAK -case 212: -YY_RULE_SETUP -#line 278 "bfin-lex.l" -return _PLUS_ASSIGN; - YY_BREAK -case 213: -YY_RULE_SETUP -#line 279 "bfin-lex.l" -return _PLUS_PLUS; - YY_BREAK -case 214: -YY_RULE_SETUP -#line 280 "bfin-lex.l" -return PLUS; - YY_BREAK -case 215: -YY_RULE_SETUP -#line 281 "bfin-lex.l" -return _STAR_ASSIGN; - YY_BREAK -case 216: -YY_RULE_SETUP -#line 282 "bfin-lex.l" -return STAR; - YY_BREAK -case 217: -YY_RULE_SETUP -#line 283 "bfin-lex.l" -return _AMPERSAND_ASSIGN; - YY_BREAK -case 218: -YY_RULE_SETUP -#line 284 "bfin-lex.l" -return AMPERSAND; - YY_BREAK -case 219: -YY_RULE_SETUP -#line 285 "bfin-lex.l" -return PERCENT; - YY_BREAK -case 220: -YY_RULE_SETUP -#line 286 "bfin-lex.l" -return BANG; - YY_BREAK -case 221: -YY_RULE_SETUP -#line 287 "bfin-lex.l" -return SEMICOLON; - YY_BREAK -case 222: -YY_RULE_SETUP -#line 288 "bfin-lex.l" -return _ASSIGN_BANG; - YY_BREAK -case 223: -YY_RULE_SETUP -#line 289 "bfin-lex.l" -return DOUBLE_BAR; - YY_BREAK -case 224: -YY_RULE_SETUP -#line 290 "bfin-lex.l" -return AT; - YY_BREAK -case 225: -YY_RULE_SETUP -#line 291 "bfin-lex.l" -return PREFETCH; - YY_BREAK -case 226: -YY_RULE_SETUP -#line 292 "bfin-lex.l" -return UNLINK; - YY_BREAK -case 227: -YY_RULE_SETUP -#line 293 "bfin-lex.l" -return LINK; - YY_BREAK -case 228: -YY_RULE_SETUP -#line 294 "bfin-lex.l" -return IDLE; - YY_BREAK -case 229: -YY_RULE_SETUP -#line 295 "bfin-lex.l" -return IFLUSH; - YY_BREAK -case 230: -YY_RULE_SETUP -#line 296 "bfin-lex.l" -return FLUSHINV; - YY_BREAK -case 231: -YY_RULE_SETUP -#line 297 "bfin-lex.l" -return FLUSH; - YY_BREAK -case 232: -YY_RULE_SETUP -#line 298 "bfin-lex.l" -{ - yylval.value = parse_int (&yytext); - return NUMBER; - } - YY_BREAK -case 233: -YY_RULE_SETUP -#line 302 "bfin-lex.l" -{ - yylval.symbol = symbol_find_or_make (yytext); - symbol_mark_used (yylval.symbol); - return SYMBOL; - } - YY_BREAK -case 234: -YY_RULE_SETUP -#line 307 "bfin-lex.l" -{ - char *name; - char *ref = strdup (yytext); - if (ref[1] == 'b' || ref[1] == 'B') - { - name = fb_label_name ((int) (ref[0] - '0'), 0); - yylval.symbol = symbol_find (name); - - if ((yylval.symbol != NULL) - && (S_IS_DEFINED (yylval.symbol))) - return SYMBOL; - as_bad ("backward reference to unknown label %d:", - (int) (ref[0] - '0')); - } - else if (ref[1] == 'f' || ref[1] == 'F') - { - /* Forward reference. Expect symbol to be undefined or - unknown. undefined: seen it before. unknown: never seen - it before. - - Construct a local label name, then an undefined symbol. - Just return it as never seen before. */ - - name = fb_label_name ((int) (ref[0] - '0'), 1); - yylval.symbol = symbol_find_or_make (name); - /* We have no need to check symbol properties. */ - return SYMBOL; - } - } - YY_BREAK -case 235: -YY_RULE_SETUP -#line 336 "bfin-lex.l" -; - YY_BREAK -case 236: -YY_RULE_SETUP -#line 337 "bfin-lex.l" -; - YY_BREAK -case 237: -YY_RULE_SETUP -#line 338 "bfin-lex.l" -return yytext[0]; - YY_BREAK -case 238: -YY_RULE_SETUP -#line 339 "bfin-lex.l" -ECHO; - YY_BREAK -#line 2260 "bfin-lex.c" -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(KEYWORD): - yyterminate(); - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yy_hold_char; - YY_RESTORE_YY_MORE_OFFSET - - if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between yy_current_buffer and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - yy_n_chars = yy_current_buffer->yy_n_chars; - yy_current_buffer->yy_input_file = yyin; - yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state(); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = yytext_ptr + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++yy_c_buf_p; - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = yy_c_buf_p; - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer() ) - { - case EOB_ACT_END_OF_FILE: - { - yy_did_buffer_switch_on_eof = 0; - - if ( yywrap() ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = - yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state(); - - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - yy_c_buf_p = - &yy_current_buffer->yy_ch_buf[yy_n_chars]; - - yy_current_state = yy_get_previous_state(); - - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ - } /* end of yylex */ - - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ - -static int yy_get_next_buffer() - { - register char *dest = yy_current_buffer->yy_ch_buf; - register char *source = yytext_ptr; - register int number_to_move, i; - int ret_val; - - if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( yy_current_buffer->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - yy_current_buffer->yy_n_chars = yy_n_chars = 0; - - else - { - int num_to_read = - yy_current_buffer->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ -#ifdef YY_USES_REJECT - YY_FATAL_ERROR( -"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); -#else - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = yy_current_buffer; - - int yy_c_buf_p_offset = - (int) (yy_c_buf_p - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - yy_flex_realloc( (void *) b->yy_ch_buf, - b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = yy_current_buffer->yy_buf_size - - number_to_move - 1; -#endif - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), - yy_n_chars, num_to_read ); - - yy_current_buffer->yy_n_chars = yy_n_chars; - } - - if ( yy_n_chars == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - yy_current_buffer->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - yy_n_chars += number_to_move; - yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; - yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; - - yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; - - return ret_val; - } - - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - -static yy_state_type yy_get_previous_state() - { - register yy_state_type yy_current_state; - register char *yy_cp; - - yy_current_state = yy_start; - - for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 559 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; - } - - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - -#ifdef YY_USE_PROTOS -static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) -#else -static yy_state_type yy_try_NUL_trans( yy_current_state ) -yy_state_type yy_current_state; -#endif - { - register int yy_is_jam; - register char *yy_cp = yy_c_buf_p; - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 559 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 558); - - return yy_is_jam ? 0 : yy_current_state; - } - - -#ifndef YY_NO_UNPUT -#ifdef YY_USE_PROTOS -static void yyunput( int c, register char *yy_bp ) -#else -static void yyunput( c, yy_bp ) -int c; -register char *yy_bp; -#endif - { - register char *yy_cp = yy_c_buf_p; - - /* undo effects of setting up yytext */ - *yy_cp = yy_hold_char; - - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = yy_n_chars + 2; - register char *dest = &yy_current_buffer->yy_ch_buf[ - yy_current_buffer->yy_buf_size + 2]; - register char *source = - &yy_current_buffer->yy_ch_buf[number_to_move]; - - while ( source > yy_current_buffer->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - yy_current_buffer->yy_n_chars = - yy_n_chars = yy_current_buffer->yy_buf_size; - - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - - yytext_ptr = yy_bp; - yy_hold_char = *yy_cp; - yy_c_buf_p = yy_cp; - } -#endif /* ifndef YY_NO_UNPUT */ - - -#ifdef __cplusplus -static int yyinput() -#else -static int input() -#endif - { - int c; - - *yy_c_buf_p = yy_hold_char; - - if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) - /* This was really a NUL. */ - *yy_c_buf_p = '\0'; - - else - { /* need more input */ - int offset = yy_c_buf_p - yytext_ptr; - ++yy_c_buf_p; - - switch ( yy_get_next_buffer() ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - yyrestart( yyin ); - - /* fall through */ - - case EOB_ACT_END_OF_FILE: - { - if ( yywrap() ) - return EOF; - - if ( ! yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = yytext_ptr + offset; - break; - } - } - } - - c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ - *yy_c_buf_p = '\0'; /* preserve yytext */ - yy_hold_char = *++yy_c_buf_p; - - - return c; - } - - -#ifdef YY_USE_PROTOS -void yyrestart( FILE *input_file ) -#else -void yyrestart( input_file ) -FILE *input_file; -#endif - { - if ( ! yy_current_buffer ) - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); - - yy_init_buffer( yy_current_buffer, input_file ); - yy_load_buffer_state(); - } - - -#ifdef YY_USE_PROTOS -void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) -#else -void yy_switch_to_buffer( new_buffer ) -YY_BUFFER_STATE new_buffer; -#endif - { - if ( yy_current_buffer == new_buffer ) - return; - - if ( yy_current_buffer ) - { - /* Flush out information for old buffer. */ - *yy_c_buf_p = yy_hold_char; - yy_current_buffer->yy_buf_pos = yy_c_buf_p; - yy_current_buffer->yy_n_chars = yy_n_chars; - } - - yy_current_buffer = new_buffer; - yy_load_buffer_state(); - - /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe - * to go ahead and always set it. - */ - yy_did_buffer_switch_on_eof = 1; - } - - -#ifdef YY_USE_PROTOS -void yy_load_buffer_state( void ) -#else -void yy_load_buffer_state() -#endif - { - yy_n_chars = yy_current_buffer->yy_n_chars; - yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; - yyin = yy_current_buffer->yy_input_file; - yy_hold_char = *yy_c_buf_p; - } - - -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) -#else -YY_BUFFER_STATE yy_create_buffer( file, size ) -FILE *file; -int size; -#endif - { - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - yy_init_buffer( b, file ); - - return b; - } - - -#ifdef YY_USE_PROTOS -void yy_delete_buffer( YY_BUFFER_STATE b ) -#else -void yy_delete_buffer( b ) -YY_BUFFER_STATE b; -#endif - { - if ( ! b ) - return; - - if ( b == yy_current_buffer ) - yy_current_buffer = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - yy_flex_free( (void *) b->yy_ch_buf ); - - yy_flex_free( (void *) b ); - } - - -#ifndef _WIN32 -#include <unistd.h> -#else -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#endif -#endif - -#ifdef YY_USE_PROTOS -void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) -#else -void yy_init_buffer( b, file ) -YY_BUFFER_STATE b; -FILE *file; -#endif - - - { - yy_flush_buffer( b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - -#if YY_ALWAYS_INTERACTIVE - b->yy_is_interactive = 1; -#else -#if YY_NEVER_INTERACTIVE - b->yy_is_interactive = 0; -#else - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; -#endif -#endif - } - - -#ifdef YY_USE_PROTOS -void yy_flush_buffer( YY_BUFFER_STATE b ) -#else -void yy_flush_buffer( b ) -YY_BUFFER_STATE b; -#endif - - { - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == yy_current_buffer ) - yy_load_buffer_state(); - } - - -#ifndef YY_NO_SCAN_BUFFER -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) -#else -YY_BUFFER_STATE yy_scan_buffer( base, size ) -char *base; -yy_size_t size; -#endif - { - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - yy_switch_to_buffer( b ); - - return b; - } -#endif - - -#ifndef YY_NO_SCAN_STRING -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) -#else -YY_BUFFER_STATE yy_scan_string( yy_str ) -yyconst char *yy_str; -#endif - { - int len; - for ( len = 0; yy_str[len]; ++len ) - ; - - return yy_scan_bytes( yy_str, len ); - } -#endif - - -#ifndef YY_NO_SCAN_BYTES -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) -#else -YY_BUFFER_STATE yy_scan_bytes( bytes, len ) -yyconst char *bytes; -int len; -#endif - { - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; - buf = (char *) yy_flex_alloc( n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - - for ( i = 0; i < len; ++i ) - buf[i] = bytes[i]; - - buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; - - b = yy_scan_buffer( buf, n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; - } -#endif - - -#ifndef YY_NO_PUSH_STATE -#ifdef YY_USE_PROTOS -static void yy_push_state( int new_state ) -#else -static void yy_push_state( new_state ) -int new_state; -#endif - { - if ( yy_start_stack_ptr >= yy_start_stack_depth ) - { - yy_size_t new_size; - - yy_start_stack_depth += YY_START_STACK_INCR; - new_size = yy_start_stack_depth * sizeof( int ); - - if ( ! yy_start_stack ) - yy_start_stack = (int *) yy_flex_alloc( new_size ); - - else - yy_start_stack = (int *) yy_flex_realloc( - (void *) yy_start_stack, new_size ); - - if ( ! yy_start_stack ) - YY_FATAL_ERROR( - "out of memory expanding start-condition stack" ); - } - - yy_start_stack[yy_start_stack_ptr++] = YY_START; - - BEGIN(new_state); - } -#endif - - -#ifndef YY_NO_POP_STATE -static void yy_pop_state() - { - if ( --yy_start_stack_ptr < 0 ) - YY_FATAL_ERROR( "start-condition stack underflow" ); - - BEGIN(yy_start_stack[yy_start_stack_ptr]); - } -#endif - - -#ifndef YY_NO_TOP_STATE -static int yy_top_state() - { - return yy_start_stack[yy_start_stack_ptr - 1]; - } -#endif - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -#ifdef YY_USE_PROTOS -static void yy_fatal_error( yyconst char msg[] ) -#else -static void yy_fatal_error( msg ) -char msg[]; -#endif - { - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); - } - - - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - yytext[yyleng] = yy_hold_char; \ - yy_c_buf_p = yytext + n; \ - yy_hold_char = *yy_c_buf_p; \ - *yy_c_buf_p = '\0'; \ - yyleng = n; \ - } \ - while ( 0 ) - - -/* Internal utility routines. */ - -#ifndef yytext_ptr -#ifdef YY_USE_PROTOS -static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) -#else -static void yy_flex_strncpy( s1, s2, n ) -char *s1; -yyconst char *s2; -int n; -#endif - { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; - } -#endif - -#ifdef YY_NEED_STRLEN -#ifdef YY_USE_PROTOS -static int yy_flex_strlen( yyconst char *s ) -#else -static int yy_flex_strlen( s ) -yyconst char *s; -#endif - { - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; - } -#endif - - -#ifdef YY_USE_PROTOS -static void *yy_flex_alloc( yy_size_t size ) -#else -static void *yy_flex_alloc( size ) -yy_size_t size; -#endif - { - return (void *) malloc( size ); - } - -#ifdef YY_USE_PROTOS -static void *yy_flex_realloc( void *ptr, yy_size_t size ) -#else -static void *yy_flex_realloc( ptr, size ) -void *ptr; -yy_size_t size; -#endif - { - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); - } - -#ifdef YY_USE_PROTOS -static void yy_flex_free( void *ptr ) -#else -static void yy_flex_free( ptr ) -void *ptr; -#endif - { - free( ptr ); - } - -#if YY_MAIN -int main() - { - yylex(); - return 0; - } -#endif -#line 339 "bfin-lex.l" - -static long parse_int (char **end) -{ - char fmt = '\0'; - int not_done = 1; - int shiftvalue = 0; - char * char_bag; - long value = 0; - char c; - char *arg = *end; - - while (*arg && *arg == ' ') - arg++; - - switch (*arg) - { - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - fmt = 'd'; - break; - - case '0': /* Accept different formated integers hex octal and binary. */ - { - c = *++arg; - arg++; - if (c == 'x' || c == 'X') /* Hex input. */ - fmt = 'h'; - else if (c == 'b' || c == 'B') - fmt = 'b'; - else if (c == '.') - fmt = 'f'; - else - { /* Octal. */ - arg--; - fmt = 'o'; - } - break; - } - - case 'd': - case 'D': - case 'h': - case 'H': - case 'o': - case 'O': - case 'b': - case 'B': - case 'f': - case 'F': - { - fmt = *arg++; - if (*arg == '#') - arg++; - } - } - - switch (fmt) - { - case 'h': - case 'H': - shiftvalue = 4; - char_bag = "0123456789ABCDEFabcdef"; - break; - - case 'o': - case 'O': - shiftvalue = 3; - char_bag = "01234567"; - break; - - case 'b': - case 'B': - shiftvalue = 1; - char_bag = "01"; - break; - -/* The assembler allows for fractional constants to be created - by either the 0.xxxx or the f#xxxx format - - i.e. 0.5 would result in 0x4000 - - note .5 would result in the identifier .5. - - The assembler converts to fractional format 1.15 by the simple rule: - - value = (short) (finput * (1 << 15)). */ - - case 'f': - case 'F': - { - float fval = 0.0; - float pos = 10.0; - while (1) - { - int c; - c = *arg++; - - if (c >= '0' && c <= '9') - { - float digit = (c - '0') / pos; - fval = fval + digit; - pos = pos * 10.0; - } - else - { - *--arg = c; - value = (short) (fval * (1 << 15)); - break; - } - } - *end = arg+1; - return value; - } - - case 'd': - case 'D': - default: - { - while (1) - { - int c; - c = *arg++; - if (c >= '0' && c <= '9') - value = (value * 10) + (c - '0'); - else - { - /* Constants that are suffixed with k|K are multiplied by 1024 - This suffix is only allowed on decimal constants. */ - if (c == 'k' || c == 'K') - value *= 1024; - else - *--arg = c; - break; - } - } - *end = arg+1; - return value; - } - } - - while (not_done) - { - char c; - c = *arg++; - if (c == 0 || !index (char_bag, c)) - { - not_done = 0; - *--arg = c; - } - else - { - if (c >= 'a' && c <= 'z') - c = c - ('a' - '9') + 1; - else if (c >= 'A' && c <= 'Z') - c = c - ('A' - '9') + 1; - - c -= '0'; - value = (value << shiftvalue) + c; - } - } - *end = arg+1; - return value; -} - - -static int parse_reg (Register *r, int cl, char *rt) -{ - r->regno = cl | (rt[1] - '0'); - return REG; -} - -static int parse_halfreg (Register *r, int cl, char *rt) -{ - r->regno = cl | (rt[1] - '0'); - - switch (rt[3]) - { - case 'b': - case 'B': - return BYTE_DREG; - - case 'l': - case 'L': - break; - - case 'h': - case 'H': - r->regno |= F_REG_HIGH; - break; - } - - return HALF_REG; -} - -/* Our start state is KEYWORD as we have - command keywords such as PREFETCH. */ - -void -set_start_state (void) -{ - BEGIN KEYWORD; -} - - -#ifndef yywrap -int -yywrap () -{ - return 1; -} -#endif |