bfin: drop _ASSIGN_BANG

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.
This commit is contained in:
Jan Beulich
2024-07-19 11:56:46 +02:00
parent a1b7023447
commit 1cc4b7d755
2 changed files with 5 additions and 6 deletions

View File

@@ -287,7 +287,6 @@ int yylex (void);
"%" return PERCENT; "%" return PERCENT;
"!" return BANG; "!" return BANG;
";" return SEMICOLON; ";" return SEMICOLON;
"=!" return _ASSIGN_BANG;
"||" return DOUBLE_BAR; "||" return DOUBLE_BAR;
"@" return AT; "@" return AT;
<KEYWORD>[pP][rR][eE][fF][eE][tT][cC][hH] return PREFETCH; <KEYWORD>[pP][rR][eE][fF][eE][tT][cC][hH] return PREFETCH;

View File

@@ -529,7 +529,7 @@ dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported");
%token _MINUS_ASSIGN _PLUS_ASSIGN %token _MINUS_ASSIGN _PLUS_ASSIGN
/* Assignments, comparisons. */ /* Assignments, comparisons. */
%token _ASSIGN_BANG _LESS_THAN_ASSIGN _ASSIGN_ASSIGN %token _LESS_THAN_ASSIGN _ASSIGN_ASSIGN
%token GE LT LE GT %token GE LT LE GT
%token LESS_THAN %token LESS_THAN
@@ -1804,7 +1804,7 @@ asm_1:
return yyerror ("Only 'Dreg = CC' supported"); return yyerror ("Only 'Dreg = CC' supported");
} }
| CCREG _ASSIGN_BANG CCREG | CCREG ASSIGN BANG CCREG
{ {
notethat ("CC2dreg: CC =! CC\n"); notethat ("CC2dreg: CC =! CC\n");
$$ = bfin_gen_cc2dreg (3, 0); $$ = bfin_gen_cc2dreg (3, 0);
@@ -2471,12 +2471,12 @@ asm_1:
return yyerror ("Register mismatch"); 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"); notethat ("LOGI2op: CC =! BITTST (dregs , uimm5 )\n");
$$ = LOGI2OP ($5, uimm5 ($7), 0); $$ = LOGI2OP ($6, uimm5 ($8), 0);
} }
else else
return yyerror ("Register mismatch or value error"); return yyerror ("Register mismatch or value error");