summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-05-22 16:28:48 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-05-22 16:28:48 +0000
commit418e23e33c0c67a362b8a2d2250b2746c3dbf64a (patch)
tree8de1af7efb976e33d5f10d00d7c5c77d62eaa918 /llvm/lib/Target/AMDGPU
parentca64ef20434c0cb6912e795c85567d5b00ad9b0d (diff)
downloadbcm5719-llvm-418e23e33c0c67a362b8a2d2250b2746c3dbf64a.tar.gz
bcm5719-llvm-418e23e33c0c67a362b8a2d2250b2746c3dbf64a.zip
AMDGPU: Move disassembler support check to constructor
Don't check for unsupported targets for every instruction. llvm-svn: 361406
Diffstat (limited to 'llvm/lib/Target/AMDGPU')
-rw-r--r--llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
index 7db736766d2..b77deeab960 100644
--- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
@@ -61,7 +61,12 @@ AMDGPUDisassembler::AMDGPUDisassembler(const MCSubtargetInfo &STI,
MCContext &Ctx,
MCInstrInfo const *MCII) :
MCDisassembler(STI, Ctx), MCII(MCII), MRI(*Ctx.getRegisterInfo()),
- TargetMaxInstBytes(Ctx.getAsmInfo()->getMaxInstLength(&STI)) {}
+ TargetMaxInstBytes(Ctx.getAsmInfo()->getMaxInstLength(&STI)) {
+
+ // ToDo: AMDGPUDisassembler supports only VI ISA.
+ if (!STI.getFeatureBits()[AMDGPU::FeatureGCN3Encoding] && !isGFX10())
+ report_fatal_error("Disassembly not yet supported for subtarget");
+}
inline static MCDisassembler::DecodeStatus
addOperand(MCInst &Inst, const MCOperand& Opnd) {
@@ -189,10 +194,6 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
CommentStream = &CS;
bool IsSDWA = false;
- // ToDo: AMDGPUDisassembler supports only VI ISA.
- if (!STI.getFeatureBits()[AMDGPU::FeatureGCN3Encoding] && !isGFX10())
- report_fatal_error("Disassembly not yet supported for subtarget");
-
unsigned MaxInstBytesNum = std::min((size_t)TargetMaxInstBytes, Bytes_.size());
Bytes = Bytes_.slice(0, MaxInstBytesNum);
OpenPOWER on IntegriCloud