Add support for double-to-int & double-to-long in optimizing.

- Add support for the double-to-int and double-to-long Dex
  instructions in the optimizing compiler.
- Add S1 to the list of ARM FPU parameter registers so that
  a double value can be passed as parameter during a call
  to the runtime through D0.
- Have art::x86_64::X86_64Assembler::cvttsd2si work with
  64-bit operands.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  double to int and double to long HTypeConversion nodes.
- Add related tests to test/422-type-conversion.

Change-Id: Ic93b9ec6630c26e940f7966a3346ad3fd5a2ab3a
diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc
index 76efef0..fe32da0 100644
--- a/compiler/optimizing/builder.cc
+++ b/compiler/optimizing/builder.cc
@@ -1260,6 +1260,16 @@
       break;
     }
 
+    case Instruction::DOUBLE_TO_INT: {
+      Conversion_12x(instruction, Primitive::kPrimDouble, Primitive::kPrimInt, dex_pc);
+      break;
+    }
+
+    case Instruction::DOUBLE_TO_LONG: {
+      Conversion_12x(instruction, Primitive::kPrimDouble, Primitive::kPrimLong, dex_pc);
+      break;
+    }
+
     case Instruction::DOUBLE_TO_FLOAT: {
       Conversion_12x(instruction, Primitive::kPrimDouble, Primitive::kPrimFloat, dex_pc);
       break;