From fc977d56c90b6c6a54b7e831b5c88e37f54a5cae Mon Sep 17 00:00:00 2001 From: grischka Date: Sat, 18 Jul 2009 22:06:54 +0200 Subject: x86-64: chkstk, alloca --- lib/alloca86_64.S | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lib/alloca86_64.S') diff --git a/lib/alloca86_64.S b/lib/alloca86_64.S index 684a3e9..13c4672 100644 --- a/lib/alloca86_64.S +++ b/lib/alloca86_64.S @@ -7,13 +7,16 @@ alloca: pop %rdx +#ifdef TCC_TARGET_PE + mov %rcx,%rax +#else mov %rdi,%rax +#endif add $15,%rax and $-16,%rax jz p3 #ifdef TCC_TARGET_PE - /* XXX: not tested */ p1: cmp $4096,%rax jle p2 @@ -26,6 +29,10 @@ p2: sub %rax,%rsp mov %rsp,%rax +#ifdef TCC_TARGET_PE + add $32,%rax +#endif + p3: push %rdx ret -- cgit v1.3.1