Changeset 8975


Ignore:
Timestamp:
Apr 1, 2008, 1:27:11 AM (11 years ago)
Author:
rme
Message:

%next-random-pair

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/level-0/X86/X8632/x8632-numbers.lisp

    r7998 r8975  
    128128  (single-value-return))
    129129
     130(defx8632lapfunction %next-random-pair ((high arg_y) (low arg_z))
     131  ;; high: (unsigned-byte 15)
     132  ;; low: (unsigned-byte 16)
     133  (unbox-fixnum low imm0)
     134  ;; clear most significant bit
     135  (shll ($ (1+ (- 16 x8632::fixnumshift))) (% high))
     136  (shrl ($ 1) (% high))
     137  (orl (% high) (% imm0))
     138  (mark-as-imm edx)
     139  (movl ($ 48271) (% edx))
     140  (mul (% edx))
     141  (mark-as-node edx)
     142  (movl ($ (- #x10000)) (% high))       ;#xffff0000
     143  (andl (% imm0) (% high))
     144  (shrl ($ (- 16 x8632::fixnumshift)) (% high))
     145  (shll ($ 16) (% imm0))
     146  (shrl ($ (- 16 x8632::fixnumshift)) (% imm0))
     147  (movl (% imm0) (% low))
     148  (movl (% esp) (% temp0))
     149  (push (% high))
     150  (push (% low))
     151  (set-nargs 2)
     152  (jmp-subprim .SPvalues))
     153       
    130154;;; n1 and n2 must be positive (esp non zero)
    131155(defx86lapfunction %fixnum-gcd ((boxed-u arg_y) (boxed-v arg_z))
Note: See TracChangeset for help on using the changeset viewer.