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),