Add check for invalid numbers.
[tinycc.git] / alloca86.S
bloba60b140804896316cf0a6f02995e96a9dac36d28
1 /* ---------------------------------------------- */
2 /* alloca86.S */
4 #include "config.h"
6 .globl _alloca
8 _alloca:
9     pop     %edx
10     pop     %eax
11     add     $3,%eax
12     and     $-4,%eax
13     jz      p3
15 #ifdef TCC_TARGET_PE
16 p1:
17     cmp     $4096,%eax
18     jle     p2
19     sub     $4096,%esp
20     sub     $4096,%eax
21     test    %eax,(%esp)
22     jmp p1
23 p2:
24 #endif
26     sub     %eax,%esp
27     mov     %esp,%eax
28 p3:
29     push    %edx
30     push    %edx
31     ret
33 /* ---------------------------------------------- */