* 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
temp: longint;
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
syscall
nop
@ -65,20 +52,6 @@ asm
.LFailed:
li $2,-1
.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;
@ -94,20 +67,7 @@ function FpSysCall(sysnr:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYS
var
temp: longint;
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
move $2,$4
move $v0,$a0
syscall
nop
beq $7,$0,.LDone
@ -133,20 +93,6 @@ asm
.LFailed:
li $2,-1
.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;
@ -158,22 +104,8 @@ function FpSysCall(sysnr,param1:TSysParam):TSysResult; assembler;[public,alias:'
var
temp: longint;
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
move $2,$4
move $4,$5
move $v0,$a0
move $a0,$a1
syscall
nop
beq $7,$0,.LDone
@ -199,20 +131,6 @@ asm
.LFailed:
li $2,-1
.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;
@ -224,23 +142,9 @@ function FpSysCall(sysnr,param1,param2:TSysParam):TSysResult; assembler;[public,
var
temp: longint;
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
move $2,$4
move $4,$5
move $5,$6
move $v0,$a0
move $a0,$a1
move $a1,$a2
syscall
nop
beq $7,$0,.LDone
@ -266,20 +170,6 @@ asm
.LFailed:
li $2,-1
.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;
@ -291,24 +181,10 @@ function FpSysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; assembler;[
var
temp: longint;
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
move $2,$4
move $4,$5
move $5,$6
move $6,$7
move $v0,$a0
move $a0,$a1
move $a1,$a2
move $a2,$a3
syscall
nop
beq $7,$0,.LDone
@ -334,20 +210,6 @@ asm
.LFailed:
li $2,-1
.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;
@ -359,25 +221,11 @@ function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; asse
var
temp: longint;
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
move $2,$4
move $4,$5
move $5,$6
move $6,$7
move $7,$8
move $v0,$a0
move $a0,$a1
move $a1,$a2
move $a2,$a3
lw $a3,16($sp)
syscall
nop
beq $7,$0,.LDone
@ -403,20 +251,6 @@ asm
.LFailed:
li $2,-1
.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;

View File

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