Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Jan 2003 08:31:05 -0800 (PST)
From:      John Polstra <jdp@polstra.com>
To:        sparc@freebsd.org
Cc:        tmoestl@gmx.net
Subject:   Re: Sparc64 floating point questions
Message-ID:  <200301171631.h0HGV5PO041575@vashon.polstra.com>
In-Reply-To: <20030117133055.GA304@crow.dom2ip.de>
References:  <XFMail.20030114144825.jdp@polstra.com> <20030115021706.GA5902@crow.dom2ip.de> <200301170216.h0H2G0PZ040597@vashon.polstra.com> <20030117133055.GA304@crow.dom2ip.de>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <20030117133055.GA304@crow.dom2ip.de>,
Thomas Moestl  <tmoestl@gmx.net> wrote:
> Since you are going to write to all fp registers anyway, both will get
> set automatically. These bits are not used by the hardware and exist
> only to allow software to skip saving unused registers. The kernel
> does not currently make use of them. However, if it (or a userland
> thread manager) did, and a switch was to take place before all
> registers were restored, the missing dirty bits would indicate that
> the yet unaccessed parts of the registers need not be saved, which
> does not matter at all since their old values will not be used any
> more.
> The kernel itself does never clear DU and DL, so it is possible to use
> them in user land to skip unnecessary saving (and unneccesary
> reloading if one of the halves was not accessed at all); in this case
> it would be necessary to clear the bits explicitely after reloading.
> Both will however get set currently each time the fp registers are
> restored after a (kernel) context switch, so this does probably not
> really pay off. Also, things would break if the kernel started to use
> them for saving decisions.
> 
> Setting FEF explicitely before reloading makes sure that a fp state
> that was saved on a previous context switch and that might not have
> been restored yet will not be restored due to the following register
> accesses. Since all registers will be overwritten anyway, this would
> just eat cycles unnecessarily.

Thanks!  I understand it perfectly now.

John
-- 
  John Polstra
  John D. Polstra & Co., Inc.                        Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-sparc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301171631.h0HGV5PO041575>