[Vm-dev] VM Maker: VMMaker.oscog-cb.1795.mcz
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Mon Apr 11 19:03:14 UTC 2016
Hi Clement,
currently primitiveFullClosureValueNoContextSwitch is not generated unless:
<option: #SistaV1BytecodeSet>
Should we remove the option and always generate the primitive?
2016-04-11 20:02 GMT+02:00 <commits at source.squeak.org>:
>
> ClementBera uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1795.mcz
>
> ==================== Summary ====================
>
> Name: VMMaker.oscog-cb.1795
> Author: cb
> Time: 11 April 2016, 11:01:37.99209 am
> UUID: 7e723234-b8d0-46a7-8e2c-180da3482a3b
> Ancestors: VMMaker.oscog-cb.1794
>
> Fixed minor things to make slang compilation happy.
>
> =============== Diff against VMMaker.oscog-cb.1794 ===============
>
> Item was changed:
> ----- Method: Cogit>>computeFullBlockEntryOffsets (in category
> 'initialization') -----
> computeFullBlockEntryOffsets
> "Generate the entry code for a method to determine cmEntryOffset
> and cmNoCheckEntryOffset. We
> need cmNoCheckEntryOffset up front to be able to generate the map
> starting from cmNoCheckEntryOffset"
> "stack allocate the various collections so that they
> are effectively garbage collected on return."
> - <var: 'sendMissCall' type: #'AbstractInstruction *'>
> self allocateOpcodes: 24 bytecodes: 0.
> methodOrBlockNumArgs := 0.
> self compileFullBlockEntry.
> self computeMaximumSizes.
> self generateInstructionsAt: methodZoneBase + (self sizeof:
> CogMethod).
> cbEntryOffset := fullBlockEntry address - methodZoneBase.
> cbNoSwitchEntryOffset := fullBlockNoContextSwitchEntry address -
> methodZoneBase!
>
> Item was changed:
> ----- Method: SimpleStackBasedCogit
> class>>initializePrimitiveTableForSqueak (in category 'class
> initialization') -----
> initializePrimitiveTableForSqueak
> "Initialize the table of primitive generators. This does not
> include normal primitives implemented in the coInterpreter.
> N.B. primitives that don't have an explicit arg count (the
> integer following the generator) may be variadic."
> "SimpleStackBasedCogit initializePrimitiveTableForSqueak"
> MaxCompiledPrimitiveIndex := self objectRepresentationClass
> wordSize = 8
>
> ifTrue: [555]
>
> ifFalse: [222].
> primitiveTable := CArrayAccessor on: (Array new:
> MaxCompiledPrimitiveIndex + 1).
> self table: primitiveTable from:
> #( "Integer Primitives (0-19)"
>
SNIP ...
> (207 genPrimitiveFullClosureValue)
> "value[:value:value:value:] et al"
> "(208 genPrimitiveFullClosureValueWithArgs)"
> "valueWithArguments:"
> + (209 genPrimitiveFullClosureValue)
> "valueNoContextSwitch[:value:] et al"
> - (209 genPrimitiveFullClosureValueNoContextSwitch)
> "valueNoContextSwitch[:value:] et al"
>
>
SNIP...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160411/835876ca/attachment.htm
More information about the Vm-dev
mailing list