--- gforth/prim 2001/03/18 22:20:27 1.80 +++ gforth/prim 2001/06/16 22:53:36 1.83 @@ -132,6 +132,8 @@ undefine(`index') undefine(`shift') undefine(`symbols') +\g control + noop ( -- ) gforth : ; @@ -409,6 +411,8 @@ k ( R:n R:d1 R:d2 -- n R:n R:d1 R:d2 ) \ digit is high-level: 0/0% +\g strings + move ( c_from c_to ucount -- ) core ""Copy the contents of @i{ucount} aus at @i{c-from} to @i{c-to}. @code{move} works correctly even if the two areas overlap."" @@ -518,6 +522,8 @@ u2 = u1-n; : tuck - >r + r> dup 0< IF - 0 THEN ; +\g arith + + ( n1 n2 -- n ) core plus n = n1+n2; @@ -915,6 +921,8 @@ f = FLAG(u1-u2 < u3-u2); : over - >r - r> u< ; +\g internal + sp@ ( -- a_addr ) gforth sp_fetch a_addr = sp+1; @@ -942,6 +950,8 @@ fp = f_addr; ""The primitive compiled by @code{EXIT}."" SET_IP((Xt *)w); +\g stack + >r ( w -- R:w ) core to_r : (>r) ; @@ -1381,6 +1391,8 @@ n=1; \f[THEN] +\g hostos + key-file ( wfileid -- n ) gforth paren_key_file #ifdef HAS_FILE fflush(stdout); @@ -1672,6 +1684,8 @@ else { \+ \+floating +\g floating + comparisons(f, r1 r2, f_, r1, r2, gforth, gforth, float, gforth) comparisons(f0, r, f_zero_, r, 0., float, gforth, float, gforth) @@ -2143,7 +2157,7 @@ Variable UP wcall ( u -- ) gforth IF_fpTOS(fp[0]=fpTOS); FP=fp; -sp=(SYSCALL(Cell(*)(Cell *, void *))u)(sp, &FP); +sp=(Cell*)(SYSCALL(Cell(*)(Cell *, void *))u)(sp, &FP); fp=FP; IF_spTOS(spTOS=sp[0];) IF_fpTOS(fpTOS=fp[0]); @@ -2353,6 +2367,8 @@ while(a_addr != NULL) \+peephole +\g peephole + primtable ( -- wprimtable ) new ""wprimtable is a table containing the xts of the primitives indexed by sequence-number in prim (for use in prepare-peephole-table)."" @@ -2369,8 +2385,6 @@ peephole-opt ( xt1 xt2 wpeeptable -- xt they cannot be combined, xt is 0."" xt = peephole_opt(xt1, xt2, wpeeptable); -lit_plus = lit + - call ( #a_callee -- R:a_retaddr ) ""Call callee (a variant of docol with inline argument)."" a_retaddr = (Cell *)IP; @@ -2379,4 +2393,6 @@ SET_IP((Xt *)a_callee); useraddr ( #u -- a_addr ) a_addr = (Cell *)(up+u); +include(peeprules.vmg) + \+