On Tue, Apr 30, 2019 at 10:44 AM Richard Henderson <richard.hender...@linaro.org> wrote: > On 4/30/19 10:32 AM, Max Filippov wrote: > > On Tue, Apr 30, 2019 at 3:11 AM Peter Maydell <peter.mayd...@linaro.org> > > wrote: > >> ...but now we'll set it to whatever exception_cause_vaddr does, > >> which is something more complicated based on the state of > >> env->sregs[PS]. > >> > >> We'll also end up setting env->sregs[PS] bits and env->pc, which > >> the old code did not. (In particular since we set the PS_EXCM bit, > >> the second time we take an exception won't we then end up > >> setting exception_index to EXC_DOUBLE, not EXC_USER ?) > > > > I guess it doesn't matter, because linux-user userspace never handles > > exceptions. PS, PC and similar must be fixed up by the linux-user > > exception handler. But I haven't tested it. > > It does handle exceptions, in linux-user/xtensa/cpu_loop.c. > And Peter's right that I should have kept EXC_USER.
PC must also either be preserved or restored from the EPC1 in the cpu_loop for the SYSCALL_CAUSE. > > Richard, is there a branch with this series available somewhere? > https://github.com/rth7680/qemu/tree/tcg-tlb-fill Thanks, I'll try it. -- Thanks. -- Max