Nicolas Cellier uploaded a new version of Compiler to project The Trunk: http://source.squeak.org/trunk/Compiler-nice.316.mcz
==================== Summary ====================
Name: Compiler-nice.316 Author: nice Time: 31 October 2015, 6:24:53.362 pm UUID: 7a0893b3-8e86-4fa0-9d0c-5e80104c8278 Ancestors: Compiler-cmm.315
Make markerOrNil 64bits spur compatible by not hardcoding wordSize.
=============== Diff against Compiler-cmm.315 ===============
Item was changed: ----- 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" + | expectedHeaderPlusLliteralSize e | + expectedHeaderPlusLliteralSize := Smalltalk wordSize * 4. + ^(((e := aMethod endPC - expectedHeaderPlusLliteralSize) = 3 or: [e = 4]) - | e | - ^(((e := aMethod endPC) = 19 or: [e = 20]) and: [aMethod numLiterals = 3 + and: [(aMethod at: expectedHeaderPlusLliteralSize + 1) = 16r70 "push self" + and: [(aMethod at: expectedHeaderPlusLliteralSize + 2) = 16rD0]]]) "send <literal 1>" - and: [(aMethod at: 17) = 16r70 "push self" - and: [(aMethod at: 18) = 16rD0]]]) "send <literal 1>" ifTrue: [aMethod literalAt: 1]!
squeak-dev@lists.squeakfoundation.org