summaryrefslogtreecommitdiff
path: root/newlib/libc/sys/sysvi386/signal.s
blob: 2418eb02b0757545c4c0adee440d11fd9a5163ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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