version 1.262, 2011/12/02 22:06:13
|
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 2555 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 2563 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 |
|
|