diff options
author | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
---|---|---|
committer | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
commit | 4abab5ad6c8465a7528ccdd5f49367da05f78bbd (patch) | |
tree | ebf009bf1376a5a223a915bc27cbbd791a1316bc /src/signal/arm |
Initial version
Diffstat (limited to 'src/signal/arm')
-rw-r--r-- | src/signal/arm/restore.s | 15 | ||||
-rw-r--r-- | src/signal/arm/sigsetjmp.s | 24 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/signal/arm/restore.s b/src/signal/arm/restore.s new file mode 100644 index 0000000..fb086d9 --- /dev/null +++ b/src/signal/arm/restore.s @@ -0,0 +1,15 @@ +.syntax unified + +.global __restore +.hidden __restore +.type __restore,%function +__restore: + mov r7,#119 + swi 0x0 + +.global __restore_rt +.hidden __restore_rt +.type __restore_rt,%function +__restore_rt: + mov r7,#173 + swi 0x0 diff --git a/src/signal/arm/sigsetjmp.s b/src/signal/arm/sigsetjmp.s new file mode 100644 index 0000000..69ebbf4 --- /dev/null +++ b/src/signal/arm/sigsetjmp.s @@ -0,0 +1,24 @@ +.syntax unified +.global sigsetjmp +.global __sigsetjmp +.type sigsetjmp,%function +.type __sigsetjmp,%function +sigsetjmp: +__sigsetjmp: + tst r1,r1 + bne 1f + b setjmp + +1: str lr,[r0,#256] + str r4,[r0,#260+8] + mov r4,r0 + + bl setjmp + + mov r1,r0 + mov r0,r4 + ldr lr,[r0,#256] + ldr r4,[r0,#260+8] + +.hidden __sigsetjmp_tail + b __sigsetjmp_tail |