add dereferencing macro.

This commit is contained in:
Vitor Santos Costa 2012-01-09 23:27:47 +00:00
parent f632bc72bc
commit 110c78b309

View File

@ -44,6 +44,18 @@ Dereferencing macros
(D) = *(CELL *)(D); \
} while (Unsigned(A) != (D))
#define do_derefa(D,A,LabelUnk,LabelDone) \
(D) = *(CELL *)(A); \
if (IsNonVarTerm(D)) goto LabelDone; \
goto LabelUnk; \
do { \
(A) = (CELL *)(D); \
(D) = *(CELL *)(D); \
if(!IsVarTerm(D)) goto LabelDone; \
LabelUnk: ; \
} while (Unsigned(A) != (D));\
LabelDone:
#define derefa_body(D,A,LabelUnk,LabelNonVar) \
do { \
(A) = (CELL *)(D); \