if instead i do like that:
size := self sizeBitsOf: op1. sz2 := self sizeBitsOf: op2. size = sz2 ifFalse: [ ^ false ].
then it inlines both calls.
On 31 July 2011 05:49, Igor Stasenko siguctua@gmail.com wrote:
Here the slang code:
size := self sizeBitsOf: op1. size = (self sizeBitsOf: op2) ifFalse: [ ^ false ].
And here translated code:
/* begin sizeBitsOf: */ header = longAt(op1); size = ((header & TypeMask) == HeaderTypeSizeAndClass ? (longAt(op1 - (BytesPerWord * 2))) & LongSizeMask : header & SizeMask); if (!(size == (sizeBitsOf(op2)))) { return 0; }
as you can see it inlining first, but refuses to inline second one.
-- Best regards, Igor Stasenko AKA sig.