Changeset 15650
- Timestamp:
- Feb 2, 2013, 9:34:46 PM (8 years ago)
- Location:
- release/1.9/source
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
release/1.9/source/level-0/l0-numbers.lisp
r15560 r15650 1181 1181 (bignum (if (eq number target::target-most-negative-fixnum) 1182 1182 (with-small-bignum-buffers ((bn number)) 1183 (bignum-truncate bn divisor)) 1183 (multiple-value-bind (q r) (bignum-truncate bn divisor) 1184 (if (eq r bn) 1185 (values q number) 1186 (values q r)))) 1184 1187 (values 0 number))) 1185 1188 (double-float (truncate-rat-dfloat number divisor)) … … 1557 1560 (number-case divisor 1558 1561 (fixnum (nth-value 1 (%fixnum-truncate number divisor))) 1559 (bignum number) 1562 (bignum 1563 (if (and (eql number target::target-most-negative-fixnum) 1564 (eql divisor (- target::target-most-negative-fixnum))) 1565 0 1566 number)) 1560 1567 (t (nth-value 1 (truncate number divisor))))) 1561 1568 (bignum -
release/1.9/source/level-1/l1-numbers.lisp
r15628 r15650 762 762 (with-stack-double-floats ((temp)) 763 763 #+arm-target (%set-fpscr-status 0) 764 #+linux-target765 (progn766 (%get-errno) ;clear errno767 (#_feclearexcept #$FE_ALL_EXCEPT))768 764 #-freebsdx8632-target 769 765 (%setf-double-float TEMP (#_exp n)) … … 772 768 (%df-check-exception-1 'exp n (%ffi-exception-status)) 773 769 #+linux-target 774 (and ( eql (- #$ERANGE) (%get-errno))775 ( #_fetestexcept #$FE_OVERFLOW)770 (and (infinity-p TEMP) 771 (not (infinity-p n)) 776 772 (get-fpu-mode :overflow) 777 773 (error 'floating-point-overflow … … 785 781 (target::with-stack-short-floats ((temp)) 786 782 #+arm-target (%set-fpscr-status 0) 787 #+linux-target788 (progn789 (%get-errno) ;clear errno790 (#_feclearexcept #$FE_ALL_EXCEPT))791 783 #-freebsdx8632-target 792 784 (%setf-short-float TEMP (#_expf n)) … … 795 787 (%sf-check-exception-1 'exp n (%ffi-exception-status)) 796 788 #+linux-target 797 (and ( eql (- #$ERANGE) (%get-errno))798 ( #_fetestexcept #$FE_OVERFLOW)789 (and (infinity-p TEMP) 790 (not (infinity-p n)) 799 791 (get-fpu-mode :overflow) 800 792 (error 'floating-point-overflow … … 814 806 (defun %single-float-exp (n) 815 807 (declare (single-float n)) 816 #+linux-target817 (progn818 (%get-errno) ;clear errno819 (#_feclearexcept #$FE_ALL_EXCEPT))820 808 (let* ((result (#_expf n))) 821 809 (%sf-check-exception-1 'exp n (%ffi-exception-status)) 822 810 #+linux-target 823 (and ( eql (- #$ERANGE) (%get-errno))824 ( #_fetestexcept #$FE_OVERFLOW)811 (and (infinity-p result) 812 (not (infinity-p n)) 825 813 (get-fpu-mode :overflow) 826 814 (error 'floating-point-overflow
Note: See TracChangeset
for help on using the changeset viewer.