Eliot Miranda uploaded a new version of MethodMassageCompatibility to project VM Maker: http://source.squeak.org/VMMaker/MethodMassageCompatibility-eem.3.mcz
==================== Summary ====================
Name: MethodMassageCompatibility-eem.3 Author: eem Time: 31 July 2014, 6:42:12.241 am UUID: 57bd9ef3-10ed-40f0-bd38-b4edb1d244f1 Ancestors: MethodMassageCompatibility-eem.2
MethodMassageCompatibility compatible with BytecodeSets-eem.7.
==================== Snapshot ====================
----- Method: BytecodeEncoder>>sizeSpecialSend:numArgs: (in category '*MethodMassageCompatibility-opcode sizing') ----- sizeSpecialSend: specialSelectorIndex numArgs: nArgs ^self sizeOpcodeSelector: #genSendSpecial:numArgs: withArguments: {specialSelectorIndex. nArgs}!
----- Method: CompiledMethod>>voidCogVMState (in category '*MethodMassageCompatibility-accessing') ----- voidCogVMState "Tell the VM to remove all references to any machine code form of the method. This primitive must be called whenever a method is in use and modified. This is more aggressive (and *much* more costly) than flushCache since it must search through all context objects, making sure that none have a (hidden) machine code pc in the receiver. Since modifying a method will likely change the generated machine code, modifying a method (rather than redefining it) requires this more aggressive flush."
<primitive: 215> ^self primitiveFailed!
----- Method: EncoderForV3>>genSendSpecial:numArgs: (in category '*MethodMassageCompatibility-bytecode generation') ----- genSendSpecial: specialSelectorIndex numArgs: nArgs "See BlueBook page 596" self assert: (specialSelectorIndex between: 1 and: Smalltalk specialSelectorSize). self assert: nArgs = (Smalltalk specialNargsAt: specialSelectorIndex). "Special selector sends. 176-191 1011iiii Send Arithmetic Message #iiii 192-207 1100iiii Send Special Message #iiii" stream nextPut: specialSelectorIndex + 175!
vm-dev@lists.squeakfoundation.org