mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-25 14:10:22 +02:00
Add missing lsh/immediate, rsh/immediate type inferrers
* module/language/cps/types.scm (lsh/immediate, rsh/immediate): Add missing type inferrers.
This commit is contained in:
parent
e8226be0c0
commit
107f70a633
1 changed files with 12 additions and 0 deletions
|
@ -1324,6 +1324,12 @@ minimum, and maximum."
|
||||||
(&min/0 count)
|
(&min/0 count)
|
||||||
(&max/u64 count))))
|
(&max/u64 count))))
|
||||||
(define-exact-integer! result min max)))
|
(define-exact-integer! result min max)))
|
||||||
|
(define-type-inferrer/param (lsh/immediate count val result)
|
||||||
|
(restrict! val &exact-integer -inf.0 +inf.0)
|
||||||
|
(let-values (((min max) (compute-ash-range (&min val)
|
||||||
|
(&max val)
|
||||||
|
count count)))
|
||||||
|
(define-exact-integer! result min max)))
|
||||||
(define-type-inferrer (rsh val count result)
|
(define-type-inferrer (rsh val count result)
|
||||||
(restrict! val &exact-integer -inf.0 +inf.0)
|
(restrict! val &exact-integer -inf.0 +inf.0)
|
||||||
(let-values (((min max) (compute-ash-range (&min val)
|
(let-values (((min max) (compute-ash-range (&min val)
|
||||||
|
@ -1331,6 +1337,12 @@ minimum, and maximum."
|
||||||
(- (&min/0 count))
|
(- (&min/0 count))
|
||||||
(- (&max/u64 count)))))
|
(- (&max/u64 count)))))
|
||||||
(define-exact-integer! result min max)))
|
(define-exact-integer! result min max)))
|
||||||
|
(define-type-inferrer/param (rsh/immediate count val result)
|
||||||
|
(restrict! val &exact-integer -inf.0 +inf.0)
|
||||||
|
(let-values (((min max) (compute-ash-range (&min val)
|
||||||
|
(&max val)
|
||||||
|
(- count) (- count))))
|
||||||
|
(define-exact-integer! result min max)))
|
||||||
|
|
||||||
(define-simple-type-checker (ursh &u64 &u64))
|
(define-simple-type-checker (ursh &u64 &u64))
|
||||||
(define-type-inferrer (ursh a b result)
|
(define-type-inferrer (ursh a b result)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue