From c36e6752133f7fa2395ac79c0dc6c14f90cbf1d0 Mon Sep 17 00:00:00 2001 From: Nguyen Anh Quynh Date: Wed, 12 Nov 2014 15:57:52 +0800 Subject: [PATCH] mips: refine getFeatureBits() to make it more clear what Mips features are supported --- arch/Mips/MipsDisassembler.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/arch/Mips/MipsDisassembler.c b/arch/Mips/MipsDisassembler.c index 5d72005b..6ce6d5c7 100644 --- a/arch/Mips/MipsDisassembler.c +++ b/arch/Mips/MipsDisassembler.c @@ -205,7 +205,13 @@ static DecodeStatus DecodeBlezGroupBranch_4(MCInst *MI, // Hacky: enable all features for disassembler static uint64_t getFeatureBits(int mode) { - uint64_t Bits = (uint64_t)-1; // include every features by default + uint64_t Bits = (uint64_t)-1; // include every features at first + + // By default we do not support Mips1 + Bits &= ~Mips_FeatureMips1; + + // No MicroMips + Bits &= ~Mips_FeatureMicroMips; // ref: MipsGenDisassemblerTables.inc::checkDecoderPredicate() // some features are mutually execlusive @@ -238,8 +244,6 @@ static uint64_t getFeatureBits(int mode) Bits |= Mips_FeatureMicroMips; Bits &= ~Mips_FeatureMips4_32r2; Bits &= ~Mips_FeatureMips2; - } else { - Bits &= ~Mips_FeatureMicroMips; } return Bits;