]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
calculate_eflags_all: finally get rid of compilation warnings, and
authorJulian Seward <jseward@acm.org>
Sat, 16 Oct 2004 22:59:59 +0000 (22:59 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 16 Oct 2004 22:59:59 +0000 (22:59 +0000)
do a bit of renaming of variables to make it clearer.

git-svn-id: svn://svn.valgrind.org/vex/trunk@361

VEX/priv/guest-x86/ghelpers.c

index ef06f9962eea901344678760a469989f051d0745..13b5cec428dc962c3aec928bd7458b77bb44148f 100644 (file)
@@ -90,27 +90,34 @@ static const uint8_t parity_table[256] = {
 };
 
 /* n must be a constant to be efficient */
-static inline int lshift(int x, int n)
+inline static Int lshift ( Int x, Int n )
 {
-    if (n >= 0)
-        return x << n;
-    else
-        return x >> (-n);
+   if (n >= 0)
+      return x << n;
+   else
+      return x >> (-n);
 }
 
 
 #define PREAMBLE(__data_bits)                                  \
-   const UInt DATA_MASK                                        \
+   /* const */ UInt DATA_MASK                                  \
       = __data_bits==8 ? 0xFF                                  \
                        : (__data_bits==16 ? 0xFFFF             \
                                           : 0xFFFFFFFF);       \
-   const UInt SIGN_MASK = 1 << (__data_bits - 1);              \
-   const UInt CC_DST = cc_dst;                                 \
-   const UInt CC_SRC = cc_src
+   /* const */ UInt SIGN_MASK = 1 << (__data_bits - 1);                \
+   /* const */ UInt CC_DST = cc_dst_formal;                    \
+   /* const */ UInt CC_SRC = cc_src_formal;                    \
+   /* Three bogus assignments, which hopefully gcc can    */   \
+   /* optimise away, and which stop it complaining about  */   \
+   /* unused variables.                                   */   \
+   SIGN_MASK = SIGN_MASK;                                      \
+   DATA_MASK = DATA_MASK;                                      \
+   CC_SRC = CC_SRC;
+
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_ADD(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_ADD(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
@@ -118,10 +125,10 @@ static inline int lshift(int x, int n)
    src1 = CC_SRC;                                              \
    src2 = CC_DST;                                              \
    dst  = src1 + src2;                                         \
-   cf = (DATA_TYPE)dst < (DATA_TYPE)src1;                      \
+   cf = (DATA_UTYPE)dst < (DATA_UTYPE)src1;                    \
    pf = parity_table[(uint8_t)dst];                            \
    af = (dst ^ src1 ^ src2) & 0x10;                            \
-   zf = ((DATA_TYPE)dst == 0) << 6;                            \
+   zf = ((DATA_UTYPE)dst == 0) << 6;                           \
    sf = lshift(dst, 8 - DATA_BITS) & 0x80;                     \
    of = lshift((src1 ^ src2 ^ -1) & (src1 ^ dst),              \
                12 - DATA_BITS) & CC_O;                         \
@@ -130,7 +137,7 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_ADC(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_ADC(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
@@ -138,10 +145,10 @@ static inline int lshift(int x, int n)
    src1 = CC_SRC;                                              \
    src2 = CC_DST;                                              \
    dst = src1 + src2 + 1;                                      \
-   cf = (DATA_TYPE)dst <= (DATA_TYPE)src1;                     \
+   cf = (DATA_UTYPE)dst <= (DATA_UTYPE)src1;                   \
    pf = parity_table[(uint8_t)dst];                            \
    af = (dst ^ src1 ^ src2) & 0x10;                            \
-   zf = ((DATA_TYPE)dst == 0) << 6;                            \
+   zf = ((DATA_UTYPE)dst == 0) << 6;                           \
    sf = lshift(dst, 8 - DATA_BITS) & 0x80;                     \
    of = lshift((src1 ^ src2 ^ -1) & (src1 ^ dst),              \
                 12 - DATA_BITS) & CC_O;                                \
@@ -150,7 +157,7 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_SUB(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_SUB(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
@@ -158,10 +165,10 @@ static inline int lshift(int x, int n)
    src1 = CC_DST;                                              \
    src2 = CC_SRC;                                              \
    dst = src1 - src2;                                          \
-   cf = (DATA_TYPE)src1 < (DATA_TYPE)src2;                     \
+   cf = (DATA_UTYPE)src1 < (DATA_UTYPE)src2;                   \
    pf = parity_table[(uint8_t)dst];                            \
    af = (dst ^ src1 ^ src2) & 0x10;                            \
-   zf = ((DATA_TYPE)dst == 0) << 6;                            \
+   zf = ((DATA_UTYPE)dst == 0) << 6;                           \
    sf = lshift(dst, 8 - DATA_BITS) & 0x80;                     \
    of = lshift((src1 ^ src2) & (src1 ^ dst),                   \
                12 - DATA_BITS) & CC_O;                                 \
@@ -170,7 +177,7 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_SBB(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_SBB(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
@@ -178,10 +185,10 @@ static inline int lshift(int x, int n)
    src1 = CC_DST;                                              \
    src2 = CC_SRC;                                              \
    dst = (src1 - src2) - 1;                                    \
-   cf = (DATA_TYPE)src1 <= (DATA_TYPE)src2;                    \
+   cf = (DATA_UTYPE)src1 <= (DATA_UTYPE)src2;                  \
    pf = parity_table[(uint8_t)dst];                            \
    af = (dst ^ src1 ^ src2) & 0x10;                            \
-   zf = ((DATA_TYPE)dst == 0) << 6;                            \
+   zf = ((DATA_UTYPE)dst == 0) << 6;                           \
    sf = lshift(dst, 8 - DATA_BITS) & 0x80;                     \
    of = lshift((src1 ^ src2) & (src1 ^ dst),                   \
                12 - DATA_BITS) & CC_O;                         \
@@ -190,14 +197,14 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_LOGIC(DATA_BITS,DATA_TYPE)                     \
+#define ACTIONS_LOGIC(DATA_BITS,DATA_UTYPE)                    \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
    cf = 0;                                                     \
    pf = parity_table[(uint8_t)CC_DST];                         \
    af = 0;                                                     \
-   zf = ((DATA_TYPE)CC_DST == 0) << 6;                         \
+   zf = ((DATA_UTYPE)CC_DST == 0) << 6;                                \
    sf = lshift(CC_DST, 8 - DATA_BITS) & 0x80;                  \
    of = 0;                                                     \
    return cf | pf | af | zf | sf | of;                         \
@@ -205,7 +212,7 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_INC(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_INC(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
@@ -215,7 +222,7 @@ static inline int lshift(int x, int n)
    cf = CC_SRC;                                                        \
    pf = parity_table[(uint8_t)CC_DST];                         \
    af = (CC_DST ^ src1 ^ src2) & 0x10;                         \
-   zf = ((DATA_TYPE)CC_DST == 0) << 6;                         \
+   zf = ((DATA_UTYPE)CC_DST == 0) << 6;                                \
    sf = lshift(CC_DST, 8 - DATA_BITS) & 0x80;                  \
    of = ((CC_DST & DATA_MASK) == SIGN_MASK) << 11;             \
    return cf | pf | af | zf | sf | of;                         \
@@ -223,7 +230,7 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_DEC(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_DEC(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
@@ -233,7 +240,7 @@ static inline int lshift(int x, int n)
    cf = CC_SRC;                                                        \
    pf = parity_table[(uint8_t)CC_DST];                         \
    af = (CC_DST ^ src1 ^ src2) & 0x10;                         \
-   zf = ((DATA_TYPE)CC_DST == 0) << 6;                         \
+   zf = ((DATA_UTYPE)CC_DST == 0) << 6;                                \
    sf = lshift(CC_DST, 8 - DATA_BITS) & 0x80;                  \
    of = ((CC_DST & DATA_MASK)                                  \
         == ((uint32_t)SIGN_MASK - 1)) << 11;                   \
@@ -242,14 +249,14 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_SHL(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_SHL(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
    cf = (CC_SRC >> (DATA_BITS - 1)) & CC_C;                    \
    pf = parity_table[(uint8_t)CC_DST];                         \
    af = 0; /* undefined */                                     \
-   zf = ((DATA_TYPE)CC_DST == 0) << 6;                         \
+   zf = ((DATA_UTYPE)CC_DST == 0) << 6;                                \
    sf = lshift(CC_DST, 8 - DATA_BITS) & 0x80;                  \
    /* of is defined if shift count == 1 */                     \
    of = lshift(CC_SRC ^ CC_DST, 12 - DATA_BITS) & CC_O;                \
@@ -258,14 +265,14 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_SAR(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_SAR(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                        \
    int cf, pf, af, zf, sf, of;                                 \
    cf = CC_SRC & 1;                                            \
    pf = parity_table[(uint8_t)CC_DST];                         \
    af = 0; /* undefined */                                     \
-   zf = ((DATA_TYPE)CC_DST == 0) << 6;                         \
+   zf = ((DATA_UTYPE)CC_DST == 0) << 6;                                \
    sf = lshift(CC_DST, 8 - DATA_BITS) & 0x80;                  \
    /* of is defined if shift count == 1 */                     \
    of = lshift(CC_SRC ^ CC_DST, 12 - DATA_BITS) & CC_O;                \
@@ -276,7 +283,7 @@ static inline int lshift(int x, int n)
 
 /* ROL: cf' = lsb(result).  of' = msb(result) ^ lsb(result). */
 /* DST = result, SRC = old flags */
-#define ACTIONS_ROL(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_ROL(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int fl                                                      \
@@ -291,7 +298,7 @@ static inline int lshift(int x, int n)
 
 /* ROR: cf' = msb(result).  of' = msb(result) ^ msb-1(result). */
 /* DST = result, SRC = old flags */
-#define ACTIONS_ROR(DATA_BITS,DATA_TYPE)                       \
+#define ACTIONS_ROR(DATA_BITS,DATA_UTYPE)                      \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int fl                                                      \
@@ -304,19 +311,19 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_SMUL(DATA_BITS,DATA_STYPE,DATA_S2TYPE)         \
+#define ACTIONS_UMUL(DATA_BITS,DATA_UTYPE,DATA_U2TYPE)         \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
-   DATA_STYPE  hi;                                             \
-   DATA_STYPE  lo = ((DATA_STYPE)CC_SRC) * ((DATA_STYPE)CC_DST);\
-   DATA_S2TYPE rr = ((DATA_S2TYPE)((DATA_STYPE)CC_SRC))                \
-                    * ((DATA_S2TYPE)((DATA_STYPE)CC_DST));     \
-   hi = (DATA_STYPE)(rr >>/*s*/ DATA_BITS);                    \
-   cf = (hi != (lo >>/*s*/ (DATA_BITS-1)));                    \
+   DATA_UTYPE  hi;                                             \
+   DATA_UTYPE  lo = ((DATA_UTYPE)CC_SRC) * ((DATA_UTYPE)CC_DST);\
+   DATA_U2TYPE rr = ((DATA_U2TYPE)((DATA_UTYPE)CC_SRC))                \
+                    * ((DATA_U2TYPE)((DATA_UTYPE)CC_DST));     \
+   hi = (DATA_UTYPE)(rr >>/*u*/ DATA_BITS);                    \
+   cf = (hi != 0);                                             \
    pf = parity_table[(uint8_t)lo];                             \
    af = 0; /* undefined */                                     \
-   zf = (lo == 0) << 6;                                                \
+   zf = (lo == 0) << 6;                                                \
    sf = lshift(lo, 8 - DATA_BITS) & 0x80;                      \
    of = cf << 11;                                              \
    return cf | pf | af | zf | sf | of;                         \
@@ -324,19 +331,19 @@ static inline int lshift(int x, int n)
 
 /*-------------------------------------------------------------*/
 
-#define ACTIONS_UMUL(DATA_BITS,DATA_UTYPE,DATA_U2TYPE)         \
+#define ACTIONS_SMUL(DATA_BITS,DATA_STYPE,DATA_S2TYPE)         \
 {                                                              \
    PREAMBLE(DATA_BITS);                                                \
    int cf, pf, af, zf, sf, of;                                 \
-   DATA_UTYPE  hi;                                             \
-   DATA_UTYPE  lo = ((DATA_UTYPE)CC_SRC) * ((DATA_UTYPE)CC_DST);\
-   DATA_U2TYPE rr = ((DATA_U2TYPE)((DATA_UTYPE)CC_SRC))                \
-                    * ((DATA_U2TYPE)((DATA_UTYPE)CC_DST));     \
-   hi = (DATA_UTYPE)(rr >>/*u*/ DATA_BITS);                    \
-   cf = (hi != 0);                                             \
+   DATA_STYPE  hi;                                             \
+   DATA_STYPE  lo = ((DATA_STYPE)CC_SRC) * ((DATA_STYPE)CC_DST);\
+   DATA_S2TYPE rr = ((DATA_S2TYPE)((DATA_STYPE)CC_SRC))                \
+                    * ((DATA_S2TYPE)((DATA_STYPE)CC_DST));     \
+   hi = (DATA_STYPE)(rr >>/*s*/ DATA_BITS);                    \
+   cf = (hi != (lo >>/*s*/ (DATA_BITS-1)));                    \
    pf = parity_table[(uint8_t)lo];                             \
    af = 0; /* undefined */                                     \
-   zf = (lo == 0) << 6;                                                \
+   zf = (lo == 0) << 6;                                                \
    sf = lshift(lo, 8 - DATA_BITS) & 0x80;                      \
    of = cf << 11;                                              \
    return cf | pf | af | zf | sf | of;                         \
@@ -409,15 +416,17 @@ static void initCounts ( void )
 
 /* CALLED FROM GENERATED CODE */
 /* Calculate all the 6 flags from the supplied thunk parameters. */
-/*static*/ UInt calculate_eflags_all ( UInt cc_op, UInt cc_src, UInt cc_dst )
+/*static*/ 
+UInt calculate_eflags_all ( UInt cc_op, UInt cc_src_formal, UInt cc_dst_formal )
 {
 #  if PROFILE_EFLAGS
    n_calc_all++;
 #  endif
    switch (cc_op) {
       case CC_OP_COPY:
-         return cc_src & (CC_MASK_O | CC_MASK_S | CC_MASK_Z 
-                          | CC_MASK_A | CC_MASK_C | CC_MASK_P);
+         return cc_src_formal
+                & (CC_MASK_O | CC_MASK_S | CC_MASK_Z 
+                   | CC_MASK_A | CC_MASK_C | CC_MASK_P);
 
       case CC_OP_ADDB:   ACTIONS_ADD( 8,  UChar  );
       case CC_OP_ADDW:   ACTIONS_ADD( 16, UShort );
@@ -474,7 +483,7 @@ static void initCounts ( void )
       default:
          /* shouldn't really make these calls from generated code */
          vex_printf("calculate_eflags_all( %d, 0x%x, 0x%x )\n",
-                    cc_op, cc_src, cc_dst );
+                    cc_op, cc_src_formal, cc_dst_formal );
          vpanic("calculate_eflags_all");
    }
 }