version 1.2, 1994/04/20 17:12:00
|
version 1.3, 1994/05/03 19:10:34
|
Line 53 typedef struct F83Name {
|
Line 53 typedef struct F83Name {
|
#endif |
#endif |
#define NEXT_P1 ({cfa = *ip++; NEXT1_P1;}) |
#define NEXT_P1 ({cfa = *ip++; NEXT1_P1;}) |
|
|
#define NEXT1 ({NEXT1_P1; NEXT1_P2;}) |
#define NEXT1 ({Label ca; NEXT1_P1; NEXT1_P2;}) |
#define NEXT ({NEXT_P1; NEXT1_P2;}) |
#define NEXT ({Label ca; NEXT_P1; NEXT1_P2;}) |
|
|
#ifdef USE_TOS |
#ifdef USE_TOS |
#define IF_TOS(x) x |
#define IF_TOS(x) x |
Line 75 typedef struct F83Name {
|
Line 75 typedef struct F83Name {
|
int emitcounter; |
int emitcounter; |
#define NULLC '\0' |
#define NULLC '\0' |
|
|
#define cstr(to, from, size)\ |
#define cstr(to,from,size)\ |
{ memcpy(to, from, size);\ |
{ memcpy(to,from,size);\ |
to[size]=NULLC;} |
to[size]=NULLC;} |
#define NEWLINE '\n' |
#define NEWLINE '\n' |
|
|
Line 98 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
Line 98 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
#include "prim_labels.i" |
#include "prim_labels.i" |
}; |
}; |
#ifndef DIRECT_THREADED |
#ifndef DIRECT_THREADED |
Label ca; |
/* Label ca; */ |
#endif |
#endif |
IF_TOS(register Cell TOS;) |
IF_TOS(register Cell TOS;) |
IF_FTOS(Float FTOS;) |
IF_FTOS(Float FTOS;) |
Line 129 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
Line 129 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
problems with code fields employing calls and delay slots |
problems with code fields employing calls and delay slots |
*/ |
*/ |
{ |
{ |
|
Label ca; |
Xt *current_ip = (Xt *)PFA1(cfa); |
Xt *current_ip = (Xt *)PFA1(cfa); |
cfa = *current_ip; |
cfa = *current_ip; |
NEXT1_P1; |
NEXT1_P1; |
*--rp = (Cell)ip; |
*--rp = (Cell)ip; |
ip = current_ip+1; |
ip = current_ip+1; |
|
NEXT1_P2; |
} |
} |
NEXT1_P2; |
|
|
|
docon: |
docon: |
#ifdef DEBUG |
#ifdef DEBUG |