Ticket #1046 (closed defect: fixed)
stack discipline and speculative PUSHes.
| Reported by: | gb | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Compiler | Version: | trunk |
| Keywords: | Cc: |
Description
See http://clozure.com/pipermail/openmcl-devel/2013-January/013968.html
Given
(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)))
calling
(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.
Change History
Note: See
TracTickets for help on using
tickets.
