On 12/18/2013 12:49 PM, Tom Musta wrote: > The fri* series of instructions was introduced prior to ISA 2.06 and > is supported on Power7 and Power8 hardware. However, the instruction > is still considered illegal in the P7 and P8 QEMU emulation models. > This patch enables these instructions for the P7 and P8 machines. > > Also, the existing helper is modified to correctly handle some of > the boundary cases (NaNs and the inexact flag). > > Signed-off-by: Tom Musta <tommu...@gmail.com> > --- > target-ppc/fpu_helper.c | 12 ++++++------ > target-ppc/translate_init.c | 2 ++ > 2 files changed, 8 insertions(+), 6 deletions(-)
Probably should be separate patches, but whatever. > + farg.ll = float64_default_nan | 0x0008000000000000ul; That doesn't match what I see here: FRT <- (FRB) FRT12 <- 1 i.e. farg.ll |= 1ull << (63 - 12); i.e. mostly preserve the SNAN input. I'll also note that frin can't properly be implemented with float_round_nearest_even because it doesn't round to even. r~