X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Falpha%2Fpred.lisp;h=d08b417a78c5bfcd82f7d37c92cdd019356a6a14;hb=5cf3c4259d529e180d75d4d140f344e600d2b06b;hp=d8296b755a9799936864149f6ffae808f2ba9933;hpb=63fcb94b875a97e468d9add229e220ecceec2352;p=sbcl.git diff --git a/src/compiler/alpha/pred.lisp b/src/compiler/alpha/pred.lisp index d8296b7..d08b417 100644 --- a/src/compiler/alpha/pred.lisp +++ b/src/compiler/alpha/pred.lisp @@ -20,12 +20,30 @@ (: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"))) + +(!def-vm-support-routine + 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 +52,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))))