Architecture aware events

This is a straightforward go at fixing #1331.  But I'm not confident that 6c13bcb is correct; we do get a few test failures by keeping `regs()` in `arch()`, so that's the reason the commit is there.