Blame src/thread/nt64/syscall_cp.s
|
|
716654 |
############################################################################
|
|
|
716654 |
## mmglue: midipix architecture- and target-specific bits for musl libc ##
|
|
|
716654 |
## Copyright (C) 2013--2023 SysDeer Technologies, LLC ##
|
|
|
716654 |
## Released under the Standard MIT License; see COPYING.MMGLUE. ##
|
|
|
716654 |
############################################################################
|
|
|
716654 |
|
|
|
860627 |
.text
|
|
|
6eaa6b |
.global __cp_begin
|
|
|
6eaa6b |
.global __cp_end
|
|
|
6eaa6b |
.global __cp_cancel
|
|
|
6eaa6b |
.global __syscall_cp_asm
|
|
|
6eaa6b |
|
|
|
6eaa6b |
.def __cp_begin; .scl 2; .type 32; .endef
|
|
|
6eaa6b |
.def __cp_end; .scl 2; .type 32; .endef
|
|
|
6eaa6b |
.def __cp_cancel; .scl 2; .type 32; .endef
|
|
|
6eaa6b |
.def __syscall_cp_asm; .scl 2; .type 32; .endef
|
|
|
860627 |
|
|
|
860627 |
__syscall_cp_asm:
|
|
|
860627 |
__cp_begin:
|
|
|
c5e6e5 |
movq (%rcx), %rcx # check content of ptr
|
|
|
860627 |
test %ecx, %ecx
|
|
|
6eaa6b |
jnz __cp_cancel # thread is pending cancellation
|
|
|
860627 |
|
|
|
c5e6e5 |
movq %rdx, %rcx # move water
|
|
|
c5e6e5 |
movq %r8, %rdx # from one glass
|
|
|
c5e6e5 |
movq %r9, %r8 # to another
|
|
|
860627 |
movq 0x28(%rsp), %r9
|
|
|
860627 |
|
|
|
860627 |
movq 0x30(%rsp),%rax
|
|
|
860627 |
movq %rax, 0x28(%rsp)
|
|
|
860627 |
|
|
|
860627 |
movq 0x38(%rsp),%r10
|
|
|
860627 |
movq %r10, 0x30(%rsp)
|
|
|
860627 |
|
|
|
860627 |
movq 0x40(%rsp),%r10
|
|
|
860627 |
movq %r10, 0x38(%rsp)
|
|
|
860627 |
|
|
|
860627 |
jmp __syscall
|
|
|
860627 |
|
|
|
860627 |
__cp_end:
|
|
|
860627 |
ret
|
|
|
c00c94 |
|
|
|
6eaa6b |
__cp_cancel:
|
|
|
6eaa6b |
jmp __cancel
|
|
|
6eaa6b |
|
|
|
c00c94 |
|
|
|
c00c94 |
.section .got$__syscall_cp_asm
|
|
|
c00c94 |
.global __imp___syscall_cp_asm
|
|
|
c00c94 |
__imp___syscall_cp_asm:
|
|
|
c00c94 |
.quad __syscall_cp_asm
|
|
|
6eaa6b |
.linkonce discard
|
|
|
c00c94 |
|
|
|
c00c94 |
.section .got$__cp_begin
|
|
|
c00c94 |
.global __imp___cp_begin
|
|
|
c00c94 |
__imp___cp_begin:
|
|
|
c00c94 |
.quad __cp_begin
|
|
|
6eaa6b |
.linkonce discard
|
|
|
c00c94 |
|
|
|
c00c94 |
.section .got$__cp_end
|
|
|
c00c94 |
.global __imp___cp_end
|
|
|
c00c94 |
__imp___cp_end:
|
|
|
c00c94 |
.quad __cp_end
|
|
|
6eaa6b |
.linkonce discard
|
|
|
6eaa6b |
|
|
|
6eaa6b |
.section .got$__cp_cancel
|
|
|
6eaa6b |
.global __imp___cp_cancel
|
|
|
6eaa6b |
__imp___cp_cancel:
|
|
|
6eaa6b |
.quad __cp_cancel
|
|
|
6eaa6b |
.linkonce discard
|