On 05/13/2014 02:49 PM, Peter Maydell wrote: > On 13 May 2014 22:22, Richard Henderson <r...@twiddle.net> wrote: >> There are a number of problems with the current interpreter: >> >> (1) It uses direct unaligned accesses as part of the bytecode stream. >> This fails with SIGBUS for strict alignment hosts. This could of >> course be fixed to use "proper" unaligned accesses, but this would >> just be slow. >> >> (2) The method by which it implements calls is non-portable, and really >> only works for x86. >> >> (3) The code is full of ifdefs and TODOs that never got completed. >> >> (4) The "registers" are in a global "tci_reg" array that implies that >> if threads are ever used, we'll immediately get corruption. Fixing >> this is complicated by the structure of the interpreter. >> >> (5) It hasn't been updated to the "new" ldst opcodes. >> >> To me, all of this adds up to a complete rewrite. > > Does the TCG interpreter actually have any interesting uses > to merit our carrying it around, maintaining it and (in this case) > rewriting it? Mostly I just see it when people accidentally configure > it and I have to say "don't do that, you really want the native TCG > backend".
The only interesting use I can think of is pure portability to otherwise unsupported hosts. Rare these days, but there are still some kicking. When do folks accidentally configure it? r~