diff --git a/H/absmi.h b/H/absmi.h index e33a7f3c5..f7d093366 100644 --- a/H/absmi.h +++ b/H/absmi.h @@ -690,9 +690,7 @@ Macros to check the limits of stacks #if (defined(SBA) && defined(YAPOR)) || defined(TABLING) #define check_stack(Label, GLOB) \ - if ( (Int)(Unsigned(E_YREG) - CFREG) < (Int)(GLOB) && \ - (choiceptr)E_YREG < B_FZ && E_YREG > H_FZ && \ - (GLOB) > H_FZ && (GLOB) < (CELL *)B_FZ) goto Label + if ( (Int)(Unsigned(YOUNGEST_CP((choiceptr)E_YREG,B_FZ)) - Unsigned(YOUNGEST_H(H_FZ,GLOB))) < CFREG ) goto Label #else #define check_stack(Label, GLOB) \ if ( (Int)(Unsigned(E_YREG) - Unsigned(GLOB)) < CFREG ) goto Label diff --git a/H/amidefs.h b/H/amidefs.h index 1f3180b3f..829729511 100644 --- a/H/amidefs.h +++ b/H/amidefs.h @@ -11,8 +11,11 @@ * File: amidefs.h * * comments: Abstract machine peculiarities * * * -* Last rev: $Date: 2005-04-10 04:01:13 $ * +* Last rev: $Date: 2005-05-30 06:07:35 $ * * $Log: not supported by cvs2svn $ +* Revision 1.27 2005/04/10 04:01:13 vsc +* bug fixes, I hope! +* * Revision 1.26 2004/09/30 21:37:41 vsc * fixes for thread support * @@ -649,11 +652,24 @@ typedef struct choicept { : \ (SHARED_CP(CP2) ? TRUE : CP1 <= CP2) \ ) + +#define YOUNGER_H(H1, H2) FIXMEE!!!! + + #else /* ENV_COPY || ACOW */ #define YOUNGER_CP(CP1, CP2) ((CP1) < (CP2)) #define EQUAL_OR_YOUNGER_CP(CP1, CP2) ((CP1) <= (CP2)) + +#define YOUNGER_H(H1, H2) ((CELL *)(H1) > (CELL *)(H2)) + #endif /* SBA */ +#define YOUNGEST_CP(CP1, CP2) (YOUNGER_CP(CP1,CP2) ? (CP1) : (CP2)) + +#define YOUNGEST_H(H1, H2) (YOUNGER_H(H1,H2) ? (CELL *)(H1) : (CELL *)(H2)) + + + /* Environment Structure (CP, E, and CUT_B). Yap always saves the B where to cut to, even if not needed. diff --git a/OPTYap/tab.macros.h b/OPTYap/tab.macros.h index 8c2c8c27d..74be1dc56 100644 --- a/OPTYap/tab.macros.h +++ b/OPTYap/tab.macros.h @@ -53,13 +53,13 @@ STD_PROTO(static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames, (tg_sol_fr_p #define TabPairTagBits MKTAG(0x5,3) #define TabApplTagBits MKTAG(0x5,0) #else -#define TabTagBits OOOOPPS!!! Inconsistent Tabling Tag Scheme -#define TabNumberOfLowTagBits OOOOPPS!!! Inconsistent Tabling Tag Scheme -#define TabVarTagBits OOOOPPS!!! Inconsistent Tabling Tag Scheme -#define TabAtomTagBits OOOOPPS!!! Inconsistent Tabling Tag Scheme -#define TabNumberTagBits OOOOPPS!!! Inconsistent Tabling Tag Scheme -#define TabPairTagBits OOOOPPS!!! Inconsistent Tabling Tag Scheme -#define TabApplTagBits OOOOPPS!!! Inconsistent Tabling Tag Scheme +#define TabTagBits MKTAG(0x0,LowTagBits) +#define TabNumberOfLowTagBits LowTagBits +#define TabVarTagBits MKTAG(0x0,0) +#define TabAtomTagBits AtomTag +#define TabNumberTagBits NumberTag +#define TabPairTagBits PairBits +#define TabApplTagBits ApplBit #endif /* TAGS_FAST_OPS */