Diff for /gforth/vmgen-ex/mini.h between versions 1.3 and 1.8

version 1.3, 2002/06/02 15:46:17 version 1.8, 2002/12/27 15:51:28
Line 21 Line 21
   
 #include <stdio.h>  #include <stdio.h>
   
 typedef void *Label;  
 typedef void *Inst; /* for direct threading, the same as Label */  
 typedef long Cell;  typedef long Cell;
   #ifdef __GNUC__
   typedef void *Label;
   typedef Label Inst; /* we could "typedef Cell Inst", removing the need
                          for casts in a few places, but requiring a few
                          casts etc. in other places */
   #else
   typedef long Label;
   typedef long Inst;
   #endif
   
 extern Inst *vm_prim;  extern Inst *vm_prim;
 extern int locals;  extern int locals;
Line 36  extern FILE *vm_out; Line 43  extern FILE *vm_out;
 extern Inst *vmcodep;  extern Inst *vmcodep;
 extern Inst *last_compiled;  extern Inst *last_compiled;
 extern Inst *vmcode_end;  extern Inst *vmcode_end;
   extern int use_super;
   
 /* generic vmgen support functions (e.g., wrappers) */  /* generic vmgen support functions (e.g., wrappers) */
 void gen_inst(Inst **vmcodepp, Inst i);  void gen_inst(Inst **vmcodepp, Inst i);
Line 44  void vm_disassemble(Inst *ip, Inst *endp Line 52  void vm_disassemble(Inst *ip, Inst *endp
 void vm_count_block(Inst *ip);  void vm_count_block(Inst *ip);
 struct block_count *block_insert(Inst *ip);  struct block_count *block_insert(Inst *ip);
 void vm_print_profile(FILE *file);  void vm_print_profile(FILE *file);
   
   /* type change macros; these are specific to the types you use, so you
      have to change this part */
   #define vm_Cell2i(_cell,x)      ((x)=(long)(_cell))
   #define vm_Cell2target(_cell,x) ((x)=(Inst *)(_cell))
   #define vm_Cell2a(_cell,x)      ((x)=(char *)(_cell))
   #define vm_i2Cell(x,_cell)      ((_cell)=(Cell)(x))
   #define vm_target2Cell(x,_cell) ((_cell)=(Cell)(x))
   #define vm_a2Cell(x,_cell)      ((_cell)=(Cell)(x))
   #define vm_Cell2Cell(_x,_y) ((_y)=(Cell)(_x))
   /* the cast in vm_Cell2Cell is needed because the base type for
      inst-stream is Cell, but *IP is an Inst */
   
   /* for future extensions */
   #define IMM_ARG(access,value)           (access)
   
 #define VM_IS_INST(inst, n) ((inst) == vm_prim[n])  #define VM_IS_INST(inst, n) ((inst) == vm_prim[n])
   
 /* mini type-specific support functions */  /* mini type-specific support functions */

Removed from v.1.3  
changed lines
  Added in v.1.8


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