static int disabled; // Assembly conditionally disabled
int just_bss; // 1, ds.b in microprocessor mode
VALUE pcloc; // Value of "PC" at beginning of line
-IFENT * ifent; // Current ifent
SYM * lab_sym; // Label on line (or NULL)
const char extra_stuff[] = "extra (unexpected) text found after addressing mode";
// Get another line of tokens
if (TokenizeLine() == TKEOF)
{
-if (verb_flag) printf("Assemble: Found TKEOF flag...\n");
+if (debug) printf("Assemble: Found TKEOF flag...\n");
if (list_flag && listflag) // Flush last line of source
listeol();
switch (state)
{
case MN_IF:
- d_if ();
+ d_if();
goto loop;
case MN_ELSE:
d_else();
goto loop;
case MN_ENDIF:
- d_endif ();
+ d_endif();
goto loop;
case MN_IIF: // .iif --- immediate if
if (disabled || expr(exprbuf, &eval, &eattr, &esym) != OK)
// o everything else
if (equtyp == EQUREG)
{
-//Linko's request to issue a warning on labels that equated to the same register
-//would go here. Not sure how to implement it though. :-/
+//Linko's request to issue a warning on labels that equated to the same
+//register would go here. Not sure how to implement it though. :-/
/*
Maybe like this way:
have an array of bools with 64 entries. Whenever a register is equated, set the
-corresponding register bool to true. Whenever it's undef'ed, set it to false. When
-checking to see if it's already been equated, issue a warning.
+corresponding register bool to true. Whenever it's undef'ed, set it to false.
+When checking to see if it's already been equated, issue a warning.
*/
// Check that we are in a RISC section
if (!rgpu && !rdsp)
goto loop;
}
+ // Keep a backup of chptr (used for optimisations during codegen)
+ chptr_opcode = chptr;
+
for(;;)
{
if ((m->mnattr & siz) && (amsk0 & m->mn0) != 0 && (amsk1 & m->mn1) != 0)