mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-26 06:22:33 -08:00
cmp: add type checks to boole compiler macro
This commit is contained in:
parent
9391a2bf67
commit
1f57d7e20a
1 changed files with 6 additions and 6 deletions
|
|
@ -23,12 +23,12 @@
|
|||
(define-compiler-macro boole (&whole form op-code op1 op2)
|
||||
(or (and (constantp op-code *cmp-env*)
|
||||
(case (ext:constant-form-value op-code *cmp-env*)
|
||||
(#. boole-clr `(progn ,op1 ,op2 0))
|
||||
(#. boole-set `(progn ,op1 ,op2 -1))
|
||||
(#. boole-1 `(prog1 ,op1 ,op2))
|
||||
(#. boole-2 `(progn ,op1 ,op2))
|
||||
(#. boole-c1 `(prog1 (lognot ,op1) ,op2))
|
||||
(#. boole-c2 `(progn ,op1 (lognot ,op2)))
|
||||
(#. boole-clr `(progn (checked-value integer ,op1) (checked-value integer ,op2) 0))
|
||||
(#. boole-set `(progn (checked-value integer ,op1) (checked-value integer ,op2) -1))
|
||||
(#. boole-1 `(prog1 (checked-value integer ,op1) (checked-value integer ,op2)))
|
||||
(#. boole-2 `(progn (checked-value integer ,op1) (checked-value integer ,op2)))
|
||||
(#. boole-c1 `(prog1 (lognot ,op1) (checked-value integer ,op2)))
|
||||
(#. boole-c2 `(progn (checked-value integer ,op1) (lognot ,op2)))
|
||||
(#. boole-and `(logand ,op1 ,op2))
|
||||
(#. boole-ior `(logior ,op1 ,op2))
|
||||
(#. boole-xor `(logxor ,op1 ,op2))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue