hello,
Parrot has 2 categories of registers: PASM registers, which are of the
form [S|N|I|P]<digit><digit> (which is kinda odd, if only regs 0-31 are
available) and PIR registers, which are formed like: $[S|N|I|P]<digit>+
In the old days, this distinction was necessary for the register
allocator to translate PIR registers to PASM registers, because there
were only 32 regs of each type (S/N/I/P).
IIUC, the number of registers is now equal to "the necessary number of
registers"; that is, each sub has as many registers as it needs to do
its job.
So, my question is now, why do we still need the PASM registers (except
for backward compatibility) if we have PIR registers (which, after a
possible "we don't need them", brings the question, why we need the "$",
but that's a different topic). In other words, why not stick to 1 category:
either $[SNIP]<digit>+ (or maybe skip the $ altogether, but again,
that's not the point here)?
regards,
klaas-jan
- On PASM and PIR registers Klaas-Jan Stol
-