[Vm-dev] VM Maker: VMMaker.oscog-eem.1055.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Feb 11 22:12:03 UTC 2015
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1055.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1055
Author: eem
Time: 11 February 2015, 2:10:42.938 pm
UUID: dd8f0ae4-8ad8-470c-a35b-29cf787f83c8
Ancestors: VMMaker.oscog-eem.1054
Broaden primitiveBitXor for Spur 64-bits.
Now there are no uses of popPos32BitInteger in Cog :-)
=============== Diff against VMMaker.oscog-eem.1054 ===============
Item was changed:
----- Method: InterpreterPrimitives>>primitiveBitXor (in category 'arithmetic integer primitives') -----
primitiveBitXor
+ <inline: false>
| integerReceiver integerArgument |
+ integerArgument := self stackTop.
+ integerReceiver := self stackValue: 1.
+ ((objectMemory isIntegerObject: integerArgument)
+ and: [objectMemory isIntegerObject: integerReceiver])
+ ifTrue: "xoring will leave the tag bits zero, whether the tag is 1 or zero, so add it back in."
+ [self pop: 2 thenPush: (integerArgument bitXor: integerReceiver) + objectMemory smallIntegerTag]
+ ifFalse:
+ [objectMemory wordSize = 8
+ ifTrue:
+ [integerArgument := self positive64BitValueOf: integerArgument.
+ integerReceiver := self positive64BitValueOf: integerReceiver.
+ self successful ifTrue:
+ [self pop: 2 thenPush: (self positive64BitIntegerFor: (integerArgument bitXor: integerReceiver))]]
+ ifFalse:
+ [integerArgument := self positive32BitValueOf: integerArgument.
+ integerReceiver := self positive32BitValueOf: integerReceiver.
+ self successful ifTrue:
+ [self pop: 2 thenPush: (self positive32BitIntegerFor: (integerArgument bitXor: integerReceiver))]]]!
- integerArgument := self popPos32BitInteger.
- integerReceiver := self popPos32BitInteger.
- self successful
- ifTrue: [self push: (self positive32BitIntegerFor:
- (integerReceiver bitXor: integerArgument))]
- ifFalse: [self unPop: 2]!
More information about the Vm-dev
mailing list