On 25 April 2011 23:31, Aurelien Jarno <aurel...@aurel32.net> wrote: > On Mon, Apr 25, 2011 at 10:59:52PM +0100, Peter Maydell wrote: >> On 25 April 2011 22:09, Aurelien Jarno <aurel...@aurel32.net> wrote: >> > Instead of having this complex test for all cp15 access, but only for >> > catching a few access to performance registers, wouldn't it make more >> > sense to have this test and an exception triggering directly in >> > helper.c? >> >> That was what my first design did, but in discussions on IRC >> with Paul Brook he basically said that you can't generate an >> exception in the helper routine, you have to either generate >> runtime code to do the test or throw away the TBs. Unfortunately >> I forget the exact rationale, so I've cc'd Paul to remind me :-) > > This is something strange, plenty of targets are raising exceptions from > helpers without any problem.
You'd at minimum need to move the cp15 helper functions to a different file, they're currently in helper.c which doesn't get compiled with access to the global 'env' register. But I got the impression there was something more significant than that. -- PMM