/* $NetBSD: alloca.S,v 1.2 2014/05/22 15:01:56 uebayasi Exp $ */
#include <machine/asm.h>
#if defined(LIBC_SCCS)
RCSID("$NetBSD: alloca.S,v 1.2 2014/05/22 15:01:56 uebayasi Exp $")
#endif
ENTRY(alloca)
popq %rdx
movq %rsp,%rcx
addq $15,%rdi /* round up to 16 bytes */
andq $~15,%rdi
subq %rdi,%rsp
movq %rsp,%rax
jmp *%rdx
END(alloca)