1.0.41.16: non-linux ppc runtime fixes
authorNathan Froyd <froydnj@cs.rice.edu>
Sat, 7 Aug 2010 01:01:50 +0000 (01:01 +0000)
committerNathan Froyd <froydnj@cs.rice.edu>
Sat, 7 Aug 2010 01:01:50 +0000 (01:01 +0000)
Patch from Josh Elsasser to make things work on *BSD and Darwin.

src/runtime/ppc-bsd-os.c
src/runtime/ppc-darwin-os.c
version.lisp-expr

index 4209b85..c71912d 100644 (file)
@@ -49,15 +49,21 @@ os_context_lr_addr(os_context_t *context)
 os_context_register_t *
 os_context_ctr_addr(os_context_t *context)
 {
-    /* FIXME: Figure out how to make this happen. */
-    lose("was asked for context Counter (CTR) register, but don't know how");
+#if defined(LISP_FEATURE_NETBSD)
+    return &context->uc_mcontext.__gregs[_REG_CTR];
+#elif defined(LISP_FEATURE_OPENBSD)
+    return &context->sc_frame.ctr;
+#endif
 }
 
 os_context_register_t *
 os_context_cr_addr(os_context_t *context)
 {
-    /* FIXME: Figure out how to make this happen. */
-    lose("was asked for context Condition (CR) register, but don't know how");
+#if defined(LISP_FEATURE_NETBSD)
+    return &context->uc_mcontext.__gregs[_REG_CR];
+#elif defined(LISP_FEATURE_OPENBSD)
+    return &context->sc_frame.cr;
+#endif
 }
 
 /* FIXME: If this can be a no-op on BSD/x86, then it
index 46c7b73..46c9ef0 100644 (file)
@@ -124,15 +124,13 @@ os_context_lr_addr(os_context_t *context)
 os_context_register_t *
 os_context_ctr_addr(os_context_t *context)
 {
-    /* FIXME: Figure out how to make this happen. */
-    lose("was asked for context Counter (CTR) register, but don't know how");
+    return (os_context_register_t *) &context->uc_mcontext->PPC_DARWIN_REGIFY(ss).PPC_DARWIN_REGIFY(ctr);
 }
 
 os_context_register_t *
 os_context_cr_addr(os_context_t *context)
 {
-    /* FIXME: Figure out how to make this happen. */
-    lose("was asked for context Condition (CR) register, but don't know how");
+    return (os_context_register_t *) &context->uc_mcontext->PPC_DARWIN_REGIFY(ss).PPC_DARWIN_REGIFY(cr);
 }
 
 os_context_register_t *
index 68e6274..130c545 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.41.15"
+"1.0.41.16"