X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=procln.c;h=2cd1bdc3d513b6b7476d33cea3c59b0e09f8b357;hp=04b8ddd6392ea64bb5ebac5c7c515cdd755d703c;hb=2d302cb8c260f92984efbe9b6c8f9871beebeca5;hpb=1d8c5b2261388e34637a41f82104718fdd06044b diff --git a/procln.c b/procln.c index 04b8ddd..2cd1bdc 100644 --- a/procln.c +++ b/procln.c @@ -36,7 +36,6 @@ static IFENT * f_ifent; // Freelist of ifents 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"; @@ -265,13 +264,13 @@ as68label: 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) @@ -661,6 +660,9 @@ When checking to see if it's already been equated, issue a warning. 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)