qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

TCG Floating Point Support (Work in Progress)


From: Matt
Subject: TCG Floating Point Support (Work in Progress)
Date: Wed, 29 Sep 2021 22:39:16 -0700

Hello--

I'm excited to share that I have been developing support for TCG
floating point operations; specifically, to accelerate emulation of
x86 guest code which heavily exercises the x87 FPU for a game console
emulator project based on QEMU. So far, this work has shown great
promise, demonstrating some dramatic performance improvements in
emulation of x87 heavy code.

The feature works in concert with unaccelerated x87 FPU helpers, and
also allows total soft float helper fallback if the user discovers
some issue with the hard float implementation. For the TCG target,
I've opted to implement it for x86-64 hosts using SSE2, although this
could be extended to support full 80b double extended precision with
host x87 support. I'm also in early development of an implementation
for AArch64 hosts.

There are still some significant tasks to be done, like proper
handling of exception flags, edge cases, and testing, to name a few.
Once in a slightly more mature state, I do think this feature would
make a natural addition to upstream QEMU and plan to submit it for
consideration.

I'm writing to the mailing list now to inform FPU maintainers and any
other interested parties that this work is happening, to solicit any
early feedback, and to extend an invitation to anyone interested in
collaborating to expedite its upstreaming.

My initial TCG FP work can be found here:
https://github.com/mborgerson/xemu/pull/464/commits

Thanks,
Matt



reply via email to

[Prev in Thread] Current Thread [Next in Thread]