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

     void printAddrMode2Operand(const MachineInstr *MI, int OpNum);
+
+    // @LOCALMOD-START
+    // NOTE: we force the extra argument in the .td file
+    void printAddrMode2Operand(const MachineInstr *MI, int OpNo,
+                               const char* Modifier);
+    void printAddrMode3Operand(const MachineInstr *MI, int OpNo,
+                               const char* Modifier);
+    // @LOCALMOD-END
     void printAddrMode2OffsetOperand(const MachineInstr *MI, int OpNum);
+
     void printAddrMode3Operand(const MachineInstr *MI, int OpNum);
     void printAddrMode3OffsetOperand(const MachineInstr *MI, int OpNum);
     void printAddrMode4Operand(const MachineInstr *MI, int OpNum,
+
                                const char *Modifier = 0);
     void printAddrMode5Operand(const MachineInstr *MI, int OpNum,
                                const char *Modifier = 0);
@@ -170,6 +187,7 @@
     /// EmitMachineConstantPoolValue - Print a machine constantpool value to
     /// the .s file.
     virtual void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV) {

 void ARMInstPrinter::printAddrMode2OffsetOperand(const MCInst *MI,
                                                  unsigned OpNum) {
   const MCOperand &MO1 = MI->getOperand(OpNum);
Index: lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
===================================================================
--- lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp	(revision 88663)
