From: Dan Gohman Date: Tue, 22 Dec 2015 23:37:37 +0000 (+0000) Subject: Add an OperandNamespace field to Target.td's Operand. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ee0835002c96da92478bef9d0212b52d3b3743d8;p=oota-llvm.git Add an OperandNamespace field to Target.td's Operand. For targets to add their own operand types as needed, as advertised in Operand's comment, they need to be able to specify an alternate namespace for OperandType names too. This matches the RegisterOperand class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256299 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/Target.td b/include/llvm/Target/Target.td index 859e21b1957..2b796d15fcc 100644 --- a/include/llvm/Target/Target.td +++ b/include/llvm/Target/Target.td @@ -620,6 +620,7 @@ class Operand : DAGOperand { string EncoderMethod = ""; string DecoderMethod = ""; bit hasCompleteDecoder = 1; + string OperandNamespace = "MCOI"; string OperandType = "OPERAND_UNKNOWN"; dag MIOperandInfo = (ops); diff --git a/utils/TableGen/CodeGenInstruction.cpp b/utils/TableGen/CodeGenInstruction.cpp index e83d5033b18..366e8ec7fac 100644 --- a/utils/TableGen/CodeGenInstruction.cpp +++ b/utils/TableGen/CodeGenInstruction.cpp @@ -78,6 +78,7 @@ CGIOperandList::CGIOperandList(Record *R) : TheDef(R) { } else if (Rec->isSubClassOf("Operand")) { PrintMethod = Rec->getValueAsString("PrintMethod"); OperandType = Rec->getValueAsString("OperandType"); + OperandNamespace = Rec->getValueAsString("OperandNamespace"); // If there is an explicit encoder method, use it. EncoderMethod = Rec->getValueAsString("EncoderMethod"); MIOpInfo = Rec->getValueAsDag("MIOperandInfo");