Index: src/compiler/operator.h |
diff --git a/src/compiler/operator.h b/src/compiler/operator.h |
index d6f80ad1cf7e34affd8bc97b5ea82b2ffb220923..fb144ce896a4355a738371de31c9177a1e7f22ab 100644 |
--- a/src/compiler/operator.h |
+++ b/src/compiler/operator.h |
@@ -172,6 +172,20 @@ inline T const& OpParameter(const Operator* op) { |
return static_cast<const Operator1<T>*>(op)->parameter(); |
} |
+// NOTE: We have to be careful to use the right equal/hash functions below, for |
+// float/double we always use the ones operating on the bit level. |
+template <> |
+inline float const& OpParameter(const Operator* op) { |
+ return static_cast<const Operator1<float, base::bit_equal_to<float>, |
+ base::bit_hash<float>>*>(op)->parameter(); |
+} |
+ |
+template <> |
+inline double const& OpParameter(const Operator* op) { |
+ return static_cast<const Operator1<double, base::bit_equal_to<double>, |
+ base::bit_hash<double>>*>(op)->parameter(); |
+} |
+ |
} // namespace compiler |
} // namespace internal |
} // namespace v8 |