...in http://www.mirandabanda.org/files/Cog/VM/VM.r3021/.In particular, these fix VM crashes when running the AllocationTest in Spur.CogVM source as per VMMaker.oscog-eem.787/r3021Fix mixup of old & young spaces in primitiveVMParameter, andcomment some new parameters.
Fix return types for positive[64/32]BitValueOf:.positive32BitValueOf: must answer a usqInt,positive64BitValueOf: must answer a usqLong.
Use positiveMachineIntegerValueOf: to decode arg in primitiveNewWithArgand ensure positiveMachineIntegerValueOf: is inlined there-in.win32:Set the IMAGE_FILE_LARGE_ADDRESS_AWARE flag in the image header of the Windowsexecutables to allow e.g. Spur to allocate more than 2Gb.Spur:Fix sign and overflow issues in instantiating larger objectsand determining the size of large instances.Fix some freeChunk accesses that used fetchPointer:ofObject:.Cog ARM:Fix prim return for compileInterpreterPrimitive: on RISCs. On return frominterpreter prim, ret pc is in instructionPointer and must return to whenceit came, which is the stack on CISC and the LinkReg on RISC. Hence restoringthe receiver reg requires different offsets in the two cases.Rework the rotatable quick constant logic a little and clean up users.Fix concretizeMoveRXbrR to do byte not word loads.Fix concretizeConditionalJumpLong: to actually be conditional. Oops.Correct mistaken callersaved reg stuff for ARMFix concretizedRetN to not over-bump the SPThe method abort trampolines shouldn't pop anything, especiallynow we have the pushLinkreg: arg to manage the LinkReg more easily.Slang:Rip out the UseRightShiftForDivide optimization. It gets unsigned divisionwrong, and C compilers can and will optimize this correctly themselves.--
best,Eliot