mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-15 00:26:03 +02:00
- removed fpc_strconcat_len for -dnewoptimizations since it's not
used anymore (because the strconcat optimizations have been disabled quite a while ago)
This commit is contained in:
parent
577075367d
commit
be0deb8185
@ -801,46 +801,6 @@ begin
|
||||
end ['EBX','ECX','EAX','ESI','EDI'];
|
||||
end;
|
||||
|
||||
{$ifdef newoptimizations}
|
||||
procedure int_strconcatlen(s1,s2:pointer;maxlen: longint);
|
||||
[public,alias:'FPC_SHORTSTR_CONCAT_LEN'];
|
||||
begin
|
||||
asm
|
||||
movl s2,%edi
|
||||
movl s1,%esi
|
||||
movl %edi,%ebx
|
||||
movzbl (%edi),%ecx
|
||||
xor %eax,%eax
|
||||
lea 1(%edi,%ecx),%edi
|
||||
negl %ecx
|
||||
addl maxlen,%ecx
|
||||
lodsb
|
||||
cmpl %ecx,%eax
|
||||
jbe .LStrConcat1
|
||||
movl %ecx,%eax
|
||||
.LStrConcat1:
|
||||
addb %al,(%ebx)
|
||||
cmpl $7,%eax
|
||||
jl .LStrConcat2
|
||||
movl %edi,%ecx { Align on 32bits }
|
||||
negl %ecx
|
||||
andl $3,%ecx
|
||||
subl %ecx,%eax
|
||||
rep
|
||||
movsb
|
||||
movl %eax,%ecx
|
||||
andl $3,%eax
|
||||
shrl $2,%ecx
|
||||
rep
|
||||
movsl
|
||||
.LStrConcat2:
|
||||
movl %eax,%ecx
|
||||
rep
|
||||
movsb
|
||||
end ['EBX','ECX','EAX','ESI','EDI'];
|
||||
end;
|
||||
{$endif newoptimizations}
|
||||
|
||||
|
||||
{$define FPC_SYSTEM_HAS_FPC_SHORTSTR_COMPARE}
|
||||
procedure int_strcmp(dstr,sstr:pointer);[public,alias:'FPC_SHORTSTR_COMPARE'];
|
||||
@ -1196,7 +1156,12 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.74 2000-07-07 18:23:41 marco
|
||||
Revision 1.75 2000-07-08 09:09:35 jonas
|
||||
- removed fpc_strconcat_len for -dnewoptimizations since it's not
|
||||
used anymore (because the strconcat optimizations have been
|
||||
disabled quite a while ago)
|
||||
|
||||
Revision 1.74 2000/07/07 18:23:41 marco
|
||||
* Changed move (var source;var dest) to move (const source;var dest)
|
||||
|
||||
Revision 1.73 2000/05/09 06:21:58 pierre
|
||||
|
Loading…
Reference in New Issue
Block a user