[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