version 1.4, 2001/10/26 12:00:16
|
version 1.5, 2002/06/02 15:46:16
|
Line 23
|
Line 23
|
|
|
/* type change macros; these are specific to the types you use, so you |
/* type change macros; these are specific to the types you use, so you |
have to change this part */ |
have to change this part */ |
#define vm_Cell2i(x) ((Cell)(x)) |
#define vm_Cell2i(_cell,x) ((x)=(long)(_cell)) |
#define vm_i2Cell(x) (x) |
#define vm_Cell2target(_cell,x) ((x)=(Inst *)(_cell)) |
#define vm_Cell2target(x) ((Inst *)(x)) |
#define vm_Cell2a(_cell,x) ((x)=(char *)(_cell)) |
#define vm_target2Cell(x) ((Cell)(x)) |
#define vm_i2Cell(x,_cell) ((_cell)=(Cell)(x)) |
#define vm_Cell2a(x) ((char *)(x)) |
#define vm_target2Cell(x,_cell) ((_cell)=(Cell)(x)) |
#define vm_a2Cell(x) ((Cell)(x)) |
#define vm_a2Cell(x,_cell) ((_cell)=(Cell)(x)) |
|
|
#define vm_Cell2Cell(x) ((Cell)(x)) |
#define vm_Cell2Cell(x) ((Cell)(x)) |
|
|
Line 150
|
Line 150
|
#define SUPER_END |
#define SUPER_END |
#endif |
#endif |
|
|
|
#define INST_ADDR(name) (Label)&&I_##name |
|
#define LABEL(name) I_##name |
|
|
/* the return type can be anything you want it to */ |
/* the return type can be anything you want it to */ |
Cell engine(Inst *ip0, Cell *sp, char *fp) |
Cell engine(Inst *ip0, Cell *sp, char *fp) |
{ |
{ |