Raymond Toy pushed to branch rtoy-mmap-anon-control-and-binding-stacks at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/lisp/validate.c
    --- a/src/lisp/validate.c
    +++ b/src/lisp/validate.c
    @@ -115,16 +115,29 @@ void
     validate_stacks()
     {
         /* Control Stack */
    +#ifdef CONTROL_STACK_START
    +    /* Map the control stack at a fixed location */
    +    control_stack = (lispobj *) CONTROL_STACK_START;
    +#if (defined(i386) || defined(__x86_64))
    +    control_stack_end = (lispobj *) (CONTROL_STACK_START + control_stack_size);
    +#endif
    +    ensure_space(control_stack, control_stack_size);
    +#else
         /* Map the conrol stack wherever we have space */
       control_stack = (lispobj*) os_validate(NULL, control_stack_size);
     
     #if (defined(i386) || defined(__x86_64))
         control_stack_end = (void*)control_stack + control_stack_size;
     #endif
    +#endif
     
         /* Binding Stack */
    +#ifdef BINDING_STACK_START
    +    binding_stack = (lispobj *) BINDING_STACK_START;
    +    ensure_space(binding_stack, binding_stack_size);
    +#else
         binding_stack = (lispobj*) os_validate(NULL, binding_stack_size);
    -
    +#endif
     #ifdef sparc
         make_stack_holes();
     #endif