X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Falpha%2Fpred.lisp;h=fe67c2767040165abdcc281b94a9972567195b72;hb=69e6aef5e6fb3bd682c7a2cbf774034d2ea58ee8;hp=d8296b755a9799936864149f6ffae808f2ba9933;hpb=63fcb94b875a97e468d9add229e220ecceec2352;p=sbcl.git diff --git a/src/compiler/alpha/pred.lisp b/src/compiler/alpha/pred.lisp index d8296b7..fe67c27 100644 --- a/src/compiler/alpha/pred.lisp +++ b/src/compiler/alpha/pred.lisp @@ -20,12 +20,29 @@ (:info dest) (:generator 5 (inst br zero-tn dest))) + + +;;;; Generic conditional VOPs + +;;; The generic conditional branch, emitted immediately after test +;;; VOPs that only set flags. + +(define-vop (branch-if) + (:info dest flags not-p) + (:ignore dest flags not-p) + (:generator 0 + (error "BRANCH-IF not yet implemented"))) + +(defun convert-conditional-move-p (node dst-tn x-tn y-tn) + (declare (ignore node dst-tn x-tn y-tn)) + nil) + ;;;; conditional VOPs (define-vop (if-eq) (:args (x :scs (any-reg descriptor-reg zero null)) - (y :scs (any-reg descriptor-reg zero null))) + (y :scs (any-reg descriptor-reg zero null))) (:conditional) (:temporary (:scs (non-descriptor-reg)) temp) (:info target not-p) @@ -34,5 +51,5 @@ (:generator 3 (inst cmpeq x y temp) (if not-p - (inst beq temp target) - (inst bne temp target)))) + (inst beq temp target) + (inst bne temp target))))