mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 02:59:33 +02:00
* added missing register that is destroyed by strecopy
+ some destroyed register lists for procedures that didn't have one yet
This commit is contained in:
parent
e7bb1b59e1
commit
1e8a7f6853
@ -40,7 +40,7 @@ asm
|
|||||||
movsb
|
movsb
|
||||||
.LStrCopyNil:
|
.LStrCopyNil:
|
||||||
movl dest,%eax
|
movl dest,%eax
|
||||||
end;
|
end ['EAX','ECX','ESI','EDI'];
|
||||||
|
|
||||||
|
|
||||||
function strecopy(dest,source : pchar) : pchar;assembler;
|
function strecopy(dest,source : pchar) : pchar;assembler;
|
||||||
@ -65,7 +65,7 @@ asm
|
|||||||
movl dest,%eax
|
movl dest,%eax
|
||||||
decl %edi
|
decl %edi
|
||||||
movl %edi,%eax
|
movl %edi,%eax
|
||||||
end ['EAX','ESI','EDI'];
|
end ['EAX','ECX','ESI','EDI'];
|
||||||
|
|
||||||
|
|
||||||
function strlcopy(dest,source : pchar;maxlen : longint) : pchar;assembler;
|
function strlcopy(dest,source : pchar;maxlen : longint) : pchar;assembler;
|
||||||
@ -243,7 +243,7 @@ end ['EAX','ECX','ESI','EDI'];
|
|||||||
|
|
||||||
function strscan(p : pchar;c : char) : pchar;assembler;
|
function strscan(p : pchar;c : char) : pchar;assembler;
|
||||||
asm
|
asm
|
||||||
xorl %eax,%eax
|
xorl %eax,%eax
|
||||||
movl p,%edi
|
movl p,%edi
|
||||||
orl %edi,%edi
|
orl %edi,%edi
|
||||||
jz .LSTRSCAN
|
jz .LSTRSCAN
|
||||||
@ -261,7 +261,7 @@ asm
|
|||||||
movl %edi,%eax
|
movl %edi,%eax
|
||||||
decl %eax
|
decl %eax
|
||||||
.LSTRSCAN:
|
.LSTRSCAN:
|
||||||
end;
|
end ['EAX','ECX','EDI'];
|
||||||
|
|
||||||
|
|
||||||
function strrscan(p : pchar;c : char) : pchar;assembler;
|
function strrscan(p : pchar;c : char) : pchar;assembler;
|
||||||
@ -289,7 +289,7 @@ asm
|
|||||||
movl %edi,%eax
|
movl %edi,%eax
|
||||||
incl %eax
|
incl %eax
|
||||||
.LSTRRSCAN:
|
.LSTRRSCAN:
|
||||||
end;
|
end ['EAX','ECX','EDI'];
|
||||||
|
|
||||||
|
|
||||||
function strupper(p : pchar) : pchar;assembler;
|
function strupper(p : pchar) : pchar;assembler;
|
||||||
@ -311,7 +311,7 @@ asm
|
|||||||
jnz .LSTRUPPER1
|
jnz .LSTRUPPER1
|
||||||
.LStrUpperNil:
|
.LStrUpperNil:
|
||||||
movl p,%eax
|
movl p,%eax
|
||||||
end;
|
end ['EAX','ESI','EDI'];
|
||||||
|
|
||||||
|
|
||||||
function strlower(p : pchar) : pchar;assembler;
|
function strlower(p : pchar) : pchar;assembler;
|
||||||
@ -333,11 +333,15 @@ asm
|
|||||||
jnz .LSTRLOWER1
|
jnz .LSTRLOWER1
|
||||||
.LStrLowerNil:
|
.LStrLowerNil:
|
||||||
movl p,%eax
|
movl p,%eax
|
||||||
end;
|
end ['EAX','ESI','EDI'];
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.7 2000-02-09 16:59:29 peter
|
Revision 1.8 2000-03-28 11:14:33 jonas
|
||||||
|
* added missing register that is destroyed by strecopy
|
||||||
|
+ some destroyed register lists for procedures that didn't have one yet
|
||||||
|
|
||||||
|
Revision 1.7 2000/02/09 16:59:29 peter
|
||||||
* truncated log
|
* truncated log
|
||||||
|
|
||||||
Revision 1.6 2000/01/07 16:41:33 daniel
|
Revision 1.6 2000/01/07 16:41:33 daniel
|
||||||
|
@ -64,20 +64,23 @@ asm
|
|||||||
cld
|
cld
|
||||||
movl d,%edi // load destination address
|
movl d,%edi // load destination address
|
||||||
movl s,%esi // Load Source adress
|
movl s,%esi // Load Source adress
|
||||||
movl %edi,%ebx // Set return value
|
|
||||||
lodsb // load length in ECX
|
lodsb // load length in ECX
|
||||||
movzbl %al,%ecx
|
movzbl %al,%ecx
|
||||||
rep
|
rep
|
||||||
movsb
|
movsb
|
||||||
xorb %al,%al // Set #0
|
xorb %al,%al // Set #0
|
||||||
stosb
|
stosb
|
||||||
movl %ebx,%eax // return value to EAX
|
movl d,%eax // return value to EAX
|
||||||
popl %esi
|
popl %esi
|
||||||
end ['EDI','ESI','EBX','EAX','ECX'];
|
end ['EDI','EAX','ECX'];
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.9 2000-02-09 16:59:29 peter
|
Revision 1.10 2000-03-28 11:14:33 jonas
|
||||||
|
* added missing register that is destroyed by strecopy
|
||||||
|
+ some destroyed register lists for procedures that didn't have one yet
|
||||||
|
|
||||||
|
Revision 1.9 2000/02/09 16:59:29 peter
|
||||||
* truncated log
|
* truncated log
|
||||||
|
|
||||||
Revision 1.8 2000/01/11 22:56:57 pierre
|
Revision 1.8 2000/01/11 22:56:57 pierre
|
||||||
|
Loading…
Reference in New Issue
Block a user