[gforth] / gforth / engine / main.c  

gforth: gforth/engine/main.c

Diff for /gforth/engine/main.c between version 1.91 and 1.94

version 1.91, Fri Jan 10 16:57:25 2003 UTC version 1.94, Tue Jan 14 22:55:07 2003 UTC
Line 231 
Line 231 
             case CF(DOUSER)  :              case CF(DOUSER)  :
             case CF(DODEFER) :              case CF(DODEFER) :
             case CF(DOFIELD) : MAKE_CF(image+i,symbols[CF(token)]); break;              case CF(DOFIELD) : MAKE_CF(image+i,symbols[CF(token)]); break;
             case CF(DOESJUMP): MAKE_DOES_HANDLER(image+i); break;              case CF(DOESJUMP): image[i]=0; break;
 #endif /* !defined(DOUBLY_INDIRECT) */  #endif /* !defined(DOUBLY_INDIRECT) */
             case CF(DODOES)  :              case CF(DODOES)  :
               MAKE_DOES_CF(image+i,(Xt *)(image[i+1]+((Cell)start)));                MAKE_DOES_CF(image+i,(Xt *)(image[i+1]+((Cell)start)));
Line 642 
Line 642 
 #endif  #endif
 }  }
   
 #ifndef NO_DYNAMIC  
 void flush_to_here(void)  void flush_to_here(void)
 {  {
   #ifndef NO_DYNAMIC
   FLUSH_ICACHE(start_flush, code_here-start_flush);    FLUSH_ICACHE(start_flush, code_here-start_flush);
   start_flush=code_here;    start_flush=code_here;
   #endif
 }  }
   
   #ifndef NO_DYNAMIC
 void append_jump(void)  void append_jump(void)
 {  {
   if (last_jump) {    if (last_jump) {
Line 657 
Line 659 
     memcpy(code_here, pi->start+pi->length, pi->restlength);      memcpy(code_here, pi->start+pi->length, pi->restlength);
     code_here += pi->restlength;      code_here += pi->restlength;
     last_jump=0;      last_jump=0;
     flush_to_here();  
   }    }
 }  }
   
Line 682 
Line 683 
   if (code_area+code_area_size < code_here+pi->length+pi->restlength) {    if (code_area+code_area_size < code_here+pi->length+pi->restlength) {
     struct code_block_list *p;      struct code_block_list *p;
     append_jump();      append_jump();
       flush_to_here();
     if (*next_code_blockp == NULL) {      if (*next_code_blockp == NULL) {
       code_here = start_flush = code_area = my_alloc(code_area_size);        code_here = start_flush = code_area = my_alloc(code_area_size);
       p = (struct code_block_list *)malloc(sizeof(struct code_block_list));        p = (struct code_block_list *)malloc(sizeof(struct code_block_list));
Line 698 
Line 700 
   }    }
   memcpy(code_here, pi->start, pi->length);    memcpy(code_here, pi->start, pi->length);
   code_here += pi->length;    code_here += pi->length;
   if (pi->superend)  
     flush_to_here();  
   return old_code_here;    return old_code_here;
 }  }
 #endif  #endif
Line 818 
Line 818 
     set_rel_target(bi->addressptr, *(bi->targetptr));      set_rel_target(bi->addressptr, *(bi->targetptr));
   }    }
   nbranchinfos = 0;    nbranchinfos = 0;
   FLUSH_ICACHE(start_flush, code_here-start_flush);  
   start_flush=code_here;  
 #endif  #endif
     flush_to_here();
 }  }
   
 void compile_prim1(Cell *start)  void compile_prim1(Cell *start)


Generate output suitable for use with a patch program
Legend:
Removed from v.1.91  
changed lines
  Added in v.1.94

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help