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

commits at source.squeak.org commits at source.squeak.org
Fri May 22 01:02:56 UTC 2015

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

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

Name: VMMaker.oscog-eem.1319
Author: eem
Time: 21 May 2015, 6:00:53.388 pm
UUID: 797f904f-0e7c-42b8-bf53-aa40ee592b13
Ancestors: VMMaker.oscog-eem.1318

Fix generation of the closed PIC prototype when
using pc-relative addressing (on ARMv5).

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

Item was changed:
  ----- Method: Cogit>>generateClosedPICPrototype (in category 'initialization') -----
  	"Generate the prototype ClosedPIC to determine how much space as full PIC takes.
  	 When we first allocate a closed PIC it only has one or two cases and we want to grow it.
  	 So we have to determine how big a full one is before hand."
  	numPICCases := 6.
+ 	methodLabel
+ 		address: methodZoneBase;
+ 		dependent: nil.
  	"stack allocate the various collections so that they
  	 are effectively garbage collected on return."
  	self allocateOpcodes: numPICCases * 7 bytecodes: 0.
  	self compileClosedPICPrototype.
  	self computeMaximumSizes.
  	methodLabel concretizeAt: methodZoneBase.
  	closedPICSize := (self sizeof: CogMethod) + (self generateInstructionsAt: methodZoneBase + (self sizeof: CogMethod)).
  	firstCPICCaseOffset := endCPICCase0 address - methodZoneBase.
  	cPICCaseSize := endCPICCase1 address - endCPICCase0 address.
  	cPICEndSize := closedPICSize - (numPICCases - 1 * cPICCaseSize + firstCPICCaseOffset).
  	closedPICSize := methodZone roundUpLength: closedPICSize
  	"self cCode: ''
  			[| end |
  			 end := self outputInstructionsAt: methodZoneBase + headerSize.
  			 self disassembleFrom: methodZoneBase + headerSize to: end - 1.
  			 self halt]"!

More information about the Vm-dev mailing list