[Vm-dev] VM Maker: VMMaker.oscog-eem.1436.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Aug 18 03:48:39 UTC 2015


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1436.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.1436
Author: eem
Time: 17 August 2015, 8:47:20.904 pm
UUID: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed
Ancestors: VMMaker.oscog-eem.1435

Fix the bug introduced by the fix to primitive function invocation in VMMaker.oscog-eem.1351  The fix correctly changd primitjve code to set the primitiveFunctionPointer appropriately when a jitted external primitive was rebound, but it didn't remember to void the jit's record of the offset of the assignment that sets the primitiveFunctionPointer when switching between profiling andf non-profiling regimes, so that the address from the wrong regime would remain and be used to smash prmitive code.  The fix is simply to void the externalSetPrimOffsets in voidCogCompiledCode.

This fixes the bug whose symptom is a hard VM crash when using AndreasSystemProfilier.

=============== Diff against VMMaker.oscog-eem.1435 ===============

Item was changed:
  ----- Method: SimpleStackBasedCogit>>voidCogCompiledCode (in category 'jit - api') -----
  voidCogCompiledCode
  	<api>
  	methodZone clearCogCompiledCode.
  	0 to: MaxNumArgs do:
  		[:i|
  		externalPrimJumpOffsets at: i put: nil.
+ 		externalPrimCallOffsets at: i put: nil.
+ 		externalSetPrimOffsets at: i put: nil]!
- 		externalPrimCallOffsets at: i put: nil]!



More information about the Vm-dev mailing list