-#define SCM_JMPBUF(x) (((regs *)SCM_CHARS(x))->jmpbuf)
-#define SCM_SETJMPBUF SCM_SETCDR
-#define SCM_DYNENV(x) (((regs *)SCM_CHARS(x))->dynenv)
-#define SCM_THROW_VALUE(x) (((regs *)SCM_CHARS(x))->throw_value)
-#define SCM_BASE(x) (((regs *)SCM_CHARS(x))->base)
-#define SCM_SEQ(x) (((regs *)SCM_CHARS(x))->seq)
-#define SCM_DFRAME(x) (((regs *)SCM_CHARS(x))->dframe)
+#define SCM_CONTREGS(x) ((scm_t_contregs *) SCM_CELL_WORD_1 (x))
+
+#define SCM_CONTINUATION_LENGTH(x) (SCM_CONTREGS (x)->num_stack_items)
+#define SCM_SET_CONTINUATION_LENGTH(x,n)\
+ (SCM_CONTREGS (x)->num_stack_items = (n))
+#define SCM_JMPBUF(x) ((SCM_CONTREGS (x))->jmpbuf)
+#define SCM_DYNENV(x) ((SCM_CONTREGS (x))->dynenv)
+#define SCM_THROW_VALUE(x) ((SCM_CONTREGS (x))->throw_value)
+#define SCM_BASE(x) ((SCM_CONTREGS (x))->base)
+#define SCM_SEQ(x) ((SCM_CONTREGS (x))->seq)
+#define SCM_DFRAME(x) ((SCM_CONTREGS (x))->dframe)