Changeset 13317 for branches/newrandom/level0/X86/x86numbers.lisp
 Timestamp:
 Dec 22, 2009, 12:08:00 AM (10 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

branches/newrandom/level0/X86/x86numbers.lisp
r13067 r13317 190 190 (singlevaluereturn))) 191 191 192 192 (defx86lapfunction %mrg31k3p ((state arg_z)) 193 (let ((seed temp0) 194 (m1 #x7fffffff) 195 (m2 #x7fffadb3) 196 (negativem1 #x80000001) 197 (negativem2 #x8000524d)) 198 (svref state 1 seed) 199 (movl (@ (+ x8664::miscdataoffset (* 4 1)) (% seed)) (% imm0.l)) 200 (andl ($ #x1ff) (% imm0.l)) 201 (shll ($ 22) (% imm0.l)) 202 (movl (@ (+ x8664::miscdataoffset (* 4 1)) (% seed)) (% imm1.l)) 203 (shrl ($ 9) (% imm1.l)) 204 (addl (% imm1.l) (% imm0.l)) 205 206 (movl (@ (+ x8664::miscdataoffset (* 4 2)) (% seed)) (% imm1.l)) 207 (andl ($ #xffffff) (% imm1.l)) 208 (shll ($ 7) (% imm1.l)) 209 (addl (% imm1.l) (% imm0.l)) 210 (movl (@ (+ x8664::miscdataoffset (* 4 2)) (% seed)) (% imm1.l)) 211 (shrl ($ 24) (% imm1.l)) 212 213 (addl (% imm1.l) (% imm0.l)) 214 (leal (@ negativem1 (% imm0.l)) (% imm1.l)) 215 (cmpl ($ m1) (% imm0.l)) 216 (cmovael (% imm1.l) (% imm0.l)) 217 218 (addl (@ (+ x8664::miscdataoffset (* 4 2)) (% seed)) (% imm0.l)) 219 (leal (@ negativem1 (% imm0.l)) (% imm1.l)) 220 (cmpl ($ m1) (% imm0.l)) 221 (cmovael (% imm1.l) (% imm0.l)) 222 223 ;; update state 224 (movl (@ (+ x8664::miscdataoffset (* 4 1)) (% seed)) (% imm1.l)) 225 (movl (% imm1.l) (@ (+ x8664::miscdataoffset (* 4 2)) (% seed))) 226 (movl (@ (+ x8664::miscdataoffset (* 4 0)) (% seed)) (% imm1.l)) 227 (movl (% imm1.l) (@ (+ x8664::miscdataoffset (* 4 1)) (% seed))) 228 (movl (% imm0.l) (@ (+ x8664::miscdataoffset (* 4 0)) (% seed))) 229 230 ;; second component 231 (movl (@ (+ x8664::miscdataoffset (* 4 3)) (% seed)) (% imm0.l)) 232 (andl ($ #xffff) (% imm0.l)) 233 (shll ($ 15) (% imm0.l)) 234 (movl (@ (+ x8664::miscdataoffset (* 4 3)) (% seed)) (% imm1.l)) 235 (shrl ($ 16) (% imm1.l)) 236 (imull ($ 21069) (% imm1.l) (% imm1.l)) 237 238 (addl (% imm1.l) (% imm0.l)) 239 (leal (@ negativem2 (% imm0.l)) (% imm1.l)) 240 (cmpl ($ m2) (% imm0.l)) 241 (cmovael (% imm1.l) (% imm0.l)) 242 243 (movl (% imm0.l) (% imm2.l)) ;stash t1 244 245 (movl (@ (+ x8664::miscdataoffset (* 4 5)) (% seed)) (% imm0.l)) 246 (andl ($ #xffff) (% imm0.l)) 247 (shll ($ 15) (% imm0.l)) 248 (movl (@ (+ x8664::miscdataoffset (* 4 5)) (% seed)) (% imm1.l)) 249 (shrl ($ 16) (% imm1.l)) 250 (imull ($ 21069) (% imm1.l) (% imm1.l)) 251 252 (addl (% imm1.l) (% imm0.l)) 253 (leal (@ negativem2 (% imm0.l)) (% imm1.l)) 254 (cmpl ($ m2) (% imm0.l)) 255 (cmovael (% imm1.l) (% imm0.l)) 256 257 (addl (@ (+ x8664::miscdataoffset (* 4 5)) (% seed)) (% imm0.l)) 258 (leal (@ negativem2 (% imm0.l)) (% imm1.l)) 259 (cmpl ($ m2) (% imm0.l)) 260 (cmovael (% imm1.l) (% imm0.l)) 261 262 (addl (% imm2.l) (% imm0.l)) ;add in t1 263 (leal (@ negativem2 (% imm0.l)) (% imm1.l)) 264 (cmpl ($ m2) (% imm0.l)) 265 (cmovael (% imm1.l) (% imm0.l)) 266 267 ;; update state 268 (movl (@ (+ x8664::miscdataoffset (* 4 4)) (% seed)) (% imm1.l)) 269 (movl (% imm1.l) (@ (+ x8664::miscdataoffset (* 4 5)) (% seed))) 270 (movl (@ (+ x8664::miscdataoffset (* 4 3)) (% seed)) (% imm1.l)) 271 (movl (% imm1.l) (@ (+ x8664::miscdataoffset (* 4 4)) (% seed))) 272 (movl (% imm0.l) (@ (+ x8664::miscdataoffset (* 4 3)) (% seed))) 273 274 ;; combination 275 (movl (@ (+ x8664::miscdataoffset (* 4 0)) (% seed)) (% imm1.l)) 276 (xchgl (% imm1.l) (% imm0.l)) ;for sanity 277 (rcmpl (% imm0.l) (% imm1.l)) 278 (ja @ok) 279 (subl (% imm1.l) (% imm0.l)) 280 (addl ($ m1) (% imm0.l)) 281 (boxfixnum imm0 arg_z) 282 (singlevaluereturn) 283 @ok 284 (subl (% imm1.l) (% imm0.l)) 285 (boxfixnum imm0 arg_z) 286 (singlevaluereturn))) 193 287 194 288 ;;; End of x86numbers.lisp
Note: See TracChangeset
for help on using the changeset viewer.