Diff for /gforth/prim between versions 1.86 and 1.89

version 1.86, 2001/12/24 20:39:29 version 1.89, 2002/01/05 20:16:17
Line 181  $1 ( `#'ndisp $2 ) $3 Line 181  $1 ( `#'ndisp $2 ) $3
 $4      SET_IP((Xt *)(((Cell)(IP-1))+ndisp));  $4      SET_IP((Xt *)(((Cell)(IP-1))+ndisp));
 TAIL;  TAIL;
 }  }
   SUPER_CONTINUE;
 $5  $5
   
 \+glocals  \+glocals
Line 190  $4    lp += nlocals; Line 191  $4    lp += nlocals;
 SET_IP((Xt *)(((Cell)(IP-2))+ndisp));  SET_IP((Xt *)(((Cell)(IP-2))+ndisp));
 TAIL;  TAIL;
 }  }
   SUPER_CONTINUE;
   
 \+  \+
 )  )
Line 216  if (f==0) { Line 218  if (f==0) {
   SET_IP((Xt *)(((Cell)(IP-1))+ndisp));    SET_IP((Xt *)(((Cell)(IP-1))+ndisp));
   TAIL;    TAIL;
 }  }
   SUPER_CONTINUE;
   
 ?dup-0=-?branch ( #ndisp f -- ) new     question_dupe_zero_equals_question_branch  ?dup-0=-?branch ( #ndisp f -- ) new     question_dupe_zero_equals_question_branch
 ""The run-time procedure compiled by @code{?DUP-0=-IF}.""  ""The run-time procedure compiled by @code{?DUP-0=-IF}.""
Line 228  if (f!=0) { Line 231  if (f!=0) {
   SET_IP((Xt *)(((Cell)(IP-1))+ndisp));    SET_IP((Xt *)(((Cell)(IP-1))+ndisp));
   NEXT;    NEXT;
 }  }
   SUPER_CONTINUE;
   
 \+  \+
 \f[THEN]  \f[THEN]
Line 309  if (nstart == nlimit) { Line 313  if (nstart == nlimit) {
     SET_IP((Xt *)(((Cell)(IP-1))+ndisp));      SET_IP((Xt *)(((Cell)(IP-1))+ndisp));
     TAIL;      TAIL;
 }  }
   SUPER_CONTINUE;
 :  :
   2dup =    2dup =
   IF   r> swap rot >r >r    IF   r> swap rot >r >r
Line 324  if (nstart >= nlimit) { Line 329  if (nstart >= nlimit) {
     SET_IP((Xt *)(((Cell)(IP-1))+ndisp));      SET_IP((Xt *)(((Cell)(IP-1))+ndisp));
     TAIL;      TAIL;
 }  }
   SUPER_CONTINUE;
 :  :
  swap 2dup   swap 2dup
  r> swap >r swap >r   r> swap >r swap >r
Line 339  if (ustart >= ulimit) { Line 345  if (ustart >= ulimit) {
     SET_IP((Xt *)(((Cell)(IP-1))+ndisp));      SET_IP((Xt *)(((Cell)(IP-1))+ndisp));
     TAIL;      TAIL;
 }  }
   SUPER_CONTINUE;
 :  :
  swap 2dup   swap 2dup
  r> swap >r swap >r   r> swap >r swap >r
Line 354  if (nstart <= nlimit) { Line 361  if (nstart <= nlimit) {
     SET_IP((Xt *)(((Cell)(IP-1))+ndisp));      SET_IP((Xt *)(((Cell)(IP-1))+ndisp));
     TAIL;      TAIL;
 }  }
   SUPER_CONTINUE;
 :  :
  swap 2dup   swap 2dup
  r> swap >r swap >r   r> swap >r swap >r
Line 369  if (ustart <= ulimit) { Line 377  if (ustart <= ulimit) {
     SET_IP((Xt *)(((Cell)(IP-1))+ndisp));      SET_IP((Xt *)(((Cell)(IP-1))+ndisp));
     TAIL;      TAIL;
 }  }
   SUPER_CONTINUE;
 :  :
  swap 2dup   swap 2dup
  r> swap >r swap >r   r> swap >r swap >r
Line 2387  xt = peephole_opt(xt1, xt2, wpeeptable); Line 2396  xt = peephole_opt(xt1, xt2, wpeeptable);
   
 call    ( #a_callee -- R:a_retaddr )    new  call    ( #a_callee -- R:a_retaddr )    new
 ""Call callee (a variant of docol with inline argument).""  ""Call callee (a variant of docol with inline argument).""
   #ifdef DEBUG
       {
         CFA_TO_NAME((((Cell *)a_callee)-2));
         fprintf(stderr,"%08lx: call %08lx %.*s\n",(Cell)ip,(Cell)a_callee,
                 len,name);
       }
   #endif
 a_retaddr = (Cell *)IP;  a_retaddr = (Cell *)IP;
 SET_IP((Xt *)a_callee);  SET_IP((Xt *)a_callee);
   
Line 2396  a_addr = (Cell *)(up+u); Line 2412  a_addr = (Cell *)(up+u);
 compile-prim ( xt1 -- xt2 )     new     compile_prim  compile-prim ( xt1 -- xt2 )     new     compile_prim
 xt2 = (Xt)compile_prim((Label)xt1);  xt2 = (Xt)compile_prim((Label)xt1);
   
   lit@    ( #a_addr -- w )        new     lit_fetch
   w = *a_addr;
   
   lit-perform     ( #a_addr -- )  new     lit_perform
   ip=IP;
   SUPER_END;
   EXEC(*(Xt *)a_addr);
   
   lit+    ( #n1 n2 -- n3 )        new     lit_plus
   n3 = n1 + n2;
   
   does-exec ( #a_cfa -- R:nest a_pfa )    new     does_exec
   a_pfa = PFA(a_cfa);
   nest = (Cell)ip;
   IF_spTOS(spTOS = sp[0]);
   SUPER_END;
   SET_IP(DOES_CODE1(a_cfa));
   SUPER_END;
   
 include(peeprules.vmg)  include(peeprules.vmg)
   
 \+  \+

Removed from v.1.86  
changed lines
  Added in v.1.89


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