VM Maker: Cog-eem.404.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: Cog-eem.404.mcz

commits-2
 
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!