On Tue, Jul 08, 2014 at 12:04:10PM -0700, Richard Henderson wrote: > > Just one thing - 0x1fffffffffffff will make 32bit hosts whine about integer > > constant being too large. So will 0x1ffffffffffffful, unfortunately - it > > really ought to be ull. > > > > I did use ull on the branch.
Aha... So you've caught that one already... I've looked at your branch; AFAICS, the only thing missing there is treating stores to FPCR.DNOD in system mode as "not implemented" (which it is in the code as well as in 21[0-3]64 hardware). Other than that everything seems to be fine; you are right about cvtql treatment - since that sucker doesn't have /i in any allowed trap suffices, we might as well just raise Inexact and let it be masked out - float_flag_inexact will be present in 'ignore'. And yes, folding the calculation itself in there obviously makes sense.