stack.h 455 B

123456789101112131415161718192021222324252627
  1. #ifndef STACK_H
  2. #define STACK_H
  3. // 4096 = 1 << 12
  4. // 32768 = 1 << 15
  5. // 1048576 = 1 << 20
  6. #include "scm.h"
  7. #define VM_STACK_SIZE (1 << 16)
  8. extern scm vm_stack[VM_STACK_SIZE];
  9. extern scm vm_stack_ptr;
  10. extern scm vm_stack_base_ptr;
  11. void stack_push(scm obj);
  12. scm stack_pop();
  13. void stack_grow(scm n);
  14. scm vm_stack_top_ref(scm i);
  15. void vm_set_stack_top(scm i, scm obj);
  16. scm vm_stack_base_ref(scm i);
  17. void vm_set_stack_base(scm i, scm obj);
  18. #endif