* started to fix simple mips syscalls

* corrected SA_* values

git-svn-id: trunk@20326 -
This commit is contained in:
florian 2012-02-12 18:20:43 +00:00
parent 2959d6064f
commit 16e79969aa
2 changed files with 26 additions and 186 deletions

View File

@ -26,19 +26,6 @@ function Fpfork : pid_t; [public, alias : 'FPC_SYSC_FORK'];assembler;
var var
temp: longint; temp: longint;
asm asm
sw $4,0($23)
sw $5,-4($23)
sw $6,-8($23)
sw $7,-12($23)
sw $8,-16($23)
sw $9,-20($23)
sw $10,-24($23)
sw $11,-28($23)
sw $12,-32($23)
sw $13,-36($23)
sw $14,-40($23)
addiu $23,$23,-44
li $2,4002 li $2,4002
syscall syscall
nop nop
@ -65,20 +52,6 @@ asm
.LFailed: .LFailed:
li $2,-1 li $2,-1
.LDone: .LDone:
addiu $23,$23,44
lw $4,0($23)
lw $5,-4($23)
lw $6,-8($23)
lw $7,-12($23)
lw $8,-16($23)
lw $9,-20($23)
lw $10,-24($23)
lw $11,-28($23)
lw $12,-32($23)
lw $13,-36($23)
lw $14,-40($23)
end; end;
@ -94,20 +67,7 @@ function FpSysCall(sysnr:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYS
var var
temp: longint; temp: longint;
asm asm
sw $4,0($23) move $v0,$a0
sw $5,-4($23)
sw $6,-8($23)
sw $7,-12($23)
sw $8,-16($23)
sw $9,-20($23)
sw $10,-24($23)
sw $11,-28($23)
sw $12,-32($23)
sw $13,-36($23)
sw $14,-40($23)
addiu $23,$23,-44
move $2,$4
syscall syscall
nop nop
beq $7,$0,.LDone beq $7,$0,.LDone
@ -133,20 +93,6 @@ asm
.LFailed: .LFailed:
li $2,-1 li $2,-1
.LDone: .LDone:
addiu $23,$23,44
lw $4,0($23)
lw $5,-4($23)
lw $6,-8($23)
lw $7,-12($23)
lw $8,-16($23)
lw $9,-20($23)
lw $10,-24($23)
lw $11,-28($23)
lw $12,-32($23)
lw $13,-36($23)
lw $14,-40($23)
end; end;
@ -158,22 +104,8 @@ function FpSysCall(sysnr,param1:TSysParam):TSysResult; assembler;[public,alias:'
var var
temp: longint; temp: longint;
asm asm
sw $4,0($23) move $v0,$a0
sw $5,-4($23) move $a0,$a1
sw $6,-8($23)
sw $7,-12($23)
sw $8,-16($23)
sw $9,-20($23)
sw $10,-24($23)
sw $11,-28($23)
sw $12,-32($23)
sw $13,-36($23)
sw $14,-40($23)
addiu $23,$23,-44
move $2,$4
move $4,$5
syscall syscall
nop nop
beq $7,$0,.LDone beq $7,$0,.LDone
@ -199,20 +131,6 @@ asm
.LFailed: .LFailed:
li $2,-1 li $2,-1
.LDone: .LDone:
addiu $23,$23,44
lw $4,0($23)
lw $5,-4($23)
lw $6,-8($23)
lw $7,-12($23)
lw $8,-16($23)
lw $9,-20($23)
lw $10,-24($23)
lw $11,-28($23)
lw $12,-32($23)
lw $13,-36($23)
lw $14,-40($23)
end; end;
@ -224,23 +142,9 @@ function FpSysCall(sysnr,param1,param2:TSysParam):TSysResult; assembler;[public,
var var
temp: longint; temp: longint;
asm asm
sw $4,0($23) move $v0,$a0
sw $5,-4($23) move $a0,$a1
sw $6,-8($23) move $a1,$a2
sw $7,-12($23)
sw $8,-16($23)
sw $9,-20($23)
sw $10,-24($23)
sw $11,-28($23)
sw $12,-32($23)
sw $13,-36($23)
sw $14,-40($23)
addiu $23,$23,-44
move $2,$4
move $4,$5
move $5,$6
syscall syscall
nop nop
beq $7,$0,.LDone beq $7,$0,.LDone
@ -266,20 +170,6 @@ asm
.LFailed: .LFailed:
li $2,-1 li $2,-1
.LDone: .LDone:
addiu $23,$23,44
lw $4,0($23)
lw $5,-4($23)
lw $6,-8($23)
lw $7,-12($23)
lw $8,-16($23)
lw $9,-20($23)
lw $10,-24($23)
lw $11,-28($23)
lw $12,-32($23)
lw $13,-36($23)
lw $14,-40($23)
end; end;
@ -291,24 +181,10 @@ function FpSysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; assembler;[
var var
temp: longint; temp: longint;
asm asm
sw $4,0($23) move $v0,$a0
sw $5,-4($23) move $a0,$a1
sw $6,-8($23) move $a1,$a2
sw $7,-12($23) move $a2,$a3
sw $8,-16($23)
sw $9,-20($23)
sw $10,-24($23)
sw $11,-28($23)
sw $12,-32($23)
sw $13,-36($23)
sw $14,-40($23)
addiu $23,$23,-44
move $2,$4
move $4,$5
move $5,$6
move $6,$7
syscall syscall
nop nop
beq $7,$0,.LDone beq $7,$0,.LDone
@ -334,20 +210,6 @@ asm
.LFailed: .LFailed:
li $2,-1 li $2,-1
.LDone: .LDone:
addiu $23,$23,44
lw $4,0($23)
lw $5,-4($23)
lw $6,-8($23)
lw $7,-12($23)
lw $8,-16($23)
lw $9,-20($23)
lw $10,-24($23)
lw $11,-28($23)
lw $12,-32($23)
lw $13,-36($23)
lw $14,-40($23)
end; end;
@ -359,25 +221,11 @@ function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; asse
var var
temp: longint; temp: longint;
asm asm
sw $4,0($23) move $v0,$a0
sw $5,-4($23) move $a0,$a1
sw $6,-8($23) move $a1,$a2
sw $7,-12($23) move $a2,$a3
sw $8,-16($23) lw $a3,16($sp)
sw $9,-20($23)
sw $10,-24($23)
sw $11,-28($23)
sw $12,-32($23)
sw $13,-36($23)
sw $14,-40($23)
addiu $23,$23,-44
move $2,$4
move $4,$5
move $5,$6
move $6,$7
move $7,$8
syscall syscall
nop nop
beq $7,$0,.LDone beq $7,$0,.LDone
@ -403,20 +251,6 @@ asm
.LFailed: .LFailed:
li $2,-1 li $2,-1
.LDone: .LDone:
addiu $23,$23,44
lw $4,0($23)
lw $5,-4($23)
lw $6,-8($23)
lw $7,-12($23)
lw $8,-16($23)
lw $9,-20($23)
lw $10,-24($23)
lw $11,-28($23)
lw $12,-32($23)
lw $13,-36($23)
lw $14,-40($23)
end; end;

View File

@ -20,17 +20,23 @@
Const Const
{ For sending a signal } { For sending a signal }
{$ifdef SPARC} {$ifdef CPUSPARC}
SA_SIGINFO = $200; SA_SIGINFO = $200;
SA_NOMASK = $20; SA_NOMASK = $20;
SIG_BLOCK = 1; SIG_BLOCK = 1;
SIG_UNBLOCK = 2; SIG_UNBLOCK = 2;
SIG_SETMASK = 4; SIG_SETMASK = 4;
{$else SPARC} {$else CPUSPARC}
{$ifdef CPUMIPS}
SA_NOCLDSTOP = 1;
SA_NOCLDWAIT = $10000;
SA_SIGINFO = 8;
{$else CPUMIPS}
SA_NOCLDSTOP = 1; SA_NOCLDSTOP = 1;
SA_NOCLDWAIT = 2; SA_NOCLDWAIT = 2;
SA_SIGINFO = 4; SA_SIGINFO = 4;
{$endif CPUMIPS}
SA_RESTORER = $04000000; SA_RESTORER = $04000000;
SA_ONSTACK = $08000000; SA_ONSTACK = $08000000;
SA_RESTART = $10000000; SA_RESTART = $10000000;
@ -44,7 +50,7 @@ Const
SIG_BLOCK = 0; SIG_BLOCK = 0;
SIG_UNBLOCK = 1; SIG_UNBLOCK = 1;
SIG_SETMASK = 2; SIG_SETMASK = 2;
{$endif SPARC} {$endif CPUSPARC}
SIG_DFL = 0 ; SIG_DFL = 0 ;
SIG_IGN = 1 ; SIG_IGN = 1 ;
@ -186,14 +192,14 @@ type
signalhandler_t = procedure(signal: longint); cdecl; signalhandler_t = procedure(signal: longint); cdecl;
sigactionhandler_t = procedure(signal: longint; info: psiginfo; context: psigcontext); cdecl; sigactionhandler_t = procedure(signal: longint; info: psiginfo; context: psigcontext); cdecl;
sigrestorerhandler_t = procedure; cdecl; sigrestorerhandler_t = procedure; cdecl;
signalhandler = signalhandler_t; signalhandler = signalhandler_t;
sigactionhandler = sigactionhandler_t; sigactionhandler = sigactionhandler_t;
sigrestorerhandler = sigrestorerhandler_t; sigrestorerhandler = sigrestorerhandler_t;
tsignalhandler = signalhandler_t; tsignalhandler = signalhandler_t;
tsigactionhandler = sigactionhandler_t; tsigactionhandler = sigactionhandler_t;
tsigrestorerhandler = sigrestorerhandler_t; tsigrestorerhandler = sigrestorerhandler_t;
psigactionrec = ^sigactionrec; psigactionrec = ^sigactionrec;
{$ifdef FPC_USE_LIBC} // libc order is different ? {$ifdef FPC_USE_LIBC} // libc order is different ?