[Vm-dev] VM Maker: VMMaker.oscog-eem.3148.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Feb 8 04:04:43 UTC 2022


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3148.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.3148
Author: eem
Time: 7 February 2022, 7:59:49.131441 pm
UUID: 55858401-f9a2-4458-ab45-b576bac43a1c
Ancestors: VMMaker.oscog-eem.3147

Spur CoInterpreter: fix crashes of vmParameterAt: on WIndows under Clang.  The PrimCallOnSmalltalkStack needs PrimCallOnSmalltalkStackAlign2x also.

=============== Diff against VMMaker.oscog-eem.3147 ===============

Item was changed:
  ----- Method: CoInterpreter>>primitivePropertyFlagsForSpur:numArgs: (in category 'cog jit support') -----
  primitivePropertyFlagsForSpur: primIndex numArgs: numArgs
  	<inline: true>
  	"Answer any special requirements of the given primitive.  Spur needs to set
  	 newMethod if and when a primitive fails so primitives can retry on failure due
  	 to forwarders, but this isn't done until failure. The primitiveMetadataTable
  	 is populated based on the primitiveMetadata: pragma in internal primitives."
  	| baseFlags |
  	baseFlags := profileSemaphore = objectMemory nilObject
  					ifTrue: [0]
  					ifFalse: [PrimCallCollectsProfileSamples].
  	self cppIf: #LRPCheck
  		ifTrue:
  			[longRunningPrimitiveCheckSemaphore ifNotNil:
  				[baseFlags := baseFlags bitOr: PrimCallNeedsNewMethod]].
  
  	(primIndex = PrimNumberVMParameter and: [numArgs = 1]) "vmParameterAt:" ifTrue:
+ 		[^baseFlags + PrimCallOnSmalltalkStack + PrimCallOnSmalltalkStackAlign2x + PrimCallIsInternalPrim].
- 		[^baseFlags + PrimCallOnSmalltalkStack + PrimCallIsInternalPrim].
  
  	^baseFlags bitOr: ((primitiveMetadataTable at: primIndex) bitAnd: SpurPrimitiveFlagsMask)!



More information about the Vm-dev mailing list