version 1.119, 2012/07/15 12:03:07
|
version 1.121, 2012/12/31 15:25:19
|
Line 1
|
Line 1
|
/* Gforth virtual machine (aka inner interpreter) |
/* Gforth virtual machine (aka inner interpreter) |
|
|
Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2010,2011 Free Software Foundation, Inc. |
Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2010,2011,2012 Free Software Foundation, Inc. |
|
|
This file is part of Gforth. |
This file is part of Gforth. |
|
|
Line 320 void throw(int code)
|
Line 320 void throw(int code)
|
/* the asm(""); is there to get a stop compiled on Itanium */ |
/* the asm(""); is there to get a stop compiled on Itanium */ |
#define LABEL2(name) K_##name: asm(""); |
#define LABEL2(name) K_##name: asm(""); |
|
|
Label *gforth_engine(Xt *ip0, Cell *sp0, Cell *rp0, Float *fp0, Address lp0 sr_proto) |
Label *gforth_engine(Xt *ip0 sr_proto) |
/* executes code at ip, if ip!=NULL |
/* executes code at ip, if ip!=NULL |
returns array of machine code labels (for use in a loader), if ip==NULL |
returns array of machine code labels (for use in a loader), if ip==NULL |
*/ |
*/ |
Line 335 Label *gforth_engine(Xt *ip0, Cell *sp0,
|
Line 335 Label *gforth_engine(Xt *ip0, Cell *sp0,
|
#ifndef NO_IP |
#ifndef NO_IP |
register Xt *ip IPREG = ip0; |
register Xt *ip IPREG = ip0; |
#endif |
#endif |
register Cell *sp SPREG = sp0; |
register Cell *sp SPREG = gforth_SP; |
register Float *fp FPREG = fp0; |
register Float *fp FPREG = gforth_FP; |
register Address lp LPREG = lp0; |
register Address lp LPREG = gforth_LP; |
register Xt cfa CFAREG; |
register Xt cfa CFAREG; |
register Label real_ca CAREG; |
register Label real_ca CAREG; |
#ifdef HAS_OBJECTS |
#ifdef HAS_OBJECTS |
Line 402 Label *gforth_engine(Xt *ip0, Cell *sp0,
|
Line 402 Label *gforth_engine(Xt *ip0, Cell *sp0,
|
CPU_DEP2 |
CPU_DEP2 |
#endif |
#endif |
|
|
rp = rp0; |
rp = gforth_RP; |
#ifdef DEBUG |
#ifdef DEBUG |
fprintf(stderr,"ip=%x, sp=%x, rp=%x, fp=%x, lp=%x, up=%x\n", |
fprintf(stderr,"ip=%x, sp=%x, rp=%x, fp=%x, lp=%x, up=%x\n", |
(unsigned)ip0,(unsigned)sp,(unsigned)rp, |
(unsigned)ip0,(unsigned)sp,(unsigned)rp, |