[Vm-dev] VM Maker: VMMaker.oscog-eem.3095.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Oct 23 19:48:13 UTC 2021
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3095.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3095
Author: eem
Time: 23 October 2021, 12:48:02.259634 pm
UUID: 4a2893be-37f9-4703-ba97-6ccb01b44d4d
Ancestors: VMMaker.oscog-eem.3094
CoInterpreter: Add ShortIntegerArray/SoundBuffer>>at:[put:] to primitives run on the Smalltalk stack.
=============== Diff against VMMaker.oscog-eem.3094 ===============
Item was changed:
----- Method: CoInterpreter>>primitivePropertyFlagsForSpur: (in category 'cog jit support') -----
primitivePropertyFlagsForSpur: primIndex
<inline: true>
"Answer any special requirements of the given primitive. Spur always needs to set
primitiveFunctionPointer and newMethod so primitives can retry on failure due to forwarders."
| baseFlags |
self cCode: [] inSmalltalk: [#( primitiveObjectAtPut primitiveCopyObject primitiveSpurStringReplace
primitiveSpurFloatArrayAt primitiveSpurFloatArrayAtPut
primitiveExternalCall primitiveCalloutToFFI)]. "For senders..."
baseFlags := profileSemaphore = objectMemory nilObject
ifTrue: [0]
ifFalse: [PrimCallCollectsProfileSamples].
+ (primIndex = PrimNumberObjectAtPut
- (primIndex = PrimNumberObjectAtPut
or: [primIndex = PrimNumberCopyObject
+ or: [primIndex = PrimNumberStringReplace
+ or: [primIndex = PrimNumberShortArrayAt
+ or: [primIndex = PrimNumberShortArrayAtPut]]]]) ifTrue:
- or: [primIndex = PrimNumberStringReplace]]) ifTrue:
[^baseFlags + PrimCallOnSmalltalkStack].
+
+ (primIndex = PrimNumberFloatArrayAt
- (primIndex = PrimNumberFloatArrayAt
or: [primIndex = PrimNumberFloatArrayAtPut]) ifTrue:
[^baseFlags + PrimCallOnSmalltalkStack + PrimCallOnSmalltalkStackAlign2x].
baseFlags := baseFlags + PrimCallNeedsPrimitiveFunction + PrimCallNeedsNewMethod.
(self isCalloutPrimitiveIndex: primIndex) ifTrue: "For callbacks & module unloading"
[^baseFlags + PrimCallMayEndureCodeCompaction + PrimCallIsExternalCall].
(self isCodeCompactingPrimitiveIndex: primIndex) ifTrue: "For code reclamations"
[^baseFlags bitOr: PrimCallMayEndureCodeCompaction].
^baseFlags!
Item was changed:
----- Method: StackInterpreter class>>initializePrimitiveTable (in category 'initialization') -----
(excessive size, no diff calculated)
Item was changed:
SharedPool subclass: #VMBytecodeConstants
instanceVariableNames: ''
+ classVariableNames: 'BytecodeSetHasDirectedSuperSend CtxtTempFrameStart LargeContextBit LargeContextSize LargeContextSlots NewsqueakV4BytecodeSet PrimNumberDoExternalCall PrimNumberDoPrimitive PrimNumberExternalCall PrimNumberFFICall PrimNumberFloatArrayAt PrimNumberFloatArrayAtPut PrimNumberFlushExternalPrimitives PrimNumberInstVarAt PrimNumberShallowCopy PrimNumberShortArrayAt PrimNumberShortArrayAtPut PrimNumberSlotAt PrimNumberStringReplace PrimNumberUnloadModule SistaV1BytecodeSet SmallContextSize SmallContextSlots SqueakV3PlusClosuresBytecodeSet'
- classVariableNames: 'BytecodeSetHasDirectedSuperSend CtxtTempFrameStart LargeContextBit LargeContextSize LargeContextSlots NewsqueakV4BytecodeSet PrimNumberDoExternalCall PrimNumberDoPrimitive PrimNumberExternalCall PrimNumberFFICall PrimNumberFloatArrayAt PrimNumberFloatArrayAtPut PrimNumberFlushExternalPrimitives PrimNumberInstVarAt PrimNumberShallowCopy PrimNumberSlotAt PrimNumberStringReplace PrimNumberUnloadModule SistaV1BytecodeSet SmallContextSize SmallContextSlots SqueakV3PlusClosuresBytecodeSet'
poolDictionaries: 'VMBasicConstants'
category: 'VMMaker-Interpreter'!
!VMBytecodeConstants commentStamp: '<historical>' prior: 0!
self ensureClassPool.
#(CtxtTempFrameStart LargeContextBit LargeContextSize SmallContextSize) do:
[:k|
self classPool declare: k from: ObjectMemory classPool]!
More information about the Vm-dev
mailing list