mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-18 00:59:27 +02:00
* Patch from Fuxin Zhang
git-svn-id: trunk@21527 -
This commit is contained in:
parent
8259e69539
commit
a7c9e4768e
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user