Test for broken copy-more-arg harder
[sbcl.git] / src / compiler / x86-64 / call.lisp
index c1fa08e..4c4fdab 100644 (file)
 
     ;; Allocate the space on the stack.
     ;; stack = rbp + sp->fp-offset - (max 3 frame-size) - (nargs - fixed)
-    ;; if we'd move SP backward, swap the meaning of rsp and source
+    ;; if we'd move SP backward, swap the meaning of rsp and source;
+    ;; otherwise, we'd be accessing values below SP, and that's no good
+    ;; if a signal interrupts this code sequence.  In that case, store
+    ;; the final value in rsp after the stack-stack memmove loop.
     (inst lea (if (<= fixed (max 3 (sb-allocated-size 'stack)))
                   rsp-tn
                   source)