BMI1 → BMI2.

This commit is contained in:
Rika Ichinose 2025-03-13 01:02:15 +03:00
parent 860a2d0145
commit 4f92679625
2 changed files with 4 additions and 4 deletions

View File

@ -1538,7 +1538,7 @@ CompareByte_1OrLess:
or $1, %eax
end;
function {$ifdef CPUX86_HAS_BMI1} CompareByte {$else} CompareByte_AVX2 {$endif} (const buf1, buf2; len: SizeInt): SizeInt; assembler; nostackframe;
function {$ifdef CPUX86_HAS_BMI2} CompareByte {$else} CompareByte_AVX2 {$endif} (const buf1, buf2; len: SizeInt): SizeInt; assembler; nostackframe;
asm
{ eax = buf1, edx = buf2, ecx = len }
cmp $1, %ecx
@ -1657,7 +1657,7 @@ asm
pop %ebx
end;
{$ifndef CPUX86_HAS_BMI1}
{$ifndef CPUX86_HAS_BMI2}
function CompareByte_Dispatch(const buf1, buf2; len: SizeInt): SizeInt; forward;
var
@ -1682,7 +1682,7 @@ function CompareByte(const buf1, buf2; len: SizeInt): SizeInt;
begin
result:=CompareByte_Impl(buf1, buf2, len);
end;
{$endif ndef CPUX86_HAS_BMI1 (need CompareByte dispatcher)}
{$endif ndef CPUX86_HAS_BMI2 (need CompareByte dispatcher)}
{$endif FPC_SYSTEM_HAS_COMPAREBYTE}

View File

@ -917,7 +917,7 @@ function Indexword(const buf;len:SizeInt;b:word):SizeInt; {$if defined(cpui386)
function IndexDWord(const buf;len:SizeInt;b:DWord):SizeInt; {$if defined(cpui386) and not defined(CPUX86_HAS_SSE2)} inline; {$endif}
function IndexQWord(const buf;len:SizeInt;b:QWord):SizeInt; {$if (defined(cpui386) or defined(cpux86_64)) and not defined(CPUX86_HAS_SSE4_1)} inline; {$endif}
function CompareChar(const buf1,buf2;len:SizeInt):SizeInt;
function CompareByte(const buf1,buf2;len:SizeInt):SizeInt; {$if defined(cpui386) and not defined(CPUX86_HAS_BMI1)} inline; {$endif}
function CompareByte(const buf1,buf2;len:SizeInt):SizeInt; {$if defined(cpui386) and not defined(CPUX86_HAS_BMI2)} inline; {$endif}
function CompareWord(const buf1,buf2;len:SizeInt):SizeInt; {$if defined(cpui386) and not defined(CPUX86_HAS_SSE2)} inline; {$endif}
function CompareDWord(const buf1,buf2;len:SizeInt):SizeInt; {$if defined(cpui386) and not defined(CPUX86_HAS_SSE2)} inline; {$endif}
procedure MoveChar0(const buf1;var buf2;len:SizeInt);