mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-07 03:19:35 +01:00
* replaced the "quick exit" instruction sequences from the syscall variants
lacking "nostackframe" with branches to an exit label, because in that
case the compiler-generated exit code must be executed to balance the
stack (only done for EABI; should probably also be done for OABI, but
I can't test that)
git-svn-id: trunk@16073 -
This commit is contained in:
parent
594919cc70
commit
eda7a8d672
@ -119,12 +119,11 @@ asm
|
|||||||
swi #0x0
|
swi #0x0
|
||||||
cmn r0,#126
|
cmn r0,#126
|
||||||
ldr r7,[sp],#4
|
ldr r7,[sp],#4
|
||||||
movls pc,lr
|
bls .LExit
|
||||||
stmfd sp!,{lr}
|
|
||||||
rsb r0,r0,#0
|
rsb r0,r0,#0
|
||||||
bl seterrno
|
bl seterrno
|
||||||
mvn r0,#0
|
mvn r0,#0
|
||||||
ldmfd sp!,{pc}
|
.LExit:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -143,12 +142,11 @@ asm
|
|||||||
swi #0x0
|
swi #0x0
|
||||||
cmn r0,#126
|
cmn r0,#126
|
||||||
ldmfd sp!,{r4,r7}
|
ldmfd sp!,{r4,r7}
|
||||||
movls pc,lr
|
bls .LExit
|
||||||
stmfd sp!,{lr}
|
|
||||||
rsb r0,r0,#0
|
rsb r0,r0,#0
|
||||||
bl seterrno
|
bl seterrno
|
||||||
mvn r0,#0
|
mvn r0,#0
|
||||||
ldmfd sp!,{pc}
|
.LExit:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -168,12 +166,11 @@ asm
|
|||||||
swi #0x0
|
swi #0x0
|
||||||
cmn r0,#126
|
cmn r0,#126
|
||||||
ldmfd sp!,{r4,r5,r7}
|
ldmfd sp!,{r4,r5,r7}
|
||||||
movls pc,lr
|
bls .LExit
|
||||||
stmfd sp!,{lr}
|
|
||||||
rsb r0,r0,#0
|
rsb r0,r0,#0
|
||||||
bl seterrno
|
bl seterrno
|
||||||
mvn r0,#0
|
mvn r0,#0
|
||||||
ldmfd sp!,{pc}
|
.LExit:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$else FPC_ABI_EABI}
|
{$else FPC_ABI_EABI}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user