@@ -1697,7 +1697,8 @@ StackInterpreterPrimitives >> primitiveGetVMParameter: index [
16971697 [84 ] - > [^ objectMemory integerObjectOf:
16981698 objectMemory getFromPermToNewSpaceRememberedSet rememberedSetSize].
16991699 [85 ] - > [^ objectMemory integerObjectOf:
1700- objectMemory getFromPermToNewSpaceRememberedSet rememberedSetLimit]}
1700+ objectMemory getFromPermToNewSpaceRememberedSet rememberedSetLimit].
1701+ [86 ] - > [^ objectMemory getAvoidSearchingSegmentsWithPinnedObjects ifTrue: [ objectMemory trueObject ] ifFalse: [objectMemory falseObject]]}
17011702 otherwise: [^ nil ]
17021703]
17031704
@@ -2707,15 +2708,26 @@ StackInterpreterPrimitives >> primitiveSetVMParameter: index arg: argOop [
27072708 | arg result |
27082709
27092710 " argOop read & checks; in most cases this is an integer parameter. In some it is either an integer or a Float"
2710- ( index = 17 or : [index = 55 or : [index = 68 ]])
2711- ifTrue:
2712- [((objectMemory isFloatInstance: argOop)
2711+ index
2712+ caseOf: {
2713+ [17 ] - > [ ((objectMemory isFloatInstance: argOop)
27132714 or : [objectMemory isIntegerObject: argOop]) ifFalse:
2714- [^ self primitiveFailFor: PrimErrBadArgument ]]
2715- ifFalse:
2716- [(objectMemory isIntegerObject: argOop) ifFalse:
2715+ [^ self primitiveFailFor: PrimErrBadArgument ]].
2716+ [55 ] - > [((objectMemory isFloatInstance: argOop)
2717+ or : [objectMemory isIntegerObject: argOop]) ifFalse:
2718+ [^ self primitiveFailFor: PrimErrBadArgument ]].
2719+ [68 ] - > [((objectMemory isFloatInstance: argOop)
2720+ or : [objectMemory isIntegerObject: argOop]) ifFalse:
2721+ [^ self primitiveFailFor: PrimErrBadArgument ]].
2722+ [86 ] - > [
2723+ (objectMemory isBooleanObject: argOop) ifFalse:
2724+ [^ self primitiveFailFor: PrimErrBadArgument ].
2725+ arg := objectMemory booleanValueOf: argOop
2726+ ]}
2727+ otherwise: [
2728+ (objectMemory isIntegerObject: argOop) ifFalse:
27172729 [^ self primitiveFailFor: PrimErrBadArgument ].
2718- arg := objectMemory integerValueOf: argOop].
2730+ arg := objectMemory integerValueOf: argOop ].
27192731
27202732 " assume failure, then set success for handled indices"
27212733 self primitiveFailFor: PrimErrBadArgument .
@@ -2792,7 +2804,14 @@ StackInterpreterPrimitives >> primitiveSetVMParameter: index arg: argOop [
27922804 [79 ] - > [ (arg between: 0 and : 65535 ) ifTrue:
27932805 [result := objectMemory integerObjectOf: self getImageVersion.
27942806 self setImageVersion: arg.
2795- self initPrimCall] ] }
2807+ self initPrimCall] ].
2808+ [86 ] - > [
2809+ result := objectMemory getAvoidSearchingSegmentsWithPinnedObjects
2810+ ifTrue: [objectMemory trueObject]
2811+ ifFalse: [objectMemory falseObject].
2812+
2813+ objectMemory setAvoidSearchingSegmentsWithPinnedObjects: arg.
2814+ self initPrimCall ]}
27962815 otherwise: [].
27972816
27982817 self successful
@@ -3984,7 +4003,7 @@ StackInterpreterPrimitives >> primitiveVMParameter [
39844003 Otherwise the *real* list is in the code: `StackInterpreterPrimitives>>#primitiveGetVMParameter:`"
39854004
39864005 | paramsArraySize index |
3987- paramsArraySize := 85 .
4006+ paramsArraySize := 86 .
39884007 argumentCount = 0 ifTrue: [^ self primitiveAllVMParameters: paramsArraySize].
39894008 argumentCount > 2 ifTrue: [^ self primitiveFailFor: PrimErrBadNumArgs ].
39904009
0 commit comments