bfin: drop _ASSIGN_BANG
authorJan Beulich <jbeulich@suse.com>
Fri, 19 Jul 2024 09:56:46 +0000 (11:56 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 19 Jul 2024 09:56:46 +0000 (11:56 +0200)
A few testcases demonstrate that "=!" isn't supposed to be an
individual token, since "= !" is used in a number of places. So far
lexing that to a single token worked because of the scrubber being
overly aggressive in removing whitespace. As that's going to change,
replace uses by separate ASSIGN and BANG.

gas/config/bfin-lex.l
gas/config/bfin-parse.y

index a14e25b..62a760c 100644 (file)
@@ -287,7 +287,6 @@ int yylex (void);
 "%"                     return PERCENT;
 "!"                     return BANG;
 ";"                     return SEMICOLON;
-"=!"                   return _ASSIGN_BANG;
 "||"                   return DOUBLE_BAR;
 "@"                    return AT;
 <KEYWORD>[pP][rR][eE][fF][eE][tT][cC][hH]        return PREFETCH;
index 828a009..1971058 100644 (file)
@@ -529,7 +529,7 @@ dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported");
 %token _MINUS_ASSIGN _PLUS_ASSIGN
 
 /* Assignments, comparisons.  */
-%token _ASSIGN_BANG _LESS_THAN_ASSIGN _ASSIGN_ASSIGN
+%token _LESS_THAN_ASSIGN _ASSIGN_ASSIGN
 %token GE LT LE GT
 %token LESS_THAN
 
@@ -1804,7 +1804,7 @@ asm_1:
            return yyerror ("Only 'Dreg = CC' supported");
        }
 
-       | CCREG _ASSIGN_BANG CCREG
+       | CCREG ASSIGN BANG CCREG
        {
          notethat ("CC2dreg: CC =! CC\n");
          $$ = bfin_gen_cc2dreg (3, 0);
@@ -2471,12 +2471,12 @@ asm_1:
            return yyerror ("Register mismatch");
        }
 
-       | CCREG _ASSIGN_BANG BITTST LPAREN REG COMMA expr RPAREN
+       | CCREG ASSIGN BANG BITTST LPAREN REG COMMA expr RPAREN
        {
-         if (IS_DREG ($5) && IS_UIMM ($7, 5))
+         if (IS_DREG ($6) && IS_UIMM ($8, 5))
            {
              notethat ("LOGI2op: CC =! BITTST (dregs , uimm5 )\n");
-             $$ = LOGI2OP ($5, uimm5 ($7), 0);
+             $$ = LOGI2OP ($6, uimm5 ($8), 0);
            }
          else
            return yyerror ("Register mismatch or value error");