Annotation of coherent/b/lib/libc/gen/i386/alloca.s, revision 1.1

1.1     ! root        1: //////////
        !             2: / libc/gen/i386/alloca.s
        !             3: / Dynamic stack allocation.
        !             4: //////////
        !             5: 
        !             6: //////////
        !             7: / char *
        !             8: / alloca(int n)
        !             9: / Grab n bytes directly from the stack.
        !            10: //////////
        !            11: 
        !            12:        .globl  alloca
        !            13:        .text
        !            14: 
        !            15: alloca:
        !            16:        popl    %edx            / return address to EDX
        !            17:        popl    %eax            / nbytes to EAX
        !            18:        negl    %eax            / -nbytes
        !            19:        andl    %eax, $-4       / round up to dword
        !            20:        movl    %ecx, %esp      / saved register pointer to ECX
        !            21:        addl    %eax, %esp      / return pointer to EAX
        !            22:        movl    %esp, %eax      / allocate
        !            23:        pushl   8(%ecx)         / copy saved registers
        !            24:        pushl   4(%ecx)
        !            25:        pushl   (%ecx)
        !            26:        pushl   %eax            / restore arg
        !            27:        jmp     *%edx           / and return
        !            28: 
        !            29: / end of alloca.s

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.