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

Reply via email to