[arch][m68k] Add support for plain 68000 exception handling#499
[arch][m68k] Add support for plain 68000 exception handling#499jrac wants to merge 1 commit intolittlekernel:masterfrom
Conversation
Generates per-vector stubs, with each vectory entry pointing to a unique stub slot, which branches to a common handler. We construct a synthetic exception frame that can be passed to the existing C handlers.
travisg
left a comment
There was a problem hiding this comment.
I think there are a few issues here but otherwise LGTM.
| .set stub, stub + STUB_SIZE | ||
| .endr | ||
| .org (15 * 4) | ||
| .set stub, _m68k_irq_stub_gen |
There was a problem hiding this comment.
is this supposed to be _m68k_irq15_stub_gen?
| .long stub | ||
| .set stub, stub + STUB_SIZE | ||
| .org (16 * 4) | ||
| .set stub, _m68k_general_stub_gen |
There was a problem hiding this comment.
is this resetting the stub its referring to back to the first entry of the general stub table? i think this makes entry 16 point to entry 2, etc
| .org (61 * 4) | ||
| .long _060_isp_unimp | ||
| .org (62 * 4) | ||
| .set stub, _m68k_general_stub_gen |
There was a problem hiding this comment.
i think this has a similar problem to the previous stub gen issue at 16.
|
|
||
| .text | ||
|
|
||
| .weak _060_isp_unimp |
There was a problem hiding this comment.
We should probably re-think this unimp thing and always have it implemented somewhere? As it is in the 010 path it falls through to the IRQ code, which is I guess maybe okay there because of the frame decode. Here, since you moved it out of the conditional, it'll fall through to the first stub table, which is i guess entry #2.
Generates per-vector stubs, with each vectory entry pointing to a unique stub slot, which branches to a common handler.
We construct a synthetic exception frame that can be passed to the existing C handlers.