Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.404.mcz==================== Summary ====================
Name: Cog-eem.404
Author: eem
Time: 25 April 2020, 8:38:56.265452 pm
UUID: 61ffd076-549a-4f7f-b1ca-90fd7f70df67
Ancestors: Cog-eem.403
Add the jump-call hack fix for the processor simulators.
=============== Diff against Cog-eem.403 ===============
Item was added:
+ ----- Method: BochsIA32Alien>>hackFixNextPCOfJumpFor:using: (in category 'execution') -----
+ hackFixNextPCOfJumpFor: aProcessorSimulationTrap using: objectMemory
+ "This is a hack fix before we revise the simulators. When a jump call is made, the
+ next pc is effectively the return address on the stack, not the instruction following
+ the jump. So reset it here. All this is because currently the simulators don't execute
+ a control transfer to a fake address, as would a real processor. Once the processor
+ simulators correctly emulate such control transfers, we can ditch this hack."
+
+ aProcessorSimulationTrap nextpc: (objectMemory longAt: self sp)!
Item was added:
+ ----- Method: BochsX64Alien>>hackFixNextPCOfJumpFor:using: (in category 'execution') -----
+ hackFixNextPCOfJumpFor: aProcessorSimulationTrap using: objectMemory
+ "This is a hack fix before we revise the simulators. When a jump call is made, the
+ next pc is effectively the return address on the stack, not the instruction following
+ the jump. So reset it here. All this is because currently the simulators don't execute
+ a control transfer to a fake address, as would a real processor. Once the processor
+ simulators correctly emulate such control transfers, we can ditch this hack."
+
+ aProcessorSimulationTrap nextpc: (objectMemory longAt: self sp)!
Item was added:
+ ----- Method: GdbARMAlien>>hackFixNextPCOfJumpFor:using: (in category 'execution') -----
+ hackFixNextPCOfJumpFor: aProcessorSimulationTrap using: objectMemory
+ "This is a hack fix before we revise the simulators. When a jump call is made, the
+ next pc is effectively the return address on the stack, not the instruction following
+ the jump. So reset it here. All this is because currently the simulators don't execute
+ a control transfer to a fake address, as would a real processor. Once the processor
+ simulators correctly emulate such control transfers, we can ditch this hack."
+
+ aProcessorSimulationTrap nextpc: self lr!