C and C++ Binaries

cs_val64.h

Defines a set of utility operations on 64-bit references for CodeSonar.



Links


Defines

#define CS_VAL64_H
#define CS_VAL64_SAME_INSTANCE(v1, v2, fld) CSUINT64_EQUAL( v1.fld, v2.fld )
#define CS_VAL64_COMPARE(v1, v2, fld) CSUINT64_COMPARE( v1.fld, v2.fld )
#define CS_VAL64_IS_NULL(v, fld) CSUINT64_IS_ZERO( v.fld )
#define CS_VAL64_HASH_ROT(x, k) (((x)<<(k)) | ((x)>>(32-(k))))
#define CS_VAL64_HASH_FINAL(a, b, c)
do{                                       \
        c ^= b; c -= CS_VAL64_HASH_ROT(b,14); \
        a ^= c; a -= CS_VAL64_HASH_ROT(c,11); \
        b ^= a; b -= CS_VAL64_HASH_ROT(a,25); \
        c ^= b; c -= CS_VAL64_HASH_ROT(b,16); \
        a ^= c; a -= CS_VAL64_HASH_ROT(c,4);  \
        b ^= a; b -= CS_VAL64_HASH_ROT(a,14); \
        c ^= b; c -= CS_VAL64_HASH_ROT(b,24); \
        cs_detcheck_nondet_event( "CS_VAL64_HASH" );    \
    }while(0)
#define CS_VAL64_HASH(h, v, fld)
do{                                                             \
    cs_hash_t a,b;                                              \
    b = (((cs_hash_t*)&(v))[CS_MOST_SIGNIFICANT_WORD]);         \
    b &= 0x0000ffffUL;                                          \
    a = (((cs_hash_t*)&(v))[CS_LEAST_SIGNIFICANT_WORD]);        \
    CS_VAL64_HASH_FINAL(a,b,h);                                 \
}while(0)
#define CS_VAL64_UNSTABLE_HASH(v, fld)
do{                                                             \
    cs_hash_t a,b;                                              \
    b = (((cs_hash_t*)&(v))[CS_MOST_SIGNIFICANT_WORD]);         \
    a = (((cs_hash_t*)&(v))[CS_LEAST_SIGNIFICANT_WORD]);        \
    CS_VAL64_HASH_FINAL(a,b,h);                                 \
}while(0)