From 4e6e3fc3fb6d530d489462fb2cbbe378a2ab0337 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Sat, 7 Aug 2010 01:01:50 +0000 Subject: [PATCH] 1.0.41.16: non-linux ppc runtime fixes Patch from Josh Elsasser to make things work on *BSD and Darwin. --- src/runtime/ppc-bsd-os.c | 14 ++++++++++---- src/runtime/ppc-darwin-os.c | 6 ++---- version.lisp-expr | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/runtime/ppc-bsd-os.c b/src/runtime/ppc-bsd-os.c index 4209b85..c71912d 100644 --- a/src/runtime/ppc-bsd-os.c +++ b/src/runtime/ppc-bsd-os.c @@ -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 diff --git a/src/runtime/ppc-darwin-os.c b/src/runtime/ppc-darwin-os.c index 46c7b73..46c9ef0 100644 --- a/src/runtime/ppc-darwin-os.c +++ b/src/runtime/ppc-darwin-os.c @@ -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 * diff --git a/version.lisp-expr b/version.lisp-expr index 68e6274..130c545 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4