### Diff for /gforth/prim between versions 1.276 and 1.278

version 1.276, 2012/08/20 23:10:34 version 1.278, 2012/09/18 15:21:08
Line 1109  if (u1<u2) Line 1109  if (u1<u2)
else  else
u = u1;    u = u1;
:  :
2dup u< IF swap THEN drop ;   2dup u> select ;

umin    ( u1 u2 -- u )  core  umin    ( u1 u2 -- u )  core
if (u1<u2)  if (u1<u2)
Line 1117  if (u1<u2) Line 1117  if (u1<u2)
else  else
u = u2;    u = u2;
:  :
2dup u> IF swap THEN drop ;   2dup u< select ;

mux   ( u1 u2 u3 -- u )    gforth
""multiplex @i{u1} for 1 bits in @i{u3}, @i{u2} for 0 bits in @i{u3} into @i{u}""
u = (u3 & u1) | (~u3 & u2);
:
tuck and >r invert and r> ;

select ( u1 u2 f -- u )    gforth
""select @i{u1} if @i{f} is true, @i{u2} if false.""
u = f ? u1 : u2;
:
IF swap THEN nip ;

\g compare  \g compare

:  :
dup 1+ swap c@ ;   dup 1+ swap c@ ;

cell/ ( n1 -- n2 )      gforth cell_divide
""@i{n2} is the number of cells that fit into @i{n1}""
n2 = n1 / sizeof(Cell);
:
[ cell
2/ dup [IF] ] 2/ [ [THEN]
2/ dup [IF] ] 2/ [ [THEN]
2/ dup [IF] ] 2/ [ [THEN]
2/ dup [IF] ] 2/ [ [THEN]
drop ] ;

\g compiler  \g compiler

Line 2475  if (flag) { Line 2498  if (flag) {
fp[0]=r;    fp[0]=r;
}  }

float/ ( n1 -- n2 )     gforth  float_divide
n2 = n1 / sizeof(Float);

dfloat/ ( n1 -- n2 )    gforth  sfloat_divide
n2 = n1 / sizeof(DFloat);

sfloat/ ( n1 -- n2 )    gforth  dfloat_divide
n2 = n1 / sizeof(SFloat);

\+  \+

\ The following words access machine/OS/installation-dependent  \ The following words access machine/OS/installation-dependent

 Removed from v.1.276 changed lines Added in v.1.278

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