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.