diff options
| author | Uneven Prankster <unevenprankster@protonmail.com> | 2023-10-15 21:28:29 -0300 |
|---|---|---|
| committer | Uneven Prankster <unevenprankster@protonmail.com> | 2023-10-15 21:28:29 -0300 |
| commit | 1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 (patch) | |
| tree | f5d692d046868261275c7430a624c3ea9ed75d3d /tinycc/lib/alloca.S | |
| parent | a89f892640cf12f75c7ce18e6e88c70a8d3965ed (diff) | |
A lot has certainly happened!
Diffstat (limited to 'tinycc/lib/alloca.S')
| -rw-r--r-- | tinycc/lib/alloca.S | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/tinycc/lib/alloca.S b/tinycc/lib/alloca.S deleted file mode 100644 index 6ebafd7..0000000 --- a/tinycc/lib/alloca.S +++ /dev/null @@ -1,85 +0,0 @@ -/* ---------------------------------------------- */ -/* alloca.S */ - -#ifdef __leading_underscore -# define _(s) _##s -#else -# define _(s) s -#endif - -/* ---------------------------------------------- */ -#if defined __i386__ - -.globl _(alloca), _(__alloca) -_(alloca): -_(__alloca): - push %ebp - mov %esp,%ebp - mov 8(%ebp),%eax - add $3,%eax - and $-4,%eax -#ifdef _WIN32 - jmp .+16 #p2 -p1: - sub $4096,%esp - sub $4096,%eax - test %eax,(%esp) -p2: - cmp $4096,%eax - jae p1 -#endif - sub %eax,%esp - mov 4(%ebp),%eax - mov 0(%ebp),%ebp - add $8,%esp - push %eax - lea 8(%esp),%eax - ret - -/* ---------------------------------------------- */ -#elif defined __x86_64__ - -.globl _(alloca) -_(alloca): - pop %rdx -#ifdef _WIN32 - mov %rcx,%rax -#else - mov %rdi,%rax -#endif - add $15,%rax - and $-16,%rax - jz p3 - -#ifdef _WIN32 -p1: - cmp $4096,%rax - jbe p2 - test %rax,-4096(%rsp) - sub $4096,%rsp - sub $4096,%rax - jmp p1 -p2: -#endif - sub %rax,%rsp - mov %rsp,%rax -p3: - push %rdx - ret - -/* ---------------------------------------------- */ -#elif defined __arm__ - - .text - .align 2 - .global alloca - .type alloca, %function -alloca: - rsb sp, r0, sp - bic sp, sp, #7 - mov r0, sp - mov pc, lr - .size alloca, .-alloca - -/* ---------------------------------------------- */ -#endif |
