summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2017-12-12 17:09:40 -0500
committerBrian Potchik <brian@vector35.com>2017-12-12 17:09:40 -0500
commitfc96aa9e5058a0b064bbdeb20e85e951eb2b7703 (patch)
treeaa887bcdbd4489b226e93903ad4c55fc41ef1a9d
parent859b86c233a8783f134c498b9c32ea1826ed4503 (diff)
Modify Hash Functions.
-rw-r--r--lowlevelilinstruction.h8
-rw-r--r--mediumlevelilinstruction.h5
2 files changed, 7 insertions, 6 deletions
diff --git a/lowlevelilinstruction.h b/lowlevelilinstruction.h
index b2849d44..169c7a60 100644
--- a/lowlevelilinstruction.h
+++ b/lowlevelilinstruction.h
@@ -158,10 +158,10 @@ namespace std
#else
typedef BinaryNinja::SSARegister argument_type;
#endif
- typedef uint64_t result_type;
+ typedef uint32_t result_type;
result_type operator()(argument_type const& value) const
{
- return ((result_type)value.reg) ^ ((result_type)value.version << 32);
+ return ((result_type)value.reg) ^ ((result_type)value.version << 16);
}
};
@@ -176,10 +176,10 @@ namespace std
#else
typedef BinaryNinja::SSAFlag argument_type;
#endif
- typedef uint64_t result_type;
+ typedef uint32_t result_type;
result_type operator()(argument_type const& value) const
{
- return ((result_type)value.flag) ^ ((result_type)value.version << 32);
+ return ((result_type)value.flag) ^ ((result_type)value.version << 16);
}
};
diff --git a/mediumlevelilinstruction.h b/mediumlevelilinstruction.h
index 9a76cb6c..8bab199f 100644
--- a/mediumlevelilinstruction.h
+++ b/mediumlevelilinstruction.h
@@ -135,10 +135,11 @@ namespace std
#else
typedef BinaryNinja::SSAVariable argument_type;
#endif
- typedef uint64_t result_type;
+ typedef uint32_t result_type;
result_type operator()(argument_type const& value) const
{
- return ((result_type)value.var.ToIdentifier()) ^ ((result_type)value.version << 40);
+ uint64_t hashTmp = ((uint64_t)value.var.ToIdentifier()) ^ ((uint64_t)value.version << 40);
+ return (uint32_t)((hashTmp >> 32) ^ (uint32_t)hashTmp);
}
};