| #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 |
| #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;) |
| 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 |