char * opname = NULL; // Name of dirctve/mnemonic/macro
int listflag; // 0: Don't call listeol()
WORD rmask; // Register list, for REG
- int registerbank; // RISC register bank
int riscreg; // RISC register
listflag = 0; // Initialise listing flag
// Check for register to equate to
if ((*tok >= KW_R0) && (*tok <= KW_R31))
{
- // sy->sattre = EQUATEDREG | RISCSYM; // Mark as equated register
sy->sattre = EQUATEDREG; // Mark as equated register
riscreg = *tok;
-
- // Default is current state of "regbank"
- registerbank = regbank;
-
- // Check for ",<bank #>" override notation
+ // Check for ",<bank #>" override notation and skip past it.
+ // It is ignored now. Was that ever useful anyway?
if ((tok[1] == ',') && (tok[2] == CONST))
{
- // Advance token pointer to the constant
- tok += 3;
-
- // Anything other than a 0 or a 1 will result in "No Bank"
- if (*(uint64_t*)tok == 0)
- registerbank = BANK_0;
- else if (*(uint64_t*)tok == 1)
- registerbank = BANK_1;
-
- // Advance half-way through the 64-bit const.
- // The code below, expecting a regular token,
- // will advance past the second half.
- tok++;
+ // Advance token pointer and skip everything
+ tok += 4;
}
- sy->sattre |= registerbank; // Store register bank
eattr = ABS | DEFINED | GLOBAL;
eval = riscreg;
tok++;
else
{
sy->sattre = EQUATEDREG; // Mark as equated register
- riscreg = *tok;
+ eattr = ABS | DEFINED | GLOBAL;
+ eval = *tok;
tok++;
}
}