  }
  
  void ARMAsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) {
-@@ -1345,6 +1769,7 @@
+@@ -1345,6 +1780,7 @@
      // generates code that does this, it is always safe to set.
      OutStreamer.EmitAssemblerFlag(MCStreamer::SubsectionsViaSymbols);
    }

   O << '\n';
 
   // Print out labels for the function.
@@ -287,7 +317,15 @@
       O << "\t" << CurrentFnName;
     O << "\n";
   } else {

   } else {
     printOperand(MI, Op);
     if (ARM_AM::getAM4WBFlag(MO2.getImm()))
@@ -618,6 +773,17 @@
       O << "!";
     return;
   }
+  //@LOCALMOD-START
+   else if (Modifier && strcmp(Modifier, "sfi") == 0) {
+     printAddrModeHelper(MI, Op, Op + 2, Modifier);
+     return;
+   } else if (Modifier && strcmp(Modifier, "basereg") == 0) {
+     O << getRegisterName(MO1.getReg());
