123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /* ---------------------------------------------- */
- /* alloca86-bt.S */
- .globl __bound_alloca
- __bound_alloca:
- pop %edx
- pop %eax
- mov %eax, %ecx
- add $3,%eax
- and $-4,%eax
- jz p6
- #ifdef _WIN32
- p4:
- cmp $4096,%eax
- jbe p5
- test %eax,-4096(%esp)
- sub $4096,%esp
- sub $4096,%eax
- jmp p4
- p5:
- #endif
- sub %eax,%esp
- mov %esp,%eax
- push %edx
- push %eax
- push %ecx
- push %eax
- call __bound_new_region
- add $8, %esp
- pop %eax
- pop %edx
- p6:
- push %edx
- push %edx
- ret
- /* mark stack as nonexecutable */
- #if defined __ELF__ && defined __linux__
- .section .note.GNU-stack,"",@progbits
- #endif
- /* ---------------------------------------------- */
|