newlib-cygwin/newlib/libc/sys/sysvi386/signal.S

17 lines
435 B
ArmAsm

/ According to the iBCS2 book, signal() has 0x30 in %eax, and the address
/ of a function in %edx. This function is where a signal handler will
/ return to; it should just adjust the stack pointer, and call $f,$0.
/ Strange but true.
.globl signal
sigret:
addl $4, %esp
lcall $0xf, $0
signal:
movl $0x30, %eax
movl sigret, %edx
lcall $7,$0
jb _cerror
/ The iBCS2 book also clears out %eax here, which seems to be broken.
ret