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