From b0834a01a0bcec26bc7648a905b96d38c5af4da7 Mon Sep 17 00:00:00 2001 From: yury Date: Mon, 30 Jul 2007 17:26:45 +0000 Subject: [PATCH] * Don't use changed registers list. Save used registers directly in asm code. git-svn-id: trunk@8201 - --- rtl/linux/arm/syscall.inc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/rtl/linux/arm/syscall.inc b/rtl/linux/arm/syscall.inc index 644071a8d3..dd45295f36 100644 --- a/rtl/linux/arm/syscall.inc +++ b/rtl/linux/arm/syscall.inc @@ -72,9 +72,11 @@ function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; asse This function loads some parameters from stack and calls FPC_SYSCALL0. } asm + stmfd sp!,{r4} ldr r4,param4 bl FPC_SYSCALL -end ['r4']; + ldmfd sp!,{r4} +end; function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYSCALL5']; @@ -82,10 +84,12 @@ function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResul This function loads some parameters from stack and calls FPC_SYSCALL0. } asm + stmfd sp!,{r4,r5} ldr r4,param4 ldr r5,param5 bl FPC_SYSCALL -end ['r4','r5']; + ldmfd sp!,{r4,r5} +end; function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TSysResult; assembler;[public,alias:'FPC_SYSCALL6']; @@ -93,8 +97,10 @@ function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TS This function loads some parameters from stack and calls FPC_SYSCALL0. } asm + stmfd sp!,{r4,r5,r6} ldr r4,param4 ldr r5,param5 ldr r6,param6 bl FPC_SYSCALL -end ['r4','r5','r6']; + ldmfd sp!,{r4,r5,r6} +end;