picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

commit fdddeb6a96fcbe55d05ba6e1eef41a8ec5c18d32
parent 033b424031b01c59fe59052112cd7228c27485f0
Author: Alexander Burger <abu@software-lab.de>
Date:   Fri, 22 Apr 2011 15:55:34 +0200

Handle 'Seed' in registers
Diffstat:
Msrc64/big.l | 18+++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src64/big.l b/src64/big.l @@ -1,4 +1,4 @@ -# 03mar11abu +# 22apr11abu # (c) Software Lab. Alexander Burger ### Destructive primitives ### @@ -2964,7 +2964,10 @@ mul E # times 'Seed' add D 1 # plus 1 ld (Seed) D # Save - ld E (Seed 4) # Get high halfword + shl C 32 # Get middle 64 bits + shr A 32 + or A C + ld E A off E 7 # Keep sign or E CNT # Make short number ret @@ -2981,9 +2984,12 @@ ld (Seed) D # Save ld E (Y) eval # Eval first arg - cmp E Nil # Any + cmp E Nil # Any? if eq # No - ld E (Seed 4) # Get high halfword + shl C 32 # Get middle 64 bits + shr A 32 + or A C + ld E A off E 7 # Keep sign or E CNT # Make short number pop Y @@ -3007,7 +3013,9 @@ call evCntXY_FE # Get cnt2 inc E # Seed % (cnt2 + 1 - cnt1) + cnt1 sub E (S) - ld A (Seed 4) # Get high halfword + shl C 32 # Get middle 64 bits + shr A 32 + or A C ld C 0 div E # Modulus in C pop E # + cnt1