In message <[EMAIL PROTECTED]>
        Leopold Toetsch <[EMAIL PROTECTED]> wrote:

> Above docs state, that a gernal parrot op looks like this
> 
> op dest[dkey], src1[skey1], src2[skey2]
> 
> e.g.
> 
> add P0[P1], P2, P3[P4]
> 
> where P1 and P4 are keys and P0 and P3 are aggregates and P2 is a scalar.
> 
> Several questions arise from these pdd's:
> 
> 1) Are above pdd's valid, WRT this 3 key opcodes?

As far as I know PDD 08 is up to date, at least if you ignore the lack
of detail on how to generate keys dynamically, which I have a patch
for that I need to finish off.

There was however some discussion as to whether we wanted to limit
keyed access to just the set/assign opcodes in order to avoid the
explosion of ops that would occur if we supported keyed access
directly on every op.

> 2) What PASM ops should above statement generate:
> a) add_p_k_p_p_k (i.e. all variations of /p(_k)?/ )
> b) add_p_k_p_k_p_k
>    if b) how to create a NULL key and how does it look like in PBC?

As things stand it would have to be option a, or at least that is what
the current assembler would generate. There isn't much else it can do
really - how would it know when to generate a null key for an operand
and when not to?

I believe you could encode a key constant with zero components in the
byte code if you wanted - the first word of the constant is the
component count after all.

Tom

-- 
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu

Reply via email to