Skip to content

feat: add IA-32 (i386) SSE2 SIMD dispatch and refactor CRC into dispatch layer#58

Merged
Xor-el merged 10 commits intomasterfrom
enhancement/sse2-32bit-support
Apr 1, 2026
Merged

feat: add IA-32 (i386) SSE2 SIMD dispatch and refactor CRC into dispatch layer#58
Xor-el merged 10 commits intomasterfrom
enhancement/sse2-32bit-support

Conversation

@Xor-el
Copy link
Copy Markdown
Owner

@Xor-el Xor-el commented Apr 1, 2026

Summary
This PR extends SIMD acceleration from x86-64-only to IA-32 (i386) targets and restructures the CRC fold/update logic into the centralized dispatch layer

Xor-el added 10 commits March 30, 2026 23:17
… asm

FPC's x64 assembler rejects `and rax, $FFFFFFFF` (8011: signed dword out of
range). Use `mov eax, ebx` to zero-extend the 32-bit CRC into RAX for the
UInt64 return value.
Add an explicit _x86_64 suffix to all x86-64-specific SIMD .inc files under HashLib/src/Include/Simd, matching the existing *_i386.inc pattern and keeping a flat layout for future architectures.

Leave CpuDetect/CpuIdQuery.inc and CpuDetect/XGetBvQuery.inc unchanged; they already branch on HASHLIB_I386_ASM for IA-32 vs x86-64 in one file.

Update every {$I ..\Include\Simd\...} in the dispatch units to the new names, refresh related header comments, and i386 cross-references.
@Xor-el Xor-el merged commit 7753660 into master Apr 1, 2026
8 checks passed
@Xor-el Xor-el deleted the enhancement/sse2-32bit-support branch April 1, 2026 22:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant