summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2016-06-10 07:46:57 +0200
committerAndy Wingo <wingo@pobox.com>2016-06-10 07:46:57 +0200
commit58e508b5695e0a6baa09e046f9440a2b44959a3c (patch)
tree44c80c03fc3aa2e3c8e19c06c6b4dc350fac7de7
parent1a2ab83bcf9bbe330b767b906433e75e33ba3896 (diff)
downloadguile-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.scm14
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)