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~


Reply via email to