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.