[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