Lines Matching refs:stack
239 * Includes a floating point stack for the VM, and words to do float operations.
440 * This will detect stack over and underflows and dictionary overflows.
443 * FICL_ROBUST == 1 --> stack checking in the outer interpreter
854 * machine. (Note: C's automatic stack is implicitly used,
856 * Here's an abstract type for a stack
860 ficlUnsigned size; /* size of the stack, in cells */
861 ficlCell *frame; /* link reg for stack frame */
862 ficlCell *top; /* stack pointer */
865 ficlCell base[1]; /* Top of stack */
873 FICL_PLATFORM_EXTERN void ficlStackDestroy(ficlStack *stack);
874 FICL_PLATFORM_EXTERN int ficlStackDepth(ficlStack *stack);
875 FICL_PLATFORM_EXTERN void ficlStackDrop(ficlStack *stack, int n);
876 FICL_PLATFORM_EXTERN ficlCell ficlStackFetch(ficlStack *stack, int n);
877 FICL_PLATFORM_EXTERN ficlCell ficlStackGetTop(ficlStack *stack);
878 FICL_PLATFORM_EXTERN void ficlStackPick(ficlStack *stack, int n);
879 FICL_PLATFORM_EXTERN ficlCell ficlStackPop(ficlStack *stack);
880 FICL_PLATFORM_EXTERN void ficlStackPush(ficlStack *stack, ficlCell c);
881 FICL_PLATFORM_EXTERN void ficlStackReset(ficlStack *stack);
882 FICL_PLATFORM_EXTERN void ficlStackRoll(ficlStack *stack, int n);
883 FICL_PLATFORM_EXTERN void ficlStackSetTop(ficlStack *stack, ficlCell c);
884 FICL_PLATFORM_EXTERN void ficlStackStore(ficlStack *stack, int n, ficlCell c);
887 FICL_PLATFORM_EXTERN void ficlStackLink(ficlStack *stack, int nCells);
888 FICL_PLATFORM_EXTERN void ficlStackUnlink(ficlStack *stack);
891 FICL_PLATFORM_EXTERN void *ficlStackPopPointer(ficlStack *stack);
892 FICL_PLATFORM_EXTERN ficlUnsigned ficlStackPopUnsigned(ficlStack *stack);
893 FICL_PLATFORM_EXTERN ficlInteger ficlStackPopInteger(ficlStack *stack);
894 FICL_PLATFORM_EXTERN void ficlStackPushPointer(ficlStack *stack, void *ptr);
896 ficlStackPushUnsigned(ficlStack *stack, ficlUnsigned u);
897 FICL_PLATFORM_EXTERN void ficlStackPushInteger(ficlStack *stack, ficlInteger i);
900 FICL_PLATFORM_EXTERN ficlFloat ficlStackPopFloat(ficlStack *stack);
901 FICL_PLATFORM_EXTERN void ficlStackPushFloat(ficlStack *stack, ficlFloat f);
905 ficlStackPush2Integer(ficlStack *stack, ficl2Integer i64);
906 FICL_PLATFORM_EXTERN ficl2Integer ficlStackPop2Integer(ficlStack *stack);
908 ficlStackPush2Unsigned(ficlStack *stack, ficl2Unsigned u64);
909 FICL_PLATFORM_EXTERN ficl2Unsigned ficlStackPop2Unsigned(ficlStack *stack);
913 ficlStackCheck(ficlStack *stack, int popCells, int pushCells);
914 #define FICL_STACK_CHECK(stack, popCells, pushCells) \
915 ficlStackCheck(stack, popCells, pushCells)
917 #define FICL_STACK_CHECK(stack, popCells, pushCells)
922 ficlStackWalk(ficlStack *stack, ficlStackWalkFunction callback,
924 FICL_PLATFORM_EXTERN void ficlStackDisplay(ficlStack *stack,
1008 ficlStack *returnStack; /* return stack */
1010 ficlStack *floatStack; /* float stack (optional) */
1359 * Managed as a stack.