* Copyright (c) 1990 The Regents of the University of California.
* This code is derived from software contributed to Berkeley by
* the Systems Programming Group of the University of Utah Computer
* %sccs.include.redist.c%
#if defined(LIBC_SCCS) && !defined(lint)
.asciz "@(#)alloca.s 5.1 (Berkeley) %G%"
#endif /* LIBC_SCCS and not lint */
/* like alloc, but automatic free in return */
movl sp@,a0 /* save return addr */
movl sp,d0 /* get current SP value */
subl sp@(4),d0 /* allocate requested space */
andb #~3,d0 /* longword align for efficiency */
addql #8,d0 /* reuse space of call frame */
movl d0,sp /* set new SP value */
lea sp@(-4),sp /* account for argument pop in caller */
jmp a0@ /* funny return */