* Patch from Fuxin Zhang

git-svn-id: trunk@21527 -
This commit is contained in:
pierre 2012-06-07 23:02:29 +00:00
parent 8259e69539
commit a7c9e4768e

View File

@ -225,7 +225,8 @@ asm
move $a0,$a1
move $a1,$a2
move $a2,$a3
lw $a3,16($sp)
//lw $a3,16($sp)
move $a3,$8 //register passing is wrong, hack for now
syscall
nop
beq $7,$0,.LDone
@ -262,33 +263,16 @@ function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResul
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 $v0,$a0
move $a0,$a1
move $a1,$a2
move $a2,$a3
move $a3, $8
move $2,$4
move $4,$5
move $5,$6
move $6,$7
move $7,$8
move $8,$9
subu $29,32
sw $9, 16($29)
sw $9, 16($sp)
syscall
nop
addiu $29,32
beq $7,$0,.LDone
nop
lui $8,%hi(fpc_threadvar_relocate_proc)
@ -313,19 +297,6 @@ asm
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;
@ -337,36 +308,19 @@ function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TS
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
{ All params are already stored on stack at that point }
lw $v0,sysnr
lw $a0,param1
lw $a1,param2
lw $a2,param3
lw $a3,param4
move $2,$4
move $4,$5
move $5,$6
move $6,$7
move $7,$8
move $8,$9
lw $9,0($fp)
subu $29,32
sw $8, 16($29)
sw $9, 20($29)
lw $at,param5
sw $at,16($sp)
lw $at,param6
sw $at,20($sp)
syscall
nop
addiu $29,32
beq $7,$0,.LDone
nop
lui $8,%hi(fpc_threadvar_relocate_proc)
@ -390,18 +344,4 @@ 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;