[Vm-dev] VM Maker: VMMaker.oscog-eem.855.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Aug 12 22:12:10 UTC 2014
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.855.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.855
Author: eem
Time: 12 August 2014, 3:09:43.748 pm
UUID: 23b3416e-7a63-4ddf-ae9b-66921eb7eb10
Ancestors: VMMaker.oscog-eem.854
Spur bootstrap support/simulation:
Tolerate a nil displayForm in the simulators.
Add a couple of missing methods.
=============== Diff against VMMaker.oscog-eem.854 ===============
Item was changed:
----- Method: CogVMSimulator>>showDisplayBits:w:h:d:left:right:top:bottom: (in category 'I/O primitives') -----
showDisplayBits: destBits w: w h: h d: d left: left right: right top: top bottom: bottom
| raster pixPerWord simDisp realDisp rect |
+ displayForm ifNil: [^self].
pixPerWord := 32 // d.
raster := displayForm width + (pixPerWord - 1) // pixPerWord.
simDisp := Form new hackBits: objectMemory memory.
displayForm unhibernate.
realDisp := Form new hackBits: displayForm bits.
realDisp
copy: (0 @ (top * raster) extent: 4 @ (bottom - top * raster))
from: 0 @ (destBits // 4 + (top * raster))
in: simDisp
rule: Form over.
displayView ifNotNil: [^ displayView changed].
"If running without a view, just blat the bits onto the screen..."
rect := 0 @ top corner: displayForm width @ bottom.
Display
copy: (rect translateBy: self displayLocation)
from: rect topLeft
in: displayForm
rule: Form over!
Item was added:
+ ----- Method: ObjectMemory>>cCoerceSimple:to: (in category 'simulation support') -----
+ cCoerceSimple: value to: cTypeString
+ ^cTypeString caseOf:
+ { [#'char *'] -> [value] }!
Item was changed:
----- Method: StackInterpreterSimulator>>showDisplayBits:w:h:d:left:right:top:bottom: (in category 'I/O primitives') -----
showDisplayBits: destBits w: w h: h d: d left: left right: right top: top bottom: bottom
| raster pixPerWord simDisp realDisp rect |
+ displayForm ifNil: [^self].
pixPerWord := 32 // d.
raster := displayForm width + (pixPerWord - 1) // pixPerWord.
simDisp := Form new hackBits: objectMemory memory.
displayForm unhibernate.
realDisp := Form new hackBits: displayForm bits.
realDisp
copy: (0 @ (top * raster) extent: 4 @ (bottom - top * raster))
from: 0 @ (destBits // 4 + (top * raster))
in: simDisp
rule: Form over.
displayView ifNotNil: [^ displayView changed].
"If running without a view, just blat the bits onto the screen..."
rect := 0 @ top corner: displayForm width @ bottom.
Display
copy: (rect translateBy: self displayLocation)
from: rect topLeft
in: displayForm
rule: Form over!
Item was added:
+ ----- Method: VMCompiledMethodProxy>>primitive (in category 'accessing') -----
+ primitive
+ "Answer the receiver's primitive."
+
+ ^coInterpreter primitiveIndexOf: oop!
More information about the Vm-dev
mailing list