Diff for /gforth/prim between versions 1.75 and 1.82

version 1.75, 2001/02/26 15:14:20 version 1.82, 2001/05/01 13:35:42
Line 74 Line 74
 \ xt.*          XT  \ xt.*          XT
 \ f83name.*     F83Name *  \ f83name.*     F83Name *
   
   \E stack data-stack   sp Cell
   \E stack fp-stack     fp Float
   \E stack return-stack rp Cell
   \E
 \E get-current prefixes set-current  \E get-current prefixes set-current
 \E   \E 
 \E s" Bool"             single data-stack type-prefix f  \E s" Bool"             single data-stack type-prefix f
Line 126 Line 130
 \ these m4 macros would collide with identifiers  \ these m4 macros would collide with identifiers
 undefine(`index')  undefine(`index')
 undefine(`shift')  undefine(`shift')
   undefine(`symbols')
   
 noop    ( -- )          gforth  noop    ( -- )          gforth
 :  :
Line 139  execute ( xt -- )  core Line 144  execute ( xt -- )  core
 ""Perform the semantics represented by the execution token, @i{xt}.""  ""Perform the semantics represented by the execution token, @i{xt}.""
 ip=IP;  ip=IP;
 IF_spTOS(spTOS = sp[0]);  IF_spTOS(spTOS = sp[0]);
   SUPER_END;
 EXEC(xt);  EXEC(xt);
   
 perform ( a_addr -- )   gforth  perform ( a_addr -- )   gforth
Line 146  perform ( a_addr -- ) gforth Line 152  perform ( a_addr -- ) gforth
 /* and pfe */  /* and pfe */
 ip=IP;  ip=IP;
 IF_spTOS(spTOS = sp[0]);  IF_spTOS(spTOS = sp[0]);
   SUPER_END;
 EXEC(*(Xt *)a_addr);  EXEC(*(Xt *)a_addr);
 :  :
  @ execute ;   @ execute ;
Line 1422  cache."" Line 1429  cache.""
 FLUSH_ICACHE(c_addr,u);  FLUSH_ICACHE(c_addr,u);
   
 (bye)   ( n -- )        gforth  paren_bye  (bye)   ( n -- )        gforth  paren_bye
   SUPER_END;
 return (Label *)n;  return (Label *)n;
   
 (system)        ( c_addr u -- wretval wior )    gforth  peren_system  (system)        ( c_addr u -- wretval wior )    gforth  peren_system
Line 2135  Variable UP Line 2143  Variable UP
 wcall   ( u -- )        gforth  wcall   ( u -- )        gforth
 IF_fpTOS(fp[0]=fpTOS);  IF_fpTOS(fp[0]=fpTOS);
 FP=fp;  FP=fp;
 sp=(SYSCALL(Cell(*)(Cell *, void *))u)(sp, &FP);  sp=(Cell*)(SYSCALL(Cell(*)(Cell *, void *))u)(sp, &FP);
 fp=FP;  fp=FP;
 IF_spTOS(spTOS=sp[0];)  IF_spTOS(spTOS=sp[0];)
 IF_fpTOS(fpTOS=fp[0]);  IF_fpTOS(fpTOS=fp[0]);
Line 2343  while(a_addr != NULL) Line 2351  while(a_addr != NULL)
   
 \+  \+
   
   \+peephole
   
 primtable       ( -- wprimtable )       new  primtable       ( -- wprimtable )       new
 ""wprimtable is a table containing the xts of the primitives indexed  ""wprimtable is a table containing the xts of the primitives indexed
 by sequence-number in prim (for use in prepare-peephole-table).""  by sequence-number in prim (for use in prepare-peephole-table).""
Line 2359  peephole-opt ( xt1 xt2 wpeeptable -- xt Line 2369  peephole-opt ( xt1 xt2 wpeeptable -- xt
 they cannot be combined, xt is 0.""  they cannot be combined, xt is 0.""
 xt = peephole_opt(xt1, xt2, wpeeptable);  xt = peephole_opt(xt1, xt2, wpeeptable);
   
 lit_plus = lit +  
   
 call    ( #a_callee -- R:a_retaddr )  call    ( #a_callee -- R:a_retaddr )
 ""Call callee (a variant of docol with inline argument).""  ""Call callee (a variant of docol with inline argument).""
 a_retaddr = (Cell *)IP;  a_retaddr = (Cell *)IP;
Line 2369  SET_IP((Xt *)a_callee); Line 2377  SET_IP((Xt *)a_callee);
 useraddr        ( #u -- a_addr )  useraddr        ( #u -- a_addr )
 a_addr = (Cell *)(up+u);  a_addr = (Cell *)(up+u);
   
   include(peeprules.vmg)
   
   \+

Removed from v.1.75  
changed lines
  Added in v.1.82


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