Joakim Tjernlund writes: > Alexander Graf <ag...@suse.de> wrote on 2014/07/12 02:39:21: >> >> >> On 11.07.14 20:22, Peter Maydell wrote: >> > On 11 July 2014 19:15, Joakim Tjernlund > <joakim.tjernl...@transmode.se> wrote: >> >> Peter Maydell <peter.mayd...@linaro.org> wrote on 2014/07/11 > 19:14:25: >> >>> On 11 July 2014 16:18, Joakim Tjernlund > <joakim.tjernl...@transmode.se> >> >> wrote: >> >>>> ppc logs every type of Invalid instruction. This generates a lot >> >>> Rather than just deleting this EXCP_DUMP, I would suggest >> >>> changing the EXCP_DUMP macro so it only does anything >> >>> if the user has passed the "-d int" debug logging flag: >> >> I don't think ppc wants that. They want unconditionally >> >> debug on to get relevant bug reports. This one is getting in the >> >> way of normal operations so I think it should be deleted. >> > If the PPC maintainers want that behaviour then they need >> > to defend it. No other architecture's linux-user code spews >> > junk to stderr for exceptions, and PPC shouldn't either. >> > The debug log switches are exactly for allowing us to >> > say "please turn on debug logging" when bugs are reported, >> > and those are what we should use. >> >> I agree - and it's how we behave in system emulation mode already :). >> >> What do the other platforms do on illegal instructions during user mode? > >> Any way we can get consistency across the board? > > In this case it is not an illegal insn, it is a valid insn but not just > for the QEMU emulated CPU.
On aarch64 we do: #define unsupported_encoding(s, insn) \ do { \ qemu_log_mask(LOG_UNIMP, \ "%s:%d: unsupported instruction encoding 0x%08x " \ "at pc=%016" PRIx64 "\n", \ __FILE__, __LINE__, insn, s->pc - 4); \ unallocated_encoding(s); \ } while (0); So we signal it's unimplemented before falling through to the signal generating code. -- Alex Bennée