[Vm-dev] VM Maker: VMMaker.oscog-cb.1795.mcz

Clément Bera bera.clement at gmail.com
Mon Apr 11 21:20:55 UTC 2016


Hi Nicolas,

I don't think so.

The 3 primitives on full closures should be generated only if the
SistaV1Bytecode set is available.

Do you have a compilation bug because these primitives are absent ?

On Mon, Apr 11, 2016 at 12:03 PM, Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> wrote:

>
> 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/15cf64b9/attachment-0001.htm


More information about the Vm-dev mailing list