Diff for /gforth/prim between versions 1.261 and 1.265

version 1.261, 2011/12/02 21:59:09 version 1.265, 2012/02/21 21:34:10
Line 1 Line 1
 \ Gforth primitives  \ Gforth primitives
   
 \ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009,2010,2011 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 1103  lshift ( u1 n -- u2 )  core l_shift Line 1103  lshift ( u1 n -- u2 )  core l_shift
 :  :
     0 ?DO 2* LOOP ;      0 ?DO 2* LOOP ;
   
   umax    ( u1 u2 -- u )  core
   if (u1<u2)
     u = u2;
   else
     u = u1;
   :
    2dup u< IF swap THEN drop ;
   
   umin    ( u1 u2 -- u )  core
   if (u1<u2)
     u = u1;
   else
     u = u2;
   :
    2dup u> IF swap THEN drop ;
   
 \g compare  \g compare
   
 \ comparisons(prefix, args, prefix, arg1, arg2, wordsets...)  \ comparisons(prefix, args, prefix, arg1, arg2, wordsets...)
Line 2035  dsystem = DZERO; Line 2051  dsystem = DZERO;
   
 ntime   ( -- dtime )    gforth  ntime   ( -- dtime )    gforth
 ""Report the current time in nanoseconds since some epoch.""  ""Report the current time in nanoseconds since some epoch.""
 #ifdef HAVE_CLOCK_GETTIME  
 struct timespec time1;  struct timespec time1;
   #ifdef HAVE_CLOCK_GETTIME
 clock_gettime(CLOCK_REALTIME,&time1);  clock_gettime(CLOCK_REALTIME,&time1);
 dtime = timespec2ns(&time1);  
 #else  #else
 struct timeval time1;  struct timeval time2;
 gettimeofday(&time1,NULL);  gettimeofday(&time2,NULL);
 dtime = timeval2us(&time1) * 1000LL;  time1.tv_sec = time2.tv_sec;
   time1.tv_nsec = time2.tv_usec*1000;
 #endif  #endif
   dtime = timespec2ns(&time1);
   
 \+  \+
   
Line 2554  u = (c_addr[0] << 8) | (c_addr[1]); Line 2571  u = (c_addr[0] << 8) | (c_addr[1]);
   
 be-ul@ ( c_addr -- u )  gforth l_fetch_be  be-ul@ ( c_addr -- u )  gforth l_fetch_be
 ""@i{u} is the zero-extended 32-bit big endian value stored at @i{c_addr}.""  ""@i{u} is the zero-extended 32-bit big endian value stored at @i{c_addr}.""
 u = (c_addr[0] << 24) | (c_addr[1] << 16) | (c_addr[2] << 8) | (c_addr[3]);  u = ((Cell)c_addr[0] << 24) | (c_addr[1] << 16) | (c_addr[2] << 8) | (c_addr[3]);
   
 le-uw@ ( c_addr -- u )  gforth w_fetch_le  le-uw@ ( c_addr -- u )  gforth w_fetch_le
 ""@i{u} is the zero-extended 16-bit little endian value stored at @i{c_addr}.""  ""@i{u} is the zero-extended 16-bit little endian value stored at @i{c_addr}.""
Line 2562  u = (c_addr[1] << 8) | (c_addr[0]); Line 2579  u = (c_addr[1] << 8) | (c_addr[0]);
   
 le-ul@ ( c_addr -- u )  gforth l_fetch_le  le-ul@ ( c_addr -- u )  gforth l_fetch_le
 ""@i{u} is the zero-extended 32-bit little endian value stored at @i{c_addr}.""  ""@i{u} is the zero-extended 32-bit little endian value stored at @i{c_addr}.""
 u = (c_addr[3] << 24) | (c_addr[2] << 16) | (c_addr[1] << 8) | (c_addr[0]);  u = ((Cell)c_addr[3] << 24) | (c_addr[2] << 16) | (c_addr[1] << 8) | (c_addr[0]);
   
 \+64bit  \+64bit
   

Removed from v.1.261  
changed lines
  Added in v.1.265


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