Subversion Repositories Kolibri OS

Rev

Rev 2827 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2827 Rev 3805
Line 12... Line 12...
12
__alloca:
12
__alloca:
13
        pushl   %ecx            /* save temp */
13
        pushl   %ecx            /* save temp */
14
        leal    8(%esp), %ecx   /* point past return addr */
14
        leal    8(%esp), %ecx   /* point past return addr */
15
        subl    %eax, %ecx
15
        subl    %eax, %ecx
16
        cmpl    %fs:4, %ecx     # check low stack limit
16
        cmpl    %fs:8, %ecx     # check low stack limit
17
        jb      1f
17
        jb      1f
18
 
18
 
Line 19... Line 19...
19
        movl    %esp, %eax      /* save old stack pointer */
19
        movl    %esp, %eax      /* save old stack pointer */
20
        movl    %ecx, %esp      /* decrement stack */
20
        movl    %ecx, %esp      /* decrement stack */
21
        movl    (%eax), %ecx    /* recover saved temp */
21
        movl    (%eax), %ecx    /* recover saved temp */
Line 39... Line 39...
39
       jb 2f
39
       jb 2f
40
 
40
 
Line 41... Line 41...
41
1:
41
1:
42
       subl $0x1000, %ecx     /* yes, move pointer down 4k*/
42
       subl $0x1000, %ecx     /* yes, move pointer down 4k*/
43
       cmpl %fs:4, %ecx       /* check low stack limit    */
43
       cmpl %fs:8, %ecx       /* check low stack limit    */
44
       jb 3f
44
       jb 3f
Line 45... Line 45...
45
 
45
 
46
       orl $0x0, (%ecx)       /* probe there */
46
       orl $0x0, (%ecx)       /* probe there */
47
       subl $0x1000, %eax     /* decrement count */
47
       subl $0x1000, %eax     /* decrement count */