[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