[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