[Vm-dev] VM Maker: VMMaker-tfel.365.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Jun 26 08:38:40 UTC 2015
Tim Felgentreff uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker-tfel.365.mcz
==================== Summary ====================
Name: VMMaker-tfel.365
Author: tfel
Time: 26 June 2015, 10:37:10.919 am
UUID: d44204f7-1d97-e741-a5ef-1faacf7a7072
Ancestors: VMMaker-dtl.364, VMMaker-bak.362
generalize primitive simulation for Balloon, BitBlt, and image snapshot simulation (used RSqueak in lieu of VM implementation/plugin)
=============== Diff against VMMaker-dtl.364 ===============
Item was removed:
- ----- Method: BalloonEngine>>simulateBalloonPrimitive:args: (in category '*VMMaker-InterpreterSimulation') -----
- simulateBalloonPrimitive: aString args: args
- ^ Smalltalk at: #BalloonEngineSimulation ifPresent: [:be |
- be simulatePrimitive: aString receiver: self args: args]!
Item was added:
+ ----- Method: BalloonEngine>>simulatePrimitive:args: (in category '*VMMaker-InterpreterSimulation') -----
+ simulatePrimitive: aString args: args
+ "simulate primitives in RSqueak"
+ | proxy bb |
+ Smalltalk
+ at: #BalloonEngineSimulation
+ ifPresent: [:be |
+ proxy := InterpreterProxy new.
+ proxy synthesizeStackFor: self with: args.
+ bb := be simulatorClass new.
+ bb setInterpreter: proxy.
+ bb initialiseModule.
+ "rendering state is loaded in the primitive implementations"
+ bb perform: aString asSymbol.
+ ^ proxy stackValue: 0].!
Item was added:
+ ----- Method: BitBlt>>simulatePrimitive:args: (in category '*VMMaker-Interpreter') -----
+ simulatePrimitive: aString args: args
+ "simulate primitives in RSqueak"
+ aString = 'primitiveCopyBits'
+ ifTrue: [^ self copyBitsSimulated].
+ aString = 'primitiveWarpBits'
+ ifTrue: [^ self
+ warpBitsSimulated: (args at: 1)
+ sourceMap: (args at: 2)].
+ ^ InterpreterProxy new primitiveFailFor: 255
+ !
Item was added:
+ ----- Method: SmalltalkImage>>simulatePrimitive:args: (in category '*VMMaker-Interpreter') -----
+ simulatePrimitive: aPrimitive args: args
+ "simulate primitives in RSqueak"
+ "IMAGE_NAME"
+ aPrimitive = 121
+ ifTrue: [^ self getSystemAttribute: 1].
+ "SNAPSHOT"
+ aPrimitive = 97
+ ifTrue: [Smalltalk
+ at: #SystemTracer2
+ ifPresent: [:st | ^ st writeImage: Smalltalk imageName]].
+ "SNAPSHOT_EMBEDDED"
+ aPrimitive = 247
+ ifTrue: [Smalltalk
+ at: #SystemTracer2
+ ifPresent: [:st | ^ st writeImage: Smalltalk imageName]].
+ ^ InterpreterProxy new primitiveFailFor: 255
+ !
More information about the Vm-dev
mailing list