Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!kpc.com!ardent!mac From: mac@gold.kpc.com (Mike McNamara) Newsgroups: comp.arch Subject: Re: Changing IEEE rounding modes on the fly (was Re: somthing else) Message-ID: Date: 24 Jun 91 18:59:00 GMT References: <9106190449.AA02871@ucbvax.Berkeley.EDU> <1991Jun19.165150.2121@shinobu.sgi.com> <3751@charon.cwi.nl> Sender: uucp@kpc.com (UNIX-to-UNIX Copy) Reply-To: mac@kpc.com (Michael McNamara) Organization: Kubota Pacific Computer Incoporated, Santa Clara, CA Lines: 21 In-Reply-To: dik@cwi.nl's message of 21 Jun 91 00:59:00 GMT Nntp-Posting-Host: gold In the Ardent titan, using the BIT fp chips, we supported on the fly, fully pipelined rounding mode changes. We did this by making the change rounding mode action an instruction, rather than a register write. This greatly facilitates interval arithmetic, intrinsics, and what have you, as discussed to death in this thread. However, since the changing of rounding modes is a pipelined instruction, rather than a register write, the operating system has to start up the vector unit while in kernel mode, and insert an instruction into the stream if it is necessary to change rounding modes upon context switch. Luckily A) you could read the current rounding mode from a status register, and only insert this instruction if you needed to switch, and B) most programs use round to nearest. -mac -- +-----------+-----------------------------------------------------------------+ |mac@kpc.com| Increasing Software complexity lets us sell Mainframes as | | | personal computers. Carry on, X windows/Postscript/emacs/CASE!! | +-----------+-----------------------------------------------------------------+