On Sep 29, 2016, at 11:41 AM, Peter Maydell wrote: > On 28 September 2016 at 21:17, David Gibson <da...@gibson.dropbear.id.au> > wrote: >> I think there is a way you could get both speed and accuracy, but it's >> a huge project: >> >> You'd need to add full float awareness to TCG - so floating point TCG >> values and floating point operations as tcp micro-ops, defined >> according to IEEE semantics. Then you'd need to rewrite the TCG >> frontends in terms of those new ops, at least for target CPUs close >> enough to IEEE semantics for that to work. And you'd need to rewrite >> the TCG backends to implement those fp ops in terms of host cpu fp >> instructions .. at least when the host has fp behaviour close enough >> to IEEE to make that work, with a fallback to soft float when that's >> not the case. > > Also even if you have float support in both frontend and backend > you still need to fall back to fully-emulated for the runtime > corner cases (like where tininess before/after rounding makes a > difference or where you need to care about minutiae of the > floating point exception flags, etc). It's not impossible > but it is a very large amount of technically complicated work.
This project sounds like it should have its own web page. Maybe even its own Google Summer of Code entry. I created a mindmap of this project. The picture is attached to this email. This is just a start. Please let me know what should be added or changed.