38 lines · 606 B · Assembly
RawDownload
/* ---------------------------------------------- *//* alloca86_64.S */ #ifdef __leading_underscore# define _(s) _##s#else# define _(s) s#endif .globl _(alloca)_(alloca):    pop     %rdx#ifdef _WIN32    mov     %rcx,%rax#else    mov     %rdi,%rax#endif    add     $15,%rax    and     $-16,%rax    jz      p3 #ifdef _WIN32p1:    cmp     $4096,%rax    jbe     p2    test    %rax,-4096(%rsp)    sub     $4096,%rsp    sub     $4096,%rax    jmp p1p2:#endif    sub     %rax,%rsp    mov     %rsp,%raxp3:    push    %rdx    ret /* ---------------------------------------------- */