mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 17:19:19 +02:00
+ eabi syscall support
git-svn-id: trunk@9153 -
This commit is contained in:
parent
447e963e88
commit
4328d626cf
@ -22,6 +22,30 @@
|
||||
--- Main:The System Call Self ---
|
||||
*****************************************************************************}
|
||||
|
||||
{$ifdef FPC_ABI_EABI}
|
||||
function FpSysCall(sysnr:TSysParam):TSysResult; assembler; nostackframe; [public,alias:'FPC_SYSCALL0'];
|
||||
{
|
||||
Perform syscall and set errno variable if needed.
|
||||
}
|
||||
asm
|
||||
{ for now we are lazy }
|
||||
mov r7,r0
|
||||
mov r0,r1
|
||||
mov r1,r2
|
||||
mov r2,r3
|
||||
mov r3,r4
|
||||
mov r4,r5
|
||||
mov r5,r6
|
||||
swi #0x0
|
||||
cmn r0,#126
|
||||
movls pc,lr
|
||||
stmfd sp!,{lr}
|
||||
rsb r0,r0,#0
|
||||
bl seterrno
|
||||
mvn r0,#0
|
||||
ldmfd sp!,{pc}
|
||||
end;
|
||||
{$else FPC_ABI_EABI}
|
||||
function FpSysCall(sysnr:TSysParam):TSysResult; assembler; nostackframe; [public,alias:'FPC_SYSCALL0'];
|
||||
{
|
||||
Perform syscall and set errno variable if needed.
|
||||
@ -36,6 +60,7 @@ asm
|
||||
mvn r0,#0
|
||||
ldmfd sp!,{pc}
|
||||
end;
|
||||
{$endif FPC_ABI_EABI}
|
||||
|
||||
|
||||
procedure FPC_SYSCALL; external name 'FPC_SYSCALL0';
|
||||
|
Loading…
Reference in New Issue
Block a user