Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3339.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3339 Author: eem Time: 13 October 2023, 5:15:29.525842 pm UUID: b1c834e2-5de7-464c-aeb5-4f2a7b8812d6 Ancestors: VMMaker.oscog-eem.3338
Now the MT vm is using C intrinsics there are no trampolines for the COGMTVM configuration.
=============== Diff against VMMaker.oscog-eem.3338 ===============
Item was changed: CogClass subclass: #Cogit (excessive size, no diff calculated)
Item was changed: ----- Method: Cogit class>>bindingForNumTrampolines (in category 'translation') ----- bindingForNumTrampolines "The number of trampolines depends on some translation-time constants and some compile-time constants. This answers a binding the computes the right value for the compile-time defintions." + | roValues | + self savingCurrentValuesOf: #(IMMUTABILITY) + do: [roValues := self numTrampolineValuesFor: #IMMUTABILITY]. + ^#NumTrampolines -> ('(', roValues min printString, - | mtValues roValues | - self savingCurrentValuesOf: #(COGMTVM IMMUTABILITY) - do: [mtValues := self numTrampolineValuesFor: #COGMTVM. - roValues := self numTrampolineValuesFor: #IMMUTABILITY]. - ^#NumTrampolines -> ('(', (mtValues min min: roValues min) printString, - ' + (COGMTVM ? ', (mtValues max - mtValues min) printString, ' : 0)', ' + (IMMUTABILITY ? ', (roValues max - roValues min) printString, ' : 0))')
"self bindingForNumTrampolines"!
Item was changed: ----- Method: Cogit class>>numTrampolines (in category 'trampoline support') ----- numTrampolines ^37 "29 + 4 each for self and super sends" - + (COGMTVM ifTrue: [1] ifFalse: [0]) "try lock routine" + (LowcodeVM ifTrue: [3] ifFalse: [0]) + CogCompilerClass numTrampolines
"self withAllSubclasses collect: [:c| {c. (c instVarNames select: [:ea| ea beginsWith: 'ce']) size}]"!
Item was changed: ----- Method: Cogit>>withProcessorHaltedDo: (in category 'simulation processor access') ----- withProcessorHaltedDo: aBlock ^processorLock critical: + [| oldBreakPC oldSingleStep | - ["This is a kack-handed attempt at stopping all other threads while this routine is running. - Anyway, don't set breakPC to true if trying to break within ceTryLockVMOwner" - | oldBreakPC oldSingleStep | oldBreakPC := breakPC. oldSingleStep := singleStep. + breakPC := singleStep := true. - singleStep := true. - (breakPC isInteger and: [breakPC between: ceTryLockVMOwner and: ceGetFP - 1]) ifFalse: - [breakPC := true]. aBlock ensure: [singleStep := oldSingleStep. breakPC := oldBreakPC]]!
vm-dev@lists.squeakfoundation.org