[SubZero] Handle relocatable constants for MIPS

The patch generates HI/LO modifiers for relocatable constants.

R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/2420033002 .

Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
diff --git a/src/IceTargetLoweringMIPS32.cpp b/src/IceTargetLoweringMIPS32.cpp
index 624c4a5..b7d36a6 100644
--- a/src/IceTargetLoweringMIPS32.cpp
+++ b/src/IceTargetLoweringMIPS32.cpp
@@ -4961,10 +4961,10 @@
         return From;
     }
     if (auto *C = llvm::dyn_cast<ConstantRelocatable>(From)) {
-      (void)C;
-      // TODO(reed kotler): complete this case for proper implementation
       Variable *Reg = makeReg(Ty, RegNum);
-      Context.insert<InstFakeDef>(Reg);
+      Variable *TReg = makeReg(Ty, RegNum);
+      _lui(TReg, C, RO_Hi);
+      _addiu(Reg, TReg, C, RO_Lo);
       return Reg;
     } else if (auto *C32 = llvm::dyn_cast<ConstantInteger32>(From)) {
       const uint32_t Value = C32->getValue();