mcize a bunch more stuff, using EmitRawText for things we
don't have mcstreamer support for yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100319 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp b/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp
index 2065ebf..0fb12a6 100644
--- a/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp
+++ b/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp
@@ -50,18 +50,10 @@
return "MSP430 Assembly Printer";
}
- void printMCInst(const MCInst *MI) {
- MSP430InstPrinter(*MAI).printInstruction(MI, O);
- }
void printOperand(const MachineInstr *MI, int OpNum,
- const char* Modifier = 0);
- void printPCRelImmOperand(const MachineInstr *MI, int OpNum) {
- printOperand(MI, OpNum);
- }
+ raw_ostream &O, const char* Modifier = 0);
void printSrcMemOperand(const MachineInstr *MI, int OpNum,
- const char* Modifier = 0);
- void printCCOperand(const MachineInstr *MI, int OpNum);
- void printMachineInstruction(const MachineInstr * MI);
+ raw_ostream &O);
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
unsigned AsmVariant, const char *ExtraCode,
raw_ostream &O);
@@ -79,7 +71,7 @@
void MSP430AsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
- const char* Modifier) {
+ raw_ostream &O, const char *Modifier) {
const MachineOperand &MO = MI->getOperand(OpNum);
switch (MO.getType()) {
default: assert(0 && "Not implemented yet!");
@@ -126,7 +118,7 @@
}
void MSP430AsmPrinter::printSrcMemOperand(const MachineInstr *MI, int OpNum,
- const char* Modifier) {
+ raw_ostream &O) {
const MachineOperand &Base = MI->getOperand(OpNum);
const MachineOperand &Disp = MI->getOperand(OpNum+1);
@@ -135,28 +127,16 @@
// Imm here is in fact global address - print extra modifier.
if (Disp.isImm() && !Base.getReg())
O << '&';
- printOperand(MI, OpNum+1, "nohash");
+ printOperand(MI, OpNum+1, O, "nohash");
// Print register base field
if (Base.getReg()) {
O << '(';
- printOperand(MI, OpNum);
+ printOperand(MI, OpNum, O);
O << ')';
}
}
-void MSP430AsmPrinter::printCCOperand(const MachineInstr *MI, int OpNum) {
- switch (MI->getOperand(OpNum).getImm()) {
- default: assert(0 && "Unknown cond");
- case MSP430CC::COND_E: O << "eq"; break;
- case MSP430CC::COND_NE: O << "ne"; break;
- case MSP430CC::COND_HS: O << "hs"; break;
- case MSP430CC::COND_LO: O << "lo"; break;
- case MSP430CC::COND_GE: O << "ge"; break;
- case MSP430CC::COND_L: O << 'l'; break;
- }
-}
-
/// PrintAsmOperand - Print out an operand for an inline asm expression.
///
bool MSP430AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
@@ -166,7 +146,7 @@
if (ExtraCode && ExtraCode[0])
return true; // Unknown modifier.
- printOperand(MI, OpNo);
+ printOperand(MI, OpNo, O);
return false;
}
@@ -177,7 +157,7 @@
if (ExtraCode && ExtraCode[0]) {
return true; // Unknown modifier.
}
- printSrcMemOperand(MI, OpNo);
+ printSrcMemOperand(MI, OpNo, O);
return false;
}