undefined-function-call errors not continuable in 0.14

Gary Byers <[email protected]> Sun, 18 May 2003 00:48:52 -0600 (MDT)
Newsgroups gmane.lisp.openmcl.bugs
Message-ID <[email protected]>
It's currently not possible to return from an undefined-function-call
error in 0.14.

The way that this was implemented plays around with the exception
context in a thread-/GC-unsafe way.  It should be fixed to play
around with it in a GC-safe way.  (The kernel exception handler
wants to advance the exception PC past all trap instructions/UUOs; we
need to inhibit it from doing so, -not- point the PC before the
new function entrypoint.)

One way of communicating this to the exception handler is to
store the (tagged) code-vector in the exception pc and to make
the kernel function adjsut_exception_pc() do nothing if the current
PC value has any of its tag bits set.  The low bits of srr0 should
be ignored by the hardware on exception return.