[llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
Rafael Espindola
rafael.espindola at gmail.com
Thu May 25 05:57:19 PDT 2006
Changes in directory llvm/lib/Target/ARM:
ARMAsmPrinter.cpp updated: 1.2 -> 1.3
---
Log message:
implement initial version of ARMAsmPrinter::printOperand
---
Diffs of the changes: (+31 -1)
ARMAsmPrinter.cpp | 32 +++++++++++++++++++++++++++++++-
1 files changed, 31 insertions(+), 1 deletion(-)
Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.2 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.3
--- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.2 Mon May 22 21:48:20 2006
+++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Thu May 25 07:57:06 2006
@@ -133,7 +133,37 @@
}
void ARMAsmPrinter::printOperand(const MachineInstr *MI, int opNum) {
- assert(0 && "not implemented");
+ const MachineOperand &MO = MI->getOperand (opNum);
+ const MRegisterInfo &RI = *TM.getRegisterInfo();
+ switch (MO.getType()) {
+ case MachineOperand::MO_Register:
+ if (MRegisterInfo::isPhysicalRegister(MO.getReg()))
+ O << LowercaseString (RI.get(MO.getReg()).Name);
+ else
+ assert(0 && "not implemented");
+ break;
+ case MachineOperand::MO_Immediate:
+ O << "#" << (int)MO.getImmedValue();
+ break;
+ case MachineOperand::MO_MachineBasicBlock:
+ assert(0 && "not implemented");
+ abort();
+ return;
+ case MachineOperand::MO_GlobalAddress:
+ assert(0 && "not implemented");
+ abort();
+ break;
+ case MachineOperand::MO_ExternalSymbol:
+ assert(0 && "not implemented");
+ abort();
+ break;
+ case MachineOperand::MO_ConstantPoolIndex:
+ assert(0 && "not implemented");
+ abort();
+ break;
+ default:
+ O << "<unknown operand type>"; abort (); break;
+ }
}
void ARMAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum,
More information about the llvm-commits
mailing list