21 lines
		
	
	
	
		
			327 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			327 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| #include "SYS.h"
 | |
| 
 | |
| LABEL__(sig_catch)
 | |
| 	save	%sp, %g4, %sp
 | |
| 	mov	%fp, %l0		! get new EM frame pointer
 | |
| 
 | |
| 	dec	4, %l0
 | |
| 	st	%i0, [%l0]		! push signal number on EM stack
 | |
| 
 | |
| 	set	$_sig_funcs, %l1
 | |
| 	dec	1, %i0
 | |
| 	sll	%i0, 2, %l2
 | |
| 	add	%l1, %l2, %l3
 | |
| 	ld	[%l3], %l2		! get signal handler into %l2
 | |
| 
 | |
| 	call	%l2
 | |
| 	nop
 | |
| 
 | |
| 	restore
 | |
| 	retl
 | |
| 	add	%sp,%g4,%sp
 |