Diff for /gforth/prim between versions 1.253 and 1.254

version 1.253, 2010/08/20 20:17:28 version 1.254, 2010/08/21 19:08:46
Line 2504  c_addr[1] = w >> 16; Line 2504  c_addr[1] = w >> 16;

be-x! ( w c_addr -- )   gforth x_store_be
""Store the bottom 64 bits of @i{w} at @i{c_addr} in big endian format.""

le-w! ( w c_addr -- )   gforth w_store_le  le-w! ( w c_addr -- )   gforth w_store_le
""Store the bottom 16 bits of @i{w} at @i{c_addr} in big endian format.""  ""Store the bottom 16 bits of @i{w} at @i{c_addr} in big endian format.""
Line 2527  c_addr[2] = w >> 16; Line 2516  c_addr[2] = w >> 16;

le-x! ( w c_addr -- )   gforth x_store_le  be-uw@ ( c_addr -- u )  gforth w_fetch_be
""@i{u} is the zero-extended 16-bit big endian value stored at @i{c_addr}.""

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}.""

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}.""

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}.""

\+64bit

x! ( w c_addr -- )      gforth x_store
""Store the bottom 64 bits of @i{w} at 64-bit-aligned @i{c_addr}.""

ux@ ( c_addr -- u )     gforth u_x_fetch
""@i{u} is the zero-extended 64-bit value stored at 64-bit-aligned @i{c_addr}.""

sx@ ( c_addr -- n )     gforth s_x_fetch
""@i{u} is the sign-extended 64-bit value stored at 64-bit-aligned @i{c_addr}.""

be-x! ( w c_addr -- )   gforth b_e_x_store
""Store the bottom 64 bits of @i{w} at @i{c_addr} in big endian format.""

le-x! ( w c_addr -- )   gforth l_e_x_store
""Store the bottom 64 bits of @i{w} at @i{c_addr} in big endian format.""  ""Store the bottom 64 bits of @i{w} at @i{c_addr} in big endian format.""
Line 2538  c_addr[2] = w >> 16; Line 2568  c_addr[2] = w >> 16;

be-uw@ ( c_addr -- u )  gforth w_fetch_be  be-ux@ ( c_addr -- u )  gforth b_e_u_x_fetch
""@i{u} is the zero-extended 16-bit big endian value stored at @i{c_addr}.""

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}.""

be-ux@ ( c_addr -- u )  gforth x_fetch_be
""@i{u} is the zero-extended 64-bit big endian value stored at @i{c_addr}.""  ""@i{u} is the zero-extended 64-bit big endian value stored at @i{c_addr}.""
u = (((Cell)(c_addr[0]) << 56) |  u = (((Cell)(c_addr[0]) << 56) |
Line 2557  u = (((Cell)(c_addr[0]) << 56) | Line 2579  u = (((Cell)(c_addr[0]) << 56) |

le-uw@ ( c_addr -- u )  gforth w_fetch_le  le-ux@ ( c_addr -- u )  gforth l_e_u_x_fetch
""@i{u} is the zero-extended 16-bit little endian value stored at @i{c_addr}.""

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}.""

le-ux@ ( c_addr -- u )  gforth x_fetch_le
""@i{u} is the zero-extended 64-bit little endian value stored at @i{c_addr}.""  ""@i{u} is the zero-extended 64-bit little endian value stored at @i{c_addr}.""
u = (((Cell)(c_addr[7]) << 56) |  u = (((Cell)(c_addr[7]) << 56) |