Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3153.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3153 Author: eem Time: 10 February 2022, 6:13:52.196272 pm UUID: 30273ce5-072e-48f7-ab75-fd98b697b8e0 Ancestors: VMMaker.oscog-eem.3152
And another. FastCPrimitive => FastCPrimitiveFlag
=============== Diff against VMMaker.oscog-eem.3152 ===============
Item was changed: ----- Method: DeflatePlugin>>primitiveDeflateUpdateHashTable (in category 'primitives') ----- primitiveDeflateUpdateHashTable "Primitive. Update the hash tables after data has been moved by delta." <export: true> + <primitiveMetadata: #(FastCPrimitiveFlag FastCPrimitiveAlignForFloatsFlag)> "Using AlignForFloats since the arithmetic is potentially vectorizable..." - <primitiveMetadata: #(FastCPrimitive FastCPrimitiveAlignForFloatsFlag)> "Using AlignForFloats since the arithmetic is potentially vectorizable..." | delta table tableSize tablePtr entry | <var: #tablePtr type:'int *'> delta := interpreterProxy stackIntegerValue: 0. table := interpreterProxy stackValue: 1. interpreterProxy failed ifTrue:[^nil]. (interpreterProxy isWords: table) ifFalse: [^interpreterProxy primitiveFail]. tableSize := interpreterProxy slotSizeOf: table. tablePtr := interpreterProxy firstIndexableField: table. 0 to: tableSize-1 do:[:i| entry := tablePtr at: i. entry >= delta ifTrue:[tablePtr at: i put: entry - delta] ifFalse:[tablePtr at: i put: 0]]. interpreterProxy pop: 2 "Leave rcvr on stack"!
Item was changed: ----- Method: DeflatePlugin>>primitiveUpdateAdler32 (in category 'primitives') ----- primitiveUpdateAdler32 "Primitive. Update a 32bit CRC value." <export: true> + <primitiveMetadata: #(FastCPrimitiveFlag FastCPrimitiveAlignForFloatsFlag)> "Using AlignForFloats since the arithmetic is potentially vectorizable..." - <primitiveMetadata: #(FastCPrimitive FastCPrimitiveAlignForFloatsFlag)> "Using AlignForFloats since the arithmetic is potentially vectorizable..." | collection stopIndex startIndex length bytePtr s1 adler32 s2 b | <var: #adler32 type:'unsigned int '> <var: #bytePtr type:'unsigned char *'> collection := interpreterProxy stackValue: 0. stopIndex := interpreterProxy stackIntegerValue: 1. startIndex := interpreterProxy stackIntegerValue: 2. adler32 := interpreterProxy positive32BitValueOf: (interpreterProxy stackValue: 3). interpreterProxy failed ifTrue: [^nil]. ((interpreterProxy isBytes: collection) and:[stopIndex >= startIndex and:[startIndex > 0]]) ifFalse:[^interpreterProxy primitiveFail]. length := interpreterProxy byteSizeOf: collection. (stopIndex <= length) ifFalse:[^interpreterProxy primitiveFail]. bytePtr := interpreterProxy firstIndexableField: collection. startIndex := startIndex - 1. stopIndex := stopIndex - 1. s1 := adler32 bitAnd: 16rFFFF. s2 := adler32 >> 16 bitAnd: 16rFFFF. startIndex to: stopIndex do:[:i| b := bytePtr at: i. s1 := (s1 + b) \ 65521. s2 := (s2 + s1) \ 65521. ]. adler32 := (s2 bitShift: 16) + s1. interpreterProxy methodReturnValue: (interpreterProxy positive32BitIntegerFor: adler32)!
Item was changed: ----- Method: DeflatePlugin>>primitiveUpdateGZipCrc32 (in category 'primitives') ----- primitiveUpdateGZipCrc32 "Primitive. Update a 32bit CRC value." <export: true> + <primitiveMetadata: #(FastCPrimitiveFlag FastCPrimitiveAlignForFloatsFlag)> "Using AlignForFloats since the arithmetic is potentially vectorizable..." - <primitiveMetadata: #(FastCPrimitive FastCPrimitiveAlignForFloatsFlag)> "Using AlignForFloats since the arithmetic is potentially vectorizable..." | collection stopIndex startIndex crc length bytePtr | <var: #bytePtr type: #'unsigned char *'> collection := interpreterProxy stackValue: 0. stopIndex := interpreterProxy stackIntegerValue: 1. startIndex := interpreterProxy stackIntegerValue: 2. crc := interpreterProxy positive32BitValueOf: (interpreterProxy stackValue: 3). interpreterProxy failed ifTrue: [^self]. ((interpreterProxy isBytes: collection) and:[stopIndex >= startIndex and:[startIndex > 0]]) ifFalse:[^interpreterProxy primitiveFail]. length := interpreterProxy byteSizeOf: collection. (stopIndex <= length) ifFalse:[^interpreterProxy primitiveFail]. bytePtr := interpreterProxy firstIndexableField: collection. self cCode:'' inSmalltalk:[zipCrcTable := CArrayAccessor on: GZipWriteStream crcTable]. startIndex := startIndex - 1. stopIndex := stopIndex - 1. startIndex to: stopIndex do: [:i| crc := (zipCrcTable at: ((crc bitXor: (bytePtr at: i)) bitAnd: 255)) bitXor: crc >> 8]. interpreterProxy methodReturnValue: (interpreterProxy positive32BitIntegerFor: crc)!
vm-dev@lists.squeakfoundation.org