Allocation of PASM registers (in PASM mode)
Bernhard Schmalhofer
Bernhard.Schmalhofer at gmx.de
Tue Jan 13 20:22:30 UTC 2009
Allison Randal schrieb:
> Geoffrey Broadwell wrote:
>
>> If PASM really is a direct human-compatible
>> representation of bytecode, then we must always maintain the two key
>> identities:
>>
>> * PBC == compile(dump(PBC))
>> * compile(PASM) == compile(dump(compile(PASM)))
>>
What the difference between these these two identies, when PBC ==
compile(PASM)?
PBC can be generated in several ways. So
compile(PIR) == compile(dump(compile(PIR)))
compile(Perl6) == compile(dump(compile(Perl6)))
has to hold as well.
> A lot depends on who the target audience is for PASM. If it's primarily
> a debugging tool, then literal registers are important. Also, if PASM is
> primarily generated or dumped from bytecode, then it will usually
> already have a sane register allocation algorithm run on it somewhere
> before the actual PASM is produced.
>
> Do we anticipate anyone writing PASM by hand, aside from test scripts or
> small experiments? PIR is the language we generally recommend for
> substantial low-level development.
>
I think of PASM as one possible string representation of PBC. I wouldn't
expect it to be written by hand.
Regards,
Bernhard
More information about the parrot-dev
mailing list