qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Marius Groeger <mgroeger@sysgo.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH][MIPS] FPU support for MIPS
Date: Thu, 27 Apr 2006 12:22:39 +0200 (CEST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0604271211430.13776@mag.sysgo.com> (raw)
In-Reply-To: <444FF164.2060104@bellard.org>

Hi Fabrice,

thanks for the review.

On Thu, 27 Apr 2006, Fabrice Bellard wrote:

> 1) Why do you use 3 temporaries ? Maybe two suffice in most cases.

Well, I less temporaries don't gain performance, while a

   FDT2 = FDT0 * FDT1
   fpu_dump_state()

allows for easier debugging. Therefore I'd rather keep three temps, 
but I can change that if you think it's too much bloat.

> 2) do_cmp_d() should be completely decoded at translation time.

Hm. Yeah. I just don't quite now about the limitations of generated 
code. In the !CONFIG_SOFTFLOAT case, the softfloat-native will use 
compiler/libc defined stuff like isgreater(), libm, whatever. Is is 
really safe to assume all that code can be generated? I felt better 
with a CALL_FROM_TB(). Maybe you can enlighten me a bit there.

Also, is a call really that much slower? It might even benefit from 
the called function being in the host cpu cache already. Any figures 
on that available?

> 3) I suspect the macro FPR() does too many things at runtime which gives an 
> important performance loss. CP0St_FR should be known at translation time.

I'll see what I can do.

> You should use CONFIG_SOFTFLOAT to validate your code. The ARM target does 
> it, so it works (see the configure script).

Ok, I got pretty weird errors in the floatx80 area and it kind of 
looked like this is broken. I must have missed something then.

While there: I noticed it's very difficult at best to properly emulate 
floating point states and exceptions when using native float; the 
softfloat has a nice interface for that stuff. How's the world order 
to handle this?

Thanks,
Marius

-- 
Marius Groeger <mgroeger@sysgo.com>
SYSGO AG                      Embedded and Real-Time Software
Voice: +49 6136 9948 0                  FAX: +49 6136 9948 10
www.sysgo.com | www.elinos.com | www.osek.de | www.pikeos.com

  reply	other threads:[~2006-04-27 10:22 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-26 14:26 [Qemu-devel] [PATCH][MIPS] FPU support for MIPS Marius Groeger
2006-04-26 22:17 ` Fabrice Bellard
2006-04-27 10:22   ` Marius Groeger [this message]
2006-05-02 12:06     ` [Qemu-devel] [PATCH][MIPS] Alexander Voropay
2006-05-02 16:14       ` Dirk Behme
  -- strict thread matches above, loose matches on Subject: below --
2006-05-02 14:01 [Qemu-devel] [PATCH][MIPS] FPU support for MIPS Marius Groeger
2006-05-02 14:20 ` Marius Groeger
     [not found]   ` <20060502143520.GB9551@lebarbe.net>
2006-05-03  8:19     ` Marius Groeger
2006-06-08 13:48 Marius Groeger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0604271211430.13776@mag.sysgo.com \
    --to=mgroeger@sysgo.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).