From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52261) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLEUw-0001gL-Gm for qemu-devel@nongnu.org; Tue, 10 Feb 2015 12:21:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YLEUr-0007BI-E2 for qemu-devel@nongnu.org; Tue, 10 Feb 2015 12:21:18 -0500 Received: from mailapp01.imgtec.com ([195.59.15.196]:5282) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLEUr-0007Ax-6D for qemu-devel@nongnu.org; Tue, 10 Feb 2015 12:21:13 -0500 Message-ID: <54DA3E03.5050808@imgtec.com> Date: Tue, 10 Feb 2015 17:21:07 +0000 From: Leon Alrae MIME-Version: 1.0 References: <54D8EA12.3030004@imgtec.com> <54D9E116.9060201@imgtec.com> In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 7/7] target-mips: Add IEEE 754-2008 features support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Maciej W. Rozycki" Cc: qemu-devel@nongnu.org, Aurelien Jarno , Thomas Schwinge On 10/02/2015 14:30, Maciej W. Rozycki wrote: > On Tue, 10 Feb 2015, Leon Alrae wrote: > >>> These cases could be addressed by either replacing subtraction from 0.0 >>> with multiplication by -1.0, or by tweaking the rounding mode as needed >>> temporarily. Given that the computational cost of multiplication is >>> uncertain and likely higher or at best the same as the cost of addition or >>> subtraction, I'd be leaning towards the latter solution. >> >> My first thought was to treat zero in NEG.fmt as a special case and use >> float32_chs() for it. But tweaking the rounding mode temporarily >> probably is better as we will get consistent behaviour for zero as well >> as input denormals which are squashed in float32_sub() when >> flush_inputs_to_zero flag is set (actually I'm not sure if legacy fp >> instructions should flush input denormals, but according to the spec >> this is implementation dependent so I won't worry about this). > > As expected setting CP1.FCSR.FS on a randomly picked R4400 processor: > > CPU0 revision is: 00000440 (R4400SC) > FPU revision is: 00000500 > > does flush a NEG.fmt's input denormal to 0. Given this program: Good to know, thanks for checking that on the real CPU! Leon