cmp: unwind-cjump: avoid recursive call to unwind-exit

Previously our call for conditional jumps worked like:

  unwind-exit -> unwind-cjump -> unwind-exit -> unwind-{label,exit}

The roundtrip to unwind-exit makes tracking invocations harder. The new
invocation chain is:

  unwind-exit -> unwind-cjump -> unwind-{label,exit}
This commit is contained in:
Daniel Kochmański 2023-11-27 11:32:59 +01:00
parent b9605fd3e4
commit bc01ff1a3c

View file

@ -212,7 +212,9 @@
(unwind-jump label)))
(unless (and constantp (not (null value)))
(let ((*destination* 'TRASH))
(unwind-exit *vv-nil*))))
(if (labelp *exit*)
(unwind-label *vv-nil*)
(unwind-leave *vv-nil*)))))
(JUMP-FALSE
(cond ((not constantp)
(case (loc-representation-type loc)
@ -224,4 +226,6 @@
(unwind-jump label)))
(unless (and constantp (null value))
(let ((*destination* 'TRASH))
(unwind-exit *vv-t*))))))))
(if (labelp *exit*)
(unwind-label *vv-t*)
(unwind-leave *vv-t*)))))))))