Lines Matching refs:stack

69 ficlStackCheck(ficlStack *stack, int popCells, int pushCells)  in ficlStackCheck()  argument
72 int nFree = stack->size - STKDEPTH(stack); in ficlStackCheck()
74 if (popCells > STKDEPTH(stack)) in ficlStackCheck()
75 ficlVmThrowError(stack->vm, "Error: %s stack underflow", in ficlStackCheck()
76 stack->name); in ficlStackCheck()
79 ficlVmThrowError(stack->vm, "Error: %s stack overflow", in ficlStackCheck()
80 stack->name); in ficlStackCheck()
82 FICL_IGNORE(stack); in ficlStackCheck()
96 ficlStack *stack = ficlMalloc(totalSize); in ficlStackCreate() local
99 FICL_VM_ASSERT(vm, stack != NULL); in ficlStackCreate()
101 stack->size = size; in ficlStackCreate()
102 stack->frame = NULL; in ficlStackCreate()
104 stack->vm = vm; in ficlStackCreate()
105 stack->name = name; in ficlStackCreate()
107 ficlStackReset(stack); in ficlStackCreate()
108 return (stack); in ficlStackCreate()
115 ficlStackDestroy(ficlStack *stack) in ficlStackDestroy() argument
117 if (stack) in ficlStackDestroy()
118 ficlFree(stack); in ficlStackDestroy()
125 ficlStackDepth(ficlStack *stack) in ficlStackDepth() argument
127 return (STKDEPTH(stack)); in ficlStackDepth()
134 ficlStackDrop(ficlStack *stack, int n) in ficlStackDrop() argument
136 FICL_VM_ASSERT(stack->vm, n > 0); in ficlStackDrop()
137 stack->top -= n; in ficlStackDrop()
144 ficlStackFetch(ficlStack *stack, int n) in ficlStackFetch() argument
146 return (stack->top[-n]); in ficlStackFetch()
150 ficlStackStore(ficlStack *stack, int n, ficlCell c) in ficlStackStore() argument
152 stack->top[-n] = c; in ficlStackStore()
159 ficlStackGetTop(ficlStack *stack) in ficlStackGetTop() argument
161 return (stack->top[0]); in ficlStackGetTop()
174 ficlStackLink(ficlStack *stack, int size) in ficlStackLink() argument
176 ficlStackPushPointer(stack, stack->frame); in ficlStackLink()
177 stack->frame = stack->top + 1; in ficlStackLink()
178 stack->top += size; in ficlStackLink()
188 ficlStackUnlink(ficlStack *stack) in ficlStackUnlink() argument
190 stack->top = stack->frame - 1; in ficlStackUnlink()
191 stack->frame = ficlStackPopPointer(stack); in ficlStackUnlink()
199 ficlStackPick(ficlStack *stack, int n) in ficlStackPick() argument
201 ficlStackPush(stack, ficlStackFetch(stack, n)); in ficlStackPick()
208 ficlStackPop(ficlStack *stack) in ficlStackPop() argument
210 return (*stack->top--); in ficlStackPop()
214 ficlStackPopPointer(ficlStack *stack) in ficlStackPopPointer() argument
216 return ((*stack->top--).p); in ficlStackPopPointer()
220 ficlStackPopUnsigned(ficlStack *stack) in ficlStackPopUnsigned() argument
222 return ((*stack->top--).u); in ficlStackPopUnsigned()
226 ficlStackPopInteger(ficlStack *stack) in ficlStackPopInteger() argument
228 return ((*stack->top--).i); in ficlStackPopInteger()
232 ficlStackPop2Integer(ficlStack *stack) in ficlStackPop2Integer() argument
235 ficlInteger high = ficlStackPopInteger(stack); in ficlStackPop2Integer()
236 ficlInteger low = ficlStackPopInteger(stack); in ficlStackPop2Integer()
242 ficlStackPop2Unsigned(ficlStack *stack) in ficlStackPop2Unsigned() argument
245 ficlUnsigned high = ficlStackPopUnsigned(stack); in ficlStackPop2Unsigned()
246 ficlUnsigned low = ficlStackPopUnsigned(stack); in ficlStackPop2Unsigned()
253 ficlStackPopFloat(ficlStack *stack) in ficlStackPopFloat() argument
255 return ((*stack->top--).f); in ficlStackPopFloat()
263 ficlStackPush(ficlStack *stack, ficlCell c) in ficlStackPush() argument
265 *++stack->top = c; in ficlStackPush()
269 ficlStackPushPointer(ficlStack *stack, void *ptr) in ficlStackPushPointer() argument
274 *++stack->top = c; in ficlStackPushPointer()
278 ficlStackPushInteger(ficlStack *stack, ficlInteger i) in ficlStackPushInteger() argument
283 *++stack->top = c; in ficlStackPushInteger()
287 ficlStackPushUnsigned(ficlStack *stack, ficlUnsigned u) in ficlStackPushUnsigned() argument
292 *++stack->top = c; in ficlStackPushUnsigned()
296 ficlStackPush2Unsigned(ficlStack *stack, ficl2Unsigned du) in ficlStackPush2Unsigned() argument
298 ficlStackPushUnsigned(stack, FICL_2UNSIGNED_GET_LOW(du)); in ficlStackPush2Unsigned()
299 ficlStackPushUnsigned(stack, FICL_2UNSIGNED_GET_HIGH(du)); in ficlStackPush2Unsigned()
303 ficlStackPush2Integer(ficlStack *stack, ficl2Integer di) in ficlStackPush2Integer() argument
308 ficlStackPush2Unsigned(stack, du); in ficlStackPush2Integer()
313 ficlStackPushFloat(ficlStack *stack, ficlFloat f) in ficlStackPushFloat() argument
318 *++stack->top = c; in ficlStackPushFloat()
326 ficlStackReset(ficlStack *stack) in ficlStackReset() argument
328 stack->top = stack->base - 1; in ficlStackReset()
339 ficlStackRoll(ficlStack *stack, int n) in ficlStackRoll() argument
347 cell = stack->top - n; in ficlStackRoll()
356 cell = stack->top; in ficlStackRoll()
371 ficlStackSetTop(ficlStack *stack, ficlCell c) in ficlStackSetTop() argument
373 FICL_STACK_CHECK(stack, 1, 1); in ficlStackSetTop()
374 stack->top[0] = c; in ficlStackSetTop()
378 ficlStackWalk(ficlStack *stack, ficlStackWalkFunction callback, in ficlStackWalk() argument
384 FICL_STACK_CHECK(stack, 0, 0); in ficlStackWalk()
386 depth = ficlStackDepth(stack); in ficlStackWalk()
387 cell = bottomToTop ? stack->base : stack->top; in ficlStackWalk()