softfloat: Fix shift128Right for shift counts 64..127
authorPeter Maydell <peter.maydell@linaro.org>
Sun, 2 Jun 2013 15:17:49 +0000 (16:17 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Mon, 10 Jun 2013 16:36:12 +0000 (11:36 -0500)
shift128Right would give the wrong result for a shift count
between 64 and 127. This was never noticed because all of
our uses of this function are guaranteed not to use shift
counts in this range.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1370186269-24353-1-git-send-email-peter.maydell@linaro.org
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
fpu/softfloat-macros.h

index b5164af..9b09545 100644 (file)
@@ -168,7 +168,7 @@ INLINE void
         z0 = a0>>count;
     }
     else {
-        z1 = ( count < 64 ) ? ( a0>>( count & 63 ) ) : 0;
+        z1 = (count < 128) ? (a0 >> (count & 63)) : 0;
         z0 = 0;
     }
     *z1Ptr = z1;