17 lines
		
	
	
		
			435 B
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			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
 |