X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmips%2Fpred.lisp;h=7bd7c16f99c5e024275ffc3e9cffae30d5cf02c7;hb=f6b2e375747a54a1bfa34ead9f9af2d4e8b5aa38;hp=2d9a9c215e2f68d241661344a3dbf84b13568e8b;hpb=4ae1b794a5d6a90794468cf8017f5307f2c30dfe;p=sbcl.git diff --git a/src/compiler/mips/pred.lisp b/src/compiler/mips/pred.lisp index 2d9a9c2..7bd7c16 100644 --- a/src/compiler/mips/pred.lisp +++ b/src/compiler/mips/pred.lisp @@ -13,19 +13,36 @@ (inst nop))) +;;;; 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) (:info target not-p) (:policy :fast-safe) (:translate eq) (:generator 3 (if not-p - (inst bne x y target) - (inst beq x y target)) + (inst bne x y target) + (inst beq x y target)) (inst nop)))