- removed i386 specific fpc_pchar_length implementation as it is much slower than the generic one which takes advantage of IndexByte

git-svn-id: trunk@33491 -
This commit is contained in:
florian 2016-04-12 18:13:24 +00:00
parent 2b082d88a6
commit 9b1e6e1976

View File

@ -989,40 +989,6 @@ end;
{$endif FPC_SYSTEM_HAS_FPC_PCHAR_TO_SHORTSTR}
{$ifndef FPC_SYSTEM_HAS_FPC_PCHAR_LENGTH}
{$define FPC_SYSTEM_HAS_FPC_PCHAR_LENGTH}
function fpc_pchar_length(p:pchar):sizeint;assembler;[public,alias:'FPC_PCHAR_LENGTH']; compilerproc;
var
saveedi : longint;
asm
{$ifdef FPC_PROFILE}
push %eax
push %edx
push %ecx
call mcount
pop %ecx
pop %edx
pop %eax
{$endif FPC_PROFILE}
test %eax,%eax
jz .LStrLenDone
movl %edi,saveedi
movl %eax,%edi
movl $0xffffffff,%ecx
xorl %eax,%eax
{$ifdef FPC_ENABLED_CLD}
cld
{$endif FPC_ENABLED_CLD}
repne
scasb
movl $0xfffffffe,%eax
subl %ecx,%eax
movl saveedi,%edi
.LStrLenDone:
end;
{$endif FPC_SYSTEM_HAS_FPC_PCHAR_LENGTH}
{$IFNDEF INTERNAL_BACKTRACE}
{$define FPC_SYSTEM_HAS_GET_FRAME}
function get_frame:pointer;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}