Don't build libtcc1 with -fstack-protector-strong
[tinycc.git] / lib / alloca86-bt.S
blob52155053b01374c290374539a4871187cf159edc
1 /* ---------------------------------------------- */
2 /* alloca86-bt.S */
4 .globl __bound_alloca
6 __bound_alloca:
7     pop     %edx
8     pop     %eax
9     mov     %eax, %ecx
10     add     $3,%eax
11     and     $-4,%eax
12     jz      p6
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
23 p5:
24 #endif
26     sub     %eax,%esp
27     mov     %esp,%eax
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
38 p6:
39     push    %edx
40     push    %edx
41     ret
43 /* mark stack as nonexecutable */
44 #if defined __ELF__ && defined __linux__
45     .section    .note.GNU-stack,"",@progbits
46 #endif
47 /* ---------------------------------------------- */