Trailing-Edge
-
PDP-10 Archives
-
clisp
-
clisp/flavors/upsala/setbit.clisp
There are no other files named setbit.clisp in the archive.
(define-setf-method ldb (bytespec integer)
(multiple-value-bind (temps vals stores store-form access-form)
(get-setf-method integer)
(let ((btemp (gensym))
(store (gensym))
(stemp (first stores)))
(values (cons btemp temps)
(cons bytespec vals)
(list store)
`(let ((,stemp (dpb ,store ,btemp ,access-form)))
,store-form
,store)
`(ldb ,btemp ,access-form)))))
(define-setf-method logbitp (index integer)
(multiple-value-bind (temps vals stores store-form access-form)
(get-setf-method integer)
(let ((itemp (gensym))
(store (gensym))
(stemp (first stores)))
(values (cons itemp temps)
(cons index vals)
(list store)
`(let ((,stemp (dpb (if ,store 1 0)
(byte 1 ,itemp) ,access-form)))
,store-form
,store)
`(logbitp ,itemp ,access-form)))))