X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fmips-arch.c;h=c1ca525435fd30f8ea6f98136014b6c2a17931cc;hb=b7a8f5313a83dea33ce60551a4fb987b415c2cc6;hp=a65a38164d35e33cc8fd13c7256e7c3838fc4265;hpb=4ae1b794a5d6a90794468cf8017f5307f2c30dfe;p=sbcl.git diff --git a/src/runtime/mips-arch.c b/src/runtime/mips-arch.c index a65a381..c1ca525 100644 --- a/src/runtime/mips-arch.c +++ b/src/runtime/mips-arch.c @@ -106,10 +106,18 @@ emulate_branch(os_context_t *context, unsigned long inst) void arch_skip_instruction(os_context_t *context) { /* Skip the offending instruction */ - if (os_context_bd_cause(context)) + if (os_context_bd_cause(context)) { + /* Currently, we never get here, because Linux' support for + bd_cause seems not terribly solid (c.f os_context_bd_cause + in mips-linux-os.c). If a port to Irix comes along, this + code will be executed, because presumably Irix' support is + better (it can hardly be worse). We lose() to remind the + porter to review this code. -- CSR, 2002-09-06 */ + lose("bd_cause branch taken; review code for new OS?\n"); *os_context_pc_addr(context) = emulate_branch(context, *(unsigned long *) *os_context_pc_addr(context)); + } else *os_context_pc_addr(context) += 4; @@ -343,6 +351,11 @@ void arch_install_interrupt_handlers() undoably_install_low_level_interrupt_handler(SIGFPE,sigfpe_handler); } +void get_spinlock(lispobj *word, int value) { + /* FIXME: dummy definition */ + *word = value; +} + extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs); lispobj funcall0(lispobj function)