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, _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits