diff options
author | Andy Wingo <wingo@pobox.com> | 2016-06-10 07:46:57 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2016-06-10 07:46:57 +0200 |
commit | 58e508b5695e0a6baa09e046f9440a2b44959a3c (patch) | |
tree | 44c80c03fc3aa2e3c8e19c06c6b4dc350fac7de7 | |
parent | 1a2ab83bcf9bbe330b767b906433e75e33ba3896 (diff) | |
download | guile-58e508b5695e0a6baa09e046f9440a2b44959a3c.tar.gz |
Type inference: Use &u64-max instead of #xffff...
* module/language/cps/types.scm: Use &u64-max where possible.
-rw-r--r-- | module/language/cps/types.scm | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/module/language/cps/types.scm b/module/language/cps/types.scm index 79568bd3e..633fef51b 100644 --- a/module/language/cps/types.scm +++ b/module/language/cps/types.scm @@ -742,9 +742,9 @@ minimum, and maximum." (define! result &flonum (&min f64) (&max f64))) (define-type-checker (scm->u64 scm) - (check-type scm &exact-integer 0 #xffffffffffffffff)) + (check-type scm &exact-integer 0 &u64-max)) (define-type-inferrer (scm->u64 scm result) - (restrict! scm &exact-integer 0 #xffffffffffffffff) + (restrict! scm &exact-integer 0 &u64-max) (define! result &u64 (&min/0 scm) (&max/u64 scm))) (define-type-aliases scm->u64 load-u64) @@ -1004,9 +1004,9 @@ minimum, and maximum." (define-type-inferrer (uadd a b result) ;; Handle wraparound. (let ((max (+ (&max/u64 a) (&max/u64 b)))) - (if (<= max #xffffffffffffffff) + (if (<= max &u64-max) (define! result &u64 (+ (&min/0 a) (&min/0 b)) max) - (define! result &u64 0 #xffffffffffffffff)))) + (define! result &u64 0 &u64-max)))) (define-type-aliases uadd uadd/immediate) (define-simple-type-checker (sub &number &number)) @@ -1025,7 +1025,7 @@ minimum, and maximum." ;; Handle wraparound. (let ((min (- (&min/0 a) (&max/u64 b)))) (if (< min 0) - (define! result &u64 0 #xffffffffffffffff) + (define! result &u64 0 &u64-max) (define! result &u64 min (- (&max/u64 a) (&min/0 b)))))) (define-type-aliases usub usub/immediate) @@ -1077,9 +1077,9 @@ minimum, and maximum." (define-type-inferrer (umul a b result) ;; Handle wraparound. (let ((max (* (&max/u64 a) (&max/u64 b)))) - (if (<= max #xffffffffffffffff) + (if (<= max &u64-max) (define! result &u64 (* (&min/0 a) (&min/0 b)) max) - (define! result &u64 0 #xffffffffffffffff)))) + (define! result &u64 0 &u64-max)))) (define-type-aliases umul umul/immediate) (define-type-checker (div a b) |