Lines Matching refs:stack
32 * The i386 ABI says that the stack pointer need be only 4-byte aligned
33 * before a function call (STACK_ALIGN == 4). We use a 16-byte stack
37 * for calls made from that function. If the stack is initially
50 uint32_t *stack;
60 * Top-of-stack must be rounded down to STACK_ALIGN and
62 * stack frame (see <sys/frame.h>) but a construction made here to
64 * with a 16-byte aligned stack pointer (the address of frame.arg
67 stack = (uint32_t *)(((uintptr_t)stk + stksize) & ~(STACK_ALIGN-1));
71 * a page for the top page of the stack. This will cause
75 stack -= 5; /* make the address of frame.arg be 16-byte aligned */
81 if (uucopy(&frame, (void *)stack, sizeof (frame)) == 0)
82 return (stack);
93 uint32_t *stack;
129 * Setup the top stack frame.
132 if ((stack = setup_top_frame(stk, stksize, ulwp)) == NULL)
138 ucp->uc_mcontext.gregs[UESP] = (greg_t)stack;
139 ucp->uc_mcontext.gregs[EBP] = (greg_t)(stack + 3);