> Primitive code is implemented in IntermediateSimplifier which
> converts high level intermediate into low level intermediate.

Could some information about intermediates be provided?

> Now look at IntermediateSimplifierTests>>testAtPrimitive. Use
> this as an example to write a test for the "^ true" primitive.

IntermediateSimplifierTests >>testAtPrimitive
        source := MedMethod
                                createIntermediate:
                                        #((block 1  (primitive 60 Array block2 
receiver arg1) ))
                                for: machine.                   
        mockEmitter expectEmission:
                #((block1
                                (mov arg1 t1) "Index"
                                (mov receiver t2)       "receiver"
                                (addressOfIndexedElement t2 t1 block2))
                        (block2)).
        ...


It was discovered that createIntermediate:for: is connected with IntermediateCreator>>createBlock and friends... In order testTruePrimitive to be written, it's needed to be known how to write such arrays
                                #((block 1  (primitive 60 Array block2 receiver 
arg1) ))

Talking about MockIntermediateEmitter. Is this a pidgin assembler stateements
                                (mov arg1 t1) "Index"
                                (mov receiver t2)       "receiver"
                                (addressOfIndexedElement t2 t1 block2))
There's MockIntermediateEmitter>>addressOfIndexedElement:at:failTo: which probably is connected with
                                (addressOfIndexedElement t2 t1 block2))
..but there's no something similar to mov...

It would be great if some more details will be given regarding how typical primitive test code is written

Thanks in advance


Yakov



_______________________________________________
Exupery mailing list
[email protected]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery

Reply via email to