From 1a66c01ddaca2c2349d106fc335f527c802cc8f2 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Thu, 18 Jul 2002 21:23:59 +0000 Subject: [PATCH] 0.7.5.18: Get the NAME initarg for UNDEFINED-FUNCTION right (patch CSR "PPC and undefined functions" sbcl-devel 2002-07-17) --- src/runtime/ppc-assem.S | 7 +++---- tests/compiler.pure.lisp | 7 +++++++ version.lisp-expr | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/runtime/ppc-assem.S b/src/runtime/ppc-assem.S index dc400f2..1f8dd68 100644 --- a/src/runtime/ppc-assem.S +++ b/src/runtime/ppc-assem.S @@ -347,10 +347,9 @@ lra: GFUNCDEF(xundefined_tramp) .globl undefined_tramp - .byte 0,0,0,SIMPLE_FUN_HEADER_WIDETAG /* type_FunctionHeader */ - + .byte 0,0,0,SIMPLE_FUN_HEADER_WIDETAG .byte 18<<2 -undefined_tramp: +undefined_tramp: .byte 0,0,24 .long undefined_tramp .long NIL @@ -360,7 +359,7 @@ undefined_tramp: twllei reg_ZERO,trap_Cerror .byte 4 .byte UNDEFINED_FUN_ERROR - .byte 254, 140, 2 /* 140? sparc says sc_descriptorReg */ + .byte 254, sc_DescriptorReg+0x40, 1 /* 140? sparc says sc_descriptorReg */ .align 2 1: lwz reg_CODE,FDEFN_RAW_ADDR_OFFSET(reg_FDEFN) la reg_LIP,SIMPLE_FUN_CODE_OFFSET(reg_CODE) diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 9eac7fb..53b9c67 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -140,3 +140,10 @@ ;;; bug caught and fixed by Raymond Toy cmucl-imp 2002-07-10: &REST ;;; variable is not optional. (assert (null (ignore-errors (eval '(funcall (lambda (&rest) 12)))))) + +;;; on the PPC, we got the magic numbers in undefined_tramp wrong for +;;; a while; fixed by CSR 2002-07-18 +(multiple-value-bind (value error) + (ignore-errors (some-undefined-function)) + (assert (null value)) + (assert (eq (cell-error-name error) 'some-undefined-function))) diff --git a/version.lisp-expr b/version.lisp-expr index 52325b4..a3c80fb 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.5.17" +"0.7.5.18" -- 1.7.10.4