X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir2opt.lisp;h=8fef8ec4e1b18362c7cc8afef13147a424cd43ae;hb=0f3a5f2e8886d18d0b4f6485c38a42be629422ae;hp=b66498080d2c8f29b68a2de8dbea423e38536fa1;hpb=ec8285d7300b102aa2644ca9877088f0b224405a;p=sbcl.git diff --git a/src/compiler/ir2opt.lisp b/src/compiler/ir2opt.lisp index b664980..8fef8ec 100644 --- a/src/compiler/ir2opt.lisp +++ b/src/compiler/ir2opt.lisp @@ -128,13 +128,11 @@ (delete-vop vop) (flet ((load-and-coerce (dst src) (when (and dst (neq dst src)) - (let ((end (ir2-block-last-vop 2block)) - (move (template-or-lose 'move))) - (multiple-value-bind (first last) - (funcall (template-emit-function move) node 2block - move (reference-tn src nil) - (reference-tn dst t)) - (insert-vop-sequence first last 2block end)))))) + (emit-and-insert-vop node 2block + (template-or-lose 'move) + (reference-tn src nil) + (reference-tn dst t) + (ir2-block-last-vop 2block))))) (load-and-coerce arg-if value-if) (load-and-coerce arg-else value-else)) (emit-template node 2block (template-or-lose cmove-vop)