0.9.2.43:
[sbcl/lichteblau.git] / src / compiler / alpha / pred.lisp
blob88e5fa7d6274f60bdcbfc9bcd1484ad1303303a5
1 ;;;; the VM definition of predicate VOPs for the Alpha
3 ;;;; This software is part of the SBCL system. See the README file for
4 ;;;; more information.
5 ;;;;
6 ;;;; This software is derived from the CMU CL system, which was
7 ;;;; written at Carnegie Mellon University and released into the
8 ;;;; public domain. The software is in the public domain and is
9 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
10 ;;;; files for more information.
12 (in-package "SB!VM")
14 ;;;; the Branch VOP
16 ;;; The unconditional branch, emitted when we can't drop through to
17 ;;; the desired destination. Dest is the continuation we transfer
18 ;;; control to.
19 (define-vop (branch)
20 (:info dest)
21 (:generator 5
22 (inst br zero-tn dest)))
24 ;;;; conditional VOPs
26 (define-vop (if-eq)
27 (:args (x :scs (any-reg descriptor-reg zero null))
28 (y :scs (any-reg descriptor-reg zero null)))
29 (:conditional)
30 (:temporary (:scs (non-descriptor-reg)) temp)
31 (:info target not-p)
32 (:policy :fast-safe)
33 (:translate eq)
34 (:generator 3
35 (inst cmpeq x y temp)
36 (if not-p
37 (inst beq temp target)
38 (inst bne temp target))))