WIP: Fix floats on m68k
diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
index c693691..2936d16 100644
--- a/gcc/jit/jit-playback.cc
+++ b/gcc/jit/jit-playback.cc
@@ -1084,16 +1084,30 @@
   // FIXME: type-checking, or coercion?
   tree inner_type = type->as_tree ();
 
-  mpfr_t mpf_value;
+  /*mpfr_t mpf_value;
 
   mpfr_init2 (mpf_value, 64);
-  mpfr_set_d (mpf_value, value, MPFR_RNDN);
+  mpfr_set_d (mpf_value, value, MPFR_RNDN);*/
 
   /* We have a "double", we want a REAL_VALUE_TYPE.
 
      realmpfr.cc:real_from_mpfr.  */
   REAL_VALUE_TYPE real_value;
-  real_from_mpfr (&real_value, mpf_value, inner_type, MPFR_RNDN);
+  //ieee_double_format.decode(&ieee_double_format, &real_value, (const long int*)&value);
+  //real_from_mpfr (&real_value, mpf_value, inner_type, MPFR_RNDN);
+  union
+  {
+      double as_double;
+      uint32_t as_uint32s[2];
+  } u;
+  u.as_double = value;
+  long int as_long_ints[2];
+  as_long_ints[0] = u.as_uint32s[0];
+  as_long_ints[1] = u.as_uint32s[1];
+  // TODO: Detect the host format instead of hard-coding ieee_double_format.
+  (ieee_double_format.decode) (&ieee_double_format, &real_value, as_long_ints);
+   //real_from_target (&real_value, as_long_ints, );
+
   tree inner = build_real (inner_type, real_value);
   return new rvalue (this, inner);
 }