VM Maker: VMMaker.oscog-eem.1319.mcz

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

VM Maker: VMMaker.oscog-eem.1319.mcz

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

==================== 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') -----
  generateClosedPICPrototype
  "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: ''
  inSmalltalk:
  [| end |
  end := self outputInstructionsAt: methodZoneBase + headerSize.
  self disassembleFrom: methodZoneBase + headerSize to: end - 1.
  self halt]"!