Quick compiler: minor cleanup

Remove dead software floating point support.
Move a common function from target specific to target independent.

Change-Id: Iaf793857f7e0faae02c672b9f1d45a0658143a51
diff --git a/src/compiler/codegen/arm/assemble_arm.cc b/src/compiler/codegen/arm/assemble_arm.cc
index 93c979b..27544d8 100644
--- a/src/compiler/codegen/arm/assemble_arm.cc
+++ b/src/compiler/codegen/arm/assemble_arm.cc
@@ -1366,32 +1366,4 @@
   return EncodingMap[lir->opcode].size;
 }
 
-/*
- * Target-dependent offset assignment.
- */
-int ArmCodegen::AssignInsnOffsets(CompilationUnit* cu)
-{
-  LIR* arm_lir;
-  int offset = 0;
-
-  for (arm_lir = cu->first_lir_insn; arm_lir != NULL; arm_lir = NEXT_LIR(arm_lir)) {
-    arm_lir->offset = offset;
-    if (arm_lir->opcode >= 0) {
-      if (!arm_lir->flags.is_nop) {
-        offset += arm_lir->flags.size;
-      }
-    } else if (arm_lir->opcode == kPseudoPseudoAlign4) {
-      if (offset & 0x2) {
-        offset += 2;
-        arm_lir->operands[0] = 1;
-      } else {
-        arm_lir->operands[0] = 0;
-      }
-    }
-    /* Pseudo opcodes don't consume space */
-  }
-
-  return offset;
-}
-
 }  // namespace art
diff --git a/src/compiler/codegen/arm/codegen_arm.h b/src/compiler/codegen/arm/codegen_arm.h
index 4737d8c..f085a19 100644
--- a/src/compiler/codegen/arm/codegen_arm.h
+++ b/src/compiler/codegen/arm/codegen_arm.h
@@ -83,7 +83,6 @@
     virtual void SetupTargetResourceMasks(CompilationUnit* cu, LIR* lir);
     virtual const char* GetTargetInstFmt(int opcode);
     virtual const char* GetTargetInstName(int opcode);
-    virtual int AssignInsnOffsets(CompilationUnit* cu);
     virtual std::string BuildInsnString(const char* fmt, LIR* lir, unsigned char* base_addr);
     virtual uint64_t GetPCUseDefEncoding();
     virtual uint64_t GetTargetInstFlags(int opcode);
diff --git a/src/compiler/codegen/arm/fp_arm.cc b/src/compiler/codegen/arm/fp_arm.cc
index a9ea916..5e0e73d 100644
--- a/src/compiler/codegen/arm/fp_arm.cc
+++ b/src/compiler/codegen/arm/fp_arm.cc
@@ -50,9 +50,14 @@
       break;
     case Instruction::REM_FLOAT_2ADDR:
     case Instruction::REM_FLOAT:
-    case Instruction::NEG_FLOAT: {
-      return GenArithOpFloatPortable(cu, opcode, rl_dest, rl_src1, rl_src2);
-    }
+      FlushAllRegs(cu);   // Send everything to home location
+      CallRuntimeHelperRegLocationRegLocation(cu, ENTRYPOINT_OFFSET(pFmodf), rl_src1, rl_src2, false);
+      rl_result = GetReturn(cu, true);
+      StoreValue(cu, rl_dest, rl_result);
+      return false;
+    case Instruction::NEG_FLOAT:
+      GenNegFloat(cu, rl_dest, rl_src1);
+      return false;
     default:
       return true;
   }
@@ -89,9 +94,14 @@
       break;
     case Instruction::REM_DOUBLE_2ADDR:
     case Instruction::REM_DOUBLE:
-    case Instruction::NEG_DOUBLE: {
-      return GenArithOpDoublePortable(cu, opcode, rl_dest, rl_src1, rl_src2);
-    }
+      FlushAllRegs(cu);   // Send everything to home location
+      CallRuntimeHelperRegLocationRegLocation(cu, ENTRYPOINT_OFFSET(pFmod), rl_src1, rl_src2, false);
+      rl_result = GetReturnWide(cu, true);
+      StoreValueWide(cu, rl_dest, rl_result);
+      return false;
+    case Instruction::NEG_DOUBLE:
+      GenNegDouble(cu, rl_dest, rl_src1);
+      return false;
     default:
       return true;
   }
@@ -136,10 +146,13 @@
       op = kThumb2VcvtDI;
       break;
     case Instruction::LONG_TO_DOUBLE:
+      return GenConversionCall(cu, ENTRYPOINT_OFFSET(pL2d), rl_dest, rl_src);
     case Instruction::FLOAT_TO_LONG:
+      return GenConversionCall(cu, ENTRYPOINT_OFFSET(pF2l), rl_dest, rl_src);
     case Instruction::LONG_TO_FLOAT:
+      return GenConversionCall(cu, ENTRYPOINT_OFFSET(pL2f), rl_dest, rl_src);
     case Instruction::DOUBLE_TO_LONG:
-      return GenConversionPortable(cu, opcode, rl_dest, rl_src);
+      return GenConversionCall(cu, ENTRYPOINT_OFFSET(pD2l), rl_dest, rl_src);
     default:
       return true;
   }