arm: Fix ExtMachInst hash operator underlying type
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 3 Sep 2014 11:42:19 +0000 (07:42 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 3 Sep 2014 11:42:19 +0000 (07:42 -0400)
This patch fixes the hash operator used for ARM ExtMachInst, which
incorrectly was still using uint32_t. Instead of changing it to
uint64_t it is not using the underlying data type of the BitUnion.

src/arch/arm/types.hh

index 7b736492b855a427c25cad1f7dac318759001672..14cce8294af9140d23a2569c1b8616656e5b580b 100644 (file)
@@ -727,12 +727,17 @@ namespace ArmISA
 } // namespace ArmISA
 
 __hash_namespace_begin
-    template<>
-    struct hash<ArmISA::ExtMachInst> : public hash<uint32_t> {
-        size_t operator()(const ArmISA::ExtMachInst &emi) const {
-            return hash<uint32_t>::operator()((uint32_t)emi);
-        };
-    };
+
+template<>
+struct hash<ArmISA::ExtMachInst> :
+        public hash<ArmISA::ExtMachInst::__DataType> {
+
+    size_t operator()(const ArmISA::ExtMachInst &emi) const {
+        return hash<ArmISA::ExtMachInst::__DataType>::operator()(emi);
+    }
+
+};
+
 __hash_namespace_end
 
 #endif