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! |
Thanks Nicolas! On 4/29/2016 9:00 PM, [hidden email] 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! > > |
Free forum by Nabble | Edit this page |