More x86 fixes for floating point operations.

- Fixed encoding for cvtss2sd and cvtsd2ss (they were swapped).

- Implemented neg-float and neg-double in assembly.

- Fixed float-to-int and double-to-int to return 0 if given NaN.

- Created helpers for rem-float and rem-double.

Change-Id: I456fcc1252a63dbb96c8280562e601f4efa3a5df
diff --git a/src/compiler/codegen/x86/Assemble.cc b/src/compiler/codegen/x86/Assemble.cc
index b9605cc..671e728 100644
--- a/src/compiler/codegen/x86/Assemble.cc
+++ b/src/compiler/codegen/x86/Assemble.cc
@@ -262,8 +262,8 @@
   EXT_0F_ENCODING_MAP(Addss,     0xF3, 0x58),
   EXT_0F_ENCODING_MAP(Mulsd,     0xF2, 0x59),
   EXT_0F_ENCODING_MAP(Mulss,     0xF3, 0x59),
-  EXT_0F_ENCODING_MAP(Cvtss2sd,  0xF2, 0x5A),
-  EXT_0F_ENCODING_MAP(Cvtsd2ss,  0xF3, 0x5A),
+  EXT_0F_ENCODING_MAP(Cvtsd2ss,  0xF2, 0x5A),
+  EXT_0F_ENCODING_MAP(Cvtss2sd,  0xF3, 0x5A),
   EXT_0F_ENCODING_MAP(Subsd,     0xF2, 0x5C),
   EXT_0F_ENCODING_MAP(Subss,     0xF3, 0x5C),
   EXT_0F_ENCODING_MAP(Divsd,     0xF2, 0x5E),