74 typedef CELL SMALLUNSGN;
79 typedef Short DISPREG;
80 typedef BITS16 SMALLUNSGN;
81 typedef SBITS16 OPREG;
82 typedef SBITS16 UOPREG;
90#define CACHE_TYPE1 regstruct_ptr
91#define CACHE_TYPE , regstruct_ptr
96#define CACHE_TYPE1 void
100typedef Int (*CPredicate)(CACHE_TYPE1);
102typedef Int (*CmpPredicate)(Term, Term);
104#define OpRegSize sizeof(OPREG)
121#define OPCODE(OP,TYPE) _##OP
122#include "YapOpcodes.h"
126#define _std_top _or_last
129#if defined(ANALYST) || defined(DEBUG)
130extern char *Yap_op_names[_std_top + 1];
218 typedef BITS16 OPCODE;
224 typedef op_numbers OPCODE;
226#define OpCodeSize sizeof(OPCODE)
329 CELL d[1+SIZEOF_DOUBLE/SIZEOF_INT_P];
372 struct jit_handl_context *jh;
510 CELL d[1+SIZEOF_DOUBLE/SIZEOF_INT_P];
586 CELL d[1+SIZEOF_DOUBLE/SIZEOF_INT_P];
608 CELL d[1+SIZEOF_DOUBLE/SIZEOF_INT_P];
731 CELL d[1+SIZEOF_DOUBLE/SIZEOF_INT_P];
865#define OPCW u.ox.opcw
868#define NEXTOP(V,TYPE) ((yamop *)(&((V)->y_u.TYPE.next)))
870#define PREVOP(V,TYPE) ((yamop *)((CODEADDR)(V)-(CELL)NEXTOP((yamop *)NULL,TYPE)))
872#if defined(TABLING) || defined(YAPOR_SBA)
873typedef struct trail_frame {
878#define TrailTerm(X) ((X)->term)
879#define TrailVal(X) ((X)->value)
881typedef Term *tr_fr_ptr;
883#define TrailTerm(X) (*(X))
884#define TrailVal(X) OOOOOOPS: this program should not compile
894#ifdef DETERMINISTIC_TABLING
895struct deterministic_choicept {
940 CELL cp_args[MIN_ARRAY];
947#define cp_env cp_last.cp_uenv
948#define cp_args cp_last.cp_xargs
950#define cp_a1 cp_args[0]
951#define cp_a2 cp_args[1]
952#define cp_a3 cp_args[2]
953#define cp_a4 cp_args[3]
954#define cp_a5 cp_args[4]
955#define cp_a6 cp_args[5]
956#define cp_a7 cp_args[6]
957#define cp_a8 cp_args[7]
958#define cp_a9 cp_args[8]
959#define cp_a10 cp_args[9]
960#define EXTRA_CBACK_ARG(Arity,Offset) B->cp_args[(Arity)+(Offset)-1]
964#define SHOULD_CUT_UP_TO(X,Y) ((X) != (Y))
968#define SHARED_CP(CP) ((CP) >= B_FZ || (CP) < (choiceptr)H_FZ)
970#define YOUNGER_CP(CP1, CP2) \
972 (SHARED_CP(CP2) ? OrFr_depth((CP1)->cp_or_fr) > OrFr_depth((CP2)->cp_or_fr) : FALSE) \
974 (SHARED_CP(CP2) ? TRUE : CP1 < CP2) \
977#define EQUAL_OR_YOUNGER_CP(CP1, CP2) \
979 (SHARED_CP(CP2) ? OrFr_depth((CP1)->cp_or_fr) >= OrFr_depth((CP2)->cp_or_fr) : FALSE) \
981 (SHARED_CP(CP2) ? TRUE : CP1 <= CP2) \
984#define YOUNGER_H(H1, H2) FIXMEE!!!!
988#define YOUNGER_CP(CP1, CP2) ((CP1) < (CP2))
989#define EQUAL_OR_YOUNGER_CP(CP1, CP2) ((CP1) <= (CP2))
991#define YOUNGER_H(H1, H2) ((CELL *)(H1) > (CELL *)(H2))
995#define YOUNGEST_CP(CP1, CP2) (YOUNGER_CP(CP1,CP2) ? (CP1) : (CP2))
997#define YOUNGEST_H(H1, H2) (YOUNGER_H(H1,H2) ? (CELL *)(H1) : (CELL *)(H2))
1012#define EnvSizeInCells 5
1014#define EnvSizeInCells 4
1019#define EnvSizeInCells 4
1021#define EnvSizeInCells 3
1026#define FixedEnvSize EnvSizeInCells
1028#define FixedEnvSize (EnvSizeInCells*sizeof(CELL))
1031#define RealEnvSize (EnvSizeInCells*sizeof(CELL))
1034CELL *ENV_Parent(CELL *env)
1036 return (CELL *)env[E_E];
1040Int ENV_Size(
yamop *cp)
1042 Int sz = ((
yamop *)((CODEADDR)(cp) - (CELL)NEXTOP((
yamop *)NULL,Osbpp)))->y_u.Osbpp.s;
1043 return sz==0 ? EnvSizeInCells : sz;
1049 return (((
yamop *)((CODEADDR)(cp) - (CELL)NEXTOP((
yamop *)NULL,Osbpp)))->y_u.Osbpp.p);
1053OPCODE ENV_ToOp(
yamop *cp)
1055 return (((
yamop *)((CODEADDR)(cp) - (CELL)NEXTOP((
yamop *)NULL,Osbpp)))->opc);
1059int64_t EnvSize(
yamop *cp)
1061 return (-ENV_Size(cp)/
sizeof(CELL));
1065CELL *EnvBMap(
yamop *p)
1067 return (((
yamop *)((CODEADDR)(p) - (CELL)NEXTOP((
yamop *)NULL,Osbpp)))->y_u.Osbpp.bmap);
1073 return (((
yamop *)((CODEADDR)(p) - (CELL)NEXTOP((
yamop *)NULL,Osbpp)))->y_u.Osbpp.p0);
1078#if USE_THREADED_CODE
1079extern void **Yap_ABSMI_OPCODES;
1081#define absmadr(i) ((OPCODE)(Yap_ABSMI_OPCODES[(i)]))
1083#define absmadr(i) ((OPCODE)(i))
1093#define RESET_DEPTH() MkIntTerm(MAX_ABS_INT-1)
1099DEBUG_CREEP_LEAP_OR_ZIP = 0,
1100DEBUG_GOAL_NUMBER = 1,
1104DEBUG_NUMBER_OF_OPTS = 5
If you like being short, use T instead of YapTerm.