repo.or.cz
/
tinycc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
Only create GOT or GOT entry when needed
[tinycc.git]
/
lib
/
alloca86.S
blob
a17e07f2715ce176ffc0d5648d48aeaa4164123e
1
/* ---------------------------------------------- */
2
/* alloca86.S */
3
4
.globl alloca
5
6
alloca:
7
pop %edx
8
pop %eax
9
add $3,%eax
10
and $-4,%eax
11
jz p3
12
13
#ifdef TCC_TARGET_PE
14
p1:
15
cmp $4096,%eax
16
jbe p2
17
test %eax,-4096(%esp)
18
sub $4096,%esp
19
sub $4096,%eax
20
jmp p1
21
p2:
22
#endif
23
24
sub %eax,%esp
25
mov %esp,%eax
26
p3:
27
push %edx
28
push %edx
29
ret
30
31
/* mark stack as nonexecutable */
32
#if defined __ELF__ && defined __linux__
33
.section .note.GNU-stack,"",@progbits
34
#endif
35
/* ---------------------------------------------- */