Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6429 siemargl 1
/* ---------------------------------------------- */
2
/* alloca86-bt.S */
3
 
4
.globl __bound_alloca
5
 
6
__bound_alloca:
7
    pop     %edx
8
    pop     %eax
9
    mov     %eax, %ecx
10
    add     $3,%eax
11
    and     $-4,%eax
12
    jz      p6
13
 
14
#ifdef TCC_TARGET_PE
15
p4:
16
    cmp     $4096,%eax
17
    jbe     p5
18
    test    %eax,-4096(%esp)
19
    sub     $4096,%esp
20
    sub     $4096,%eax
21
    jmp p4
22
 
23
p5:
24
#endif
25
 
26
    sub     %eax,%esp
27
    mov     %esp,%eax
28
 
29
    push    %edx
30
    push    %eax
31
    push    %ecx
32
    push    %eax
33
    call   __bound_new_region
34
    add    $8, %esp
35
    pop     %eax
36
    pop     %edx
37
 
38
p6:
39
    push    %edx
40
    push    %edx
41
    ret
42
 
43
/* mark stack as nonexecutable */
44
#if defined __ELF__ && defined __linux__
45
    .section    .note.GNU-stack,"",@progbits
46
#endif
47
/* ---------------------------------------------- */