$41 GRAYBYTE WORDPRESS FILE MANAGER $42

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.15.130 | ADMIN IP 216.73.216.174
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/hc_python/lib/python3.12/site-packages/greenlet/platform/

HOME
Current File : /opt/hc_python/lib/python3.12/site-packages/greenlet/platform//switch_x64_masm.asm
;
; stack switching code for MASM on x641
; Kristjan Valur Jonsson, sept 2005
;


;prototypes for our calls
slp_save_state_asm PROTO
slp_restore_state_asm PROTO


pushxmm MACRO reg
    sub rsp, 16
    .allocstack 16
    movaps [rsp], reg ; faster than movups, but we must be aligned
    ; .savexmm128 reg, offset  (don't know what offset is, no documentation)
ENDM
popxmm MACRO reg
    movaps reg, [rsp] ; faster than movups, but we must be aligned
    add rsp, 16
ENDM

pushreg MACRO reg
    push reg
    .pushreg reg
ENDM
popreg MACRO reg
    pop reg
ENDM


.code
slp_switch PROC FRAME
    ;realign stack to 16 bytes after return address push, makes the following faster
    sub rsp,8
    .allocstack 8

    pushxmm xmm15
    pushxmm xmm14
    pushxmm xmm13
    pushxmm xmm12
    pushxmm xmm11
    pushxmm xmm10
    pushxmm xmm9
    pushxmm xmm8
    pushxmm xmm7
    pushxmm xmm6

    pushreg r15
    pushreg r14
    pushreg r13
    pushreg r12

    pushreg rbp
    pushreg rbx
    pushreg rdi
    pushreg rsi

    sub rsp, 10h ;allocate the singlefunction argument (must be multiple of 16)
    .allocstack 10h
.endprolog

    lea rcx, [rsp+10h] ;load stack base that we are saving
    call slp_save_state_asm ;pass stackpointer, return offset in eax
    cmp rax, 1
    je EXIT1
    cmp rax, -1
    je EXIT2
    ;actual stack switch:
    add rsp, rax
    call slp_restore_state_asm
    xor rax, rax ;return 0

EXIT:

    add rsp, 10h
    popreg rsi
    popreg rdi
    popreg rbx
    popreg rbp

    popreg r12
    popreg r13
    popreg r14
    popreg r15

    popxmm xmm6
    popxmm xmm7
    popxmm xmm8
    popxmm xmm9
    popxmm xmm10
    popxmm xmm11
    popxmm xmm12
    popxmm xmm13
    popxmm xmm14
    popxmm xmm15

    add rsp, 8
    ret

EXIT1:
    mov rax, 1
    jmp EXIT

EXIT2:
    sar rax, 1
    jmp EXIT

slp_switch ENDP

END


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Dec 2025 9.30 AM
root / root
0755
__pycache__
--
3 Dec 2025 9.30 AM
root / root
0755
__init__.py
0 KB
3 Dec 2025 9.30 AM
root / root
0644
setup_switch_x64_masm.cmd
0.14 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_aarch64_gcc.h
4.206 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_alpha_unix.h
0.655 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_amd64_unix.h
2.684 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_arm32_gcc.h
2.421 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_arm32_ios.h
1.848 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_arm64_masm.asm
1.216 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_arm64_masm.obj
0.729 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_arm64_msvc.h
0.389 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_csky_gcc.h
1.3 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_loongarch64_linux.h
0.761 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_m68k_gcc.h
0.906 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_mips_unix.h
1.393 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_ppc64_aix.h
3.77 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_ppc64_linux.h
3.726 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_ppc_aix.h
2.872 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_ppc_linux.h
2.694 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_ppc_macosx.h
2.563 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_ppc_unix.h
2.59 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_riscv_unix.h
0.927 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_s390_unix.h
2.698 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_sh_gcc.h
0.88 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_sparc_sun_gcc.h
2.731 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_x32_unix.h
1.474 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_x64_masm.asm
1.798 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_x64_masm.obj
1.053 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_x64_msvc.h
1.763 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_x86_msvc.h
12.537 KB
3 Dec 2025 9.30 AM
root / root
0644
switch_x86_unix.h
2.987 KB
3 Dec 2025 9.30 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF