X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=procln.c;h=8917004b258d4cc6e74b7f2f6ecb751723486222;hp=d7bf53c577044a5b5ee83659cbe6b8c697ef2712;hb=8d3be1d337e375df002669f8452fcc8a92524b0d;hpb=30a208654896284b50e7b362e97d3e63ec717b96 diff --git a/procln.c b/procln.c index d7bf53c..8917004 100644 --- a/procln.c +++ b/procln.c @@ -1,7 +1,7 @@ // // RMAC - Reboot's Macro Assembler for all Atari computers // PROCLN.C - Line Processing -// Copyright (C) 199x Landon Dyer, 2011-2018 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2011-2019 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 // Source utilised with the kind permission of Landon Dyer // @@ -587,7 +587,7 @@ When checking to see if it's already been equated, issue a warning. if (list_flag) // Put value in listing listvalue((uint32_t)eval); - at_eol(); // Must be at EOL now + ErrorIfNotAtEOL(); // Must be at EOL now goto loop; } @@ -782,11 +782,24 @@ When checking to see if it's already been equated, issue a warning. parcode = 0; } +#if 1 while ((dsp_am0 & md->mn0) == 0 || (dsp_am1 & md->mn1) == 0) md = &dsp56k_machtab[md->mncont]; (*md->mnfunc)(md->mninst | (parcode << 8)); goto loop; +#else + for(;;) + { + if ((dsp_am0 & md->mn0) != 0 && (dsp_am1 & md->mn1) != 0) + { + (*md->mnfunc)(md->mninst|(parcode << 8)); + goto loop; + } + + md = &dsp56k_machtab[md->mncont]; + } +#endif } } @@ -854,9 +867,11 @@ When checking to see if it's already been equated, issue a warning. // Keep a backup of chptr (used for optimisations during codegen) chptr_opcode = chptr; - while ((m->mnattr & siz) && (amsk0 & m->mn0) == 0 || (amsk1 & m->mn1) == 0) + while (!(m->mnattr & siz) || (amsk0 & m->mn0) == 0 || (amsk1 & m->mn1) == 0) m = &machtab[m->mncont]; + DEBUG { printf(" 68K: mninst=$%X, siz=$%X, mnattr=$%X, amsk0=$%X, mn0=$%X, amsk1=$%X, mn1=$%X\n", m->mninst, siz, m->mnattr, amsk0, m->mn0, amsk1, m->mn1); } + (*m->mnfunc)(m->mninst, siz); goto loop; }