summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
diff options
context:
space:
mode:
authorMichael Kuperstein <michael.m.kuperstein@intel.com>2015-03-24 12:56:59 +0000
committerMichael Kuperstein <michael.m.kuperstein@intel.com>2015-03-24 12:56:59 +0000
commit29704e7fb425a9cdf0e134996be3c0302a71feed (patch)
treed198e67a086ed876f28bdbfd6f6156f8da2032f3 /llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
parentd5cc45f192cbc1d6ad2566cbf999e1edfb3a525a (diff)
downloadbcm5719-llvm-29704e7fb425a9cdf0e134996be3c0302a71feed.tar.gz
bcm5719-llvm-29704e7fb425a9cdf0e134996be3c0302a71feed.zip
Revert "Use std::bitset for SubtargetFeatures"
This reverts commit r233055. It still causes buildbot failures (gcc running out of memory on several platforms, and a self-host failure on arm), although less than the previous time. llvm-svn: 233068
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp')
-rw-r--r--llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
index 46a6b3c8b2e..e8c547517b0 100644
--- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
+++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
@@ -80,19 +80,20 @@ X86GenericDisassembler::X86GenericDisassembler(
MCContext &Ctx,
std::unique_ptr<const MCInstrInfo> MII)
: MCDisassembler(STI, Ctx), MII(std::move(MII)) {
- const FeatureBitset &FB = STI.getFeatureBits();
- if (FB[X86::Mode16Bit]) {
+ switch (STI.getFeatureBits() &
+ (X86::Mode16Bit | X86::Mode32Bit | X86::Mode64Bit)) {
+ case X86::Mode16Bit:
fMode = MODE_16BIT;
- return;
- } else if (FB[X86::Mode32Bit]) {
+ break;
+ case X86::Mode32Bit:
fMode = MODE_32BIT;
- return;
- } else if (FB[X86::Mode64Bit]) {
+ break;
+ case X86::Mode64Bit:
fMode = MODE_64BIT;
- return;
+ break;
+ default:
+ llvm_unreachable("Invalid CPU mode");
}
-
- llvm_unreachable("Invalid CPU mode");
}
struct Region {
OpenPOWER on IntegriCloud