From 4abab5ad6c8465a7528ccdd5f49367da05f78bbd Mon Sep 17 00:00:00 2001 From: Vladimir Azarov Date: Tue, 1 Oct 2024 15:47:05 +0200 Subject: Initial version --- src/signal/i386/restore.s | 14 ++++++++++++++ src/signal/i386/sigsetjmp.s | 26 ++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/signal/i386/restore.s create mode 100644 src/signal/i386/sigsetjmp.s (limited to 'src/signal/i386') diff --git a/src/signal/i386/restore.s b/src/signal/i386/restore.s new file mode 100644 index 0000000..ccc9430 --- /dev/null +++ b/src/signal/i386/restore.s @@ -0,0 +1,14 @@ +.global __restore +.hidden __restore +.type __restore,@function +__restore: + popl %eax + movl $119, %eax + int $0x80 + +.global __restore_rt +.hidden __restore_rt +.type __restore_rt,@function +__restore_rt: + movl $173, %eax + int $0x80 diff --git a/src/signal/i386/sigsetjmp.s b/src/signal/i386/sigsetjmp.s new file mode 100644 index 0000000..690b251 --- /dev/null +++ b/src/signal/i386/sigsetjmp.s @@ -0,0 +1,26 @@ +.global sigsetjmp +.global __sigsetjmp +.type sigsetjmp,@function +.type __sigsetjmp,@function +sigsetjmp: +__sigsetjmp: + mov 8(%esp),%ecx + jecxz 1f + + mov 4(%esp),%eax + popl 24(%eax) + mov %ebx,28+8(%eax) + mov %eax,%ebx + +.hidden ___setjmp + call ___setjmp + + pushl 24(%ebx) + mov %ebx,4(%esp) + mov %eax,8(%esp) + mov 28+8(%ebx),%ebx + +.hidden __sigsetjmp_tail + jmp __sigsetjmp_tail + +1: jmp ___setjmp -- cgit v1.2.3