Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ecl
ecl
Commits
1f57d7e2
Commit
1f57d7e2
authored
Mar 21, 2021
by
Marius Gerbershagen
Browse files
cmp: add type checks to boole compiler macro
parent
9391a2bf
Changes
1
Show whitespace changes
Inline
Side-by-side
src/cmp/cmpnum.lsp
View file @
1f57d7e2
...
...
@@ -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
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment