Revert "simplify comp-limplify-block"
This reverts commit 31861f63a4b57e69cdcd247e48567242a05bd58e.
This commit is contained in:
parent
10c6303d24
commit
283b0db31c
1 changed files with 15 additions and 1 deletions
|
@ -1075,10 +1075,24 @@ The block name is returned."
|
|||
(setf (comp-limplify-pc comp-pass) (comp-block-addr bb))
|
||||
(puthash (comp-block-name bb) bb (comp-func-blocks comp-func))
|
||||
(cl-loop
|
||||
for inst in (nthcdr (comp-limplify-pc comp-pass)
|
||||
for inst-cell on (nthcdr (comp-limplify-pc comp-pass)
|
||||
(comp-func-lap comp-func))
|
||||
for inst = (car inst-cell)
|
||||
for next-inst = (car-safe (cdr inst-cell))
|
||||
do (comp-limplify-lap-inst inst)
|
||||
(cl-incf (comp-limplify-pc comp-pass))
|
||||
when (comp-lap-fall-through-p inst)
|
||||
do (pcase next-inst
|
||||
(`(TAG ,_label . ,label-sp)
|
||||
(when label-sp
|
||||
(cl-assert (= (1- label-sp) (comp-sp))))
|
||||
(let* ((stack-depth (if label-sp
|
||||
(1- label-sp)
|
||||
(comp-sp)))
|
||||
(next-bb (comp-add-pending-block stack-depth)))
|
||||
(unless (comp-block-closed bb)
|
||||
(comp-emit `(jump ,next-bb))))
|
||||
(cl-return)))
|
||||
until (comp-lap-eob-p inst)))
|
||||
|
||||
(defun comp-limplify-function (func)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue