qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PULL 01/11] tcg-s390: Fix off-by-one in wraparound andi


From: Richard Henderson
Subject: [Qemu-devel] [PULL 01/11] tcg-s390: Fix off-by-one in wraparound andi
Date: Thu, 15 May 2014 09:39:33 -0700

Signed-off-by: Richard Henderson <address@hidden>
---
 tcg/s390/tcg-target.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c
index ebdd074..0f972ae 100644
--- a/tcg/s390/tcg-target.c
+++ b/tcg/s390/tcg-target.c
@@ -983,8 +983,8 @@ static void tgen_andi(TCGContext *s, TCGType type, TCGReg 
dest, uint64_t val)
         int msb, lsb;
         if ((val & 0x8000000000000001ull) == 0x8000000000000001ull) {
             /* Achieve wraparound by swapping msb and lsb.  */
-            msb = 63 - ctz64(~val);
-            lsb = clz64(~val) + 1;
+            msb = 64 - ctz64(~val);
+            lsb = clz64(~val) - 1;
         } else {
             msb = clz64(val);
             lsb = 63 - ctz64(val);
-- 
1.9.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]