aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2010-02-10 02:27:43 +0000
committerSean Callanan <scallanan@apple.com>2010-02-10 02:27:43 +0000
commit397170b0ab0b445a268bd9bc1260761bb4a78ca2 (patch)
treeba2d91340b26ecb69739b1ecef6b1f320962eaa6 /utils
parent046632f272b22a653c204c0ef56eb4076368d4bb (diff)
downloadexternal_llvm-397170b0ab0b445a268bd9bc1260761bb4a78ca2.zip
external_llvm-397170b0ab0b445a268bd9bc1260761bb4a78ca2.tar.gz
external_llvm-397170b0ab0b445a268bd9bc1260761bb4a78ca2.tar.bz2
Changed AsmWriterOperand to also include the index of the
operand into the CodeGenInstruction's list of operands, which is useful for EDEmitter. (Still working on PR6219) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95759 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/AsmWriterInst.cpp9
-rw-r--r--utils/TableGen/AsmWriterInst.h10
2 files changed, 15 insertions, 4 deletions
diff --git a/utils/TableGen/AsmWriterInst.cpp b/utils/TableGen/AsmWriterInst.cpp
index ccf39c4..508e453 100644
--- a/utils/TableGen/AsmWriterInst.cpp
+++ b/utils/TableGen/AsmWriterInst.cpp
@@ -219,7 +219,10 @@ AsmWriterInst::AsmWriterInst(const CodeGenInstruction &CGI,
if (VarName.empty()) {
// Just a modifier, pass this into PrintSpecial.
- Operands.push_back(AsmWriterOperand("PrintSpecial", ~0U, Modifier));
+ Operands.push_back(AsmWriterOperand("PrintSpecial",
+ ~0U,
+ ~0U,
+ Modifier));
} else {
// Otherwise, normal operand.
unsigned OpNo = CGI.getOperandNamed(VarName);
@@ -227,7 +230,9 @@ AsmWriterInst::AsmWriterInst(const CodeGenInstruction &CGI,
if (CurVariant == Variant || CurVariant == ~0U) {
unsigned MIOp = OpInfo.MIOperandNo;
- Operands.push_back(AsmWriterOperand(OpInfo.PrinterMethodName, MIOp,
+ Operands.push_back(AsmWriterOperand(OpInfo.PrinterMethodName,
+ OpNo,
+ MIOp,
Modifier));
}
}
diff --git a/utils/TableGen/AsmWriterInst.h b/utils/TableGen/AsmWriterInst.h
index 5a8cf77..20b8588 100644
--- a/utils/TableGen/AsmWriterInst.h
+++ b/utils/TableGen/AsmWriterInst.h
@@ -41,6 +41,10 @@ namespace llvm {
/// into the asm writer.
std::string Str;
+ /// CGIOpNo - For isMachineInstrOperand, this is the index of the operand in
+ /// the CodeGenInstruction.
+ unsigned CGIOpNo;
+
/// MiOpNo - For isMachineInstrOperand, this is the operand number of the
/// machine instruction.
unsigned MIOpNo;
@@ -56,10 +60,12 @@ namespace llvm {
OpType op = isLiteralTextOperand)
: OperandType(op), Str(LitStr) {}
- AsmWriterOperand(const std::string &Printer, unsigned OpNo,
+ AsmWriterOperand(const std::string &Printer,
+ unsigned _CGIOpNo,
+ unsigned _MIOpNo,
const std::string &Modifier,
OpType op = isMachineInstrOperand)
- : OperandType(op), Str(Printer), MIOpNo(OpNo),
+ : OperandType(op), Str(Printer), CGIOpNo(_CGIOpNo), MIOpNo(_MIOpNo),
MiModifier(Modifier) {}
bool operator!=(const AsmWriterOperand &Other) const {