30 lines
341 B
ArmAsm
30 lines
341 B
ArmAsm
|
.section .userspace, "aw"
|
||
|
|
||
|
// stack contains
|
||
|
// return address
|
||
|
// signal number
|
||
|
// signal handler
|
||
|
|
||
|
.global signal_trampoline
|
||
|
signal_trampoline:
|
||
|
pushl %ebp
|
||
|
movl %esp, %ebp
|
||
|
subl $8, %esp
|
||
|
|
||
|
pusha
|
||
|
|
||
|
movl 40(%esp), %edi
|
||
|
movl 36(%esp), %eax
|
||
|
|
||
|
subl $12, %esp
|
||
|
pushl %edi
|
||
|
call *%eax
|
||
|
addl $16, %esp
|
||
|
|
||
|
popa
|
||
|
|
||
|
leave
|
||
|
addl $8, %esp
|
||
|
|
||
|
ret
|