On Aug 15, 2013, at 4:32 AM, Aurelien Jarno <aurel...@aurel32.net> wrote:
> Bit extraction for the FP BF and L field of the MTFSFI and MTFSF > instructions is wrong and doesn't match the reference manual (which > explain the bit number in big endian format). It has been broken in > commit 7d08d85645def18eac2a9d672c1868a35e0bcf79. > > This patch fixes this, which in turn fixes the problem reported by > Khem Raj about the floor() function of libm. > > Reported-by: Khem Raj <raj.k...@gmail.com> > Signed-off-by: Aurelien Jarno <aurel...@aurel32.net> > --- > target-ppc/translate.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > I don't know if we still have time to get this into 1.6, hence the Cc: > to stable. In anycase it also needs to be fixed in 1.5. > > diff --git a/target-ppc/translate.c b/target-ppc/translate.c > index f07d70d..41f4048 100644 > --- a/target-ppc/translate.c > +++ b/target-ppc/translate.c > @@ -428,9 +428,9 @@ EXTRACT_HELPER(CRM, 12, 8); > EXTRACT_HELPER(SR, 16, 4); > > /* mtfsf/mtfsfi */ > -EXTRACT_HELPER(FPBF, 19, 3); > +EXTRACT_HELPER(FPBF, 23, 3); > EXTRACT_HELPER(FPIMM, 12, 4); > -EXTRACT_HELPER(FPL, 21, 1); > +EXTRACT_HELPER(FPL, 25, 1); > EXTRACT_HELPER(FPFLM, 17, 8); > EXTRACT_HELPER(FPW, 16, 1); > > -- > 1.7.10.4 > Thanks for quick turnaround, I have tested this patch and fixes the said issue.