[Vm-dev] VM Maker: VMMaker.oscog-eem.2256.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jul 19 21:30:58 UTC 2017
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2256.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2256
Author: eem
Time: 19 July 2017, 2:30:03.191349 pm
UUID: a09b02f9-394f-4d4e-bb52-4380bd587207
Ancestors: VMMaker.oscog-eem.2255
Provide primitive 248 as a don't-copy-hash alternative to primitive 72 (primitiveArrayBecomeForward, the primitive in elementsForwardIdentityTo: which implements becomeForward:.
=============== Diff against VMMaker.oscog-eem.2255 ===============
Item was changed:
----- Method: InterpreterPrimitives>>primitiveArrayBecomeOneWayCopyHash (in category 'object access primitives') -----
primitiveArrayBecomeOneWayCopyHash
"Similar to primitiveArrayBecomeOneWay but accepts a third argument deciding whether to
+ copy the receiver's elements identity hashes over the argument's elements identity hashes."
- copy the receiver's element's identity hash over the argument's elementy's identity hash."
| copyHashFlag ec |
self stackTop = objectMemory trueObject
ifTrue: [copyHashFlag := true]
ifFalse:
[self stackTop = objectMemory falseObject
ifTrue: [copyHashFlag := false]
ifFalse:
[self primitiveFailFor: PrimErrBadArgument.
^nil]].
ec := objectMemory
become: (self stackValue: 2)
with: (self stackValue: 1)
twoWay: false
copyHash: copyHashFlag.
ec = PrimNoErr
ifTrue: [self pop: argumentCount]
ifFalse: [self primitiveFailFor: ec]!
Item was added:
+ ----- Method: InterpreterPrimitives>>primitiveArrayBecomeOneWayNoCopyHash (in category 'object access primitives') -----
+ primitiveArrayBecomeOneWayNoCopyHash
+ "Similar to primitiveArrayBecomeOneWay but does /not/ copy the receiver's
+ elements identity hashes over the argument's elements identity hashes."
+
+ | arg rcvr ec |
+ arg := self stackTop.
+ rcvr := self stackValue: 1.
+ ec := objectMemory become: rcvr with: arg twoWay: false copyHash: false.
+ ec = PrimNoErr
+ ifTrue: [self pop: 1]
+ ifFalse: [self primitiveFailFor: ec]!
Item was changed:
----- Method: StackInterpreter class>>initializePrimitiveTable (in category 'initialization') -----
(excessive size, no diff calculated)
More information about the Vm-dev
mailing list