After about a month and a half of 100-hour weeks, I can finally get back to a normal schedule. So that means getting back to the crash.
I'm looking at the not_usable mask during register allocation, I think that's messing me up.
It is. GCC is assuming a word-sized quantity where a byte-sized one is called for. I've got all these fake registers, and prohibit QI usage in non-fake regisers. Since GCC is confused about type and size, a register cannot be allocated.
I'm really getting frustrated about these byte-related issues.