+#ifdef __ia64__
+ rv = getcontext (&continuation->ctx);
+ if (rv.first_return)
+ {
+ continuation->backing_store_size =
+ continuation->ctx.uc_mcontext.sc_ar_bsp -
+ (unsigned long) __libc_ia64_register_backing_store_base;
+ continuation->backing_store = NULL;
+ continuation->backing_store =
+ scm_gc_malloc (continuation->backing_store_size,
+ "continuation backing store");
+ memcpy (continuation->backing_store,
+ (void *) __libc_ia64_register_backing_store_base,
+ continuation->backing_store_size);
+ *first = 1;
+ return cont;
+ }
+ else
+ {
+ SCM ret = continuation->throw_value;
+ *first = 0;
+ continuation->throw_value = SCM_BOOL_F;
+ return ret;
+ }
+#else /* !__ia64__ */