Eliot Miranda uploaded a new version of Compiler to project The Trunk: http://source.squeak.org/trunk/Compiler-eem.298.mcz
==================== Summary ====================
Name: Compiler-eem.298 Author: eem Time: 29 May 2015, 11:59:13.77 am UUID: b06cc000-4a40-45cd-a0b2-a2d1c0309e39 Ancestors: Compiler-cmm.297
Provide multiple-bytecode-sets aware support for markerOrNil
=============== Diff against Compiler-cmm.297 ===============
Item was added: + ----- Method: BytecodeEncoder class>>markerOrNilFor: (in category 'compiled method support') ----- + markerOrNilFor: aMethod + "If aMethod is a marker method, answer the symbol used to mark it. Otherwise + answer nil. What is a marker method? It is method with body like + 'self subclassResponsibility' or '^ self subclassResponsibility' + used to indicate ('mark') a special property. + + Marker methods compile to two bytecode forms, this: + self + send: <literal 1> + pop + returnSelf + or this: + self + send: <literal 1> + returnTop" + ^self subclassResponsibility!
Item was added: + ----- Method: EncoderForV3 class>>markerOrNilFor: (in category 'compiled method support') ----- + markerOrNilFor: aMethod + "If aMethod is a marker method, answer the symbol used to mark it. Otherwise + answer nil. What is a marker method? It is method with body like + 'self subclassResponsibility' or '^ self subclassResponsibility' + used to indicate ('mark') a special property. + + Marker methods compile to two bytecode forms, this: + self + send: <literal 1> + pop + returnSelf + or this: + self + send: <literal 1> + returnTop" + | e | + ^(((e := aMethod endPC) = 19 or: [e = 20]) + and: [aMethod numLiterals = 3 + and: [(aMethod at: 17) = 16r70 "push self" + and: [(aMethod at: 18) = 16rD0]]]) "send <literal 1>" + ifTrue: [aMethod literalAt: 1]!
packages@lists.squeakfoundation.org