-/* Enter a block. */
-#define PUSHBLOCK(cx,t,sp) CXINC, cx = &cxstack[cxstack_ix], \
- cx->cx_type = t, \
- cx->blk_oldsp = sp - PL_stack_base, \
- cx->blk_oldcop = PL_curcop, \
- cx->blk_oldmarksp = PL_markstack_ptr - PL_markstack, \
- cx->blk_oldscopesp = PL_scopestack_ix, \
- cx->blk_oldpm = PL_curpm, \
- cx->blk_gimme = (U8)gimme; \
- cx->cx_u.cx_blk.blku_old_tmpsfloor = PL_tmps_floor; \
- PL_tmps_floor = PL_tmps_ix; \
- DEBUG_CX("PUSH");
-
-/* Exit a block (RETURN and LAST). */
-#define POPBLOCK(cx) \
- DEBUG_CX("POP"); \
- PL_curcop = cx->blk_oldcop, \
- PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \
- PL_scopestack_ix = cx->blk_oldscopesp, \
- /* LEAVE_SCOPE() should have made this true. /(?{})/ cheats
- * and leaves a CX entry lying around for repeated use, so
- * skip for multicall */ \
- assert((CxTYPE(cx) == CXt_SUB && CxMULTICALL(cx)) || \
- PL_savestack_ix == cx->cx_u.cx_blk.blku_old_savestack_ix); \
- PL_tmps_floor = cx->cx_u.cx_blk.blku_old_tmpsfloor; \
- PL_curpm = cx->blk_oldpm;
-
-/* Continue a block elsewhere (NEXT and REDO). */
-#define TOPBLOCK(cx) \
- DEBUG_CX("TOP"); \
- cx = &cxstack[cxstack_ix], \
- PL_stack_sp = PL_stack_base + cx->blk_oldsp, \
- PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \
- PL_scopestack_ix = cx->blk_oldscopesp, \
- PL_curpm = cx->blk_oldpm;