diff options
author | pommicket <pommicket@gmail.com> | 2022-02-17 13:22:13 -0500 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2022-02-17 13:22:13 -0500 |
commit | e900dd8d6f2ff7cef66fbd31898d375b71ef53d6 (patch) | |
tree | ae732e8f5d6163acb78355ae4e5ca69d6e0c995e /05/tcc-0.9.25/lib/alloca86-bt.S | |
parent | 6e1158f49aa014b801b171b358c47389e7f9964e (diff) |
procuding a (non-working) executable for tcc
Diffstat (limited to '05/tcc-0.9.25/lib/alloca86-bt.S')
-rw-r--r-- | 05/tcc-0.9.25/lib/alloca86-bt.S | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/05/tcc-0.9.25/lib/alloca86-bt.S b/05/tcc-0.9.25/lib/alloca86-bt.S new file mode 100644 index 0000000..994da20 --- /dev/null +++ b/05/tcc-0.9.25/lib/alloca86-bt.S @@ -0,0 +1,45 @@ +/* ---------------------------------------------- */ +/* alloca86b.S */ + +#include "../config.h" + +.globl __bound_alloca + +__bound_alloca: + pop %edx + pop %eax + mov %eax, %ecx + add $3,%eax + and $-4,%eax + jz p6 + +#ifdef TCC_TARGET_PE +p4: + cmp $4096,%eax + jle p5 + sub $4096,%esp + sub $4096,%eax + test %eax,(%esp) + 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 + +/* ---------------------------------------------- */ |