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.


r~

Reply via email to