Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2671.mcz==================== Summary ====================
Name: VMMaker.oscog-eem.2671
Author: eem
Time: 22 January 2020, 11:10:41.31262 pm
UUID: 4d0f215a-ffe0-4741-b21d-e12ff3aeb658
Ancestors: VMMaker.oscog-eem.2670
Simulator:
Fix a slip in simulateCeFlushICacheFrom:to:.
Check for breakpoints in simulateLeafCallOf:
=============== Diff against VMMaker.oscog-eem.2670 ===============
Item was changed:
----- Method: Cogit>>simulateCeFlushICacheFrom:to: (in category 'simulation only') -----
simulateCeFlushICacheFrom: start to: finish
<doNotGenerate>
+ processor abiMarshallArg0: start arg1: finish.
- processor abiMarshallArg0: start arg1: start.
self simulateLeafCallOf: ceFlushICache!
Item was changed:
----- Method: Cogit>>simulateLeafCallOf: (in category 'simulation only') -----
simulateLeafCallOf: someFunction
"Simulate execution of machine code that leaf-calls someFunction,
answering the result returned by someFunction."
<doNotGenerate>
| spOnEntry |
self recordRegisters.
processor
simulateLeafCallOf: someFunction
nextpc: 16rBADF00D5
memory: coInterpreter memory.
spOnEntry := processor sp.
self recordInstruction: {'(simulated call of '. someFunction. ')'}.
[[processor pc between: 0 and: methodZone zoneEnd] whileTrue:
[singleStep
ifTrue: [self recordProcessing.
+ self maybeBreakAt: processor pc.
processor
singleStepIn: coInterpreter memory
minimumAddress: guardPageSize
readOnlyBelow: methodZone zoneEnd]
ifFalse: [processor
runInMemory: coInterpreter memory
minimumAddress: guardPageSize
readOnlyBelow: methodZone zoneEnd]]]
on: ProcessorSimulationTrap
do: [:ex| | retpc |
"If the ip is out of bounds the return has already occurred."
((processor pc between: 0 and: methodZone zoneEnd)
and: [processor sp <= spOnEntry]) ifTrue:
[retpc := processor leafRetpcIn: coInterpreter memory.
self assert: retpc = 16rBADF00D5.
self recordInstruction: {'(simulated return to '. retpc. ')'.
processor simulateLeafReturnIn: coInterpreter memory}.
self recordRegisters]].
^processor cResultRegister!