Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1740.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1740 Author: eem Time: 23 March 2016, 12:56:08.002711 pm UUID: 10ece78d-d04d-4ad2-8598-e496b6a6097c Ancestors: VMMaker.oscog-eem.1739
Fix slips in new versions of bit primitives.
=============== Diff against VMMaker.oscog-eem.1739 ===============
Item was changed: ----- Method: InterpreterPrimitives>>primitiveBitAnd (in category 'arithmetic integer primitives') ----- primitiveBitAnd <inline: false> <var: 'integerArgumentValue' type: #usqInt> + <var: 'integerReceiverValue' type: #usqInt> + | integerArgumentValue integerReceiverValue | - <var: 'intergerReceiverValue' type: #usqInt> - | integerReceiver integerArgument integerArgumentValue integerReceiverValue | - integerArgument := self stackTop. - integerReceiver := self stackValue: 1. "Note no short-cut for SmallIntegers. Either the inline interpreter bytecode or the JIT primitive will handle this case." + integerArgumentValue := self positiveMachineIntegerValueOf: self stackTop. + integerReceiverValue := self positiveMachineIntegerValueOf: (self stackValue: 1). - integerArgumentValue := self positiveMachineIntegerValueOf: integerArgument. - integerReceiverValue := self positiveMachineIntegerValueOf: integerReceiver. self successful ifTrue: [self pop: 2 thenPush: (self positiveMachineIntegerFor: (integerArgumentValue bitAnd: integerReceiverValue))]!
Item was changed: ----- Method: InterpreterPrimitives>>primitiveBitOr (in category 'arithmetic integer primitives') ----- primitiveBitOr <inline: false> <var: 'integerArgumentValue' type: #usqInt> + <var: 'integerReceiverValue' type: #usqInt> + | integerArgumentValue integerReceiverValue | - <var: 'intergerReceiverValue' type: #usqInt> - | integerReceiver integerArgument integerArgumentValue integerReceiverValue | - integerArgument := self stackTop. - integerReceiver := self stackValue: 1. "Note no short-cut for SmallIntegers. Either the inline interpreter bytecode or the JIT primitive will handle this case." + integerArgumentValue := self positiveMachineIntegerValueOf: self stackTop. + integerReceiverValue := self positiveMachineIntegerValueOf: (self stackValue: 1). - integerArgumentValue := self positiveMachineIntegerValueOf: integerArgument. - integerReceiverValue := self positiveMachineIntegerValueOf: integerReceiver. self successful ifTrue: [self pop: 2 thenPush: (self positiveMachineIntegerFor: (integerArgumentValue bitOr: integerReceiverValue))]!
Item was changed: ----- Method: InterpreterPrimitives>>primitiveBitXor (in category 'arithmetic integer primitives') ----- primitiveBitXor <inline: false> <var: 'integerArgumentValue' type: #usqInt> + <var: 'integerReceiverValue' type: #usqInt> - <var: 'intergerReceiverValue' type: #usqInt> | integerReceiver integerArgument integerArgumentValue integerReceiverValue | 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: [integerArgumentValue := self positiveMachineIntegerValueOf: integerArgument. integerReceiverValue := self positiveMachineIntegerValueOf: integerReceiver. self successful ifTrue: [self pop: 2 thenPush: (self positiveMachineIntegerFor: (integerArgumentValue bitXor: integerReceiverValue))]]!
vm-dev@lists.squeakfoundation.org