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

commits at source.squeak.org commits at source.squeak.org
Thu May 14 01:11:02 UTC 2015

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:

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

Name: VMMaker.oscog-eem.1300
Author: eem
Time: 13 May 2015, 6:08:53.689 pm
UUID: 96e6db92-4bc0-4435-b929-c8dddf26b0c7
Ancestors: VMMaker.oscog-eem.1299

Explicitly initialize cFramePointerInUse before first
potential use for assertCStackWellAligned.

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

Item was changed:
  ----- Method: Cogit>>generateStackPointerCapture (in category 'initialization') -----
  	"Generate a routine ceCaptureCStackPointers that will capture the C stack pointer,
  	 and, if it is in use, the C frame pointer.  These are used in trampolines to call
  	 run-time routines in the interpreter from machine-code."
  	| oldMethodZoneBase oldTrampolineTableIndex |
+ 	cFramePointerInUse := false. "For the benefit of the following assert, assume the minimum at first."
  	self assertCStackWellAligned.
  	oldMethodZoneBase := methodZoneBase.
  	oldTrampolineTableIndex := trampolineTableIndex.
  	self generateCaptureCStackPointers: true.
  	self perform: #ceCaptureCStackPointers.
  	(cFramePointerInUse := self isCFramePointerInUse) ifFalse:
  		[methodZoneBase := oldMethodZoneBase.
  		 trampolineTableIndex := oldTrampolineTableIndex.
+ 		 self generateCaptureCStackPointers: false].
+ 	self assertCStackWellAligned.!
- 		 self generateCaptureCStackPointers: false]!

More information about the Vm-dev mailing list