[Vm-dev] VM Maker: VMMaker.oscog-nice.1853.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Apr 29 21:02:08 UTC 2016


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