From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35680) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1qBd-0008D6-17 for qemu-devel@nongnu.org; Tue, 01 Jul 2014 01:00:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X1qBc-0005lX-3A for qemu-devel@nongnu.org; Tue, 01 Jul 2014 01:00:56 -0400 Received: from zeniv.linux.org.uk ([2002:c35c:fd02::1]:37653) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1qBb-0005lM-S9 for qemu-devel@nongnu.org; Tue, 01 Jul 2014 01:00:56 -0400 Date: Tue, 1 Jul 2014 06:00:54 +0100 From: Al Viro Message-ID: <20140701050054.GI18016@ZenIV.linux.org.uk> References: <53A9C47C.2050002@twiddle.net> <20140624203244.GZ18016@ZenIV.linux.org.uk> <53A9E650.2020709@twiddle.net> <20140624212450.GB18016@ZenIV.linux.org.uk> <53A9EE7E.4020802@twiddle.net> <20140625070117.GD18016@ZenIV.linux.org.uk> <20140626055541.GF18016@ZenIV.linux.org.uk> <53B1AEEF.8010108@twiddle.net> <20140630205635.GG18016@ZenIV.linux.org.uk> <20140701043445.GH18016@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140701043445.GH18016@ZenIV.linux.org.uk> Sender: Al Viro Subject: Re: [Qemu-devel] [RFC] alpha qemu arithmetic exceptions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson Cc: qemu-devel@nongnu.org On Tue, Jul 01, 2014 at 05:34:45AM +0100, Al Viro wrote: > VAX operations are serious mess, but I'm not sure if we have them actually > used anywhere in Linux kernel or userland. Always possible, of course, but... Grr... Truncated mail, sorry. Missing part: _If_ we decide that we want CVTGQ working correctly, we'll have the following pile of fun: * it needs non-saturating overflow handling, same as cvttq * it needs different rounding for CVTGQ and CVTGQ/C * CVTGQ/S needs EXC_M_SWC in the word fed to trap in INV case (i.e. when we see dirty zero or reserved). I think the right way to do it is to have it use float_raise() and finish with something similar to gen_fp_exc_raise(), except that... * VAX insns need a slightly different trap handling - fpcr_exc_mask is IEEE-only. * g_to_float64() isn't quite right here - we want e.g. 2^-1023 to result in 0 *and* we want inexact raised. As it is, we'll end up with exact 0.