>> (InstructionClient>>#methodReturnTop) = (InstructionClient>>#doDup)
>
> methodReturnTop startPC -> 13
> methodReturnTop endPC -> 12.
>
> I have a slight feeling that is one of the reasons :)
> Seems to be related to method trailers size assumptions not holding.

That's fine, the method has no bytecode. It is a quick-return self.

> Also, sameLiteralsAs: is a mess.
> There are no comments really revealing the intention of the 8 ifTrue/False 
> branches, no refactoring to use revealing method names...
> Can anyone explain to me why numLits  -1 = index is checked?

Check the VM source/compiler on the different special literal slots
and how different kind of primitives are encoded.

> At least for methodReturnTop, which has 2 literals, it certainly does not 
> seem like numLits -1  contains properties....

The two literals are the selector and the class-binding, as the method
comment says these literals are not considered for equality.

Lukas

-- 
Lukas Renggli
www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to