From ea5e81bd6a3376232bf4747b2fa2e0a91c19b337 Mon Sep 17 00:00:00 2001 From: grischka Date: Sat, 18 Apr 2009 14:28:45 +0200 Subject: new subdirs: include, lib, tests --- lib/alloca86.S | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 lib/alloca86.S (limited to 'lib/alloca86.S') diff --git a/lib/alloca86.S b/lib/alloca86.S new file mode 100644 index 0000000..a60b140 --- /dev/null +++ b/lib/alloca86.S @@ -0,0 +1,33 @@ +/* ---------------------------------------------- */ +/* alloca86.S */ + +#include "config.h" + +.globl _alloca + +_alloca: + pop %edx + pop %eax + add $3,%eax + and $-4,%eax + jz p3 + +#ifdef TCC_TARGET_PE +p1: + cmp $4096,%eax + jle p2 + sub $4096,%esp + sub $4096,%eax + test %eax,(%esp) + jmp p1 +p2: +#endif + + sub %eax,%esp + mov %esp,%eax +p3: + push %edx + push %edx + ret + +/* ---------------------------------------------- */ -- cgit v1.3.1