anchor.diff:                           (emit-gc-info)))
                      (emit-lap backend-function inst-or-label uses defs))))
             (values (reverse *emitted-lap*)
  -                  debug-layout))))))
  +                  debug-layout
  +                  environment-slot))))))
   
   (defmethod lap-prepass (backend-function (instruction argument-setup-instruction) uses defs)
     (when (argument-setup-rest instruction)
  
positive.code:     (when (argument-setup-rest (mezzano.compiler.backend::first-instruction backend-function))
        ;; Reserve slot 0 for the saved argument count. Required for &rest list generation.
        (push :raw layout))
      (let ((debug-layout '()))
        (loop
           for entry in layout
           for slot from 0
  
negative.code:                           (not (getf (sys.c:lexical-variable-plist ast)
                                       'sys.c::hide-from-debug-info)))
                  do (push (list (sys.c::lexical-variable-name ast) slot) debug-layout))))
        (when (sys.c:lambda-information-environment-layout
               (mezzano.compiler.backend::ast backend-function))
          (setf environment-slot
                (position-if (lambda (x)
                               (and (listp x)
                                    (member (first (sys.c:lambda-information-environment-layout
                                                    (mezzano.compiler.backend::ast backend-function)))
                                            x
                                            :key #'bind-local-ast)))
                             layout)))
        (values (make-array (length layout)
                            :adjustable t
                            :fill-pointer t
                            :initial-contents layout)
                debug-layout
                environment-slot))))
  
  (defun allocate-stack-slots (count &key (livep t) aligned)
    (assert (not *current-frame-layout*) ()
  