diff options
author | Christopher Faylor <me@cgf.cx> | 2000-02-17 22:39:52 +0300 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-02-17 22:39:52 +0300 |
commit | 8a0efa53e44919bcf5ccb1d3353618a82afdf8bc (patch) | |
tree | 68c3dbf3f2c6fd5d49777def9914d77b5cd4589d /newlib/libc/sys/sysvi386/signal.s | |
parent | 1fd5e000ace55b323124c7e556a7a864b972a5c4 (diff) |
import newlib-2000-02-17 snapshot
Diffstat (limited to 'newlib/libc/sys/sysvi386/signal.s')
-rw-r--r-- | newlib/libc/sys/sysvi386/signal.s | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/newlib/libc/sys/sysvi386/signal.s b/newlib/libc/sys/sysvi386/signal.s new file mode 100644 index 000000000..2418eb02b --- /dev/null +++ b/newlib/libc/sys/sysvi386/signal.s @@ -0,0 +1,16 @@ +/ 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 |