diff options
author | Sean Callanan <scallanan@apple.com> | 2010-02-10 02:27:43 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2010-02-10 02:27:43 +0000 |
commit | 397170b0ab0b445a268bd9bc1260761bb4a78ca2 (patch) | |
tree | ba2d91340b26ecb69739b1ecef6b1f320962eaa6 /utils | |
parent | 046632f272b22a653c204c0ef56eb4076368d4bb (diff) | |
download | external_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.cpp | 9 | ||||
-rw-r--r-- | utils/TableGen/AsmWriterInst.h | 10 |
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 { |