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.