mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 12:49:33 +02:00
* register calling updates
This commit is contained in:
parent
0646b94499
commit
23ae4449ec
@ -324,9 +324,9 @@ asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
{$ifdef REGCALL}
|
||||
movl %eax,%edi
|
||||
movl %edx,%esi
|
||||
movl %ecx,%edx
|
||||
movl set1,%esi
|
||||
movl __RESULT,%edi
|
||||
movl set2,%edx
|
||||
{$else}
|
||||
movl set1,%esi
|
||||
movl set2,%edx
|
||||
@ -365,9 +365,9 @@ asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
{$ifdef REGCALL}
|
||||
movl %eax,%edi
|
||||
movl %edx,%esi
|
||||
movl %ecx,%edx
|
||||
movl set1,%esi
|
||||
movl __RESULT,%edi
|
||||
movl set2,%edx
|
||||
{$else}
|
||||
movl set1,%esi
|
||||
movl set2,%edx
|
||||
@ -407,9 +407,9 @@ asm
|
||||
movl %esi,saveesi
|
||||
movl %ebx,saveebx
|
||||
{$ifdef REGCALL}
|
||||
movl %eax,%edi
|
||||
movl %edx,%esi
|
||||
movl %ecx,%edx
|
||||
movl set1,%esi
|
||||
movl __RESULT,%edi
|
||||
movl set2,%edx
|
||||
{$else}
|
||||
movl set1,%esi
|
||||
movl set2,%ebx
|
||||
@ -451,9 +451,9 @@ asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
{$ifdef REGCALL}
|
||||
movl %eax,%edi
|
||||
movl %edx,%esi
|
||||
movl %ecx,%edx
|
||||
movl set1,%esi
|
||||
movl __RESULT,%edi
|
||||
movl set2,%edx
|
||||
{$else}
|
||||
movl set1,%esi
|
||||
movl set2,%edx
|
||||
@ -487,13 +487,8 @@ var
|
||||
asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
{$ifdef REGCALL}
|
||||
movl %eax,%esi
|
||||
movl %edx,%edi
|
||||
{$else}
|
||||
movl set1,%esi
|
||||
movl set2,%edi
|
||||
{$endif}
|
||||
movl $8,%ecx
|
||||
.LMCOMPSETS1:
|
||||
movl (%esi),%eax
|
||||
@ -526,13 +521,8 @@ var
|
||||
asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
{$ifdef REGCALL}
|
||||
movl %eax,%esi
|
||||
movl %edx,%edi
|
||||
{$else}
|
||||
movl set1,%esi
|
||||
movl set2,%edi
|
||||
{$endif}
|
||||
movl $8,%ecx
|
||||
.LMCONTAINSSETS1:
|
||||
movl (%esi),%eax
|
||||
@ -720,7 +710,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.12 2003-11-11 21:08:17 peter
|
||||
Revision 1.13 2003-11-23 16:50:49 peter
|
||||
* register calling updates
|
||||
|
||||
Revision 1.12 2003/11/11 21:08:17 peter
|
||||
* REGCALL define added
|
||||
|
||||
Revision 1.11 2003/09/08 18:21:37 peter
|
||||
|
@ -25,11 +25,11 @@ asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
{$ifdef REGCALL}
|
||||
movl %eax,saveeax
|
||||
movl %edx,%edi
|
||||
{$else}
|
||||
movl %eax,saveeax
|
||||
movl %edx,%edi
|
||||
{$else}
|
||||
movl source,%edi
|
||||
{$endif}
|
||||
{$endif}
|
||||
testl %edi,%edi
|
||||
jz .LStrCopyDone
|
||||
leal 3(%edi),%ecx
|
||||
@ -37,10 +37,10 @@ asm
|
||||
movl %edi,%esi
|
||||
subl %edi,%ecx
|
||||
{$ifdef REGCALL}
|
||||
movl %eax,%edi
|
||||
{$else}
|
||||
movl %eax,%edi
|
||||
{$else}
|
||||
movl dest,%edi
|
||||
{$endif}
|
||||
{$endif}
|
||||
jz .LStrCopyAligned
|
||||
.LStrCopyAlignLoop:
|
||||
movb (%esi),%al
|
||||
@ -85,10 +85,10 @@ asm
|
||||
movb %al,(%edi)
|
||||
.LStrCopyDone:
|
||||
{$ifdef REGCALL}
|
||||
movl saveeax,%eax
|
||||
{$else}
|
||||
movl saveeax,%eax
|
||||
{$else}
|
||||
movl dest,%eax
|
||||
{$endif}
|
||||
{$endif}
|
||||
movl saveedi,%edi
|
||||
movl saveesi,%esi
|
||||
end;
|
||||
@ -102,13 +102,14 @@ asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
cld
|
||||
movl dest,%esi
|
||||
movl source,%edi
|
||||
movl $0xffffffff,%ecx
|
||||
xorl %eax,%eax
|
||||
repne
|
||||
scasb
|
||||
not %ecx
|
||||
movl dest,%edi
|
||||
movl %esi,%edi
|
||||
movl source,%esi
|
||||
movl %ecx,%eax
|
||||
shrl $2,%ecx
|
||||
@ -118,11 +119,10 @@ asm
|
||||
andl $3,%ecx
|
||||
rep
|
||||
movsb
|
||||
movl dest,%eax
|
||||
decl %edi
|
||||
movl %edi,%eax
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
movl saveedi,%edi
|
||||
movl saveesi,%esi
|
||||
end;
|
||||
|
||||
|
||||
@ -169,8 +169,8 @@ var
|
||||
asm
|
||||
movl %edi,saveedi
|
||||
cld
|
||||
xorl %eax,%eax
|
||||
movl p,%edi
|
||||
xorl %eax,%eax
|
||||
orl %edi,%edi
|
||||
jz .LStrEndNil
|
||||
movl $0xffffffff,%ecx
|
||||
@ -340,7 +340,9 @@ var
|
||||
asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
{$ifndef REGCALL}
|
||||
movl p,%eax
|
||||
{$endif}
|
||||
xorl %ecx,%ecx
|
||||
testl %eax,%eax
|
||||
jz .LSTRSCAN
|
||||
@ -348,7 +350,7 @@ asm
|
||||
movb c,%cl
|
||||
leal 3(%eax),%esi
|
||||
andl $-4,%esi
|
||||
movl p,%edi
|
||||
movl %eax,%edi
|
||||
subl %eax,%esi
|
||||
jz .LSTRSCANALIGNED
|
||||
xorl %eax,%eax
|
||||
@ -461,11 +463,12 @@ end;
|
||||
{$define FPC_UNIT_HAS_STRRSCAN}
|
||||
function strrscan(p : pchar;c : char) : pchar;assembler;
|
||||
var
|
||||
saveedi : longint;
|
||||
saveeax,saveedi : longint;
|
||||
asm
|
||||
movl %edi,saveedi
|
||||
xorl %eax,%eax
|
||||
movl %eax,saveeax
|
||||
movl p,%edi
|
||||
xorl %eax,%eax
|
||||
orl %edi,%edi
|
||||
jz .LSTRRSCAN
|
||||
movl $0xffffffff,%ecx
|
||||
@ -475,7 +478,7 @@ asm
|
||||
scasb
|
||||
not %ecx
|
||||
movb c,%al
|
||||
movl p,%edi
|
||||
movl saveeax,%edi
|
||||
addl %ecx,%edi
|
||||
decl %edi
|
||||
std
|
||||
@ -494,10 +497,14 @@ end;
|
||||
{$define FPC_UNIT_HAS_STRUPPER}
|
||||
function strupper(p : pchar) : pchar;assembler;
|
||||
var
|
||||
saveesi,saveedi : longint;
|
||||
saveeax,saveesi,saveedi : longint;
|
||||
asm
|
||||
movl %edi,saveedi
|
||||
movl %esi,saveesi
|
||||
{$ifndef REGCALL}
|
||||
movl p,%eax
|
||||
{$endif}
|
||||
movl %eax,saveeax
|
||||
movl p,%esi
|
||||
orl %esi,%esi
|
||||
jz .LStrUpperNil
|
||||
@ -514,7 +521,7 @@ asm
|
||||
orb %al,%al
|
||||
jnz .LSTRUPPER1
|
||||
.LStrUpperNil:
|
||||
movl p,%eax
|
||||
movl saveeax,%eax
|
||||
movl saveedi,%edi
|
||||
movl saveesi,%esi
|
||||
end;
|
||||
@ -523,10 +530,14 @@ end;
|
||||
{$define FPC_UNIT_HAS_STRLOWER}
|
||||
function strlower(p : pchar) : pchar;assembler;
|
||||
var
|
||||
saveesi,saveedi : longint;
|
||||
saveeax,saveesi,saveedi : longint;
|
||||
asm
|
||||
movl %esi,saveesi
|
||||
movl %edi,saveedi
|
||||
{$ifndef REGCALL}
|
||||
movl p,%eax
|
||||
{$endif}
|
||||
movl %eax,saveeax
|
||||
movl p,%esi
|
||||
orl %esi,%esi
|
||||
jz .LStrLowerNil
|
||||
@ -543,14 +554,17 @@ asm
|
||||
orb %al,%al
|
||||
jnz .LSTRLOWER1
|
||||
.LStrLowerNil:
|
||||
movl p,%eax
|
||||
movl saveeax,%eax
|
||||
movl saveedi,%edi
|
||||
movl saveesi,%esi
|
||||
end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.10 2003-11-11 21:08:17 peter
|
||||
Revision 1.11 2003-11-23 16:50:49 peter
|
||||
* register calling updates
|
||||
|
||||
Revision 1.10 2003/11/11 21:08:17 peter
|
||||
* REGCALL define added
|
||||
|
||||
Revision 1.9 2003/09/08 18:21:37 peter
|
||||
|
@ -22,7 +22,7 @@ asm
|
||||
{$ifdef regcall}
|
||||
movl p,%esi
|
||||
movl __RESULT,%edi
|
||||
movl __RESULT,saveres
|
||||
movl %edi,saveres
|
||||
{$else}
|
||||
movl p,%esi
|
||||
{$endif}
|
||||
@ -102,15 +102,18 @@ asm
|
||||
{$endif}
|
||||
addb $255,%cl
|
||||
movb %cl,(%edi)
|
||||
movl %esi,saveesi
|
||||
movl %edi,saveedi
|
||||
movl %ebx,saveebx
|
||||
movl saveesi,%esi
|
||||
movl saveedi,%edi
|
||||
movl saveebx,%ebx
|
||||
end;
|
||||
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.4 2003-11-19 16:58:44 peter
|
||||
Revision 1.5 2003-11-23 16:50:49 peter
|
||||
* register calling updates
|
||||
|
||||
Revision 1.4 2003/11/19 16:58:44 peter
|
||||
* make strpas assembler function
|
||||
|
||||
Revision 1.3 2003/11/11 21:08:17 peter
|
||||
|
Loading…
Reference in New Issue
Block a user