//
// RMAC - Reboot's Macro Assembler for all Atari computers
// PROCLN.C - Line Processing
-// Copyright (C) 199x Landon Dyer, 2011-2019 Reboot and Friends
+// Copyright (C) 199x Landon Dyer, 2011-2020 Reboot and Friends
// RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
// Source utilised with the kind permission of Landon Dyer
//
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++;
}
#ifdef DEBODGE_REGBANK
if (amode(1) < 0) // Parse 0, 1 or 2 addr modes
goto loop;
- if (*tok != EOL)
- error(extra_stuff);
+ // Check that we're at EOL
+ // The only exception is ptestr/ptestw instructions
+ // that have 3 or 4 operands and are not handled by
+ // amode(). (yes, we're taking a performance hit here sadly)
+ if (m->mnfunc != m_ptestr && m->mnfunc != m_ptestw)
+ if (*tok != EOL)
+ error(extra_stuff);
amsk0 = amsktab[am0];
amsk1 = amsktab[am1];