diff -r 09745e0c3dd9 -r cce762dec606 src/arch/x86/insts/microop.hh --- a/src/arch/x86/insts/microop.hh Fri Sep 02 17:04:00 2011 -0700 +++ b/src/arch/x86/insts/microop.hh Sun Sep 04 03:29:23 2011 -0700 @@ -100,7 +100,13 @@ X86ISA::X86StaticInst(mnem, _machInst, __opClass), instMnem(_instMnem) { - flags |= setFlags; + const int ChunkSize = sizeof(unsigned long); + const int Chunks = sizeof(setFlags) / ChunkSize; + + for (int i = 0; i < Chunks; i++) { + unsigned shift = i * ChunkSize * 8; + flags |= (std::bitset(setFlags >> shift) << shift); + } } std::string generateDisassembly(Addr pc,