In the old calling scheme the exception object arrived as P5 in the handler. This doesn't really fit into the new scheme.

I can see two ways to go:

Store the exception (or an array of unhandled exceptions) in the interpreter and make exceptions available as:

a) e = interpinfo .INTERPINFO_EXCEPTION

b) via the get_params opcode

The latter would reflect the exception call being an internal continuation invocation:

   push_eh handler
      # throw
 handler:                        # handler:
   get_params "(0)", e           # .param pmc e

(Except that .param isn't allowed in arbitrary position currently)

Proposals welcome,
leo

Reply via email to