On Mon, Sep 17, 2012 at 5:05 PM, Richard Henderson <r...@twiddle.net> wrote:
> On 09/17/2012 09:04 AM, Andreas Färber wrote:
>> Without knowing the code, this does not strike me as the best of ideas:
>> SPARC CPUs are rather uncommon these days, so being able to emulate it
>> in sparc32-softmmu may be helpful for keeping it working.
>>
>> Could you elaborate on what exactly is broken and what would need to be
>> done as alternative?
>
> See, for instance, patch 2.  INDEX_op_qemu_ld64 and INDEX_op_qemu_st64
> were unimplemented, caught during tcg startup with --enable-tcg-debug,
> and crashing later without.
>
> Handling only sparcv9 host cpus means that lots of code paths are able
> to be cleaned up:
>
>   (1) Multiply and divide insns are available
>       (Conditional support for these is not easy.)
>
>   (2) Endian-swapping load/store insns are available
>       (Vastly cleans up qemu_ld/st; by the end of my patch set the
>        fast path through the tlb is a single insn in the delay slot
>        of the branch over the call to the helper.)
>
>   (3) Conditional move insns are available
>       (For setcond this is tidier than playing subtract-with-borrow games).
>
> But sparcv9 is now coming up on 20 years old.  The amount of hardware
> still live that isn't v9 capable is bound to be vanishingly small -- in
> much the same way that i386 hosts without i486 bswap.  I don't think we
> need to use the QEMU TCG code generator as a test case that keeps sparcv7
> code alive.

No Linux distros supports Sparc32 anymore. There's NetBSD and OpenBSD though.

Would it make sense to break up tcg/sparc into tcg/sparc32 and
tcg/sparc64? That way it would be possible to give Sparc32 a chance of
getting fixed. But I wouldn't object removal either.

>
>
> r~

Reply via email to