ClementBera uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-cb.2045.mcz==================== Summary ====================
Name: VMMaker.oscog-cb.2045
Author: cb
Time: 21 December 2016, 2:59:29.957723 pm
UUID: c23c0e96-df64-4990-b40a-d34c40e5c1fa
Ancestors: VMMaker.oscog-nice.2044
use cmacro instead of hand-written constant.
=============== Diff against VMMaker.oscog-nice.2044 ===============
Item was changed:
----- Method: SimpleStackBasedCogit>>genExtPushRemoteTempOrInstVarLongBytecode (in category 'bytecode generators') -----
genExtPushRemoteTempOrInstVarLongBytecode
| index |
+ ^ (byte2 noMask: coInterpreter remoteIsInstVarAccess)
- ^ (byte2 noMask: 1 << 7)
ifTrue: [ self genPushRemoteTempLongBytecode ]
ifFalse:
[ index := byte1 + (extA << 8).
extA := 0.
extB := 0. "don't use flags in the simple cogit"
(coInterpreter isReadMediatedContextInstVarIndex: index)
+ ifTrue: [self
+ genPushMaybeContextRemoteInstVar: index
+ inObjectAt: byte2 - coInterpreter remoteIsInstVarAccess]
+ ifFalse: [self
+ genPushRemoteInstVar: index
+ inObjectAt: byte2 - coInterpreter remoteIsInstVarAccess]]!
- ifTrue: [ self genPushMaybeContextRemoteInstVar: index inObjectAt: byte2 - (1 << 7) ]
- ifFalse: [ self genPushRemoteInstVar: index inObjectAt: byte2 - (1 << 7) ] ]!
Item was changed:
----- Method: SimpleStackBasedCogit>>genExtStorePopRemoteTempOrInstVarLongBytecodePopBoolean: (in category 'bytecode generators') -----
genExtStorePopRemoteTempOrInstVarLongBytecodePopBoolean: popBoolean
| index |
extB := 0. "simple cogit don't use the extra flag"
+ (byte2 noMask: coInterpreter remoteIsInstVarAccess)
- (byte2 noMask: 1 << 7)
ifTrue:
[ self genStorePop: popBoolean RemoteTemp: byte1 At: byte2.
self cppIf: IMMUTABILITY ifTrue: [ self annotateBytecode: self Label ] ]
ifFalse:
[ index := byte1 + (extA << 8).
extA := 0.
(coInterpreter isWriteMediatedContextInstVarIndex: index)
ifTrue: [ self
genStorePop: popBoolean
MaybeContextRemoteInstVar: index
+ ofObjectAt: byte2 - coInterpreter remoteIsInstVarAccess ]
- ofObjectAt: byte2 - (1 << 7) ]
ifFalse: [ self
genStorePop: popBoolean
RemoteInstVar: index
+ ofObjectAt: byte2 - coInterpreter remoteIsInstVarAccess ] ].
- ofObjectAt: byte2 - (1 << 7) ] ].
^ 0!