mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 18:09:27 +02:00
* compile fix for systhrds
This commit is contained in:
parent
23794b6933
commit
617c1e3812
@ -29,7 +29,6 @@ Procedure Do_SysCall( callnr:longint;var regs : SysCallregs );assembler;
|
||||
copies back the registers as they are after the SysCall.
|
||||
}
|
||||
{$ifdef i386}
|
||||
{$ASMMODE ATT}
|
||||
{$define fpc_syscall_ok}
|
||||
asm
|
||||
{ load the registers... }
|
||||
@ -54,7 +53,6 @@ asm
|
||||
popl %ebx
|
||||
movl %ebx,(%eax)
|
||||
end;
|
||||
{$ASMMODE DEFAULT}
|
||||
{$endif i386}
|
||||
{$ifdef m68k}
|
||||
{$define fpc_syscall_ok}
|
||||
@ -105,6 +103,26 @@ asm
|
||||
stw r7, 16(r8)
|
||||
end;
|
||||
{$endif powerpc}
|
||||
{$ifdef sparc}
|
||||
{$define fpc_syscall_ok}
|
||||
asm
|
||||
{ we are using the callers register window }
|
||||
or %i0,%g0,%g1
|
||||
ld [%i1],%o0
|
||||
ld [%i1+4],%o1
|
||||
ld [%i1+8],%o2
|
||||
ld [%i1+12],%o3
|
||||
ld [%i1+16],%o4
|
||||
{ Go ! }
|
||||
ta 0x10
|
||||
{ Put back the registers... }
|
||||
st %o0,[%i1]
|
||||
st %o1,[%i1+4]
|
||||
st %o2,[%i1+8]
|
||||
st %o3,[%i1+12]
|
||||
st %o4,[%i1+16]
|
||||
end;
|
||||
{$endif powerpc}
|
||||
{$ifndef fpc_syscall_ok}
|
||||
{$error Cannot decide which processor you have!}
|
||||
asm
|
||||
@ -166,7 +184,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 2003-04-22 17:07:55 florian
|
||||
Revision 1.3 2003-06-04 15:18:14 peter
|
||||
* compile fix for systhrds
|
||||
|
||||
Revision 1.2 2003/04/22 17:07:55 florian
|
||||
* there where two SYSCALL1 procedures for the powerpc, fixed
|
||||
|
||||
Revision 1.1 2002/11/11 21:40:26 marco
|
||||
|
Loading…
Reference in New Issue
Block a user