Fix x86 type conversions. test-art-host-oat passes.

- test-art-host-oat enabled in test builds.

- Created inline versions of float-to-int and double-to-int.

- Fixed calls to helper functions for long-to-float/double and
  float/double-to-long.

- Removed storePair and replaced its use with storeBaseDispWide (fixes
  iput-wide and aput-wide with doubles).

- Renamed helper functions to have art_ prefix.

- Fixed move-exception to store the result back.

- Fixed floating point comparison when the destination reg is the same as
  a source. The typing would get confused since the source is floating
  point, but the result is int, and a clobber is needed to overwrite the
  expected result type. A similar thing happens in float/double-to-int.

Change-Id: I0a876072254411aa42d6acadb8723be030727219
diff --git a/src/runtime_support.h b/src/runtime_support.h
index 0fb1b2b..50b6735 100644
--- a/src/runtime_support.h
+++ b/src/runtime_support.h
@@ -28,6 +28,13 @@
 extern "C" void art_proxy_invoke_handler();
 extern "C" void art_work_around_app_jni_bugs();
 
+extern "C" double art_l2d(int64_t l);
+extern "C" float art_l2f(int64_t l);
+extern "C" int64_t art_d2l(double d);
+extern "C" int32_t art_d2i(double d);
+extern "C" int64_t art_f2l(float f);
+extern "C" int32_t art_f2i(float f);
+
 namespace art {
 
 class Array;
@@ -36,11 +43,6 @@
 class Method;
 class Object;
 
-int64_t D2L(double d);
-int32_t D2I(double d);
-int64_t F2L(float f);
-int32_t F2I(float f);
-
 // Helpers to give consistent descriptive exception messages
 void ThrowNewIllegalAccessErrorClass(Thread* self, Class* referrer, Class* accessed);
 void ThrowNewIllegalAccessErrorClassForMethodDispatch(Thread* self, Class* referrer,