Changeset 5584
- Timestamp:
- Dec 4, 2006, 8:24:26 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-0/l0-bignum64.lisp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-0/l0-bignum64.lisp
r5431 r5584 1850 1850 (v-trailing-0-digits (ash v-trailing-0-bits -5))) 1851 1851 (declare (fixnum u-trailing-0-bits v-trailing-0-bits)) 1852 (unless (zerop u-trailing-0- digits)1852 (unless (zerop u-trailing-0-bits) 1853 1853 (bignum-shift-right-loop-1 1854 1854 (logand u-trailing-0-bits 31) … … 1904 1904 u-trailing-0-digits 1905 1905 (ash u-trailing-0-bits -5)) 1906 (%init-misc 0 u2) 1907 (bignum-shift-right-loop-1 1908 (logand u-trailing-0-bits 31) 1909 u2 1910 u 1911 (the fixnum (1- (the fixnum (- u-len 1912 u-trailing-0-digits)))) 1913 u-trailing-0-digits) 1914 (rotatef u u2) 1915 (%mostly-normalize-bignum-macro u) 1916 (setq u-len (%bignum-length u))) 1906 (unless (zerop u-trailing-0-bits) 1907 (%init-misc 0 u2) 1908 (bignum-shift-right-loop-1 1909 (logand u-trailing-0-bits 31) 1910 u2 1911 u 1912 (the fixnum (1- (the fixnum (- u-len 1913 u-trailing-0-digits)))) 1914 u-trailing-0-digits) 1915 (rotatef u u2) 1916 (%mostly-normalize-bignum-macro u) 1917 (setq u-len (%bignum-length u)))) 1917 1918 (t ; (> v u) 1918 1919 (bignum-subtract-loop v v-len u u-len v) … … 1923 1924 v-trailing-0-digits 1924 1925 (ash v-trailing-0-bits -5)) 1925 (%init-misc 0 v2) 1926 (bignum-shift-right-loop-1 1927 (logand v-trailing-0-bits 31) 1928 v2 1929 v 1930 (the fixnum (1- (the fixnum (- v-len v-trailing-0-digits)))) 1931 v-trailing-0-digits) 1932 (rotatef v v2) 1933 (%mostly-normalize-bignum-macro v) 1934 (setq v-len (%bignum-length v))))))))))) 1926 (unless (zerop v-trailing-0-bits) 1927 (%init-misc 0 v2) 1928 (bignum-shift-right-loop-1 1929 (logand v-trailing-0-bits 31) 1930 v2 1931 v 1932 (the fixnum (1- (the fixnum (- v-len v-trailing-0-digits)))) 1933 v-trailing-0-digits) 1934 (rotatef v v2) 1935 (%mostly-normalize-bignum-macro v) 1936 (setq v-len (%bignum-length v)))))))))))) 1935 1937 1936 1938 (defun %bignum-bignum-gcd (u v) … … 1939 1941 1940 1942 1941 ;;; nbits can't be zero here.1942 1943 (defun bignum-shift-right-loop-1 (nbits result source len idx) 1943 1944 (declare (type bignum-type result source) 1944 1945 (type (mod 32) nbits) 1945 1946 (type bignum-index idx len)) 1946 (let* ((rbits ( logand 31 (the (mod 32) (- 32 nbits)))))1947 (declare (type (mod 3 2) rbits))1947 (let* ((rbits (- 32 nbits))) 1948 (declare (type (mod 33) rbits)) 1948 1949 (dotimes (j len) 1949 1950 (let* ((x (bignum-ref source idx)))
Note:
See TracChangeset
for help on using the changeset viewer.
