0.9.4.69:
authorThiemo Seufer <ths@networkno.de>
Thu, 15 Sep 2005 12:54:28 +0000 (12:54 +0000)
committerThiemo Seufer <ths@networkno.de>
Thu, 15 Sep 2005 12:54:28 +0000 (12:54 +0000)
Fix Bugs #346/#353 for mips.

src/runtime/mips-assem.S
version.lisp-expr

index 53863ce..5880415 100644 (file)
@@ -350,7 +350,7 @@ lra:        .word   RETURN_PC_HEADER_WIDETAG
  *
  * The undefined-function trampoline.
  */
-       .align  2
+       .align  3 /* minimum alignment for a lisp object */
        .word   SIMPLE_FUN_HEADER_WIDETAG /* header */
        .word   undefined_tramp - SIMPLE_FUN_CODE_OFFSET /* self */
        .word   NIL /* next */
@@ -358,6 +358,12 @@ lra:       .word   RETURN_PC_HEADER_WIDETAG
        .word   NIL /* arglist */
        .word   NIL /* type */
        LEAF(undefined_tramp)
+       /* Point reg_CODE to the header and tag it as function, since
+          the debugger regards a function pointer in reg_CODE which
+          doesn't point to a code object as undefined function.  */
+       lui     reg_CODE, %hi(undefined_tramp)
+       addiu   reg_CODE, %lo(undefined_tramp)
+       addiu   reg_CODE, - 24 + FUN_POINTER_LOWTAG
        .set    noreorder
        b       1f
         break  trap_Cerror
@@ -400,15 +406,16 @@ lra:      .word   RETURN_PC_HEADER_WIDETAG
 /*
  * Function-end breakpoint magic.
  */
-       .align  2
-       LEAF(fun_end_breakpoint_guts)
+       .align  3 /* minimum alignment for a lisp object */
        .set    noreorder
        .word   RETURN_PC_HEADER_WIDETAG
-
+       LEAF(fun_end_breakpoint_guts)
        b       multiple_value_return
         nop
        .set    reorder
 
+       /* single value return */
+
        move    reg_OCFP, reg_CSP
        addu    reg_CSP, 4
        li      reg_NARGS, 4
index 2845ade..fa79712 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".)
-"0.9.4.68"
+"0.9.4.69"