Fix CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll
authorChris Lattner <sabre@nondot.org>
Thu, 1 Feb 2007 00:39:08 +0000 (00:39 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 1 Feb 2007 00:39:08 +0000 (00:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33732 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCAsmPrinter.cpp
lib/Target/PowerPC/PPCRegisterInfo.cpp

index efd6d10c336abf21153ef45eef35069dbda6d647..c3ae5c8bbf0c9831c925d5666db65fe9abc10a2c 100644 (file)
@@ -436,7 +436,10 @@ bool PPCAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
                                           const char *ExtraCode) {
   if (ExtraCode && ExtraCode[0])
     return true; // Unknown modifier.
-  printMemRegReg(MI, OpNo);
+  if (MI->getOperand(OpNo).isRegister())
+    printMemRegReg(MI, OpNo);
+  else
+    printMemRegImm(MI, OpNo);
   return false;
 }
 
index 4324b9d598e6237bdc72e15e1f6e7cef0678ba75..fb80350c557ddae2fcc8948290279def8dd88be7 100644 (file)
@@ -522,6 +522,9 @@ PPCRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const {
   }
   // Take into account whether it's an add or mem instruction
   unsigned OffIdx = (i == 2) ? 1 : 2;
+  if (MI.getOpcode() == TargetInstrInfo::INLINEASM)
+    OffIdx = i-1;
+      
   // Get the frame index.
   int FrameIndex = MI.getOperand(i).getFrameIndex();