Diff for /gforth/prim between versions 1.198 and 1.199

version 1.198, 2006/10/22 16:54:00 version 1.199, 2006/10/22 20:45:34
Line 844  if (FLOORED_DIV && ((n1^n2) < 0) && n3!= Line 844  if (FLOORED_DIV && ((n1^n2) < 0) && n3!=
   
 */mod   ( n1 n2 n3 -- n4 n5 )   core    star_slash_mod  */mod   ( n1 n2 n3 -- n4 n5 )   core    star_slash_mod
 ""n1*n2=n3*n5+n4, with the intermediate result (n1*n2) being double.""  ""n1*n2=n3*n5+n4, with the intermediate result (n1*n2) being double.""
 DCell d5;  
 #ifdef BUGGY_LL_MUL  #ifdef BUGGY_LL_MUL
 DCell d = mmul(n1,n2);  DCell d = mmul(n1,n2);
 #else  #else
Line 856  n4=DHI(r); Line 855  n4=DHI(r);
 n5=DLO(r);  n5=DLO(r);
 #else  #else
 /* assumes that the processor uses either floored or symmetric division */  /* assumes that the processor uses either floored or symmetric division */
 d5 = d/n3;  DCell d5 = d/n3;
 n4 = d%n3;  n4 = d%n3;
 if (CHECK_DIVISION && n3 == 0)  if (CHECK_DIVISION && n3 == 0)
   throw(BALL_DIVZERO);    throw(BALL_DIVZERO);
Line 873  if (d5 != n5) Line 872  if (d5 != n5)
   
 */      ( n1 n2 n3 -- n4 )      core    star_slash  */      ( n1 n2 n3 -- n4 )      core    star_slash
 ""n4=(n1*n2)/n3, with the intermediate result being double.""  ""n4=(n1*n2)/n3, with the intermediate result being double.""
 DCell d4;  
 #ifdef BUGGY_LL_MUL  #ifdef BUGGY_LL_MUL
 DCell d = mmul(n1,n2);  DCell d = mmul(n1,n2);
 #else  #else
Line 884  DCell r = fmdiv(d,n3); Line 882  DCell r = fmdiv(d,n3);
 n4=DLO(r);  n4=DLO(r);
 #else  #else
 /* assumes that the processor uses either floored or symmetric division */  /* assumes that the processor uses either floored or symmetric division */
 d4 = d/n3;  DCell d4 = d/n3;
 if (CHECK_DIVISION && n3 == 0)  if (CHECK_DIVISION && n3 == 0)
   throw(BALL_DIVZERO);    throw(BALL_DIVZERO);
 if (FLOORED_DIV && ((DHI(d)^n3)<0) && (d%n3)!=0)  if (FLOORED_DIV && ((DHI(d)^n3)<0) && (d%n3)!=0)

Removed from v.1.198  
changed lines
  Added in v.1.199


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