[Vm-dev] VM Maker: VMMaker.oscog-eem.1015.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jan 9 20:58:22 UTC 2015


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1015.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.1015
Author: eem
Time: 9 January 2015, 12:57:02.709 pm
UUID: cc6ec010-1b1d-4ba3-8a4d-1c31b2931fbd
Ancestors: VMMaker.oscog-eem.1014

Fix some C typing slips in recent Sista JIT code.

=============== Diff against VMMaker.oscog-eem.1014 ===============

Item was changed:
  ----- Method: CogObjectRepresentationFor32BitSpur>>genGetNumBytesOf:into: (in category 'compile abstract instructions') -----
  genGetNumBytesOf: srcReg into: destReg
  	"Get the size in byte-sized slots of the object in srcReg into destReg.
  	 srcReg may equal destReg.
  	 destReg <- numSlots << self shiftForWord - (fmt bitAnd: 3).
  	 Assumes the object in srcReg has a byte format, i.e. 16 to 23 or 24 to 31 "
+ 	<var: #jmp type: #'AbstractInstruction *'>
- 	<var: #jmp type: #'AbstractInstruction'>
  	| jmp |
  	self genGetRawSlotSizeOfNonImm: srcReg into: TempReg.
  	cogit CmpCq: objectMemory numSlotsMask R: TempReg.
  	jmp := cogit JumpLess: 0.
  	cogit MoveMw: objectMemory wordSize negated r: srcReg R: destReg.
  	jmp jmpTarget: (cogit LogicalShiftLeftCq: objectMemory shiftForWord R: destReg). 
  	"Now: destReg = numSlots << shiftForWord"
  	cogit MoveMw: 0 r: srcReg R: TempReg.
  	cogit LogicalShiftRightCq: objectMemory formatShift R: TempReg.
  	cogit AndCq: objectMemory wordSize - 1 R: TempReg.
  	"Now: fmt bitAnd: 3 in TempReg"
  	cogit SubR: TempReg R: destReg.
  	^0!

Item was changed:
  ----- Method: CogObjectRepresentationFor32BitSpur>>genGetNumSlotsOf:into: (in category 'compile abstract instructions') -----
  genGetNumSlotsOf: srcReg into: destReg
  	"Get the size in word-sized slots of the object in srcReg into destReg.
  	 srcReg may equal destReg."
+ 	<var: #jmp type: #'AbstractInstruction *'>
- 	<var: #jmp type: #'AbstractInstruction'>
  	| jmp |
  	self genGetRawSlotSizeOfNonImm: srcReg into: TempReg.
  	cogit CmpCq: objectMemory numSlotsMask R: TempReg.
  	jmp := cogit JumpLess: 0.
  	cogit MoveMw: objectMemory wordSize negated r: srcReg R: TempReg.
  	jmp jmpTarget: (cogit MoveR: TempReg R: destReg).
  	^0!

Item was changed:
  ----- Method: SimpleStackBasedCogit>>genPushClosureTempsBytecode (in category 'bytecode generators') -----
  genPushClosureTempsBytecode
  	"SistaV1: 230		11100110	iiiiiiii		PushNClosureTemps iiiiiiii"
  	1 to: byte1 do:
+ 		[:i| self genPushLiteral: objectMemory nilObject].
+ 	^0!
- 		[:i| self genPushLiteral: objectMemory nilObject]!



More information about the Vm-dev mailing list