Ticket #1046 (closed defect: fixed)
stack discipline and speculative PUSHes.
|Reported by:||gb||Owned by:|
(defun baz (A G H) (LABELS ((%F14 (x y z) (IF (OR (< -1 -2 (DOTIMES (I 0 (FLET ((%F11 (F11-1 F11-2 F11-3) 48)) -16)) (RETURN-FROM %F14 5))) nil) nil (COUNT (DPB (COUNT A '(16)) (BYTE 11 0) (RETURN-FROM %F14 1)) #(2))))) (%F14 1 0 0)))
(baz 1 2 3)
in the REPL on x8664 reports that (non-volatile) registers were clobbered in the call.
This worked correctly in earlier releases; it seems to have broken around the time that the x86 backend started trying to "elide" speculative push/pop pairs.