42 lines
648 B
ArmAsm
42 lines
648 B
ArmAsm
.text
|
|
.global __cp_begin
|
|
.hidden __cp_begin
|
|
.global __cp_end
|
|
.hidden __cp_end
|
|
.global __cp_cancel
|
|
.hidden __cp_cancel
|
|
.hidden __cancel
|
|
.global __syscall_cp_asm
|
|
.hidden __syscall_cp_asm
|
|
.type __syscall_cp_asm,@function
|
|
__syscall_cp_asm:
|
|
mov 4(%esp),%ecx
|
|
pushl %ebx
|
|
pushl %esi
|
|
pushl %edi
|
|
pushl %ebp
|
|
__cp_begin:
|
|
movl (%ecx),%eax
|
|
testl %eax,%eax
|
|
jnz __cp_cancel
|
|
movl 24(%esp),%eax
|
|
movl 28(%esp),%ebx
|
|
movl 32(%esp),%ecx
|
|
movl 36(%esp),%edx
|
|
movl 40(%esp),%esi
|
|
movl 44(%esp),%edi
|
|
movl 48(%esp),%ebp
|
|
int $128
|
|
__cp_end:
|
|
popl %ebp
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
ret
|
|
__cp_cancel:
|
|
popl %ebp
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
jmp __cancel
|