summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-02-01 00:39:08 +0000
committerChris Lattner <sabre@nondot.org>2007-02-01 00:39:08 +0000
commitf7937005a3c8ae09aac8bc51175b1686ee8f69f6 (patch)
tree50c2972795f03fc58fabcd4ee0ad7d3533b6d174 /llvm/lib/Target
parent667ff4832ef1bc69f164523ab63e8fb713c9f8db (diff)
downloadbcm5719-llvm-f7937005a3c8ae09aac8bc51175b1686ee8f69f6.tar.gz
bcm5719-llvm-f7937005a3c8ae09aac8bc51175b1686ee8f69f6.zip
Fix CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll
llvm-svn: 33732
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp5
-rw-r--r--llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp3
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
index efd6d10c336..c3ae5c8bbf0 100644
--- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -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;
}
diff --git a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
index 4324b9d598e..fb80350c557 100644
--- a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
+++ b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
@@ -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();
OpenPOWER on IntegriCloud