]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix carry flag computation for left rotates.
authorJulian Seward <jseward@acm.org>
Thu, 29 Jul 2004 22:22:31 +0000 (22:22 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 29 Jul 2004 22:22:31 +0000 (22:22 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@157

VEX/priv/guest-x86/ghelpers.c

index 7bf38d6c5dbdfde1bc9d40d92e5b50a4681ead58..6df69f6bdf295d18a39fde6b72a3f0c0ac217e85 100644 (file)
@@ -230,14 +230,14 @@ static inline int lshift(int x, int n)
     return cf | pf | af | zf | sf | of;                                \
 }
 
-/* ROL: cf' = msb(result).  of' = msb(result) ^ lsb(result). */
+/* ROL: cf' = lsb(result).  of' = msb(result) ^ lsb(result). */
 /* DST = result, SRC = old flags */
 #define ACTIONS_ROL(DATA_BITS,DATA_TYPE)               \
 {                                                              \
     PREAMBLE(DATA_BITS);                                       \
     int fl                                                     \
        = (CC_SRC & ~(CC_O | CC_C))                             \
-         | (CC_C & (CC_DST >> (DATA_BITS-1)))                  \
+         | (CC_C & CC_DST)                     \
          | (CC_O & (lshift(CC_DST, 11-(DATA_BITS-1))           \
                     ^ lshift(CC_DST, 11)));    \
     return fl;                                                 \