Diff for /gforth/Attic/primitives between versions 1.52 and 1.53

version 1.52, 1996/02/13 11:12:18 version 1.53, 1996/02/26 16:52:46
Line 542  if (1%-3>0 && (d1<0) != (n1<0) && n2!=0) Line 542  if (1%-3>0 && (d1<0) != (n1<0) && n2!=0)
   n2+=n1;    n2+=n1;
 }  }
 #endif  #endif
   :
    dup >r dup 0< IF  negate >r dnegate r>  THEN
    over       0< IF  tuck + swap  THEN
    um/mod
    r> 0< IF  swap negate swap  THEN ;
   
 sm/rem  d1 n1 -- n2 n3          core            s_m_slash_rem  sm/rem  d1 n1 -- n2 n3          core            s_m_slash_rem
 ""symmetric division: d1 = n3*n1+n2, sign(n2)=sign(d1) or 0""  ""symmetric division: d1 = n3*n1+n2, sign(n2)=sign(d1) or 0""
Line 562  if (1%-3<0 && (d1<0) != (n1<0) && n2!=0) Line 567  if (1%-3<0 && (d1<0) != (n1<0) && n2!=0)
 :  :
  over >r dup >r abs -rot   over >r dup >r abs -rot
  dabs rot um/mod   dabs rot um/mod
  r> 0< IF       negate       THEN   r> r@ xor 0< IF       negate       THEN
  r> 0< IF  swap negate swap  THEN ;   r>        0< IF  swap negate swap  THEN ;
   
 m*      n1 n2 -- d              core    m_star  m*      n1 n2 -- d              core    m_star
 #ifdef BUGGY_LONG_LONG  #ifdef BUGGY_LONG_LONG
Line 595  u2 = ud%u1; Line 600  u2 = ud%u1;
 #endif  #endif
 :  :
   dup IF  0 (um/mod)  THEN  nip ;     dup IF  0 (um/mod)  THEN  nip ; 
 : (um/mod)  ( ud ud--ud u)  : (um/mod)  ( ud ud -- ud u )
   2dup >r >r  dup 0<     2dup >r >r  dup 0< 
   IF    2drop 0     IF    2drop 0 
   ELSE  2dup d+  (um/mod)  2*  THEN     ELSE  2dup d+  (um/mod)  2*  THEN 
Line 621  d.hi = d1.hi + d2.hi + (d.lo<d1.lo); Line 626  d.hi = d1.hi + d2.hi + (d.lo<d1.lo);
 d = d1+d2;  d = d1+d2;
 #endif  #endif
 :  :
  >r swap >r over 2/ over 2/ + >r over 1 and over 1 and + 2/   rot + >r tuck + swap over u> r> swap - ;
  r> + >r + r> 0< r> r> + swap - ;  
   
 d-      d1 d2 -- d              double          d_minus  d-      d1 d2 -- d              double          d_minus
 #ifdef BUGGY_LONG_LONG  #ifdef BUGGY_LONG_LONG

Removed from v.1.52  
changed lines
  Added in v.1.53


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>