diff options
author | Chris Lattner <sabre@nondot.org> | 2006-02-10 07:35:42 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-02-10 07:35:42 +0000 |
commit | fcb8a3aa76f8073193e69918e8bbd4a6c5a2f5fb (patch) | |
tree | c804f20edc3656a9023cdaa42288b0a00025c054 /llvm/lib/Target/Sparc/SparcAsmPrinter.cpp | |
parent | 0c4dea4cb2c109e17d21982821dea48a64635006 (diff) | |
download | bcm5719-llvm-fcb8a3aa76f8073193e69918e8bbd4a6c5a2f5fb.tar.gz bcm5719-llvm-fcb8a3aa76f8073193e69918e8bbd4a6c5a2f5fb.zip |
Use the auto-generated call matcher. Remove a broken impl of the frameaddr/returnaddr
intrinsics.
Autogen frameindex matcher
llvm-svn: 26107
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcAsmPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/Sparc/SparcAsmPrinter.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp b/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp index 2e88db63052..6d5c8506859 100644 --- a/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp +++ b/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp @@ -57,7 +57,8 @@ namespace { } void printOperand(const MachineInstr *MI, int opNum); - void printMemOperand(const MachineInstr *MI, int opNum); + void printMemOperand(const MachineInstr *MI, int opNum, + const char *Modifier = 0); void printCCOperand(const MachineInstr *MI, int opNum); bool printInstruction(const MachineInstr *MI); // autogenerated. @@ -189,8 +190,17 @@ void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum) { if (CloseParen) O << ")"; } -void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum) { +void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum, + const char *Modifier) { printOperand(MI, opNum); + + // If this is an ADD operand, emit it like normal operands. + if (Modifier && !strcmp(Modifier, "arith")) { + O << ", "; + printOperand(MI, opNum+1); + return; + } + MachineOperand::MachineOperandType OpTy = MI->getOperand(opNum+1).getType(); if ((OpTy == MachineOperand::MO_VirtualRegister || |