src/hotspot/share/metaprogramming/primitiveConversions.hpp
changeset 47609 a1f68e415b48
parent 47216 71c04702a3d5
child 49364 601146c66cad
--- a/src/hotspot/share/metaprogramming/primitiveConversions.hpp	Mon Oct 09 13:56:59 2017 +0200
+++ b/src/hotspot/share/metaprogramming/primitiveConversions.hpp	Mon Oct 09 14:39:59 2017 +0200
@@ -167,4 +167,24 @@
   return Cast<T, U>()(x);
 }
 
+// jfloat and jdouble translation to integral types
+
+template<>
+struct PrimitiveConversions::Translate<jdouble> : public TrueType {
+  typedef double Value;
+  typedef int64_t Decayed;
+
+  static Decayed decay(Value x) { return PrimitiveConversions::cast<Decayed>(x); }
+  static Value recover(Decayed x) { return PrimitiveConversions::cast<Value>(x); }
+};
+
+template<>
+struct PrimitiveConversions::Translate<jfloat> : public TrueType {
+  typedef float Value;
+  typedef int32_t Decayed;
+
+  static Decayed decay(Value x) { return PrimitiveConversions::cast<Decayed>(x); }
+  static Value recover(Decayed x) { return PrimitiveConversions::cast<Value>(x); }
+};
+
 #endif // SHARE_VM_METAPROGRAMMING_PRIMITIVECONVERSIONS_HPP