summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-12-19 14:58:22 +0000
committerHal Finkel <hfinkel@anl.gov>2013-12-19 14:58:22 +0000
commite14ad8538f59d93d9db2ef4705995d13a55b45f3 (patch)
tree5ca4e4c729d05906825274743e8907c1c4a26912 /utils
parentde011a5f90c8c9ac1557043e59af179f14c15825 (diff)
downloadllvm-e14ad8538f59d93d9db2ef4705995d13a55b45f3.tar.gz
llvm-e14ad8538f59d93d9db2ef4705995d13a55b45f3.tar.bz2
llvm-e14ad8538f59d93d9db2ef4705995d13a55b45f3.tar.xz
Add support for PointerLikeRegClass to FixedLenDecoderEmitter
This is more prep for adding the PowerPC disassembler. FixedLenDecoderEmitter should recognize PointerLikeRegClass operands as register types, and generate register-like decoding calls instead of treating them like immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197680 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/FixedLenDecoderEmitter.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/utils/TableGen/FixedLenDecoderEmitter.cpp b/utils/TableGen/FixedLenDecoderEmitter.cpp
index d2d3f3dd07..0918d0b1df 100644
--- a/utils/TableGen/FixedLenDecoderEmitter.cpp
+++ b/utils/TableGen/FixedLenDecoderEmitter.cpp
@@ -1771,6 +1771,10 @@ static bool populateInstruction(const CodeGenInstruction &CGI, unsigned Opc,
if (TypeRecord->isSubClassOf("RegisterClass")) {
Decoder = "Decode" + TypeRecord->getName() + "RegisterClass";
isReg = true;
+ } else if (TypeRecord->isSubClassOf("PointerLikeRegClass")) {
+ Decoder = "DecodePointerLikeRegClass" +
+ utostr(TypeRecord->getValueAsInt("RegClassKind"));
+ isReg = true;
}
RecordVal *DecoderString = TypeRecord->getValue("DecoderMethod");