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 */ |