[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:
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]"!
More information about the Vm-dev
mailing list