Raymond Toy pushed to branch issue-276-xoroshiro128starstar at cmucl / cmucl

Commits:

2 changed files:

Changes:

  • src/code/rand-xoroshiro.lisp
    ... ... @@ -535,7 +535,7 @@
    535 535
     	      x0)))
    
    536 536
           (setf (aref state 0) (convert s0-1 s0-0))
    
    537 537
           (setf (aref state 1) (convert s1-1 s1-0)))
    
    538
    -    rng-state))
    
    538
    +      rng-state))
    
    539 539
     
    
    540 540
     #+x86
    
    541 541
     (defun random-state-jump (&optional (rng-state *random-state*))
    

  • src/compiler/x86/arith.lisp
    ... ... @@ -1720,10 +1720,10 @@
    1720 1720
     
    
    1721 1721
         ;; s0 = state[0]
    
    1722 1722
         (inst movsd s0 (make-ea :dword :base state
    
    1723
    -                                   :disp (- (+ (* vm:vector-data-offset
    
    1724
    -					          vm:word-bytes)
    
    1725
    -				               (* 8 0))
    
    1726
    -				            vm:other-pointer-type)))
    
    1723
    +                            :disp (- (+ (* vm:vector-data-offset
    
    1724
    +					   vm:word-bytes)
    
    1725
    +				        (* 8 0))
    
    1726
    +				     vm:other-pointer-type)))
    
    1727 1727
         ;; t0 = s0 * 5 = s0 << 2 + s0
    
    1728 1728
         (inst movapd t0 s0)                 ; t0 = s0
    
    1729 1729
         (inst psllq t0 2)                   ; t0 = t0 << 2 = 4*t0
    
    ... ... @@ -1750,10 +1750,10 @@
    1750 1750
     
    
    1751 1751
         ;; s1 = state[1]
    
    1752 1752
         (inst movsd s1 (make-ea :dword :base state
    
    1753
    -			           :disp (- (+ (* vm:vector-data-offset
    
    1754
    -					          vm:word-bytes)
    
    1755
    -				               (* 8 1))
    
    1756
    -				            vm:other-pointer-type)))
    
    1753
    +			    :disp (- (+ (* vm:vector-data-offset
    
    1754
    +					   vm:word-bytes)
    
    1755
    +				        (* 8 1))
    
    1756
    +				     vm:other-pointer-type)))
    
    1757 1757
         (inst xorpd s1 s0)                  ; s1 = s1 ^ s0
    
    1758 1758
     
    
    1759 1759
         ;; s0 can now be reused as a temp.
    
    ... ... @@ -1773,10 +1773,10 @@
    1773 1773
     
    
    1774 1774
         ;; Save s0 to state[0]
    
    1775 1775
         (inst movsd (make-ea :dword :base state
    
    1776
    -			        :disp (- (+ (* vm:vector-data-offset
    
    1777
    -					       vm:word-bytes)
    
    1778
    -				            (* 8 0))
    
    1779
    -				         vm:other-pointer-type))
    
    1776
    +			 :disp (- (+ (* vm:vector-data-offset
    
    1777
    +					vm:word-bytes)
    
    1778
    +				     (* 8 0))
    
    1779
    +				  vm:other-pointer-type))
    
    1780 1780
               s0)
    
    1781 1781
     
    
    1782 1782
         ;; s1 = rotl(s1, 37)
    
    ... ... @@ -1787,9 +1787,9 @@
    1787 1787
     
    
    1788 1788
         ;; Save s1 to state[1]
    
    1789 1789
         (inst movsd (make-ea :dword :base state
    
    1790
    -			        :disp (- (+ (* vm:vector-data-offset
    
    1791
    -					       vm:word-bytes)
    
    1792
    -				            (* 8 1))
    
    1793
    -				         vm:other-pointer-type))
    
    1790
    +			 :disp (- (+ (* vm:vector-data-offset
    
    1791
    +					vm:word-bytes)
    
    1792
    +				     (* 8 1))
    
    1793
    +				  vm:other-pointer-type))
    
    1794 1794
               s1)))
    
    1795 1795
     )