mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-05 20:27:13 +01:00
* regcall fix for threadvar
This commit is contained in:
parent
4fc210952e
commit
30780f5859
@ -30,6 +30,17 @@ asm
|
|||||||
negl %eax
|
negl %eax
|
||||||
{$ifdef VER1_0}
|
{$ifdef VER1_0}
|
||||||
movl %eax,Errno
|
movl %eax,Errno
|
||||||
|
{$else}
|
||||||
|
{$ifdef REGCALL}
|
||||||
|
movl fpc_threadvar_relocate_proc,%ecx
|
||||||
|
testl %ecx,%ecx
|
||||||
|
jne .LThread
|
||||||
|
movl %eax,Errno+4
|
||||||
|
.LThread:
|
||||||
|
movl %eax,%ebx
|
||||||
|
call *%ecx
|
||||||
|
movl %ebx,(%eax)
|
||||||
|
.LNoThread:
|
||||||
{$else}
|
{$else}
|
||||||
movl %eax,%edx
|
movl %eax,%edx
|
||||||
movl fpc_threadvar_relocate_proc,%eax
|
movl fpc_threadvar_relocate_proc,%eax
|
||||||
@ -44,7 +55,8 @@ asm
|
|||||||
popl %edx
|
popl %edx
|
||||||
movl %edx,(%eax)
|
movl %edx,(%eax)
|
||||||
.LNoThread:
|
.LNoThread:
|
||||||
{$endif}
|
{$endif REGCALL}
|
||||||
|
{$endif ver1_0}
|
||||||
movl $-1,%eax
|
movl $-1,%eax
|
||||||
.LSyscOK:
|
.LSyscOK:
|
||||||
end;
|
end;
|
||||||
@ -61,6 +73,17 @@ asm
|
|||||||
negl %eax
|
negl %eax
|
||||||
{$ifdef VER1_0}
|
{$ifdef VER1_0}
|
||||||
movl %eax,Errno
|
movl %eax,Errno
|
||||||
|
{$else}
|
||||||
|
{$ifdef REGCALL}
|
||||||
|
movl fpc_threadvar_relocate_proc,%ecx
|
||||||
|
testl %ecx,%ecx
|
||||||
|
jne .LThread
|
||||||
|
movl %eax,Errno+4
|
||||||
|
.LThread:
|
||||||
|
movl %eax,%ebx
|
||||||
|
call *%ecx
|
||||||
|
movl %ebx,(%eax)
|
||||||
|
.LNoThread:
|
||||||
{$else}
|
{$else}
|
||||||
movl %eax,%edx
|
movl %eax,%edx
|
||||||
movl fpc_threadvar_relocate_proc,%eax
|
movl fpc_threadvar_relocate_proc,%eax
|
||||||
@ -75,7 +98,8 @@ asm
|
|||||||
popl %edx
|
popl %edx
|
||||||
movl %edx,(%eax)
|
movl %edx,(%eax)
|
||||||
.LNoThread:
|
.LNoThread:
|
||||||
{$endif}
|
{$endif REGCALL}
|
||||||
|
{$endif ver1_0}
|
||||||
movl $-1,%eax
|
movl $-1,%eax
|
||||||
.LSyscOK:
|
.LSyscOK:
|
||||||
end;
|
end;
|
||||||
@ -93,6 +117,17 @@ asm
|
|||||||
negl %eax
|
negl %eax
|
||||||
{$ifdef VER1_0}
|
{$ifdef VER1_0}
|
||||||
movl %eax,Errno
|
movl %eax,Errno
|
||||||
|
{$else}
|
||||||
|
{$ifdef REGCALL}
|
||||||
|
movl fpc_threadvar_relocate_proc,%ecx
|
||||||
|
testl %ecx,%ecx
|
||||||
|
jne .LThread
|
||||||
|
movl %eax,Errno+4
|
||||||
|
.LThread:
|
||||||
|
movl %eax,%ebx
|
||||||
|
call *%ecx
|
||||||
|
movl %ebx,(%eax)
|
||||||
|
.LNoThread:
|
||||||
{$else}
|
{$else}
|
||||||
movl %eax,%edx
|
movl %eax,%edx
|
||||||
movl fpc_threadvar_relocate_proc,%eax
|
movl fpc_threadvar_relocate_proc,%eax
|
||||||
@ -107,7 +142,8 @@ asm
|
|||||||
popl %edx
|
popl %edx
|
||||||
movl %edx,(%eax)
|
movl %edx,(%eax)
|
||||||
.LNoThread:
|
.LNoThread:
|
||||||
{$endif}
|
{$endif REGCALL}
|
||||||
|
{$endif ver1_0}
|
||||||
movl $-1,%eax
|
movl $-1,%eax
|
||||||
.LSyscOK:
|
.LSyscOK:
|
||||||
end;
|
end;
|
||||||
@ -126,6 +162,17 @@ asm
|
|||||||
negl %eax
|
negl %eax
|
||||||
{$ifdef VER1_0}
|
{$ifdef VER1_0}
|
||||||
movl %eax,Errno
|
movl %eax,Errno
|
||||||
|
{$else}
|
||||||
|
{$ifdef REGCALL}
|
||||||
|
movl fpc_threadvar_relocate_proc,%ecx
|
||||||
|
testl %ecx,%ecx
|
||||||
|
jne .LThread
|
||||||
|
movl %eax,Errno+4
|
||||||
|
.LThread:
|
||||||
|
movl %eax,%ebx
|
||||||
|
call *%ecx
|
||||||
|
movl %ebx,(%eax)
|
||||||
|
.LNoThread:
|
||||||
{$else}
|
{$else}
|
||||||
movl %eax,%edx
|
movl %eax,%edx
|
||||||
movl fpc_threadvar_relocate_proc,%eax
|
movl fpc_threadvar_relocate_proc,%eax
|
||||||
@ -140,7 +187,8 @@ asm
|
|||||||
popl %edx
|
popl %edx
|
||||||
movl %edx,(%eax)
|
movl %edx,(%eax)
|
||||||
.LNoThread:
|
.LNoThread:
|
||||||
{$endif}
|
{$endif REGCALL}
|
||||||
|
{$endif ver1_0}
|
||||||
movl $-1,%eax
|
movl $-1,%eax
|
||||||
.LSyscOK:
|
.LSyscOK:
|
||||||
end;
|
end;
|
||||||
@ -160,6 +208,17 @@ asm
|
|||||||
negl %eax
|
negl %eax
|
||||||
{$ifdef VER1_0}
|
{$ifdef VER1_0}
|
||||||
movl %eax,Errno
|
movl %eax,Errno
|
||||||
|
{$else}
|
||||||
|
{$ifdef REGCALL}
|
||||||
|
movl fpc_threadvar_relocate_proc,%ecx
|
||||||
|
testl %ecx,%ecx
|
||||||
|
jne .LThread
|
||||||
|
movl %eax,Errno+4
|
||||||
|
.LThread:
|
||||||
|
movl %eax,%ebx
|
||||||
|
call *%ecx
|
||||||
|
movl %ebx,(%eax)
|
||||||
|
.LNoThread:
|
||||||
{$else}
|
{$else}
|
||||||
movl %eax,%edx
|
movl %eax,%edx
|
||||||
movl fpc_threadvar_relocate_proc,%eax
|
movl fpc_threadvar_relocate_proc,%eax
|
||||||
@ -174,7 +233,8 @@ asm
|
|||||||
popl %edx
|
popl %edx
|
||||||
movl %edx,(%eax)
|
movl %edx,(%eax)
|
||||||
.LNoThread:
|
.LNoThread:
|
||||||
{$endif}
|
{$endif REGCALL}
|
||||||
|
{$endif ver1_0}
|
||||||
movl $-1,%eax
|
movl $-1,%eax
|
||||||
.LSyscOK:
|
.LSyscOK:
|
||||||
end;
|
end;
|
||||||
@ -195,6 +255,17 @@ asm
|
|||||||
negl %eax
|
negl %eax
|
||||||
{$ifdef VER1_0}
|
{$ifdef VER1_0}
|
||||||
movl %eax,Errno
|
movl %eax,Errno
|
||||||
|
{$else}
|
||||||
|
{$ifdef REGCALL}
|
||||||
|
movl fpc_threadvar_relocate_proc,%ecx
|
||||||
|
testl %ecx,%ecx
|
||||||
|
jne .LThread
|
||||||
|
movl %eax,Errno+4
|
||||||
|
.LThread:
|
||||||
|
movl %eax,%ebx
|
||||||
|
call *%ecx
|
||||||
|
movl %ebx,(%eax)
|
||||||
|
.LNoThread:
|
||||||
{$else}
|
{$else}
|
||||||
movl %eax,%edx
|
movl %eax,%edx
|
||||||
movl fpc_threadvar_relocate_proc,%eax
|
movl fpc_threadvar_relocate_proc,%eax
|
||||||
@ -209,7 +280,8 @@ asm
|
|||||||
popl %edx
|
popl %edx
|
||||||
movl %edx,(%eax)
|
movl %edx,(%eax)
|
||||||
.LNoThread:
|
.LNoThread:
|
||||||
{$endif}
|
{$endif REGCALL}
|
||||||
|
{$endif ver1_0}
|
||||||
movl $-1,%eax
|
movl $-1,%eax
|
||||||
.LSyscOK:
|
.LSyscOK:
|
||||||
end;
|
end;
|
||||||
@ -232,6 +304,17 @@ asm
|
|||||||
negl %eax
|
negl %eax
|
||||||
{$ifdef VER1_0}
|
{$ifdef VER1_0}
|
||||||
movl %eax,Errno
|
movl %eax,Errno
|
||||||
|
{$else}
|
||||||
|
{$ifdef REGCALL}
|
||||||
|
movl fpc_threadvar_relocate_proc,%ecx
|
||||||
|
testl %ecx,%ecx
|
||||||
|
jne .LThread
|
||||||
|
movl %eax,Errno+4
|
||||||
|
.LThread:
|
||||||
|
movl %eax,%ebx
|
||||||
|
call *%ecx
|
||||||
|
movl %ebx,(%eax)
|
||||||
|
.LNoThread:
|
||||||
{$else}
|
{$else}
|
||||||
movl %eax,%edx
|
movl %eax,%edx
|
||||||
movl fpc_threadvar_relocate_proc,%eax
|
movl fpc_threadvar_relocate_proc,%eax
|
||||||
@ -246,7 +329,8 @@ asm
|
|||||||
popl %edx
|
popl %edx
|
||||||
movl %edx,(%eax)
|
movl %edx,(%eax)
|
||||||
.LNoThread:
|
.LNoThread:
|
||||||
{$endif}
|
{$endif REGCALL}
|
||||||
|
{$endif ver1_0}
|
||||||
movl $-1,%eax
|
movl $-1,%eax
|
||||||
.LSyscOK:
|
.LSyscOK:
|
||||||
end;
|
end;
|
||||||
@ -260,7 +344,10 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.11 2004-02-06 23:06:16 florian
|
Revision 1.12 2004-03-03 22:03:10 peter
|
||||||
|
* regcall fix for threadvar
|
||||||
|
|
||||||
|
Revision 1.11 2004/02/06 23:06:16 florian
|
||||||
- killed tsyscallregs
|
- killed tsyscallregs
|
||||||
|
|
||||||
Revision 1.10 2004/01/06 21:32:53 peter
|
Revision 1.10 2004/01/06 21:32:53 peter
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user