This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/JIT/HPP/yaam_pop.h
2015-01-07 10:22:52 +00:00

40 lines
876 B
C

#define POP_N_INSTINIT \
BLOCKADDRESS = (CELL)(*_PREG); \
register CELL d0; \
d0 = (*_PREG)->y_u.os.s; \
SP = (CELL *) (((char *) SP) + d0); \
d0 = SP[0]; \
if (d0) { \
(*_SREG) = (CELL *) (SP[1]); \
SP += 2; \
(*_PREG) = NEXTOP((*_PREG), s); \
GONext(); \
} \
else { \
(*_SREG) = (CELL *) (SP[1]); \
SP += 2; \
(*_PREG) = NEXTOP((*_PREG), s); \
GONextW(); \
}
#define POP_N_END \
BLOCK = (CELL)POP_N_END;
#define POP_INSTINIT \
BLOCKADDRESS = (CELL)(*_PREG); \
register CELL d0; \
d0 = SP[0]; \
(*_SREG) = (CELL *) (SP[1]); \
SP += 2; \
if (d0) { \
(*_PREG) = NEXTOP((*_PREG), e); \
GONext(); \
} \
else { \
(*_PREG) = NEXTOP((*_PREG), e); \
GONextW(); \
}
#define POP_END \
BLOCK = (CELL)POP_END;