forked from OSchip/llvm-project
fix PrintAsmOperand and PrintAsmMemoryOperand to pass down
raw_ostream to print to. llvm-svn: 100313
This commit is contained in:
parent
787253819a
commit
3bb09768cb
|
@ -70,9 +70,8 @@ namespace llvm {
|
|||
/// function.
|
||||
///
|
||||
MachineLoopInfo *LI;
|
||||
|
||||
public:
|
||||
/// MMI - If available, this is a pointer to the current MachineModuleInfo.
|
||||
/// MMI - This is a pointer to the current MachineModuleInfo.
|
||||
MachineModuleInfo *MMI;
|
||||
|
||||
protected:
|
||||
|
@ -189,7 +188,8 @@ namespace llvm {
|
|||
/// override this to format as appropriate. This method can return true if
|
||||
/// the operand is erroneous.
|
||||
virtual bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &OS);
|
||||
|
||||
/// PrintAsmMemoryOperand - Print the specified operand of MI, an INLINEASM
|
||||
/// instruction, using the specified assembler variant as an address.
|
||||
|
@ -197,7 +197,8 @@ namespace llvm {
|
|||
/// return true if the operand is erroneous.
|
||||
virtual bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode);
|
||||
const char *ExtraCode,
|
||||
raw_ostream &OS);
|
||||
|
||||
/// runOnMachineFunction - Emit the specified function out to the
|
||||
/// OutStreamer.
|
||||
|
|
|
@ -1566,10 +1566,11 @@ void AsmPrinter::printInlineAsm(const MachineInstr *MI) const {
|
|||
AsmPrinter *AP = const_cast<AsmPrinter*>(this);
|
||||
if ((OpFlags & 7) == 4) {
|
||||
Error = AP->PrintAsmMemoryOperand(MI, OpNo, AsmPrinterVariant,
|
||||
Modifier[0] ? Modifier : 0);
|
||||
Modifier[0] ? Modifier : 0,
|
||||
OS);
|
||||
} else {
|
||||
Error = AP->PrintAsmOperand(MI, OpNo, AsmPrinterVariant,
|
||||
Modifier[0] ? Modifier : 0);
|
||||
Modifier[0] ? Modifier : 0, OS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1633,14 +1634,15 @@ void AsmPrinter::printLabelInst(const MachineInstr *MI) const {
|
|||
/// instruction, using the specified assembler variant. Targets should
|
||||
/// override this to format as appropriate.
|
||||
bool AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode) {
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
// Target doesn't support this yet!
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode, raw_ostream &O) {
|
||||
// Target doesn't support this yet!
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -197,10 +197,11 @@ namespace {
|
|||
}
|
||||
|
||||
virtual bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
virtual bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode);
|
||||
const char *ExtraCode, raw_ostream &O);
|
||||
|
||||
void printInstruction(const MachineInstr *MI, raw_ostream &O); // autogen
|
||||
static const char *getRegisterName(unsigned RegNo);
|
||||
|
@ -1042,7 +1043,8 @@ void ARMAsmPrinter::printVFPf64ImmOperand(const MachineInstr *MI, int OpNum,
|
|||
}
|
||||
|
||||
bool ARMAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
|
||||
unsigned AsmVariant, const char *ExtraCode){
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
// Does this asm operand have a single letter operand modifier?
|
||||
if (ExtraCode && ExtraCode[0]) {
|
||||
if (ExtraCode[1] != 0) return true; // Unknown modifier.
|
||||
|
@ -1088,7 +1090,8 @@ bool ARMAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
|
|||
|
||||
bool ARMAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNum, unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier.
|
||||
|
||||
|
|
|
@ -60,11 +60,11 @@ namespace {
|
|||
void EmitStartOfAsmFile(Module &M);
|
||||
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
bool PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode);
|
||||
unsigned OpNo, unsigned AsmVariant,
|
||||
const char *ExtraCode, raw_ostream &O);
|
||||
};
|
||||
} // end of anonymous namespace
|
||||
|
||||
|
@ -148,15 +148,15 @@ void AlphaAsmPrinter::EmitStartOfAsmFile(Module &M) {
|
|||
///
|
||||
bool AlphaAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode, raw_ostream &O) {
|
||||
printOperand(MI, OpNo, O);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AlphaAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
unsigned OpNo, unsigned AsmVariant,
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier.
|
||||
O << "0(";
|
||||
|
|
|
@ -57,9 +57,11 @@ namespace {
|
|||
OutStreamer.AddBlankLine();
|
||||
}
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
};
|
||||
} // end of anonymous namespace
|
||||
|
||||
|
@ -120,9 +122,9 @@ void BlackfinAsmPrinter::printMemoryOperand(const MachineInstr *MI, int opNum,
|
|||
/// PrintAsmOperand - Print out an operand for an inline asm expression.
|
||||
///
|
||||
bool BlackfinAsmPrinter::PrintAsmOperand(const MachineInstr *MI,
|
||||
unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
unsigned OpNo, unsigned AsmVariant,
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0]) {
|
||||
if (ExtraCode[1] != 0) return true; // Unknown modifier.
|
||||
|
||||
|
@ -141,7 +143,8 @@ bool BlackfinAsmPrinter::PrintAsmOperand(const MachineInstr *MI,
|
|||
bool BlackfinAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier
|
||||
|
||||
|
|
|
@ -83,9 +83,11 @@ namespace {
|
|||
}
|
||||
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
|
||||
|
||||
void
|
||||
|
@ -322,7 +324,7 @@ void SPUAsmPrinter::printOp(const MachineOperand &MO, raw_ostream &O) {
|
|||
///
|
||||
bool SPUAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode, raw_ostream &O) {
|
||||
// Does this asm operand have a single letter operand modifier?
|
||||
if (ExtraCode && ExtraCode[0]) {
|
||||
if (ExtraCode[1] != 0) return true; // Unknown modifier.
|
||||
|
@ -345,9 +347,9 @@ bool SPUAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
|||
}
|
||||
|
||||
bool SPUAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
unsigned OpNo, unsigned AsmVariant,
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier.
|
||||
printMemRegReg(MI, OpNo, O);
|
||||
|
|
|
@ -63,7 +63,8 @@ namespace {
|
|||
}
|
||||
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
|
||||
void printUnsignedImm(const MachineInstr *MI, int opNum, raw_ostream &O);
|
||||
void printFSLImm(const MachineInstr *MI, int opNum, raw_ostream &O);
|
||||
|
@ -206,7 +207,7 @@ void MBlazeAsmPrinter::EmitFunctionBodyEnd() {
|
|||
// Print out an operand for an inline asm expression.
|
||||
bool MBlazeAsmPrinter::
|
||||
PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,const char *ExtraCode){
|
||||
unsigned AsmVariant,const char *ExtraCode, raw_ostream &O) {
|
||||
// Does this asm operand have a single letter operand modifier?
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier.
|
||||
|
|
|
@ -63,11 +63,11 @@ namespace {
|
|||
void printCCOperand(const MachineInstr *MI, int OpNum);
|
||||
void printMachineInstruction(const MachineInstr * MI);
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
bool PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNo, unsigned AsmVariant,
|
||||
const char *ExtraCode);
|
||||
const char *ExtraCode, raw_ostream &O);
|
||||
void EmitInstruction(const MachineInstr *MI);
|
||||
|
||||
void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
|
@ -161,7 +161,7 @@ void MSP430AsmPrinter::printCCOperand(const MachineInstr *MI, int OpNum) {
|
|||
///
|
||||
bool MSP430AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode, raw_ostream &O) {
|
||||
// Does this asm operand have a single letter operand modifier?
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier.
|
||||
|
@ -172,7 +172,8 @@ bool MSP430AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
|||
|
||||
bool MSP430AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNo, unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0]) {
|
||||
return true; // Unknown modifier.
|
||||
}
|
||||
|
|
|
@ -61,7 +61,8 @@ namespace {
|
|||
}
|
||||
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
|
||||
void printUnsignedImm(const MachineInstr *MI, int opNum, raw_ostream &O);
|
||||
void printMemOperand(const MachineInstr *MI, int opNum, raw_ostream &O,
|
||||
|
@ -232,7 +233,8 @@ void MipsAsmPrinter::EmitFunctionBodyEnd() {
|
|||
|
||||
// Print out an operand for an inline asm expression.
|
||||
bool MipsAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,const char *ExtraCode){
|
||||
unsigned AsmVariant,const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
// Does this asm operand have a single letter operand modifier?
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier.
|
||||
|
|
|
@ -143,9 +143,11 @@ namespace {
|
|||
}
|
||||
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
|
||||
|
||||
void printS5ImmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
|
@ -471,7 +473,7 @@ void PPCAsmPrinter::printOp(const MachineOperand &MO, raw_ostream &O) {
|
|||
///
|
||||
bool PPCAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode, raw_ostream &O) {
|
||||
// Does this asm operand have a single letter operand modifier?
|
||||
if (ExtraCode && ExtraCode[0]) {
|
||||
if (ExtraCode[1] != 0) return true; // Unknown modifier.
|
||||
|
@ -509,7 +511,8 @@ bool PPCAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
|||
|
||||
bool PPCAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier.
|
||||
assert (MI->getOperand(OpNo).isReg());
|
||||
|
|
|
@ -51,9 +51,11 @@ namespace {
|
|||
static const char *getRegisterName(unsigned RegNo);
|
||||
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
|
||||
bool printGetPCX(const MachineInstr *MI, unsigned OpNo, raw_ostream &OS);
|
||||
|
||||
|
@ -174,7 +176,8 @@ void SparcAsmPrinter::printCCOperand(const MachineInstr *MI, int opNum,
|
|||
///
|
||||
bool SparcAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0]) {
|
||||
if (ExtraCode[1] != 0) return true; // Unknown modifier.
|
||||
|
||||
|
@ -191,9 +194,9 @@ bool SparcAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
|||
}
|
||||
|
||||
bool SparcAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
unsigned OpNo, unsigned AsmVariant,
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier
|
||||
|
||||
|
|
|
@ -369,7 +369,7 @@ bool X86AsmPrinter::printAsmMRegister(const MachineOperand &MO, char Mode,
|
|||
///
|
||||
bool X86AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode, raw_ostream &O) {
|
||||
// Does this asm operand have a single letter operand modifier?
|
||||
if (ExtraCode && ExtraCode[0]) {
|
||||
if (ExtraCode[1] != 0) return true; // Unknown modifier.
|
||||
|
@ -443,7 +443,8 @@ bool X86AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
|||
|
||||
bool X86AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
unsigned OpNo, unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
if (ExtraCode && ExtraCode[0]) {
|
||||
if (ExtraCode[1] != 0) return true; // Unknown modifier.
|
||||
|
||||
|
|
|
@ -69,9 +69,11 @@ class VISIBILITY_HIDDEN X86AsmPrinter : public AsmPrinter {
|
|||
|
||||
bool printAsmMRegister(const MachineOperand &MO, char Mode, raw_ostream &O);
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &OS);
|
||||
bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &OS);
|
||||
|
||||
void printMachineInstruction(const MachineInstr *MI);
|
||||
void printSSECC(const MachineInstr *MI, unsigned Op, raw_ostream &O);
|
||||
|
|
|
@ -70,7 +70,8 @@ namespace {
|
|||
}
|
||||
void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
|
||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant, const char *ExtraCode);
|
||||
unsigned AsmVariant, const char *ExtraCode,
|
||||
raw_ostream &O);
|
||||
|
||||
void emitGlobalDirective(const MCSymbol *Sym);
|
||||
|
||||
|
@ -318,8 +319,8 @@ void XCoreAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
|
|||
/// PrintAsmOperand - Print out an operand for an inline asm expression.
|
||||
///
|
||||
bool XCoreAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
unsigned AsmVariant,
|
||||
const char *ExtraCode) {
|
||||
unsigned AsmVariant,const char *ExtraCode,
|
||||
raw_ostream &O) {
|
||||
printOperand(MI, OpNo, O);
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue