Preliminary changes to allow mips target to build.

It compiles, but it doesn't work yet.

Change-Id: I2973a03bd956d8d398b9cfd1047e66fbf3ff439c
diff --git a/src/compiler/Frontend.cc b/src/compiler/Frontend.cc
index 3aedbe9..78c0f94 100644
--- a/src/compiler/Frontend.cc
+++ b/src/compiler/Frontend.cc
@@ -801,6 +801,21 @@
     //cUnit->enableDebug |= (1 << kDebugDumpBitcodeFile);
   }
 #endif
+  if (cUnit->instructionSet == kMips) {
+    // Disable some optimizations for mips for now
+    cUnit->disableOpt |= (
+        (1 << kLoadStoreElimination) |
+        (1 << kLoadHoisting) |
+        (1 << kSuppressLoads) |
+        (1 << kNullCheckElimination) |
+        (1 << kPromoteRegs) |
+        (1 << kTrackLiveTemps) |
+        (1 << kSkipLargeMethodOptimization) |
+        (1 << kSafeOptimizations) |
+        (1 << kBBOpt) |
+        (1 << kMatch) |
+        (1 << kPromoteCompilerTemps));
+  }
   /* Are we generating code for the debugger? */
   if (compiler.IsDebuggingSupported()) {
     cUnit->genDebugger = true;
diff --git a/src/compiler/codegen/mips/MipsLIR.h b/src/compiler/codegen/mips/MipsLIR.h
index 4850205..5852b31 100644
--- a/src/compiler/codegen/mips/MipsLIR.h
+++ b/src/compiler/codegen/mips/MipsLIR.h
@@ -148,7 +148,7 @@
 #define LOC_C_RETURN {kLocPhysReg, 0, 0, 0, 0, 0, 0, 0, 1, r_V0, INVALID_REG, \
                       INVALID_SREG, INVALID_SREG}
 #define LOC_C_RETURN_FLOAT  LOC_C_RETURN
-#define LOC_C_RETURN_ALT {kLocPhysReg, 0, 0, 0, 0, 0, 0, 0, 1, r_F0, \
+#define LOC_C_RETURN_ALT {kLocPhysReg, 0, 0, 0, 0, 0, 0, 0, 1, r_V1, \
                           INVALID_REG, INVALID_SREG, INVALID_SREG}
 #define LOC_C_RETURN_WIDE {kLocPhysReg, 1, 0, 0, 0, 0, 0, 0, 1, r_RESULT0, \
                            r_RESULT1, INVALID_SREG, INVALID_SREG}
diff --git a/src/compiler/codegen/mips/MipsRallocUtil.cc b/src/compiler/codegen/mips/MipsRallocUtil.cc
index ded59f0..43fcc07 100644
--- a/src/compiler/codegen/mips/MipsRallocUtil.cc
+++ b/src/compiler/codegen/mips/MipsRallocUtil.cc
@@ -149,8 +149,9 @@
 
 extern RegLocation oatGetReturnAlt(CompilationUnit* cUnit)
 {
-  UNIMPLEMENTED(FATAL);
-  RegLocation res = LOC_C_RETURN;
+  RegLocation res = LOC_C_RETURN_ALT;
+  oatClobber(cUnit, res.lowReg);
+  oatMarkInUse(cUnit, res.lowReg);
   return res;
 }