diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2006-05-25 12:57:06 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2006-05-25 12:57:06 +0000 |
commit | 2f99b6bd9601ae8d4fd248f9bb701283795c38a8 (patch) | |
tree | 40527112dce9b90655be0835e55331d81d7405fe | |
parent | c3c1a86aa0fe3ccda2de383330b90b77aaccd710 (diff) |
implement initial version of ARMAsmPrinter::printOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28470 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMAsmPrinter.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp index 2e4dd17066..0ef22be2e6 100644 --- a/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/lib/Target/ARM/ARMAsmPrinter.cpp @@ -133,7 +133,37 @@ bool ARMAsmPrinter::runOnMachineFunction(MachineFunction &MF) { } 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, |