Add basic V_COMMON exception handler - #22
Conversation
|
I am unfortunately away from keyboard for like another week, so I probably won't be able to review this until then. If feasible, could you ping me in a week? |
Ravenslofty
left a comment
There was a problem hiding this comment.
I suspect the ghost of provenance will haunt us for some time...
|
|
||
| use crate::{cop0::CoP0Dump, thread::ThreadControlBlock}; | ||
|
|
||
| /// Purposefully trigger an overflow exception. For testing purposes. |
There was a problem hiding this comment.
(thankfully, these went out of style)
| /// jumping to an exception handler. | ||
| #[repr(C)] | ||
| pub(crate) struct ThreadControlBlock { | ||
| pub at: u64, |
There was a problem hiding this comment.
I can't remember, is this from my code? If it was, it's technically incorrect because the GPRs are actually 128-bit wide...
There was a problem hiding this comment.
No, I started with 64-bit because that was the only way to keep the compiler and linker happy for some reason. I've now been trying to rewrite it with 128-bit fields but I can't quite figure out why it's failing to run properly. I've done all sorts of tricks but it always results in TLB Misses. I'll continue debugging it and try get it done.
There was a problem hiding this comment.
I don't suppose you have an IM platform I could talk to you on?
There was a problem hiding this comment.
If you'd like, I'm on Signal and Discord. Alternatively, is there any other platform that you'd prefer?
There was a problem hiding this comment.
Signal would be perfect. I'm ravenslofty.79
V_COMMONexceptions.COP0register values and halts.sleep_threadsyscall.r0crate.Partially addresses #20.