[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