add dereferencing macro.
This commit is contained in:
parent
f632bc72bc
commit
110c78b309
12
H/amiops.h
12
H/amiops.h
@ -44,6 +44,18 @@ Dereferencing macros
|
|||||||
(D) = *(CELL *)(D); \
|
(D) = *(CELL *)(D); \
|
||||||
} while (Unsigned(A) != (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) \
|
#define derefa_body(D,A,LabelUnk,LabelNonVar) \
|
||||||
do { \
|
do { \
|
||||||
(A) = (CELL *)(D); \
|
(A) = (CELL *)(D); \
|
||||||
|
Reference in New Issue
Block a user