[Vm-dev] VM Maker: VMMaker.oscog-nice.1853.mcz
Juan Vuletich
JuanVuletich at zoho.com
Mon May 2 15:22:11 UTC 2016
Thanks Nicolas!
On 4/29/2016 9:00 PM, commits at source.squeak.org wrote:
>
> Nicolas Cellier uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker.oscog-nice.1853.mcz
>
> ==================== Summary ====================
>
> Name: VMMaker.oscog-nice.1853
> Author: nice
> Time: 29 April 2016, 10:58:38.094 pm
> UUID: 3ff63b2d-9dc9-4d6a-b3ff-fb6d37f1085e
> Ancestors: VMMaker.oscog-nice.1852
>
> Fix missing comparison operation in genPrimitiveIdentical. This should fix Character = problem encounterd in Cuis.
>
> Comment concretizePrefetchAw, and store machineCode in last statement so as to avoid a -Wunused-value warning.
>
> =============== Diff against VMMaker.oscog-nice.1852 ===============
>
> Item was changed:
> ----- Method: CogIA32Compiler>>concretizePrefetchAw (in category 'generate machine code') -----
> concretizePrefetchAw
> "Will get inlined into concretizeAt: switch."
> <inline: true>
> | addressOperand |
> + "Note that maxSize has been set to 7 or 0 in computeMaximumSize whether hasSSEInstructions or not"
> - machineCodeSize := maxSize.
> maxSize> 0 ifTrue:
> [addressOperand := operands at: 0.
> machineCode
> at: 0 put: 16r0f;
> at: 1 put: 16r18;
> at: 2 put: (self mod: 0 RM: 5 RO: 1); "prefetch0, prefetch using the T0 temporal data hint"
> at: 3 put: (addressOperand bitAnd: 16rFF);
> at: 4 put: (addressOperand>> 8 bitAnd: 16rFF);
> at: 5 put: (addressOperand>> 16 bitAnd: 16rFF);
> at: 6 put: (addressOperand>> 24 bitAnd: 16rFF)].
> + ^machineCodeSize := maxSize!
> - ^maxSize!
>
> Item was changed:
> ----- Method: CogObjectRepresentationForSqueakV3>>genPrimitiveIdenticalOrNotIf: (in category 'primitive generators') -----
> genPrimitiveIdenticalOrNotIf: orNot
> | jumpCmp |
> <var: #jumpCmp type: #'AbstractInstruction *'>
> cogit genLoadArgAtDepth: 0 into: Arg0Reg.
> + cogit CmpR: Arg0Reg R: ReceiverResultReg.
> jumpCmp := orNot
> ifTrue: [cogit JumpZero: 0]
> ifFalse: [cogit JumpNonZero: 0].
> cogit genMoveTrueR: ReceiverResultReg.
> cogit genPrimReturn.
> jumpCmp jmpTarget: (cogit genMoveFalseR: ReceiverResultReg).
> cogit genPrimReturn.
> ^UnfailingPrimitive!
>
>
More information about the Vm-dev
mailing list