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