From ee0835002c96da92478bef9d0212b52d3b3743d8 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 22 Dec 2015 23:37:37 +0000 Subject: [PATCH] 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 --- include/llvm/Target/Target.td | 1 + utils/TableGen/CodeGenInstruction.cpp | 1 + 2 files changed, 2 insertions(+) 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"); -- 2.34.1